@double-codeing/flow2spec 3.0.19 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.en.md +15 -6
  2. package/README.md +5 -5
  3. package/cli.js +122 -11
  4. package/docs/.mermaid-cache.json +1 -1
  5. package/docs/en/architecture.md +5 -5
  6. package/docs/en/commands-reference.md +29 -48
  7. package/docs/en/design-principles.md +12 -9
  8. package/docs/en/directory-conventions.md +26 -3
  9. package/docs/en/usage-guide.md +16 -10
  10. package/docs/en/usage-scenarios.md +3 -3
  11. package/docs//344/275/223/347/263/273/344/270/216/345/216/237/347/220/206.md +4 -4
  12. package/docs//344/275/277/347/224/250/346/241/210/344/276/213-/346/250/241/346/213/237/345/257/271/350/257/235.md +2 -2
  13. package/docs//344/275/277/347/224/250/350/257/264/346/230/216.md +15 -10
  14. package/docs//345/221/275/344/273/244/350/257/264/346/230/216.md +28 -51
  15. package/docs//347/233/256/345/275/225/344/270/216/350/267/257/345/276/204/347/272/246/345/256/232.md +26 -3
  16. package/docs//350/256/276/350/256/241/350/257/264/346/230/216.md +88 -57
  17. package/lib/claudeSettingsAdapter.js +99 -30
  18. package/lib/flow2specConfig.js +32 -6
  19. package/lib/init.js +264 -4
  20. package/package.json +2 -2
  21. package/templates/AGENTS.codex-stub.md +2 -0
  22. package/templates/AGENTS.md +18 -5
  23. package/templates/flow2spec.config.json +5 -2
  24. package/templates/hooks/f2s-config-inject.js +9 -147
  25. package/templates/hooks/f2s-config-session.js +95 -0
  26. package/templates/hooks/f2s-update-check.js +141 -0
  27. package/templates/knowledge/index.md +4 -4
  28. package/templates/knowledge/manifest-routing.json +34 -5
  29. package/templates/knowledge/template//347/273/210/347/250/277/346/250/241/347/211/210.md +2 -2
  30. package/templates/knowledge/topics/f2s-config-precheck.md +2 -2
  31. package/templates/knowledge/topics/f2s-fallback-triage.md +2 -2
  32. package/templates/knowledge/topics/f2s-stock-docs-vs-req-docs.md +3 -3
  33. package/templates/rules/f2s-config-check.mdc +3 -1
  34. package/templates/rules/f2s-flow2spec-unified-entry.mdc +21 -3
  35. package/templates/rules/f2s-implement-tech-design.mdc +1 -1
  36. package/templates/rules/f2s-karpathy-guidelines.mdc +1 -1
  37. package/templates/rules/f2s-stock-docs-vs-req-docs.mdc +3 -3
  38. package/templates/rules/f2s-topic-authoring.mdc +124 -0
  39. package/templates/skills/f2s-doc-arch/SKILL.md +37 -9
  40. package/templates/skills/f2s-doc-final/SKILL.md +5 -5
  41. package/templates/skills/f2s-git-commit/SKILL.md +21 -5
  42. package/templates/skills/{f2s-doc-add → f2s-kb-add}/SKILL.md +12 -7
  43. package/templates/skills/f2s-kb-addRules/SKILL.md +165 -0
  44. package/templates/skills/{f2s-ctx-build → f2s-kb-build}/SKILL.md +14 -9
  45. package/templates/skills/f2s-kb-feat/SKILL.md +8 -6
  46. package/templates/skills/f2s-kb-fix/SKILL.md +8 -6
  47. package/templates/skills/f2s-kb-migrate/SKILL.md +12 -10
  48. package/templates/skills/{f2s-ctx-rm → f2s-kb-rm}/SKILL.md +7 -5
  49. package/templates/skills/f2s-kb-sync/SKILL.md +13 -5
  50. package/templates/skills/f2s-kb-upgrade/SKILL.md +27 -11
  51. package/templates/skills/f2s-karpathy-guidelines/SKILL.md +0 -20
  52. package/templates/skills/stock-docs-vs-req-docs/SKILL.md +0 -35
@@ -38,7 +38,8 @@ description: 新增能力时补全实现与知识库;已实现则仅同步知
38
38
  - `.Knowledge/stock-docs/`:能力说明与使用方式
39
39
  - `.Knowledge/topics/`:新增/修订主题规则与流程
