174 lines
13 KiB
Markdown
174 lines
13 KiB
Markdown
# 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 的峰值加载,但这是生成阶段的固有复杂度,没有更简单的方法。
|