@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
package/README.en.md CHANGED
@@ -50,10 +50,10 @@ AI: Starting implementation, 3 files affected.
50
50
 
51
51
  ---
52
52
 
53
- ## What Flow2Spec Does (3 Things)
53
+ ## What Flow2Spec Does
54
54
 
55
- **① Remembers project context across devices and sessions**
56
- `.Knowledge/` structured knowledge base: routing manifest (`manifest-routing.json`) + keyword indices (matchers) + topic shards (topics). AI only loads what's relevant.
55
+ **① Remembers project context across sessions**
56
+ `.Knowledge/` structured knowledge base: routing manifest (`manifest-routing.json`) + keyword indices (matchers) + topic shards (topics). AI only loads what's relevant — 4.7 MB of source code compressed to ~300 lines of precise context.
57
57
 
58
58
  **② Routing manifest means AI doesn't dig through your repo**
59
59
  Each task hits 1–4 topics, ~300 lines. Business constraints — Redis lock keys, error codes, batch limits — are all in the topics. AI doesn't have to guess from source code.
@@ -61,6 +61,15 @@ Each task hits 1–4 topics, ~300 lines. Business constraints — Redis lock key
61
61
  **③ f2s-* skills update knowledge as you code**
62
62
  `/f2s-kb-feat` writes topics while writing features, `/f2s-kb-fix` corrects topics while fixing bugs, `/f2s-git-commit` checks topic coverage before committing. Changing code == updating knowledge. No separate "documentation maintenance."
63
63
 
64
+ **④ Full pipeline from requirements to code**
65
+ `/f2s-req-clarify` asks questions until requirements are unambiguous. `/f2s-req-backend` generates a ready-to-implement technical proposal into `req-docs/`. AI implements from the proposal — no relying on verbal agreements.
66
+
67
+ **⑤ Task checklists track progress across sessions**
68
+ When `changeTracking` is enabled, skills like `f2s-kb-feat` / `f2s-kb-fix` automatically create a `task.md` with checkboxes. Each step is checked off immediately to disk. New sessions auto-load the remaining checklist — no relying on memory. User-side todos (run SQL, set env vars, click approvals) go into `user-todos.md`, separate from AI steps.
69
+
70
+ **⑥ Document-driven: PDF / MD straight into the knowledge base**
71
+ `/f2s-kb-add` aggregates source files into draft → final → topics. `/f2s-doc-final` converts any PDF or MD into the canonical final-draft format. External docs and legacy proposals all become routable knowledge.
72
+
64
73
  ---
65
74
 
66
75
  ## Getting Started
@@ -103,7 +112,7 @@ In your Agent tool (Cursor / Claude Code):
103
112
 
104
113
  > This step is done once. You won't need to repeat it for daily development.
105
114
 
106
- 2. `/f2s-doc-add <folder path>` — Import any feature modules that haven't been added yet
115
+ 2. `/f2s-kb-add <folder path>` — Import any feature modules that haven't been added yet
107
116
 
108
117
  > Do this selectively before starting development when you notice a module's knowledge is missing from the knowledge base.
109
118
 