40
40
  - `.Knowledge/index.md`:主题索引
41
- - 路由清单:路由或依赖变化时最小更新
41
+ - 路由清单:路由、依赖或 `topicMetadata` 变化时最小更新
42
+ - **创作侧准则**:本步若新增 / 修改 topic、`topicMetadata` 或 `topicDependencies`,须先 Read `rules/f2s-topic-authoring.*` 全文(**Cursor/Claude**:`rules/f2s-topic-authoring.mdc`;**Codex**:`.codex/topics/f2s-topic-authoring.md`),再落盘。
42
43
  4. 输出摘要(能力点、实现、知识库变更)。
43
44
 
44
45
  ## 输出摘要格式(建议)
@@ -94,8 +95,9 @@ description: 新增能力时补全实现与知识库;已实现则仅同步知
94
95
  1. 能力描述与代码实现是否一致。
95
96
  2. 新增能力是否可通过 topic 被检索。
96
97
  3. `index` 与 `manifest` 是否同步更新。
97
- 4. 知识库变更是否可再压缩:删掉与本次变更无关的套话后,规则与链接是否仍完整。
98
- 5. 是否仍存在「否定旧版 / 不再与某物有关」类赘句:若现行规则已写清,此类句应删或并入用户要求的迁移小节。
99
- 6. agent 未整文件重写文档;manifest / index 由主 agent 单点落盘。
100
- 7. `changeTracking.feat: true`:`task.md`「步骤」已全部 `[x]`(或备注已记录取消项)后,才将 `.task/active/<task-name>/` 归档至 `completed/` 并从 `todo.json` 删除对应条目;禁止在仍有 `[ ]` 时移动目录(与 `f2s-task` 归档门禁一致)。
101
- 8. 若 `changeTracking.feat: true`:`user-todos.md` 已存在;有用户代办时内容已与会话结论一致。
98
+ 4. 若写入 `topicMetadata`:key 是否存在于 `topicPaths`;`primary` / `tags` / `confidence` 是否合法;是否未因分类创建、重命名或拆分 topic。
99
+ 5. 知识库变更是否可再压缩:删掉与本次变更无关的套话后,规则与链接是否仍完整。
100
+ 6. 是否仍存在「否定旧版 / 不再与某物有关」类赘句:若现行规则已写清,此类句应删或并入用户要求的迁移小节。
101
+ 7. agent 未整文件重写文档;manifest / index 由主 agent 单点落盘。
102
+ 8. 若 `changeTracking.feat: true`:`task.md`「步骤」已全部 `[x]`(或备注已记录取消项)后,才将 `.task/active/<task-name>/` 归档至 `completed/` 并从 `todo.json` 删除对应条目;禁止在仍有 `[ ]` 时移动目录(与 `f2s-task` 归档门禁一致)。
103
+ 9. 若 `changeTracking.feat: true`:`user-todos.md` 已存在;有用户代办时内容已与会话结论一致。
@@ -38,7 +38,8 @@ description: 根据用户指出的实现或规则错误修正代码,并默认
38
38
  - `.Knowledge/stock-docs/`:修订约定说明
39
39
  - `.Knowledge/topics/`:修订对应主题规则/流程
40
40
  - `.Knowledge/index.md`:更新主题索引
41
- - 路由清单:若路由受影响则最小更新
41
+ - 路由清单:若路由、依赖或 `topicMetadata` 受影响则最小更新
42
+ - **创作侧准则**:本步若新增 / 修改 topic、`topicMetadata` 或 `topicDependencies`,须先 Read `rules/f2s-topic-authoring.*` 全文(**Cursor/Claude**:`rules/f2s-topic-authoring.mdc`;**Codex**:`.codex/topics/f2s-topic-authoring.md`),再落盘。
42
43
  4. 输出摘要(代码改动 + 知识库改动)。
43
44
 
44
45
  ## 输出摘要格式(建议)
@@ -91,8 +92,9 @@ description: 根据用户指出的实现或规则错误修正代码,并默认
91
92
  2. 主题文档是否与修复后的实现一致。
92
93
  3. `index` 是否指向正确主题。
93
94
  4. 若更新了 `manifest`,路由字段是否仍可解析。
