# write-article Skill 生产架构总览 ## 文件体量 ``` .claude/skills/write-article/ ├── SKILL.md ~330 行 ~2,000 字 接口层(工作流 + 约束) └── references/ ├── material-anchors.md ~150 行 ~1,000 字 素材锚点(四类锚点 + 脚手架 + 编织规则) ├── content-quality.md ~275 行 ~1,800 字 质量框架(标题/去AI味/完读率/素材密度) ├── writing-styles.md 122 行 ~750 字 风格模板(5 种) └── personas.md 145 行 ~650 字 人格配置(1 个 + 扩展模板) ───────────────── ~1,022 行 ~6,200 字 总上下文消耗 ``` ## 渐进式披露架构 ``` Agent 加载顺序(上下文消耗) ───────────────────────────────────────────────────────────── 第 1 层:SKILL.md(必加载,~1,600 字) ┌──────────────────────────────────────────────────────────┐ │ frontmatter 触发匹配 + 依赖声明 │ │ 目标 流量池公式 + 质量底线 │ │ 输入要求 5 必填 + 7 可选 + style×persona 矩阵 │ │ 7 步工作流 摘要+指针,不含详细规则 │ │ 输出约束 6 条硬性规则 │ │ 失败处理 3 种失败模式 │ │ 风格参考 5 个文件指针 │ └──────────────┬───────────────────────────────────────────┘ │ 按需加载(只在对应 Step 触发时读取) ▼ 第 2 层:references/(按需,~4,200 字) ┌──────────────────────┐ ┌────────────────────┐ ┌──────────────────┐ ┌───────────────┐ │ material-anchors.md │ │ content-quality.md │ │ writing-styles.md│ │ personas.md │ │ │ │ │ │ │ │ │ │ Step 1b → §1-§3 │ │ Step 3 → §1 标题 │ │ Step 4 → 选风格 │ │ Step 2 → 激活 │ │ 素材锚点+脚手架 │ │ Step 4a → §2 去AI │ │ │ │ │ │ Step 4 → §4 编织 │ │ Step 4b → §3 完读率│ │ │ │ │ │ Step 7 → §4.4 门禁 │ │ Step 7 → §4 门禁 │ │ │ │ │ └──────────────────────┘ └────────────────────┘ └──────────────────┘ └───────────────┘ │ ▼ 第 3 层:vault 内文件(仅 lizi_kk 风格触发) ┌──────────────────────────────────────────────────────────┐ │ templates/author-style-lizi-kk.md 详细风格指南 │ │ personal-context/ (5 篇) 已发表文章参考 │ │ 通过 obsidian read 读取,不占 skill 上下文 │ └──────────────────────────────────────────────────────────┘ ``` 架构判定:三层分离合理。SKILL.md 是接口,references 是实现,vault 文件是数据。Agent 不需要一次性加载全部 4,400 字。 ## 7 步工作流 × 文件依赖矩阵 ``` Step 名称 SKILL.md content-quality writing-styles personas material-anchors vault 文件 ──── ──── ──────── ─────────────── ────────────── ──────── ──────────────── ────────── 1a 读取素材 ✓ 指令 ✓ obsidian read 1b 提取素材锚点 ✓ 约束 ✓ §1-§3 锚点+脚手架 2 激活人格 ✓ 格式 ✓ 激活 3 标题工程 ✓ 约束 ✓ §1 详细公式 4 生成草稿 ✓ 约束 ✓ §2 去AI味 ✓ 选风格 ✓ 口吻 ✓ §4 编织规则 ✓ lizi_kk 模板 ✓ §3 完读率 ✓ personal-context 5 创建文件 ✓ 模板 ✓ obsidian create 6 验证 frontmatter ✓ 清单 ✓ obsidian read 7 质量检查 ✓ 门禁 ✓ §4 完整清单 ✓ §4.4 素材密度 ``` Step 4 是资源消耗峰值——同时需要 5 个参考源。这是合理的,因为生成草稿是整个 skill 的核心价值所在。 ## 跨文件一致性检查 ``` 检查项 结果 备注 ───────────────────────────────────────────────────────────── 风格数量声明一致 ✓ SKILL.md "5种" = writing-styles.md "5类" persona 数据一致(20000+) ✓ personas.md:27 = personas.md:75 frontmatter 字段对齐 CLAUDE.md §4.2 ✓ 14 个必填字段全覆盖 门禁清单覆盖所有质量维度 ✓ 基础(4) + 标题(3) + 去AI味(8) + 完读率(6) + 素材密度(6) = 27 项 SKILL.md 指针与 content-quality.md 章节对应 ✓ §1/§2/§3/§4(含§4.4素材密度)均有对应引用 SKILL.md 指针与 material-anchors.md 对应 ✓ §1-§3(Step 1b) + §4(Step 4) + §4.4(Step 7) material-anchors.md 锚点类型与示例完整 ✓ 4 类锚点均有 personal-context + 苍何爆款双源示例 writing-styles.md 每个风格结构统一 ✓ 全部包含 语气/结构/禁忌 三节 personas.md 扩展模板完整 ✓ 有 YAML 模板 + 4 步新增指南 vault 路径使用 $VAULT_PATH 可配置 ✓ ${VAULT_PATH:-default} ``` ## 数据流全景图 ``` 用户输入 SKILL.md 工作流 输出 ┌────────────┐ ┌────────────────────────┐ ┌─────────────┐ │ topic │ │ │ │ │ │ style │──▶ Step 1a: obsidian read ──▶│ 事实边界确认 │ │ 02-drafts/ │ │ audience │ Step 1b: 素材锚点提取 ──▶ │ 素材脚手架(≥3锚点) │ │ YYYY-MM-DD │ │ source_notes│ Step 2: persona 激活 ──▶ │ 口吻锁定(可选) │ │ -slug.md │ │ tags │ │ │ │ │ │ [persona] │ Step 3: 标题工程 ──────▶ │ ≥5 候选 → 评分 → 选定 │ │ frontmatter │ │ [intensity]│ │ │ │ + 正文 │ │ [title] │ Step 4: 生成草稿 ──────▶ │ 素材编织 × 风格模板 │ │ │ │ [slug] │ │ × 去AI味 × 完读率 │ │ 27 项门禁 │ │ [cta] │ Step 5: obsidian create ─▶│ frontmatter + body │──▶ Step 7 ──▶ │ 全部通过 │ │[mat_sources]│ Step 6: 回读验证 ────────▶│ 字段完整性修补 │ └─────────────┘ └────────────┘ └────────────────────────┘ ┌──────────────────────────────────────────────────────────────────┐ 参考文件调用: │ material-anchors.md ← Step 1b, 4, 7 │ │ content-quality.md ← Step 3, 4a, 4b, 7 │ │ writing-styles.md ← Step 4 │ │ personas.md ← Step 2 │ │ vault/templates/ ← Step 4 (仅 lizi_kk) │ │ vault/personal-context/ ← Step 1a, 4 (亲历锚点 + lizi_kk) │ └──────────────────────────────────────────────────────────────────┘ ``` ## 与 content-forge 全链路对接 ``` content-forge 生产线 write-article 覆盖范围 ────────────────────────────────────────────────────────────── S0 选题入库 ──▶ 01-topics/*.md │ ▼ S1 外链采集 ──▶ url-to-markdown(可选) │ ▼ ┌──────────────────────────────────────────┐ │ S2 草稿生成 ──▶ write-article │ │ Step 1a: 读取素材 + vault 搜索 │ │ Step 1b: 提取素材锚点 ◀── NEW │ │ Step 2: 人格激活 │ │ Step 3: 标题工程 │ │ Step 4: 生成草稿 (素材编织+去AI味+完读率) │ │ Step 5: 写入 02-drafts │ │ Step 6: 验证 frontmatter │ │ Step 7: 质量门禁 (27项) ◀── NEW │ │ │ │ S3 状态标记 ──▶ status: draft │ └──────────────────────────────────────────┘ │ ▼ S4 格式清洗 ──▶ format-markdown │ S5 视觉资产 ──▶ baoyu-cover-image / baoyu-article-illustrator │ S6 审核 ──▶ /review + /multi-review + /challenge │ S7 润色 ──▶ polish │ S8 发布 ──▶ post-to-wechat / post-to-x │ S9 归档 ──▶ 04-published/*.md ``` write-article 覆盖 S2-S3(选题→草稿),是全链路中**上下文消耗最大、创意密度最高**的环节。标题工程和质量门禁的加入,把原来"写完就交"变成了"写完过检才交"。 ## 架构评分 | 维度 | 评分 | 说明 | |------|------|------| | 渐进式披露 | PASS | SKILL.md 摘要+指针,不再重复 reference 内容 | | 跨文件一致性 | PASS | 数据、字段、章节引用全部对齐 | | 单一职责 | PASS | 每个 reference 文件只管一件事 | | 可扩展性 | PASS | personas.md 有扩展模板,writing-styles.md 可加新风格 | | 可移植性 | PASS | `$VAULT_PATH` 可配置,不再硬编码 | | 质量保障 | PASS | 27 项门禁(基础4 + 标题3 + 去AI味8 + 完读率6 + 素材密度6),任一失败即打回 | | 上下文效率 | WARN | 总量 6,200 字合理,但 Step 4 峰值同时需 5 个源 | 整体评价:数据结构(5 文件分层)决定了算法(7 步工作流)的优雅——每个 Step 只去找自己需要的 reference,不多加载一个字。material-anchors.md 的加入把质量防线从单层(表达)扩展为双层(内容+表达),Step 1b 的素材脚手架确保"先有素材,再有文章"。唯一的 WARN 是 Step 4 的峰值加载,但这是生成阶段的固有复杂度,没有更简单的方法。