@@ -116,7 +125,7 @@ In your Agent tool (Cursor / Claude Code):
116
125
  ```
117
126
  /f2s-req-clarify one-line description or paste PRD ← clarify requirements
118
127
  /f2s-req-backend ← generate technical proposal
119
- natural language: implement the proposal above ← AI starts coding
128
+ natural language: implement the proposal above ← AI starts coding (task checklist auto-created when changeTracking is on)
120
129
  (debug and verify)
121
130
  /f2s-kb-feat add xxx capability ← if something's missing
122
131
  /f2s-kb-fix fix xxx ← if there's a bug
@@ -143,7 +152,7 @@ natural language: implement the proposal above ← AI starts coding
143
152
  | `/f2s-kb-fix` | Fix a bug |
144
153
  | `/f2s-kb-sync` | Sync knowledge base |
145
154
  | `/f2s-git-commit` | Commit code |
146
- | `/f2s-doc-add <path>` | Import API module into knowledge base |
155
+ | `/f2s-kb-add <path>` | Import API module into knowledge base |
147
156
 
148
157
  For the full command list, see [Usage Guide](./docs/en/usage-guide.md) · [Commands Reference](./docs/en/commands-reference.md)
149
158
 
package/README.md CHANGED
@@ -66,7 +66,7 @@ AI: 开始改,预计 3 处文件。
66
66
  开启 `changeTracking` 配置后,`f2s-kb-feat` / `f2s-kb-fix` 等技能执行时自动创建带 checkbox 的 `task.md`,每步完成立即打钩落盘。新会话续作时自动加载剩余清单,不靠记忆、不靠口头,任务进度永远在磁盘上。用户侧的代办(执行 SQL、配环境变量、点审批)单独写入 `user-todos.md`,不混在 AI 步骤里。
67
67
 
68
68
  **⑥ 文档驱动:PDF / MD 一键入知识库**
69
- `/f2s-doc-add` 把已落地能力的源码聚合成初稿 → 终稿 → topics,`/f2s-doc-final` 把 PDF 或任意 MD 转成规范终稿格式。外部文档、历史方案都能变成可路由的知识。
69
+ `/f2s-kb-add` 把已落地能力的源码聚合成初稿 → 终稿 → topics,`/f2s-doc-final` 把 PDF 或任意 MD 转成规范终稿格式。外部文档、历史方案都能变成可路由的知识。
70
70
 
71
71
  ---
72
72
 
@@ -110,7 +110,7 @@ npx @double-codeing/flow2spec@latest init
110
110
 
111
111
  > 这一步只做一次,之后日常开发不需要重复。
112
112
 
113
- 2. `/f2s-doc-add <文件夹路径>` — 把还没入库的功能模块路径补进来
113
+ 2. `/f2s-kb-add <文件夹路径>` — 把还没入库的功能模块路径补进来
114
114
 
115
115
  > 这一步在进入开发前,发现没有某个模块能力的知识的时候选择性的去做
116
116
 
@@ -149,8 +149,8 @@ npx @double-codeing/flow2spec@latest init
149
149
  | `/f2s-kb-feat` | 新增小功能 |
150
150
  | `/f2s-kb-fix` | 改 BUG |
151
151
  | `/f2s-kb-sync` | 同步知识库 |
152
- | `/f2s-git-commit` | 提交代码 |
153
- | `/f2s-doc-add <路径>` | 接口模块入知识库 |
152
+ | `/f2s-git-commit` | 提交代码;“快捷提交”跳过知识库覆盖检查 |
153
+ | `/f2s-kb-add <路径>` | 接口模块入知识库 |
154
154
 
155
155
  更多命令详见 [使用说明](./docs/使用说明.md) · [命令说明](./docs/命令说明.md)
156
156
 
@@ -184,4 +184,4 @@ npx @double-codeing/flow2spec@latest init
184
184
 
185
185
  ## 协议
186
186
 
187
- MIT. Copyright © 2026 兰涛
187
+ MIT. Copyright © 2026 兰涛
package/cli.js CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  const path = require("path");
4
4
  const fs = require("fs");
5
+ const os = require("os");
5
6
  const readline = require("readline");
6
7
  const runInit = require("./lib/init");
7
8
  const { AGENTS } = require("./lib/agents");
@@ -12,7 +13,7 @@ const {
12
13
  getMissingConfigFields,
13
14
  } = require("./lib/flow2specConfig");
14
15
 
15
- const { execSync } = require("child_process");
16
+ const { execFileSync } = require("child_process");
16
17
 
17
18
  const args = process.argv.slice(2);
18
19
  const sub = args[0];
@@ -23,6 +24,107 @@ const agentList = Object.entries(AGENTS)
23
24
 
24
25
  const pkg = require("./package.json");
25
26
 
27
+ const UPDATE_CHECK_TTL_MS = 24 * 60 * 60 * 1000;
28
+
29
+ function parseVersion(version) {
30
+ return String(version || "")
31
+ .replace(/^v/, "")
32
+ .split(/[.-]/)
33
+ .slice(0, 3)
34
+ .map((part) => {
35
+ const n = Number.parseInt(part, 10);
36
+ return Number.isFinite(n) ? n : 0;
37
+ });
38
+ }
39
+
40
+ function compareVersions(a, b) {
41
+ const av = parseVersion(a);
42
+ const bv = parseVersion(b);
43
+ for (let i = 0; i < 3; i += 1) {
44
+ const diff = (av[i] || 0) - (bv[i] || 0);
45
+ if (diff !== 0) return diff;
46
+ }
47
+ return 0;
48
+ }
49
+
50
+ function updateCheckCacheFile() {
51
+ const safeName = String(pkg.name || "flow2spec").replace(/[^a-z0-9_.-]+/gi, "_");
52
+ return path.join(os.homedir(), ".flow2spec", `${safeName}-update-check.json`);
53
+ }
54
+
55
+ function readUpdateCheckCache() {
56
+ const file = updateCheckCacheFile();
57
+ if (!fs.existsSync(file)) return null;
58
+ try {
59
+ const data = JSON.parse(fs.readFileSync(file, "utf8"));
60
+ if (!data || typeof data !== "object") return null;
61
+ if (Date.now() - Number(data.checkedAt || 0) > UPDATE_CHECK_TTL_MS) {
62
+ return null;
63
+ }
64
+ return data;
65
+ } catch {
66
+ return null;
67
+ }
68
+ }
69
+
70
+ function writeUpdateCheckCache(latest) {
71
+ try {
72
+ const file = updateCheckCacheFile();
73
+ fs.mkdirSync(path.dirname(file), { recursive: true });
74
+ fs.writeFileSync(
75
+ file,
76
+ `${JSON.stringify({ latest, checkedAt: Date.now() }, null, 2)}\n`,
77
+ "utf8",
78
+ );
79
+ } catch {
80
+ // 更新检查不能影响主命令。
81
+ }
82
+ }
83
+
84
+ function queryLatestPackageVersion() {
85
+ const cached = readUpdateCheckCache();
86
+ if (cached?.latest) return cached.latest;
87
+ const latest = execFileSync("npm", ["view", pkg.name, "version"], {
88
+ encoding: "utf8",
89
+ timeout: 2000,
90
+ stdio: ["ignore", "pipe", "ignore"],
91
+ }).trim();
92
+ if (latest) writeUpdateCheckCache(latest);
93
+ return latest;
94
+ }
95
+
96
+ function shouldCheckForUpdates() {
97
+ if (process.env.FLOW2SPEC_SKIP_UPDATE_CHECK === "1") return false;
98
+ if (process.env.CI) return false;
99
+ if (!process.stdout.isTTY) return false;
100
+ return Boolean(pkg.name && pkg.version);
101
+ }
102
+
103
+ function printKnowledgeUpgradeHint(latest) {
104
+ console.log(`
105
+ ⚠ Flow2Spec 有新版本 v${latest}(当前 v${pkg.version})
106
+ 建议先更新包:
107
+ flow2spec update
108
+
109
+ 更新后请在 Agent 对话中执行:
110
+ f2s-kb-upgrade
111
+
112
+ 用于对齐项目知识库模板、manifest/matchers 与配置根产物;不要把单独 flow2spec init 当作知识库升级。
113
+ `);
114
+ }
115
+
116
+ function maybePrintUpdateNotice() {
117
+ if (!shouldCheckForUpdates()) return;
118
+ try {
119
+ const latest = queryLatestPackageVersion();
120
+ if (latest && compareVersions(latest, pkg.version) > 0) {
121
+ printKnowledgeUpgradeHint(latest);
122
+ }
123
+ } catch {
124
+ // 静默跳过,不能因为网络或 npm registry 影响主命令。
125
+ }
126
+ }
127
+
26
128
  const help = `