94
- 5. 知识库变更是否可再压缩:删套话后约定是否仍清晰。
95
- 6. 是否仍存在「否定旧版 / 不再与某物有关」类赘句:现行规则已写清则应删。
96
- 7. agent 未整文件重写文档;manifest / index 由主 agent 单点落盘。
97
- 8. `changeTracking.fix: true`:`task.md`「步骤」已全部 `[x]`(或备注已记录取消项)后,才归档至 `completed/` 并从 `todo.json` 删除对应条目;禁止在仍有 `[ ]` 时移动目录(与 `f2s-task` 归档门禁一致)。
98
- 9. 若 `changeTracking.fix: true`:`user-todos.md` 已存在;有用户代办时内容已与会话结论一致。
95
+ 5. 若写入 `topicMetadata`:key 是否存在于 `topicPaths`;`primary` / `tags` / `confidence` 是否合法;是否未因分类创建、重命名或拆分 topic。
96
+ 6. 知识库变更是否可再压缩:删套话后约定是否仍清晰。
97
+ 7. 是否仍存在「否定旧版 / 不再与某物有关」类赘句:现行规则已写清则应删。
98
+ 8. agent 未整文件重写文档;manifest / index 由主 agent 单点落盘。
99
+ 9. 若 `changeTracking.fix: true`:`task.md`「步骤」已全部 `[x]`(或备注已记录取消项)后,才归档至 `completed/` 并从 `todo.json` 删除对应条目;禁止在仍有 `[ ]` 时移动目录(与 `f2s-task` 归档门禁一致)。
100
+ 10. 若 `changeTracking.fix: true`:`user-todos.md` 已存在;有用户代办时内容已与会话结论一致。
@@ -164,9 +164,10 @@ description: 旧版知识库一次性迁到 `.Knowledge`:以配置根 `docs-in
164
164
  2. 生成或更新 `.Knowledge/topics/<topic>.md`:
165
165
  - 正文表述统一为新架构口径(`.Knowledge` 分层、`manifest` 路由、`stock-docs`/`req-docs` 分工)。
166
166
  - 去除旧版独有路径/术语(如旧 `docs-index` 根路径、旧散落目录名),改为指向 `.Knowledge/...` 或相对 `.Knowledge` 的稳定路径。
167
+ - **创作侧准则**:本步生成 / 重写 topic 或调整 `topicMetadata` / `topicDependencies`,须先 Read `rules/f2s-topic-authoring.*` 全文(**Cursor/Claude**:`rules/f2s-topic-authoring.mdc`;**Codex**:`.codex/topics/f2s-topic-authoring.md`),再落盘。
167
168
  3. 更新 `.Knowledge/index.md` 的主题索引行,并同步维护“关联文档(摘要)”列(每主题 1-3 条关键 `stock-docs/req-docs` **可点击 Markdown 链接**,格式:`[标题](相对路径)`)。
168
169
  4. 按需更新路由清单:
169
- - `.Knowledge/manifest-routing.json`:`topicPaths`、`taskToTopicRules[]`、`topicDependencies`、`fallbackTopic`
170
+ - `.Knowledge/manifest-routing.json`:`topicPaths`、`taskToTopicRules[]`、`topicDependencies`、`topicMetadata`、`fallbackTopic`
170
171
  - `.Knowledge/matchers/<matcherId>.json`:`includeAny`(与 `manifest-routing.taskToTopicRules[].matcherPath` 一致)
171
172
  5. 输出本主题迁移摘要并**暂停**,提示用户:
172
173
  - 回复“继续”迁移下一个主题
@@ -345,12 +346,13 @@ description: 旧版知识库一次性迁到 `.Knowledge`:以配置根 `docs-in
345
346
  1. 主题总数是否与旧映射总数对齐(允许用户显式跳过)。
346
347
  2. `manifest.topics[].path` 是否都存在。
347
348
  3. `index` 是否可定位到每个已迁移主题。
