wewrite/references/onboard.md
wangzhuc 78e8fd666e SKILL.md 结构重构:571行→273行,学习 gstack 模式
拆分:
- Onboard → references/onboard.md
- 学习飞轮 → references/learn-edits.md
- 效果复盘 → references/effect-review.md
SKILL.md 只保留主管道(写文章)+ 错误处理。

重编号:
- 去掉 0, 2.5, 3.5, 3.75, 7.5 等补丁式编号
- Step 1-8 连续编号,子步骤用 a/b/c

新增行为声明区(学习 gstack preamble 模式):
- 角色、模式、降级原则一次性声明
- 完成协议:DONE / DONE_WITH_CONCERNS / BLOCKED / NEEDS_CONTEXT
- 辅助功能用 读取: references/xxx.md 按需加载
- frontmatter 新增 allowed-tools

结构:11 个 section header(原 34 个),Agent 认知负荷大幅降低。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 00:01:04 +08:00

3.2 KiB
Raw Blame History

Onboard首次设置

触发条件

  • Step 1 发现 style.yaml 不存在
  • 用户明确说"重新设置风格"、"修改配置"

Phase 1: 收集信息(交互式问答)

通过对话收集以下信息,不要一次性列出所有问题——一轮问 1-2 个,像聊天一样:

必问(缺了无法运行):

顺序 问题 对应字段 示例引导
1 你的公众号叫什么名字?主要做什么方向? name + industry "比如'零号AI',做科技/互联网"
2 主要写哪几个方向的内容? topics "比如 AI、产品设计、效率工具"
3 你希望文章是什么风格? tone "专业严肃?轻松有趣?毒舌犀利?像朋友聊天?"

选问(有默认值,用户不答就用默认):

问题 对应字段 默认值
目标读者是谁? target_audience 从 industry 推断
用什么人称写? voice "第一人称,像一个懂行的朋友"
有没有绝对不能出现的词或话题? blacklist
有没有想参考的公众号? reference_accounts
署名写什么? author name 字段值
偏好哪种排版风格?(可运行 gallery 命令预览全部 16 个主题) theme "professional-clean"
封面风格偏好? cover_style 从 industry 推断
有没有固定封面模板? cover_template 不设置

快捷路径

  • 如果用户直接甩了一段描述(如"我做科技自媒体,风格像虎嗅"),直接从中提取所有能提取的字段,只补问缺的
  • 如果用户说"不设置"、"用默认的"、"直接写" → 复制 {skill_dir}/style.example.yamlstyle.yaml,跳过所有问答
参考: {skill_dir}/references/style-template.md字段说明和可用主题列表

Phase 2: 生成配置

用收集到的信息自动生成 {skill_dir}/style.yaml

同时确保以下文件/目录存在(不存在则创建):

  • {skill_dir}/history.yaml → 初始化为 articles: []
  • {skill_dir}/corpus/ → 空目录
  • {skill_dir}/lessons/ → 空目录

生成完成后,把 style.yaml 的内容展示给用户看一遍,问"这个配置 OK 吗?有什么要改的?"。用户确认后继续。

Phase 3: Playbook可选不阻断

问用户:"你有没有之前写过的公众号文章?如果有 20 篇以上,我可以从中学习你的写作风格,以后写出来的文章会更像你。"

  • 用户有语料 → 告知将文章(.md 或 .txt放入 {skill_dir}/corpus/,然后运行:

    python3 {skill_dir}/scripts/build_playbook.py
    

    按脚本输出逐批阅读文章,提取风格特征,生成 playbook.md

  • 用户没有语料 / 暂时不想弄 → 完全正常,跳过。告知用户:"没问题,先用通用风格写,后续你可以随时说'学习我的修改'来让我逐渐适应你的风格。"

Phase 4: 试跑

Onboard 完成后,问用户:"配置好了,要不要现在试写一篇?"

  • → 回到 Step 1执行完整流程
  • → 告知用户下次如何触发:"下次直接说'写一篇公众号文章'就行"