27
129
  Flow2Spec - 统一知识库工作流(AI 配置入口) v${pkg.version}
28
130
 
@@ -30,7 +132,7 @@ Flow2Spec - 统一知识库工作流(AI 配置入口) v${pkg.version}
30
132
  flow2spec init [agent ...] [--reset-knowledge] [--yes] 在当前项目初始化:写入 .Knowledge 与所选 agent 入口
31
133
  flow2spec config 打印项目根 ${CONFIG_FILENAME} 的解析结果(缺省值合并后)
32
134
  flow2spec version 显示当前 flow2spec 版本
33
- flow2spec update 更新 flow2spec 到最新版本
135
+ flow2spec update 更新 flow2spec 到最新版本;更新后提示执行 f2s-kb-upgrade
34
136
  flow2spec --help 显示本说明
35
137
 
36
138
  agent(可多个,空格分隔;省略时交互选择):
@@ -47,13 +149,14 @@ init 会:
47
149
  1. 交互询问要初始化的 AI 工具(cursor / claude / codex,可多选);已通过参数指定则跳过。
48
150
  传 --yes 或非 TTY 环境时跳过问答,使用默认值。
49
151
  2. 对 ${CONFIG_FILENAME} 中缺失的配置字段逐项提问(已有字段不覆盖)。