348
- 4. `.Knowledge/stock-docs`、`.Knowledge/req-docs` 是否与确认迁移清单一致。
349
- 5. 待人工确认清单是否已清空;未清空则禁止删除旧文档目录。
350
- 6. 旧业务 `rules/`、**非 `f2s-*`** 的旧业务 `skills/`、旧版索引及(若列入清单)旧文档目录是否已按**最终删除清单**执行删除;基线保留清单中的 3 个 `f2s-*` 根规则是否仍保留。
351
- 7. 旧版入口 `docs-index.md` / `index-doc.md` `rules/main.md(c)` 是否已按清单删除(且 `.Knowledge` 已可替代其职责),或是否因用户排除而**明确保留**并写入 `notes[]`。
352
- 8. 状态文件是否与迁移结果一致(完成则删除,暂停则保留且 `status=paused`)。
353
- 9. `.Knowledge/index.md` 是否已为每个主题同步“关联文档(摘要)”列(可写“无”,但不得留空)。
354
- 10. `skills/f2s-*` 是否未被误删、未被写入 `.Knowledge`。
355
- 11. `.Knowledge/migration-report.md` 是否已落盘且包含 **迁移对照表**、**拟删除路径清单**;若已执行删除,是否已追加 **「删除执行记录」** 并与实际磁盘状态一致。
356
- 12. 状态机文件与删除执行记录未被子 agent 越权写入;manifest / index 由主 agent 单点落盘。
349
+ 4. `topicMetadata` 是否只引用 `topicPaths` 已存在 topicId;`primary` / `tags` / `confidence` 是否合法。
350
+ 5. `.Knowledge/stock-docs`、`.Knowledge/req-docs` 是否与确认迁移清单一致。
351
+ 6. 待人工确认清单是否已清空;未清空则禁止删除旧文档目录。
352
+ 7. 旧业务 `rules/`、**非 `f2s-*`** 的旧业务 `skills/`、旧版索引及(若列入清单)旧文档目录是否已按**最终删除清单**执行删除;基线保留清单中的 3 `f2s-*` 根规则是否仍保留。
353
+ 8. 旧版入口 `docs-index.md` / `index-doc.md` 与 `rules/main.md(c)` 是否已按清单删除(且 `.Knowledge` 已可替代其职责),或是否因用户排除而**明确保留**并写入 `notes[]`。
354
+ 9. 状态文件是否与迁移结果一致(完成则删除,暂停则保留且 `status=paused`)。
355
+ 10. `.Knowledge/index.md` 是否已为每个主题同步“关联文档(摘要)”列(可写“无”,但不得留空)。
356
+ 11. `skills/f2s-*` 是否未被误删、未被写入 `.Knowledge`。
357
+ 12. `.Knowledge/migration-report.md` 是否已落盘且包含 **迁移对照表**、**拟删除路径清单**;若已执行删除,是否已追加 **「删除执行记录」** 并与实际磁盘状态一致。
358
+ 13. 状态机文件与删除执行记录未被子 agent 越权写入;manifest / index 由主 agent 单点落盘。
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: f2s-ctx-rm
3
- description: 删除某 stock-docs 文档对应的知识主题与索引映射;触发:删除项目上下文、f2s-ctx-rm
2
+ name: f2s-kb-rm
3
+ description: 删除某 stock-docs 文档对应的知识主题与索引映射;触发:删除项目上下文、f2s-kb-rm
4
4
  ---
5
5
 
6
6
  > 执行口径:仅维护 `.Knowledge`,不改配置根 `rules/skills`。
@@ -26,9 +26,10 @@ description: 删除某 stock-docs 文档对应的知识主题与索引映射;
26
26
  2. 删除对应 `.Knowledge/topics/<topic>.md` 文件。
27
27
  3. 从 `.Knowledge/index.md` 移除匹配项并写回。
28
28
  4. 更新路由清单:
29
- - `.Knowledge/manifest-routing.json`:移除失效 `topicPaths`、`taskToTopicRules`、`topicDependencies` 引用
29
+ - `.Knowledge/manifest-routing.json`:移除失效 `topicPaths`、`taskToTopicRules`、`topicDependencies`、`topicMetadata` 引用
30
30
  - 对应 `matchers/<matcherId>.json`:移除失效规则或 `includeAny` 词条(与已删 `task`/`matcherId` 对齐)
31
31
  - 若删除了 `fallbackTopic`,必须指定新的兜底主题
32
+ - **创作侧准则**:本步会调整 `topicDependencies`(删除被依赖主题或孤儿边),须先 Read `rules/f2s-topic-authoring.*` 全文(**Cursor/Claude**:`rules/f2s-topic-authoring.mdc`;**Codex**:`.codex/topics/f2s-topic-authoring.md`),核对 DAG 与最小化约束后再落盘。
32
33
 
33
34
  ## 输出摘要(必须)
34
35
 
@@ -55,5 +56,6 @@ description: 删除某 stock-docs 文档对应的知识主题与索引映射;
55
56
 
56
57
  1. 被删 topic 是否仍被 `manifest` 引用(必须为否)。
57
58
  2. `index` 是否仍存在失效主题路径(必须为否)。
