技术文章全流程创作
从选题到发布的生产管线。每个阶段有明确输入、产出和质量门禁。支持从任意阶段切入。
配置
本 skill 通过 config.yaml 管理所有可配置项。配置文件位置:
- 模板文件:
{skill_dir}/config.yaml(本 skill 目录下,包含完整注释和默认值) - 运行时配置:
{root_dir}/.tech-article-creator.yaml(文章根目录下的实际配置)
配置加载流程
每次启动时:
- 检查
{root_dir}/.tech-article-creator.yaml是否存在 - 存在 → 直接读取,进入对应阶段
- 不存在 → 进入首次配置引导
首次配置引导
从模板文件复制一份到运行时路径,然后通过交互引导用户填写核心配置。每个配置项提供默认选项,用户可直接接受默认值。
[交互] AskUserQuestion:依次确认以下核心配置(一次只问一个):
- 文章根目录:从工作目录推断候选路径,让用户确认或指定
- 默认:当前工作目录
- 版本策略:单版本 / 双版本 / 自定义
- 默认:双版本(技术深度版 + 通俗故事版)
- 外部评审:是否启用外部模型评审,如启用则确认可用模型
- 默认:不启用(仅用 Agent Team 内部评审)
- 发布平台:仅本地 / 博客 / 微信公众号 / 社交媒体(可多选)
- 默认:仅本地(只生成 markdown 文件)
用户确认后将选择写入 {root_dir}/.tech-article-creator.yaml。后续使用直接读取,不再重复询问。用户可随时手动编辑该文件调整配置。
目录结构
根据 config.yaml 中的模板生成:
{root_dir}/
├── {topics_dir}/ # 选题文件
├── {compliance.rules_file} # 平台合规规范(如配置)
├── {article_dir}/ # 单篇文章目录(按模板生成)
│ ├── 大纲.md # 含版本标注
│ ├── 原始素材/ # 素材 + 评审意见
│ ├── {image.output_dir}/ # 配图(如启用)
│ ├── {variant.file_prefix}{标题}.md # 每个版本一个文件
│ └── *.html # 排版产物(如需要)
阶段总览
| # | 阶段 | 产出 | 门禁 | 条件 | 推进方式 |
|---|------|------|------|------|---------|
| 1 | 选题 | 选题推荐(含优先级) | 用户选择 | 始终 | 等用户选择 |
| 2 | 大纲 | 大纲.md + 文章目录 | 版本标注完整 | 始终 | 自动推进→3 |
| 3 | 素材收集 | 原始素材/*.md | 覆盖大纲所有章节 | 始终 | 自动推进→4 |
| 4 | 大纲评审 | 评审意见 → 更新大纲 | 采纳后大纲定稿 | review.models 非空 | 自动推进→5 |
| 5 | 写作+内部评审 | 各版本文章(评审通过) | Agent Team 迭代通过 | 始终 | 自动推进→5.5 |
| 5.5 | 标题定稿 | 各版本最终标题 | 用户选定 | 始终 | 等用户选择 |
| 6 | 外部终稿评审 | 外部评审通过 | 多轮迭代通过 | review.models 非空 | 自动推进→7 |
| 7 | 人工终审 | 用户确认终稿 | 用户 approve | 始终 | 等用户确认 |
| 8 | 配图 | 封面图 + 示意图 | 图片齐全 | image.enabled | 自动推进→9 |
| 9 | 排版/发布 | 各平台产物 | 发布完成 | publish.platforms 非空 | 完成 |
推进规则
- 自动推进:阶段完成后直接进入下一阶段,不等用户说"继续"
- 等用户选择/确认:仅在阶段 1(选题)、5.5(标题)、7(人工终审)停下来等用户
- 所有交互一律用 AskUserQuestion 的 options:给选项让用户选,不要让用户打字描述。如果确实需要自由输入,在 options 中加一个"自定义"选项
阶段 1:选题
- 扫描已有文章:读取根目录下已有文章目录,提取系列脉络
- 采集热点源:WebSearch 查询近期技术热点
- 交叉分析:已有文章 × 热点 → 系列缺口 / 热点卡位 / 长尾价值
- 输出 3-5 个选题:每个含标题、热点依据、衔接关系、核心内容
- 保存到
{topics_dir}/week{N}-{日期}.md
[交互] AskUserQuestion(options):将 3-5 个选题作为选项展示,用户选择一个。选项中包含标题和一句话核心内容。用户可选"自定义选题"输入自己的想法。确认后确定文章序号(如启用)和标题。
阶段 2:大纲
- 按
config.yaml中的article_dir_template创建文章目录(含原始素材/) - 撰写大纲.md:元信息 + 各章节结构 + 每节标注版本归属 + 素材清单 + 配图清单
多版本核心差异——大纲阶段就要规划。根据 config.yaml 中 variants 的定义,为每个版本规划差异化内容。
详细写作规范见 references/dual-version-writing-guide.md。
阶段 3:素材收集(自动推进)
本阶段自动执行,不等用户确认。 大纲完成后直接启动素材收集。
启动并行 subagent 按主题分工收集(如运行时不支持 subagent 则串行执行),典型分组:
- 个人实战素材(真实案例、配置、工作流)
- 工具/技术素材(功能、对比、配置方式)
- 行业趋势素材(热点新闻、定价、论文)
每个 subagent 产出 原始素材/{分类}素材.md,含原始内容和来源标注。收集完检查:每个大纲章节是否都有素材支撑。
素材收集完成后,输出覆盖情况表(章节 × 素材来源),然后自动进入阶段 4。
详细指南见 references/material-collection-guide.md。
阶段 4:大纲评审(自动推进)
仅在
config.yaml的review.models配置了评审模型时执行。未配置则跳过此阶段,直接进入阶段 5。 本阶段自动执行。 素材收集完成后直接发起评审。
将大纲 + 全部素材文件路径发送给配置的评审模型。不发摘要——让评审模型读完整文件。
每个评审模型按其配置的 role 侧重不同维度。评审结果保存到 原始素材/评审意见-{模型名}.md。
评审意见处理规则(自动采纳 + 展示):
- 高严重度:自动采纳并更新大纲,向用户展示修改内容
- 中严重度:自动采纳并更新大纲,向用户展示修改内容
- 低严重度:展示给用户但不自动采纳(可忽略)
- 汇总评审发现(表格 + 严重度 + 采纳状态),向用户展示后自动进入阶段 5
- 如有争议性问题(评审模型之间意见冲突),用 AskUserQuestion(options) 让用户选择采纳哪方
限流处理:限流时用 AskUserQuestion(options) 让用户选择"等待重试 / 降级模型 / 跳过评审"。
详细模板见 references/review-prompt-templates.md。
阶段 5:写作 + 内部评审(Agent Team,自动推进)
本阶段自动执行。 大纲评审完成后直接启动写作团队,内部评审迭代通过后自动进入阶段 5.5。
这是核心阶段,使用 Agent Team 实现并行写作和多轮迭代评审。
如 writing_team.parallel 为 false 或运行时不支持 subagent,改为串行模式:依次完成每个版本的写作和评审。
Team 编制
根据 config.yaml 中的 variants 和 writing_team.reviewers 动态组建:
- 每个 variant 分配一个 writer
- 按
writing_team.reviewers配置分配 reviewer
执行流程
- 创建 Team,设置任务依赖:评审任务 blocked by 写作任务
- Writer 并行写作:各 writer 读取大纲(注意版本标注)和素材
- 补充规范:如配置了
compliance.rules_file,发给相关 writer 和 reviewer - 初稿完成 → reviewer 开始评审
- 迭代循环:
- reviewer 读取文章,输出评审意见(问题列表 + 严重度),发给对应 writer
- writer 修改后通知 reviewer 再审
- 迭代直到所有 reviewer 都认为通过(无高/中严重度问题)
- Team 解散:所有任务 completed 后,shutdown 所有 teammate
Writer Prompt 要点
- 必须读完大纲和所有素材再动笔
- 按
config.yaml中该 variant 的style、word_count、target_audience写作 - 不要 AI 味("值得注意的是"、过度排比、空洞连接词)
- 案例脱敏:遵循
compliance.redaction_strategy
Reviewer Prompt 要点
按 writing_team.reviewers 中配置的 focus 评审。通用评审维度包括:
- 事实准确性、数据口径一致性
- 代码可执行性(技术版)
- AI 痕迹检测
- 版本间差异化是否到位(不是简单删减)
- 可读性、段落长度适配目标读者
- 合规检查(如有 compliance 配置)
详细写作模板见 references/dual-version-writing-guide.md。
阶段 5.5:标题定稿
Agent Team 内部评审通过后、外部终稿评审之前,确定各版本的最终标题。
流程
- 基于各版本终稿内容,为每个版本生成 4-5 个标题备选
- [交互] AskUserQuestion(options):每个版本单独一个问题,标题备选作为选项展示(含 preview 预览标题效果)。用户可选"自定义标题"输入自己的
- 用户选定后更新文件标题和文件名
标题规则
根据版本特性生成标题。参考公式见 references/dual-version-writing-guide.md。
阶段 6:外部终稿评审(自动推进)
仅在
config.yaml的review.models配置了评审模型时执行。未配置则跳过此阶段。 本阶段自动执行。 标题定稿后直接发起外部评审,评审通过后自动进入阶段 7。
流程
- 将各版本终稿文件路径发给配置的评审模型(尽量并行)
- 评审维度与阶段 4 类似,但针对完整正文而非大纲
- 收到评审意见后修改文章
- 多轮迭代:修改后附"已修改项"清单再发评审,方便 reviewer 聚焦变更点
- 迭代直到所有模型都输出"终稿审查通过"
- 通知用户进入人工终审
常见问题类型(按历史经验排序)
- 数据口径不一致:不同版本引用同一数据但表述不同
- 配置步骤错误:描述与实际操作不符
- 产品命名不精确:缩写或版本号不准确
- 来源标注缺失:引用数据但没给出处
- 截图占位符未处理:
(截图:...)应替换为实际图片或改为 HTML 注释
限流处理
与阶段 4 相同:限流时由用户决定,不自动降级。
阶段 7:人工终审
外部评审通过后(或跳过外部评审时内部评审通过后),通知用户进行最终人工审核。
[交互] AskUserQuestion(options):通知用户终稿已就绪,提供选项:
- "通过,进入下一步"(继续配图/发布)
- "有修改意见"(用户在 Other 中输入具体意见)
- "需要再看看,稍后回复"(暂停流程)
同时在问题描述中列出常见关注点供参考:标题、干货密度、工具推荐平衡、引流内容。
用户选择"通过"后自动进入配图/排版/发布。
阶段 8:配图
仅在
config.yaml的image.enabled为 true 时执行。未启用则跳过。
[交互] AskUserQuestion(options, multiSelect):根据大纲中的配图清单,列出建议配图作为多选选项,用户勾选需要生成的。选项示例:"封面图(自动生成)"、"架构/流程图(自动生成)"、"工具截图(需手动提供)"。
配图分类
根据 config.yaml 中 image.types 配置生成。使用 image.skill 指定的图片生成工具。
配图规范
- 示意图文字建议使用文章语言(如中文文章用中文标注),专有名词保留英文
- 封面图带精简标题(2-4 字关键词)
- 图片统一存放到
{image.output_dir}/目录 - 截图类素材需用户手动提供,不可 AI 生成
阶段 9:排版 / 发布
仅在
config.yaml的publish.platforms非空时执行。未配置则文章以本地 markdown 形式完成。
[交互] AskUserQuestion(options, multiSelect):根据 publish.platforms 配置列出可发布平台作为多选选项,用户勾选本次要发布的。默认全选。
根据 publish.platforms 配置,调用对应的发布 skill:
| 平台 | 配置字段 | 产出 |
|------|---------|------|
| 博客 | publish.blog.skill | 发布到 publish.blog.url |
| 微信公众号 | publish.wechat.converter_skill + publisher_skill | 先转 HTML 再发布到草稿箱 |
| 社交媒体 | publish.x.skill | 推文(可选) |
每个平台发布前确认,发布后验证。
安全与合规
敏感数据三原则
跨模型评审时:最小披露、先脱敏再送出、可审计可回滚。
文章涉及真实项目时:按 compliance.redaction_strategy 脱敏,用户确认脱敏程度后才发布。
平台合规
如配置了 compliance.rules_file,以下阶段会自动加载该规范:
- 阶段 5 写作:writer 和 content-reviewer 遵守合规规范
- 阶段 6 外部评审:评审 prompt 中附带合规要求
- 阶段 8 配图:检查图片是否符合合规(如品牌 Logo 限制)
- 阶段 9 发布:发布前对照合规规范自查
未配置 compliance.rules_file 时,上述阶段跳过合规检查。
合规规范通用红线(供参考)
- 不用第三方品牌 Logo(文字提及品牌名可以)
- 不出现诱导性营销文案
- 引用他人内容标注来源
- 发布前对照合规规范自查