50
- 传 --yes 时所有缺失字段使用默认值(均为 false)。
152
+ 传 --yes 时所有缺失字段使用各自默认值。
51
153
  3. 默认仅补齐 .Knowledge 缺失模板,并对路由清单做包级/结构增量对齐(manifest-routing + matcherPath 分片;关键词仅写在 matchers/*.json);不替代 f2s-* 对业务文档与路由内容的写入。
52
154
  传 --reset-knowledge 时才会强制用模板覆盖 .Knowledge 中模板承载部分。
53
155
  4. 在各 agent 配置根写入 rules、skills(Claude 规则自动转 .md;Codex 在仓库根写入完整 AGENTS.md,.codex/ 写入指针)。
54
- Claude 额外写入 .claude/hooks/f2s-config-inject.js 与 .claude/settings.json(PreToolUse hook),
55
- 在调用 f2s-* Skill 时注入配置摘要;配置缺失、JSON 无效或 hook 异常时也会注入默认语义说明,避免静默。
56
- Cursor 额外写入 f2s-config-check.mdc(alwaysApply),强制在技能首步读取配置文件。
156
+ Claude 额外写入 .claude/hooks/f2s-config-session.js、f2s-config-inject.js 与 .claude/settings.json
157
+ SessionStart 注入一次配置摘要;PreToolUse 仅在调用 f2s-* Skill 时提示首步必须 Read 配置。
158
+ Cursor 额外写入 f2s-config-check.mdc(alwaysApply),强制在技能首步读取配置文件;
159
+ 并写入 .cursor/hooks.json,在 sessionStart 自动检测知识库版本。
57
160
  Codex:仓库根 AGENTS.md(CLI 自动发现,完整条令);.codex/AGENTS.md 为指针。
58
161
  5. 每次 init 将包内 templates/knowledge/index.md 复制到 .Knowledge/template/index.template.md,供 f2s-kb-upgrade 技能与 .Knowledge/index.md 对照;不自动改写 index.md。(「知识库升级」指 f2s-kb-upgrade 技能,init 本身不是升级命令。)
59
162
  6. 规则与技能在各 agent 配置根加载;其他模版类文件在 .Knowledge/template/ 等目录。
@@ -68,6 +171,7 @@ if (sub === "--help" || sub === "-h" || !sub) {
68
171
 
69
172
  if (sub === "version" || sub === "--version" || sub === "-v") {
70
173
  console.log(`flow2spec v${pkg.version}`);
174
+ maybePrintUpdateNotice();
71
175
  process.exit(0);
72
176
  }
73
177
 
@@ -75,19 +179,25 @@ if (sub === "update") {
75
179
  console.log(`当前版本: v${pkg.version}`);
76
180
  console.log("正在检查最新版本...");
77
181
  try {
78
- const latest = execSync(`npm view ${pkg.name} version`, {
182
+ const latest = execFileSync("npm", ["view", pkg.name, "version"], {
79
183
  encoding: "utf8",
80
184
  }).trim();
81
- if (latest === pkg.version) {
82
- console.log(`已是最新版本 v${latest}`);
185
+ if (compareVersions(latest, pkg.version) <= 0) {
186
+ console.log(`当前版本不低于 npm 最新版本 v${latest}`);
83
187
  process.exit(0);
84
188
  }
85
189
  console.log(`发现新版本: v${latest}`);
86
190
  console.log("正在更新...");
87
- execSync(`npm install -g ${pkg.name}@latest`, {
191
+ execFileSync("npm", ["install", "-g", `${pkg.name}@latest`], {
88
192
  stdio: "inherit",
89
193
  });
90
194
  console.log(`\n✓ 已更新到 v${latest}`);
195
+ console.log(`
196
+ 下一步:请在需要升级的项目 Agent 对话中执行:
197
+ f2s-kb-upgrade
198
+
199
+ 用于对齐项目知识库模板、manifest/matchers 与配置根产物;不要把单独 flow2spec init 当作知识库升级。
200
+ `);
91
201
  } catch (e) {
92
202
  console.error("更新失败:", e.message || e);
93
203
  process.exit(1);
@@ -296,7 +406,7 @@ if (sub === "init") {
296
406
  return ` - ${root}/:(${label})skills/、topics/、AGENTS.md(指针);仓库根 AGENTS.md(完整)`;
297
407
  if (id === "claude") {
298
408
  const hookLine = claudeHooksResult?.settingsChanged
299
- ? "rules/、skills/、hooks/f2s-config-inject.js、settings.json(已写入 f2s PreToolUse hook)"
409
+ ? "rules/、skills/、hooks/f2s-config-session.js、hooks/f2s-config-inject.js、settings.json(已写入 f2s SessionStart/PreToolUse hooks)"
300
410
  : "rules/、skills/(settings.json 中 f2s hook 已存在,跳过)";
301
411
  return ` - ${root}/:(${label})${hookLine}`;
302
412
  }
@@ -326,6 +436,7 @@ ${lines.join("\n")}
326
436
 
327
437
  建议阅读 README 或 docs/使用说明.md,按「规则在配置根、文档在 .Knowledge」的方式使用。
328
438
  `);
439
+ maybePrintUpdateNotice();
329
440
  })
330
441
  .catch((e) => {
331
442
  console.error(e.message || e);
@@ -21,7 +21,7 @@
21
21
  "marker": "MERMAID_a24148e2b009"
22
22
  },
23
23
  {
24
- "content": "graph LR\n K[\".Knowledge/\"] --> AI[\"下次会话\\n的 AI\"]\n AI --> C[\"功能迭代\"]\n\n C -->|\"修复 Bug\"| FIX[\"f2s-kb-fix\"] --> K\n C -->|\"新增能力\"| FEAT[\"f2s-kb-feat\"] --> K\n C -->|\"会话结束\"| SYNC[\"f2s-kb-sync\"] --> K\n C -->|\"提交代码\"| CMT[\"f2s-git-commit\\n收口检查\"]\n CMT -->|\"未入库则提醒\\n-> kb-sync/kb-feat\"| K\n\n D1[\"架构文档\"] -->|f2s-doc-arch| FIN[\"f2s-doc-final\"]\n D2[\"PDF/初稿\"] -->|f2s-doc-final| FIN\n FIN --> CTX[\"f2s-ctx-build\"] --> K\n\n OLD[\"存量代码/文档\"] -->|f2s-doc-add| K\n\n NR[\"新需求\"] --> CL[\"f2s-req-clarify\"] --> BE[\"f2s-req-backend\"]\n BE --> IMPL[\"实现xxx技术方案\"] -->|自动触发implement-tech-design规则| K\n\n GIT[\"Git 合并后\"] -->|f2s-kb-merge| K",
24
+ "content": "graph LR\n K[\".Knowledge/\"] --> AI[\"下次会话\\n的 AI\"]\n AI --> C[\"功能迭代\"]\n\n C -->|\"修复 Bug\"| FIX[\"f2s-kb-fix\"] --> K\n C -->|\"新增能力\"| FEAT[\"f2s-kb-feat\"] --> K\n C -->|\"会话结束\"| SYNC[\"f2s-kb-sync\"] --> K\n C -->|\"提交代码\"| CMT[\"f2s-git-commit\\n收口检查\"]\n CMT -->|\"未入库则提醒\\n-> kb-sync/kb-feat\"| K\n\n D1[\"架构文档\"] -->|f2s-doc-arch| FIN[\"f2s-doc-final\"]\n D2[\"PDF/初稿\"] -->|f2s-doc-final| FIN\n FIN --> CTX[\"f2s-kb-build\"] --> K\n\n OLD[\"存量代码/文档\"] -->|f2s-kb-add| K\n\n NR[\"新需求\"] --> CL[\"f2s-req-clarify\"] --> BE[\"f2s-req-backend\"]\n BE --> IMPL[\"实现xxx技术方案\"] -->|自动触发implement-tech-design规则| K\n\n GIT[\"Git 合并后\"] -->|f2s-kb-merge| K",
25
25
  "hash": "6335fa6eda40",
26
26
  "marker": "MERMAID_6335fa6eda40"
27
27
  },
@@ -34,7 +34,7 @@ Four rings in the repo (do not collapse rules + skills into a single "third ring
34
34
 
35
35
  | Layer | Path / mechanism | Stores | Typical read |
36
36
  | --- | --- | --- | --- |
37
- | **L0 routing** | `manifest-routing.json` | task→topic, `topicDependencies`, `topicPaths` | First read (machine source of truth) |
37
+ | **L0 routing** | `manifest-routing.json` | task→topic, `topicDependencies`, `topicPaths`, `topicMetadata` | First read (machine source of truth) |
38
38
  | **L1 matcher shard** | `matchers/<id>.json` | `includeAny` triggers | **match**: one shard only |
39
39
  | **L2 topic summary** | `topics/<topic>.md` | Hard constraints, boundaries, pointers | **expand**: pull dependency topics |
40
40
  | **L3 long docs** | `stock-docs/`, `req-docs/` | Architecture finals, tech specs | Drill down on demand |
@@ -74,7 +74,7 @@ Codex does not read the `rules/` directory; execution constraints are carried th
74
74
 
75
75
  ## 5. Key Chains
76
76
 
77
- - Documentation curation chain: `f2s-doc-arch` -> `f2s-doc-final` -> `f2s-ctx-build`
77
+ - Documentation curation chain: `f2s-doc-arch` -> `f2s-doc-final` -> `f2s-kb-build`
78
78
  - Implementation chain: `.Knowledge/req-docs/*.md` -> `implement-tech-design` -> code
79
79
  - Maintenance chain: `f2s-kb-fix` / `f2s-kb-feat` / `f2s-kb-sync` / `f2s-kb-merge`
80
80
  - Requirements planning chain: `f2s-req-plan` (planning + implementation, always creates task checklist)
@@ -136,9 +136,9 @@ Design intent: Cross-verification introduces an external perspective, reducing t
136
136
  ```json
137
137
  {
138
138
  "changeTracking": {
139
- "feat": false,
139
+ "feat": true,
140
140
  "fix": false,
141
- "implement": false
141
+ "implement": true
142
142
  }
143
143
  }
144
144
  ```
@@ -165,4 +165,4 @@ Design intent: Cross-verification introduces an external perspective, reducing t
165
165
  - [Usage Guide](./usage-guide.md)
166
166
  - [Commands Reference](./commands-reference.md)
167
167
  - [Directory Conventions](./directory-conventions.md)
168
- - [Usage Scenarios](./usage-scenarios.md)
168
+ - [Usage Scenarios](./usage-scenarios.md)
@@ -8,14 +8,14 @@
8
8
  |---|---|---|
9
9
  | `/f2s-doc-arch` | Scan project, generate architecture draft | Doc Curation |
10
10
  | `/f2s-doc-final` | Convert PDF / draft to standardized final-draft format | Doc Curation |
11
- | `/f2s-ctx-build` | Sync final drafts into knowledge base routing (topics / matchers / manifest) | Doc Curation |
12
- | `/f2s-doc-add <path>` | Aggregate multi-file implemented capabilities into knowledge base | Doc Curation |
13
- | `/f2s-ctx-rm` | Remove knowledge topic and index mapping for a stock-docs document | Doc Curation |
11
+ | `/f2s-kb-build` | Sync final drafts into knowledge base routing (topics / matchers / manifest) | Doc Curation |
12
+ | `/f2s-kb-add <path>` | Aggregate multi-file implemented capabilities into knowledge base | Doc Curation |
13
+ | `/f2s-kb-rm` | Remove knowledge topic and index mapping for a stock-docs document | Doc Curation |
14
14
  | `/f2s-doc-pdf` | Convert PDF technical proposal to Markdown, save to req-docs | Doc Curation |
15
15
  | `/f2s-req-clarify` | Clarify requirements via multi-round Q&A | Requirements |
16
16
  | `/f2s-req-backend` | Generate backend technical proposal from clarified requirements | Requirements |
17
17
  | `/f2s-req-plan` | Break a technical proposal into a task checklist and implement (always creates tasks, regardless of `changeTracking.*` config) | Requirements |
18
- | `/f2s-git-commit` | Commit code with automatic knowledge base coverage check | Commit |
18
+ | `/f2s-git-commit` | Commit code; checks knowledge base coverage by default, skips that check in "quick commit" mode | Commit |
19
19
  | `/f2s-kb-feat` | Add new capability + sync knowledge base | KB Maintenance |
20
20
  | `/f2s-kb-fix` | Fix a bug + auto-sync knowledge base | KB Maintenance |
21
21
  | `/f2s-kb-sync` | Sink implemented capabilities from the conversation into the knowledge base | KB Maintenance |
@@ -40,7 +40,7 @@
40
40
 
41
41
  **Relationships**:
42
42
  - **Prerequisite**: None
43
- - **Next Step**: `f2s-doc-final` (normalized final draft) → `f2s-ctx-build` (**final draft input only**; do not run build on `_draft` / `_初稿` files)
43
+ - **Next Step**: `f2s-doc-final` (normalized final draft) → `f2s-kb-build` (**final draft input only**; do not run build on `_draft` / `_初稿` files)
44
44
  - **Output**: `.Knowledge/stock-docs/<Architecture Overview>_draft.md`
45
45
 
46
46
  **Sub-Agent Invocation**:
@@ -59,7 +59,7 @@
59
59
 
60
60
  **Purpose**: Converts PDF technical proposals or draft documents into the standardized "Final Draft Template" format, unifying the document structure for subsequent knowledge base ingestion.
61
61
 
62
- **How It Works**: Unstructured or heterogeneous documents (PDF/drafts) are normalized against the built-in final-draft template: core concept tables, business rules, key flows, configuration, error handling, and other standard sections are extracted; missing section markers are filled in; the output is a consistently structured `_final.md`. The final draft is the standard input for `f2s-ctx-build`, keeping knowledge-base entry structure uniform.
62
+ **How It Works**: Unstructured or heterogeneous documents (PDF/drafts) are normalized against the built-in final-draft template: core concept tables, business rules, key flows, configuration, error handling, and other standard sections are extracted; missing section markers are filled in; the output is a consistently structured `_final.md`. The final draft is the standard input for `f2s-kb-build`, keeping knowledge-base entry structure uniform.
63
63
 
64
64
  **Use Cases**:
65
65
  - PDF technical proposals need conversion to Markdown
@@ -68,7 +68,7 @@
68
68
 
69
69
  **Relationships**:
70
70
  - **Prerequisite**: PDF document or draft document
71
- - **Next Step**: `f2s-ctx-build` (final draft imported into the knowledge base)
71
+ - **Next Step**: `f2s-kb-build` (final draft imported into the knowledge base)
72
72
  - **Output**: `.Knowledge/stock-docs/<Document>_final.md`
73
73
 
74
74
  **Sub-Agent Invocation**:
@@ -83,7 +83,7 @@
83
83
 
84
84
  ---
85
85
 
86
- ### `f2s-ctx-build`
86
+ ### `f2s-kb-build`
87
87
 
88
88
  **Purpose**: Synchronizes documents from `stock-docs/` (architecture, final drafts) into the knowledge base routing system, generating/updating topic files, the index, manifest-routing, and matchers.
89
89
 
@@ -117,11 +117,11 @@
117
117
 
118
118
  ---
119
119
 
120
- ### `f2s-doc-add`
120
+ ### `f2s-kb-add`
121
121
 
122
122
  **Purpose**: Parses already-implemented capabilities (aggregated from multiple files) into the knowledge base. Suitable when code already exists but lacks documentation, or when multiple documents need to be imported into the knowledge base in a unified manner.
123
123
 
124
- **How It Works**: Aggregates capability descriptions from multiple scattered sources (code, config, loose docs) and runs the full "draft → final draft → topics/index/manifest" pipeline. Unlike `f2s-ctx-build`, the input differs: `ctx-build` is driven from a single existing final draft; `doc-add` aggregates many scattered sources first, then follows the same pipeline. It closes the gap of "implementation exists but documentation does not."
124
+ **How It Works**: Aggregates capability descriptions from multiple scattered sources (code, config, loose docs) and runs the full "draft → final draft → topics/index/manifest" pipeline. Unlike `f2s-kb-build`, the input differs: `ctx-build` is driven from a single existing final draft; `doc-add` aggregates many scattered sources first, then follows the same pipeline. It closes the gap of "implementation exists but documentation does not."
125
125
 
126
126
  **Use Cases**:
127
127
  - Existing code needs knowledge base documentation
@@ -150,11 +150,11 @@
150
150
 
151
151
  ---
152
152
 
153
- ### `f2s-ctx-rm`
153
+ ### `f2s-kb-rm`
154
154
 
155
155
  **Purpose**: Deletes corresponding knowledge topics and index mappings based on `stock-docs` documents. Only removes reference relationships in the knowledge base, not the source documents themselves.
156
156
 
157
- **How It Works**: The inverse of `f2s-ctx-build` — given a `stock-docs` document path, locate its task→topic rules in `manifest-routing.json`, the corresponding `matchers/<id>.json` shard, `topics/<topic>.md`, and entries in `index.md`, and remove those references one by one. If a topic has no remaining task references after deletion, remove that topic file. Source documents are left in place; the user may delete them physically if desired.
157
+ **How It Works**: The inverse of `f2s-kb-build` — given a `stock-docs` document path, locate its task→topic rules in `manifest-routing.json`, the corresponding `matchers/<id>.json` shard, `topics/<topic>.md`, and entries in `index.md`, and remove those references one by one. If a topic has no remaining task references after deletion, remove that topic file. Source documents are left in place; the user may delete them physically if desired.
158
158
 
159
159
  **Use Cases**:
160
160
  - A document is deprecated and needs removal from the knowledge routing
@@ -186,7 +186,7 @@
186
186
  **Relationships**:
187
187
  - **Prerequisite**: PDF document
188
188
  - **Output**: `.Knowledge/req-docs/<Proposal>.md`
189
- - **Next Step** (recommended): `f2s-req-clarify` → `f2s-req-backend` → implement from the technical proposal MD via `implement-tech-design`; for knowledge base archival use `f2s-doc-final` → `f2s-ctx-build`
189
+ - **Next Step** (recommended): `f2s-req-clarify` → `f2s-req-backend` → implement from the technical proposal MD via `implement-tech-design`; for knowledge base archival use `f2s-doc-final` → `f2s-kb-build`
190
190
 
191
191
  **Sub-Agent Invocation**:
192
192
  - `subAgent: false` (default): The main agent completes the full workflow
@@ -288,13 +288,14 @@
288
288
 
289
289
  ### `f2s-git-commit`
290
290
 
291
- **Purpose**: Executes a Git commit after code is written. Automatically checks changed files, compares knowledge base coverage, prompts the user about capabilities not yet imported, and performs the commit after the commit message is confirmed.
291
+ **Purpose**: Executes a Git commit after code is written. By default it checks changed files and knowledge base coverage, prompting the user about capabilities not yet imported. If the user explicitly asks for a "quick commit", it skips the knowledge base coverage check. Before committing, it displays the commit message subject and then runs `git commit`.
292
292
 
293
- **How It Works**: Layers a "knowledge base coverage gate" on top of `git commit` — infer touched capability areas from `git diff`, cross-check against `.Knowledge/topics/` and `stock-docs/`, and decide whether changed capabilities are documented in the knowledge base. If not covered, block and offer three choices (document first / skip / cancel) to avoid silent drift where "code exists but the knowledge base does not know." Commit messages use emoji + Conventional Commits for consistent, machine-friendly `git log`.
293
+ **How It Works**: Layers a "knowledge base coverage gate" on top of `git commit` — infer touched capability areas from `git diff`, cross-check against `.Knowledge/topics/` and `stock-docs/`, and decide whether changed capabilities are documented in the knowledge base. If not covered, block and offer three choices (document first / skip / cancel) to avoid silent drift where "code exists but the knowledge base does not know." Quick commit mode only skips this coverage gate; it does not skip conflict checks, message display, precise `git add`, or git hooks. Commit messages use emoji + Conventional Commits for consistent, machine-friendly `git log`.
294
294
 
295
295
  **Use Cases**:
296
296
  - Committing code after each feature implementation or bug fix
297
297
  - Wanting reminders about knowledge base coverage at commit time
298
+ - Explicitly wanting to skip this commit's coverage check with a quick commit
298
299
  - Needing AI help to generate meaningful commit messages
299
300
 
300
301
  **Relationships**:
@@ -304,7 +305,7 @@
304
305
 
305
306
  **Execution Flow**:
306
307
  1. `git status --short` + `git diff HEAD` to classify files into staged / unstaged / untracked; immediately terminates if merge conflict markers are found
307
- 2. Compare `.Knowledge/topics/` and `stock-docs/` to determine whether the changed capabilities have been imported; skips and notifies if `.Knowledge` does not exist
308
+ 2. By default, compare `.Knowledge/topics/` and `stock-docs/` to determine whether the changed capabilities have been imported; skips and notifies if `.Knowledge` does not exist; skips this step when the user asks for a quick commit
308
309
  3. If not covered, prompt the user to choose: A) Import first, then commit / B) Commit now, import later / C) Cancel
309
310
  4. Generate a commit message draft based on `git diff` content, wait for user confirmation or changes
310
311
  5. `git add <specific files>` + `git commit`; if a hook fails, prompt for fix, do not skip
@@ -314,7 +315,7 @@
314
315
  - `git add -A` / `git add .` is forbidden; only add confirmed changed files
315
316
  - `--no-verify` is forbidden; hook failures must be fixed and retried
316
317
  - Auto-push is forbidden
317
- - The commit message must be confirmed by the user; silent commits are not allowed
318
+ - The commit message subject must be displayed before committing; an extra user confirmation round is not required
318
319
 
319
320
  **Sub-Agent Invocation**: None (full interactive confirmation, handled within the main agent)
320
321
 
@@ -405,7 +406,7 @@
405
406
  - **Prerequisite**: None (can be triggered directly, or with zero-input inference)
406
407
  - **Next Step**: None
407
408
  - **Feature**: First outputs a knowledge base update outline, then writes only after user confirmation
408
- - **Difference from `f2s-ctx-build`**: `ctx-build` is driven from `stock-docs`; `kb-sync` infers from the conversation/code
409
+ - **Difference from `f2s-kb-build`**: `ctx-build` is driven from `stock-docs`; `kb-sync` infers from the conversation/code
409
410
 
410
411
  **Sub-Agent Invocation**:
411
412
  - `subAgent: false` (default): The main agent completes inference and sync
@@ -497,6 +498,9 @@
497
498
  **Use Cases**:
498
499
  - After a `flow2spec` package version upgrade, upgrade the project knowledge base template
499
500
  - Upgrade an old project to the latest structure
501
+ - When interactive `flow2spec version` / `flow2spec init` detects a newer npm version, the CLI prompts you to run `flow2spec update`, then execute this skill in the Agent conversation
502
+ - When Cursor detects an older knowledge-base version through `.cursor/hooks.json` on `sessionStart`, it prompts you to execute this skill
503
+ - When Codex detects an older knowledge-base version through `.codex/hooks.json` on `SessionStart`, it prompts you to execute this skill (new or changed hooks must be trusted through `/hooks` first)
500
504
 
501
505
  **Relationships**:
502
506
  - **Prerequisite**: `f2s-kb-migrate` (V1 flow) or an existing `.Knowledge/`
@@ -525,14 +529,8 @@
525
529
 
526
530
  The following are not skill commands but rules activated by trigger words to guide Agent behavior.
527
531
 
528
- ### `f2s-karpathy-guidelines`
529
-
530
- **Trigger Words**: `alwaysApply` (always on; no explicit trigger needed)
531
-
532
- **Purpose**: Flow2Spec's built-in Karpathy-style coding discipline to improve the quality of agent coding decisions.
533
-
534
- **How It Works**: Four behavioral constraints distilled from Andrej Karpathy's observations on common LLM coding mistakes, applied as an `alwaysApply` rule that implicitly governs all `f2s-*` skill runs: (1) think before coding (state assumptions; ask when unsure); (2) simplicity first (minimum code to solve the problem); (3) surgical edits (touch only what must change; match existing style); (4) goal-driven execution (define verifiable success criteria, then iterate). When these guidelines conflict with mandatory `f2s-*` steps, the `f2s-*` steps win.
535
532
 
533
+ ---
536
534
  ---
537
535
 
538
536
  ### `f2s-task`
@@ -557,25 +555,8 @@ The following are not skill commands but rules activated by trigger words to gui
557
555
 
558
556
  ---
559
557
 
560
- ### `stock-docs-vs-req-docs`
561
-
562
- **Trigger Words**: stock-docs, req-docs, implemented capability, where to put the technical proposal, PDF final draft
563
-
564
- **Purpose**: Distinguishes the boundary between the knowledge archival directory and the requirements implementation directory.
565
-
566
- **How It Works**: "Purpose isolation" to avoid mixing folders — `stock-docs/` holds archived existing knowledge (architecture, final drafts), consumed by `ctx-build` for ingestion into the knowledge base and **must not** be used directly as coding input; `req-docs/` holds implementation-facing requirements and technical proposals, consumed by the `implement-tech-design` rule to drive coding. Writers and readers are fully separated so "stock descriptions are not mistaken for coding contracts" and "implementation proposals are not mistaken for capability archival."
567
-
568
- **Directory Division**:
569
-
570
- | Directory | Purpose | When It Is Written |
571
- |-----------|---------|-------------------|
572
- | `stock-docs/` | Archival of existing knowledge (architecture, final drafts) | `f2s-doc-arch`, `f2s-doc-final`, `f2s-ctx-build` |
573
- | `req-docs/` | Requirements and technical proposals (driving implementation) | `f2s-req-backend`, `f2s-doc-pdf`, manual placement |
574
-
575
- **Use Cases**:
576
- - Unsure where a document should go
577
- - Need to clarify the division of labor between stock-docs and req-docs
578
558
 
559
+ ---
579
560
  ---
580
561
 
581
562
  ### `implement-tech-design`
@@ -613,11 +594,11 @@ The following are not skill commands but rules activated by trigger words to gui
613
594
 
614
595
  ## 6) Sub-Agent Configuration
615
596
 
616
- Controlled via `flow2spec.config.json` at the project root (all fields default to `false`).
597
+ Controlled via `flow2spec.config.json` at the project root. Defaults: `subAgent=false`, `switchAgentVerification=false`, `changeTracking.feat=true`, `changeTracking.fix=false`, `changeTracking.implement=true`.
617
598
 
618
599
  ### How Different Products "See" the Configuration (use with the field table below)
619
600
 
620
- `subAgent` and similar fields are written to the **on-disk JSON**; products do not guarantee automatic file opening. Therefore, multi-layered hints are provided via **Cursor rules / Claude hooks / Codex AGENTS snapshot table / knowledge base `config-precheck` summary**, but **the authoritative source remains `Read("flow2spec.config.json")`** (design rationale in [design-principles.md — Agent Orchestration § 5.1](./design-principles.md); talk / deck pacing in [intro deck HTML](../../presentations/flow2spec-intro-public-en/index.html) (internal); Chinese source in `flow2spec-intro-draft`, config section). **The full path and table are maintained in one place**: [usage-guide.md Sec. 1, `f2s-*` and `flow2spec.config.json`](./usage-guide.md).
601
+ `subAgent` and similar fields are written to the **on-disk JSON**; products do not guarantee automatic file opening. Therefore, multi-layered hints are provided via **Cursor rules / Claude SessionStart summary + PreToolUse guard / Codex AGENTS snapshot table / knowledge base `config-precheck` summary**, but **the authoritative source remains `Read("flow2spec.config.json")`** (design rationale in [design-principles.md — Agent Orchestration § 5.1](./design-principles.md); talk / deck pacing in [intro deck HTML](../../presentations/flow2spec-intro-public-en/index.html) (internal); Chinese source in `flow2spec-intro-draft`, config section). **The full path and table are maintained in one place**: [usage-guide.md Sec. 1, `f2s-*` and `flow2spec.config.json`](./usage-guide.md).
621
602
 
622
603
  ### `subAgent` Field
623
604
 
@@ -640,9 +621,9 @@ A nested object, with each skill independently controlled:
640
621
  ```json
641
622
  {
642
623
  "changeTracking": {
643
- "feat": false,
624
+ "feat": true,
644
625
  "fix": false,
645
- "implement": false
626
+ "implement": true
646
627
  }
647
628
  }
648
629
  ```
@@ -671,4 +652,4 @@ Related Documents:
671
652
  - [Usage Guide](./usage-guide.md)
672
653
  - [Directory Conventions](./directory-conventions.md)
673
654
  - [Architecture](./architecture.md)
674
- - [Usage Scenarios](./usage-scenarios.md)
655
+ - [Usage Scenarios](./usage-scenarios.md)
@@ -100,9 +100,9 @@ graph LR
100
100
 
101
101
  D1["Architecture Docs"] -->|f2s-doc-arch| FIN["f2s-doc-final"]
102
102
  D2["PDF/draft"] -->|f2s-doc-final| FIN
103
- FIN --> CTX["f2s-ctx-build"] --> K
103
+ FIN --> CTX["f2s-kb-build"] --> K
104
104
 
105
- OLD["Existing Code/Docs"] -->|f2s-doc-add| K
105
+ OLD["Existing Code/Docs"] -->|f2s-kb-add| K
106
106
 
107
107
  NR["New Requirement"] --> CL["f2s-req-clarify"] --> BE["f2s-req-backend"]
108
108
  BE --> IMPL["Implement xxx technical design"] -->|auto-trigger implement-tech-design rule| K
@@ -259,7 +259,7 @@ git log .Knowledge/
259
259
 
260
260
  a3f1c2 f2s-kb-feat: add refund state machine routing
261
261
  b7e9d1 f2s-kb-fix: fix RestTemplate injection conventions
262
- c2a8f0 f2s-ctx-build: onboard order service architecture docs
262
+ c2a8f0 f2s-kb-build: onboard order service architecture docs
263
263
  d5b3e9 f2s-kb-sync: consolidate payment retry queue design
264
264
 
265
265
  Code changes + Knowledge changes → same commit or adjacent commits
@@ -477,8 +477,10 @@ Session context itself is an information source · no need for users to organi
477
477
 
478
478
  | Mechanism | Design Intent |
479
479
  | --- | --- |
480
- | **Cursor `f2s-config-check.mdc`** | Rule-layer enforcement: "Read before skill body." |
481
- | **Claude `f2s-config-inject` PreToolUse** | Injects parsed results when calling **`f2s-*` Skill**; **missing file / broken JSON / hook exception** still outputs a note with default semantics, no silent failure. |
480
+ | **Cursor `f2s-config-check.mdc`** | Rule-layer enforcement: "Read before skill body"; Cursor hooks are used for update checks only, not automatic config reads. |
481
+ | **Claude `f2s-config-session` SessionStart** | Injects one config summary when the conversation starts, reducing the chance that the setting is forgotten. |
482
+ | **Claude `f2s-config-inject` PreToolUse** | Only guards **`f2s-*` Skill** calls by reminding the agent that the first skill-body action must be Read; it no longer repeatedly injects the full config. |
483
+ | **Codex `AGENTS.md` / `.codex/topics/f2s-config-check.md`** | Text-layer enforcement: "Read before skill body"; Codex hooks are used for update checks only, not automatic config reads. |
482
484
  | **Codex `AGENTS.md` + `renderProjectConfigBlock`** | Top-level **Read** hard constraint + **init snapshot table** (if inconsistent with disk, Read takes precedence). |
483
485
  | **Knowledge base `config-precheck` topic** | When routing hits, provides only **summary** and a pointer to the Codex full text, **not** a substitute for Read JSON. |
484
486
 
@@ -521,7 +523,7 @@ The same `.Knowledge/` drives all tools · adding/removing tools does not affe
521
523
  ```
522
524
  Adding a topic Removing a topic
523
525
  ───────────────────── ─────────────────────
524
- 1. Write topics/xxx.md f2s-ctx-rm stock-docs/xxx.md
526
+ 1. Write topics/xxx.md f2s-kb-rm stock-docs/xxx.md
525
527
  2. Write matchers/m-xxx.json ↓
526
528
  3. Register in manifest-routing Automatically cleans up topics/ + manifest
527
529
  + index references
@@ -562,8 +564,9 @@ flow2spec.config.json
562
564
  switchAgentVerification: false → writer-side self-verify, daily use
563
565
  switchAgentVerification: true → cross-verification, high-confidence critical scenarios
564
566
 
565
- changeTracking.feat/fix/implement: false no task checklist created
566
- changeTracking.feat/fix/implement: true automatic task checklist creation when corresponding skills run, supporting cross-session continuation
567
+ changeTracking.feat: true f2s-kb-feat creates a task checklist by default
568
+ changeTracking.fix: false f2s-kb-fix does not create a task checklist by default
569
+ changeTracking.implement: true → implement-tech-design creates a task checklist by default
567
570
 
568
571
  Three orthogonal dimensions · each skill can further refine and override global config
569
572
  ```
@@ -615,4 +618,4 @@ Best suited when: has scale · long-term iteration · multi-tool or multi-person
615
618
  - [Usage Guide](./usage-guide.md)
616
619
  - [Commands Reference](./commands-reference.md)
617
620
  - [Architecture](./architecture.md)
618
- - [Usage Scenarios](./usage-scenarios.md)
621
+ - [Usage Scenarios](./usage-scenarios.md)