58
- 3. `fallbackTopic` 是否仍有效。
59
- 4. 未在低于拆子阈值(< 5 主题)时强行拆子;manifest / index 由主单点落盘。
59
+ 3. `topicMetadata` 是否仍引用已删除 topic(必须为否)。
60
+ 4. `fallbackTopic` 是否仍有效。
61
+ 5. 未在低于拆子阈值(< 5 主题)时强行拆子;manifest / index 由主单点落盘。
@@ -34,6 +34,10 @@ description: 可显式给出能力或零输入推断;先输出知识库更新
34
34
  - `.Knowledge/manifest-routing.json`
35
35
  - `.Knowledge/matchers/*.json`(与路由中 `matcherPath` 对应的分片)
36
36
  - `.Knowledge/stock-docs/`
37
+ - **主题粒度扫描**:对已有 topic 粗扫以下信号,命中时在步骤 2 大纲中列为"建议拆分"(不阻断同步流程):
38
+ - 对应 stock-doc 超过 **300–500 行**;
39
+ - `includeAny` 词数超过 **12 个**;
40
+ - topic 正文包含超过 **3 个不相干职责域**的二级标题。
37
41
 
38
42
  ### 步骤 2:输出《更新大纲》(必须)
39
43
 
@@ -43,20 +47,23 @@ description: 可显式给出能力或零输入推断;先输出知识库更新
43
47
  2. 能力清单(用户指定 / Agent 推断 / 合并结果)
44
48
  3. 信息来源
45
49
  4. 拟改文件清单(精确到路径)
46
- 5. 不改动范围
47
- 6. 等待用户确认提示
50
+ 5. 主题同步计划:说明每个能力是“更新已有主题”还是“创建新主题”,并列出 topicId、topic 文件、index 行、manifest/matcher 变更;如涉及 `topicMetadata`,列出 `primary` / `tags` / `confidence` 候选和证据;无明确证据时写“不分类 / 暂不写入”
51
+ 6. 不改动范围
52
+ 7. 等待用户确认提示
48
53
 
49
54
  > 未确认前禁止落盘修改。
50
55
 
51
56
  ### 步骤 3:确认后写入
52
57
 
53
58
  > 硬约束:若启用拆子,子 agent 落盘前必须读取近邻 2–3 个主题的开头摘要,确保叙事风格一致;`manifest-routing.json` 与 `.Knowledge/index.md` 由主 agent 单点落盘,子 agent 无写权。
59
+ >
60
+ > **创作侧准则**:本步若新增 / 修改 topic、`topicMetadata` 或 `topicDependencies`,须先 Read `rules/f2s-topic-authoring.*` 全文(**Cursor/Claude**:`rules/f2s-topic-authoring.mdc`;**Codex**:`.codex/topics/f2s-topic-authoring.md`),再落盘。
54
61
 
55
62
  按大纲逐项更新:
56
63
 
57
64
  - `.Knowledge/topics/*.md`
58
65
  - `.Knowledge/index.md`(同步主题路由表的“关联文档(摘要)”列)
59
- - 路由清单(按需)
66
+ - 路由清单(按需);若创建新 topic,须同步 `topicPaths`、必要的 `taskToTopicRules` / matcher 分片;可在证据明确时写 `topicMetadata`,但分类只用于治理、审计和阅读预期,不参与路由命中或执行强制性,不得为了分类创建、重命名或拆分 topic
60
67
  - `.Knowledge/stock-docs/*.md`(按需补充索源文档)
61
68
 
62
69
  ### 步骤 4:收尾摘要
@@ -105,5 +112,6 @@ description: 可显式给出能力或零输入推断;先输出知识库更新
105
112
  1. 是否存在未确认即写入(必须为否)。
106
113
  2. topic 文件与 index 行是否一一对应,且“关联文档(摘要)”已同步更新。
107
114
  3. manifest 中 `topics` / `taskToTopicRules` / `topicDependencies` 是否仍引用有效路径。
108
- 4. 是否误改配置根 `rules/skills`(必须为否)。
109
- 5. 步骤 2 大纲 + 用户确认未下放子 agent;步骤 3 子落盘前已加载近邻 2–3 主题摘要;manifest / index 由主单点落盘。
115
+ 4. 若写入 `topicMetadata`:key 是否均存在于 `topicPaths`;`primary` / `tags` / `confidence` 是否合法;是否避免类型前缀命名。
116
+ 5. 是否误改配置根 `rules/skills`(必须为否)。
117
+ 6. 步骤 2 大纲 + 用户确认未下放子 agent;步骤 3 子落盘前已加载近邻 2–3 主题摘要;manifest / index 由主单点落盘。
@@ -11,8 +11,9 @@ description: 知识库模板升级技能(仅指本 SKILL):**流程分流 V
11
11
 
12
12
  ## 边界(避免误区)
13
13
 
14
- - **`flow2spec init` 不写业务知识**:不替代 `f2s-doc-add`、`f2s-kb-fix`、`f2s-kb-feat`、`f2s-kb-sync`、`f2s-ctx-build` 等对 `stock-docs` / `req-docs` / `topics` 正文与业务向路由词条的维护。
15
- - 本技能跑通的是 **包版本下的目录、模板占位、路由结构对齐**;用户若说「把新能力写进知识库」,应引导 **`f2s-kb-sync` / `f2s-doc-add`** 等,而非仅 `f2s-kb-upgrade`。
14
+ - **`flow2spec init` 不写业务知识**:不替代 `f2s-kb-add`、`f2s-kb-fix`、`f2s-kb-feat`、`f2s-kb-sync`、`f2s-kb-build` 等对 `stock-docs` / `req-docs` / `topics` 正文与业务向路由词条的维护。
15
+ - 本技能跑通的是 **包版本下的目录、模板占位、路由结构对齐**;用户若说「把新能力写进知识库」,应引导 **`f2s-kb-sync` / `f2s-kb-add`** 等,而非仅 `f2s-kb-upgrade`。
16
+ - 本技能负责存量 `topicMetadata` 审计:`primary` / `tags` 仅用于治理、审计、盘点和阅读预期,不参与路由命中或执行强制性;执行强制性仍以 `AGENTS.md`、rules、skills 与 topic 正文为准。
16
17
 
17
18
  ## 编排(主 / 子 agent)
18
19
 
@@ -111,23 +112,36 @@ description: 知识库模板升级技能(仅指本 SKILL):**流程分流 V
111
112
 
112
113
  **本技能步骤 2** `flow2spec init` 成功后,先执行「旧文件清理 + 引用修复」:
113
114
 
114
- 1. 清理旧主题文件(仅在文件存在时删除):
115
+ > **skill 目录自动对齐**:`flow2spec init` 现已自动删除配置根 `skills/` 中不再存在于 `templates/skills/` 的旧目录(重命名/删除的 skill 如 `f2s-ctx-build`、`f2s-doc-add`、`f2s-rule-capture`、`stock-docs-vs-req-docs` 等),**无需 Agent 手动清理**。
116
+
117
+ 1. 清理旧命名主题文件(仅在文件存在时删除,均为无 `f2s-` 前缀的旧版遗留):
115
118
  - `.Knowledge/topics/flow2spec-architecture.md`
116
119
  - `.Knowledge/topics/implement-tech-design.md`
117
- - `.Knowledge/topics/stock-docs-vs-req-docs.md`
118
120
  - `templates/knowledge/topics/implement-tech-design.md`
119
- - `templates/knowledge/topics/stock-docs-vs-req-docs.md`
120
121
  2. 修复引用(仅在文件存在时更新;**`.Knowledge/index.md` 正文不由 init 改写**,见步骤 3b):
121
122
  - `templates/knowledge/index.md`
122
123
  - `templates/knowledge/manifest-routing.json`
123
124
  - `.Knowledge/index.md`(按需人工或技能侧改路径/段落)
124
125
  - `.Knowledge/manifest-routing.json`
125
- 3. 引用更新目标:
126
+ 3. 引用更新目标(确认使用新名):
126
127
  - `.Knowledge/topics/f2s-flow2spec-architecture.md`
127
128
  - `.Knowledge/topics/f2s-implement-tech-design.md`
128
129
  - `.Knowledge/topics/f2s-stock-docs-vs-req-docs.md`
129
130
 
130
- > 口径:只清理“旧命名主题文件”,不删除带 `f2s-` 前缀的新主题文件。
131
+ > 口径:只清理”旧命名主题文件”,不删除带 `f2s-` 前缀的现行主题文件。
132
+
133
+ ### 步骤 3a:`topicMetadata` 存量审计(必须执行)
134
+
135
+ 1. 读取 `.Knowledge/manifest-routing.json`,以 `topicPaths` 为主题全集。
136
+ 2. 校验 `topicMetadata`:key 必须存在于 `topicPaths`;`primary` 仅允许 `feature` / `module` / `config` / `policy`;`tags` 若存在须为数组,元素取值同 `primary` 且不得与 `primary` 重复;`confidence` 仅允许 `manual` / `inferred`。
137
+ 3. 对 `topicPaths` 中缺少 metadata 的主题做分类分析:**必须 Read 对应 `.Knowledge/topics/<id>.md` 正文**,禁止仅凭 topicId 名称推断。证据明确则写入 `inferred`;证据不足时**不写 metadata**,但须在摘要中列出推断方向与依据(如「建议 policy,正文含多处强制约束」),供用户确认后手动补写 `manual`。
138
+ 4. 分类判断以 `f2s-topic-authoring` 准则第 3 节为准,Agent 基于 topic 正文判断主要性质,写 `primary`;同时覆盖多个性质时其余写 `tags`(可选)。
139
+ 5. 禁止因为补分类创建、重命名或拆分 topic。
140
+ 6. **主题粒度审计**(不阻断升级,仅列入摘要):逐项检查,命中任一信号时在步骤 5 摘要中列为「建议拆分」:
141
+ - 对应 stock-doc 超过 **300–500 行**;
142
+ - `includeAny` 词数超过 **12 个**;
143
+ - topic 正文包含超过 **3 个不相干职责域**的二级标题;
144
+ - 该 topic 同时被多种不相干任务类型频繁命中(可从 `taskToTopicRules` 和 matcher 词宽度判断)。
131
145
 
132
146
  ### 步骤 3b:`index.md` 融合与 `template/index.template.md`(必须执行)
133
147
 
@@ -196,6 +210,7 @@ description: 知识库模板升级技能(仅指本 SKILL):**流程分流 V
196
210
  - 旧主题文件:`已清理` / `无需清理`
197
211
  - 引用修复:`已更新` / `已一致`
198
212
  - **index(快照 + 融合)**:`快照已复制` / `index.md 已融合` / `待处理(见备注)`
213
+ - **topicMetadata(存量审计)**:`已补齐` / `待用户确认`;列出新增 / 修正 / 删除的 topicId
199
214
  - **f2s-kb-upgrade SKILL**:`init 后无变化` / `已按新版重跑 N 轮` / `待确认`
200
215
  - manifest-routing / matchers 分片:`已与模板对齐` / `已是最新` / `reset 覆盖`
201
216
  - topics.path:`全部存在` / `存在缺失(见下)`
@@ -219,7 +234,8 @@ description: 知识库模板升级技能(仅指本 SKILL):**流程分流 V
219
234
  3. 是否已实际执行 shell 命令(而非只给建议)。
220
235
  4. 是否明确标注增量 or reset 模式。
221
236
  5. 是否已处理旧主题文件清理与 `index/manifest` 引用修复。
222
- 6. 是否已执行 **步骤 3b**:**融合** `index.md`(**主题一览**节起至命中与执行前为项目维护区,其余同包版),并核对 `topicPaths`。
223
- 7. 是否输出了 manifest 与关键路径校验结果。
224
- 8. 若失败,是否给出下一步具体命令建议。
225
- 9. 步骤 3b 的 `index.md` 融合由主 agent 完成并落盘,无子 agent 越权写入。
237
+ 6. 是否已执行 **步骤 3a**:审计 `topicMetadata`,确保无孤儿 key / 非法 primary / 非法 confidence;缺失旧主题已按证据补 `inferred` 或列为待确认。
238
+ 7. 是否已执行 **步骤 3b**:**融合** `index.md`(**主题一览**节起至命中与执行前为项目维护区,其余同包版),并核对 `topicPaths`。
239
+ 8. 是否输出了 manifest 与关键路径校验结果。
240
+ 9. 若失败,是否给出下一步具体命令建议。
241
+ 10. 步骤 3b 的 `index.md` 融合由主 agent 完成并落盘,无子 agent 越权写入。
@@ -1,20 +0,0 @@
1
- ---
2
- name: f2s-karpathy-guidelines
3
- description: Flow2Spec 内置的 Karpathy 式编码纪律:澄清假设、极简实现、手术式修改、可验证目标。默认由同名 topic 规则 alwaysApply 随 init 落盘;显式调用本技能时重申四条。
4
- license: MIT
5
- ---
6
-
7
- # f2s-karpathy-guidelines
8
-
9
- `flow2spec init` 将 npm 包内 **`templates/rules/f2s-karpathy-guidelines.mdc`** 去 frontmatter 后写入 **`./.codex/topics/f2s-karpathy-guidelines.md`**(相对仓库根,**`alwaysApply`** 语义以源 `.mdc` 的 frontmatter 为准)。
10
-
11
- **显式使用本技能时**:在回复中简要重申并遵守以下四条(与 **`./.codex/topics/f2s-karpathy-guidelines.md`** 全文一致;冲突时以 **f2s 流程条令** 为准)。
12
-
13
- 1. **先想清楚再写代码**:假设说清;多解并列;说不清就停、先问。
14
- 2. **简单优先**:最少代码解决问题;无臆测功能/抽象/配置。
15
- 3. **手术式修改**:只动任务相关行;不顺带「优化」无关代码;只删自己改动产生的孤儿。
16
- 4. **目标驱动**:先定义可验证成功标准(测试、检查项),再迭代到满足。
17
-
18
- cursor/claude: 完整条文以磁盘上 **`rules/f2s-karpathy-guidelines.mdc`**为准。
19
-
20
- 或 Codex 侧 **`.codex/topics/f2s-karpathy-guidelines.md`**为准。
@@ -1,35 +0,0 @@
1
- ---
2
- name: stock-docs-vs-req-docs
3
- description: 文档目录 stock-docs 与 req-docs 分工;触发词:stock-docs、req-docs、f2s-ctx-build、f2s-doc-arch、f2s-doc-add、已落地能力、技术方案放哪、PDF 终稿
4
- ---
5
-
6
- ## 编排(主 / 子 agent)
7
-
8
- - 两字段(`subAgent` / `switchAgentVerification`)语义以统一入口为唯一事实源:**Cursor/Claude** 读配置根 `rules/f2s-flow2spec-unified-entry.*`;**Codex** 读 `.codex/topics/f2s-flow2spec-unified-entry.md`(与上同源,`flow2spec init` 镜像)。
9
- - 本技能为**说明型**,**不拆子**(无拆子收益),主 agent 短答即可。
10
- - 落盘侧自验(本技能通常不产生落盘)。
11
-
12
- # stock-docs 与 req-docs(技能)
13
-
14
- ## 何时使用
15
-
16
- - 用户问「文档放哪」「PDF 转完放哪」「生成 Rules 用哪个目录」「技术方案目录」等。
17
- - 实现或命令执行时需要选择 `.Knowledge/stock-docs/` 还是 `.Knowledge/req-docs/`。
18
- - 区分 **f2s-doc-arch**(架构说明**初稿**)与 **f2s-doc-add**(**工作中**把**已落地能力**从多文件解析进上下文):二者产物都落在 **stock-docs/**,与 **req-docs** 无关;分工见 **`skills/f2s-doc-arch/SKILL.md`**、**`skills/f2s-doc-add/SKILL.md`**。
19
-
20
- ## 核心对照
21
-
22
- | 目录 | 位置 | 用途 |
23
- |------|------|------|
24
- | **stock-docs** | `.Knowledge/stock-docs/` | **存量上下文源** -> `f2s-ctx-build` 入参;`f2s-doc-final` 初稿/终稿;`f2s-doc-arch` 架构初稿;`f2s-doc-add` 聚合读源后的初稿与终稿 |
25
- | **req-docs** | `.Knowledge/req-docs/` | 需求与技术方案 -> 按 `implement-tech-design` 写代码、`f2s-doc-pdf` 输出 |
26
-
27
- ## 常见错误
28
-
29
- - 把 **仅用于实现代码** 的 `.Knowledge/req-docs/xxx.md` 当作 `f2s-ctx-build` 入参(应先把符合终稿范式的内容放到 `.Knowledge/stock-docs/` 再生成上下文)。
30
- - 在 Rule 内链到 **`req-docs/`**(应链到 **stock-docs** 中的源文档)。
31
- - 把 **f2s-doc-add** / **f2s-doc-arch** 产出的初稿、终稿误存到 **req-docs**(应始终在 **stock-docs/**)。
32
-
33
- ## 详细约定
34
-
35
- 以本技能对照表与配置根 **`skills/<技能名>/SKILL.md`**(如 **f2s-ctx-build**、**f2s-doc-add**、**f2s-doc-arch**)为准;`.Knowledge/topics/f2s-stock-docs-vs-req-docs.md` 为路由摘要。