@chenguangyao/devflow-kit 0.1.43

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 (198) hide show
  1. package/CHANGELOG.md +232 -0
  2. package/LICENSE +21 -0
  3. package/README.md +539 -0
  4. package/bin/devflow.js +9 -0
  5. package/docs/RFC-001-devflow-kit.md +617 -0
  6. package/docs/RFC-002-workflow-kernel.md +134 -0
  7. package/docs/enterprise-integration-supplement.md +274 -0
  8. package/docs/internal-gitlab-setup.md +426 -0
  9. package/docs/marketplace-skills.md +231 -0
  10. package/docs/migration-from-arb.md +232 -0
  11. package/docs/tooling-overview.md +774 -0
  12. package/docs/workflow-orchestration.md +695 -0
  13. package/docs/workflow-ui-prototype.html +271 -0
  14. package/package.json +52 -0
  15. package/schemas/config.schema.json +51 -0
  16. package/schemas/delta.schema.json +22 -0
  17. package/schemas/state.schema.json +130 -0
  18. package/schemas/status-surface.schema.json +197 -0
  19. package/schemas/workflow-confirmation-surface.schema.json +70 -0
  20. package/schemas/workflow-picker.schema.json +94 -0
  21. package/scripts/postinstall.js +101 -0
  22. package/scripts/render-workflow-ui-prototype.js +271 -0
  23. package/skills/apply/SKILL.md +313 -0
  24. package/skills/apply/references/discipline-checklist.md +145 -0
  25. package/skills/apply/references/subagent-implementer-prompt.md +113 -0
  26. package/skills/apply/references/subagent-orchestration.md +150 -0
  27. package/skills/apply/references/subagent-reviewer-prompt.md +180 -0
  28. package/skills/apply/references/tdd-loop.md +287 -0
  29. package/skills/apply/references/when-plan-is-wrong.md +279 -0
  30. package/skills/apply/references/worktree-swarm.md +292 -0
  31. package/skills/archive/SKILL.md +229 -0
  32. package/skills/archive/references/conflict-resolution.md +336 -0
  33. package/skills/archive/references/knowledge-deposit.md +381 -0
  34. package/skills/archive/references/spec-merge.md +365 -0
  35. package/skills/brainstorm/SKILL.md +123 -0
  36. package/skills/brainstorm/references/proposal-template.md +244 -0
  37. package/skills/brainstorm/references/question-catalog.md +168 -0
  38. package/skills/brainstorm/references/session-template.md +184 -0
  39. package/skills/ci-fix/SKILL.md +63 -0
  40. package/skills/ci-fix/references/loop.md +25 -0
  41. package/skills/code-review/SKILL.md +279 -0
  42. package/skills/code-review/references/escalation-playbook.md +192 -0
  43. package/skills/code-review/references/language-cheatsheets/go.md +175 -0
  44. package/skills/code-review/references/language-cheatsheets/java-spring-mybatis.md +246 -0
  45. package/skills/code-review/references/language-cheatsheets/python.md +170 -0
  46. package/skills/code-review/references/language-cheatsheets/vue.md +199 -0
  47. package/skills/code-review/references/output-template.md +275 -0
  48. package/skills/code-review/references/review-checklist.md +251 -0
  49. package/skills/complexity-grading/SKILL.md +259 -0
  50. package/skills/deliver/SKILL.md +271 -0
  51. package/skills/deliver/references/delivery-modes.md +299 -0
  52. package/skills/deliver/references/notify.md +359 -0
  53. package/skills/deliver/references/pr-description.md +319 -0
  54. package/skills/dependency-upgrade/SKILL.md +57 -0
  55. package/skills/dependency-upgrade/references/risk-matrix.md +38 -0
  56. package/skills/df-orchestrator/SKILL.md +407 -0
  57. package/skills/df-orchestrator/references/complexity-grading.md +177 -0
  58. package/skills/df-orchestrator/references/escalation-matrix.md +191 -0
  59. package/skills/df-orchestrator/references/routing-rules.md +290 -0
  60. package/skills/df-orchestrator/references/workflow-state-machine.md +208 -0
  61. package/skills/frontend-quality/SKILL.md +61 -0
  62. package/skills/frontend-quality/references/checklist.md +35 -0
  63. package/skills/handoff-resume/SKILL.md +59 -0
  64. package/skills/handoff-resume/references/handoff-template.md +54 -0
  65. package/skills/plan/SKILL.md +166 -0
  66. package/skills/plan/references/task-breakdown.md +207 -0
  67. package/skills/plan/references/task-sequencing.md +143 -0
  68. package/skills/plan/references/task-template.md +248 -0
  69. package/skills/requirement-analysis/SKILL.md +499 -0
  70. package/skills/requirement-analysis/references/acceptance-criteria.md +183 -0
  71. package/skills/requirement-analysis/references/code-recon.md +151 -0
  72. package/skills/requirement-analysis/references/edge-case-catalog.md +164 -0
  73. package/skills/requirement-analysis/references/requirement-template.md +339 -0
  74. package/skills/requirement-analysis/references/scope-negotiation.md +162 -0
  75. package/skills/security-hardening/SKILL.md +60 -0
  76. package/skills/security-hardening/references/checklist.md +42 -0
  77. package/skills/tech-spec/SKILL.md +388 -0
  78. package/skills/tech-spec/references/api-contract-design.md +172 -0
  79. package/skills/tech-spec/references/decision-records.md +110 -0
  80. package/skills/tech-spec/references/design-template.md +301 -0
  81. package/skills/tech-spec/references/rollout-and-rollback.md +203 -0
  82. package/skills/tech-spec/references/spec-delta-conventions.md +250 -0
  83. package/skills/tech-spec/references/transaction-patterns.md +212 -0
  84. package/skills/test-spec/SKILL.md +219 -0
  85. package/skills/test-spec/references/coverage-strategy.md +218 -0
  86. package/skills/test-spec/references/edge-case-to-test.md +143 -0
  87. package/skills/test-spec/references/test-case-template.md +276 -0
  88. package/skills/verify/SKILL.md +232 -0
  89. package/skills/verify/references/nfr-verification.md +292 -0
  90. package/skills/verify/references/report-templates.md +510 -0
  91. package/skills/verify/references/self-test-guide.md +240 -0
  92. package/skills/verify/references/verify-rollback-map.md +247 -0
  93. package/src/cli/commands/_helpers.js +108 -0
  94. package/src/cli/commands/_submit.js +718 -0
  95. package/src/cli/commands/apply.js +198 -0
  96. package/src/cli/commands/archive.js +180 -0
  97. package/src/cli/commands/checkpoint.js +113 -0
  98. package/src/cli/commands/deliver.js +377 -0
  99. package/src/cli/commands/deploy.js +504 -0
  100. package/src/cli/commands/design.js +158 -0
  101. package/src/cli/commands/disable.js +21 -0
  102. package/src/cli/commands/doctor.js +178 -0
  103. package/src/cli/commands/enable.js +21 -0
  104. package/src/cli/commands/flow.js +645 -0
  105. package/src/cli/commands/help.js +93 -0
  106. package/src/cli/commands/ingest.js +602 -0
  107. package/src/cli/commands/init.js +341 -0
  108. package/src/cli/commands/knowledge.js +523 -0
  109. package/src/cli/commands/logs.js +43 -0
  110. package/src/cli/commands/new.js +202 -0
  111. package/src/cli/commands/plan.js +49 -0
  112. package/src/cli/commands/propose.js +27 -0
  113. package/src/cli/commands/provider.js +698 -0
  114. package/src/cli/commands/report.js +143 -0
  115. package/src/cli/commands/requirement.js +227 -0
  116. package/src/cli/commands/review.js +301 -0
  117. package/src/cli/commands/skills.js +457 -0
  118. package/src/cli/commands/status.js +925 -0
  119. package/src/cli/commands/switch.js +27 -0
  120. package/src/cli/commands/sync.js +47 -0
  121. package/src/cli/commands/test.js +366 -0
  122. package/src/cli/commands/uninstall.js +32 -0
  123. package/src/cli/commands/update.js +74 -0
  124. package/src/cli/commands/verify.js +354 -0
  125. package/src/cli/commands/worktree.js +78 -0
  126. package/src/cli/index.js +72 -0
  127. package/src/cli/parse-args.js +102 -0
  128. package/src/core/autodetect.js +271 -0
  129. package/src/core/change.js +208 -0
  130. package/src/core/checkpoint.js +217 -0
  131. package/src/core/config.js +60 -0
  132. package/src/core/delta.js +290 -0
  133. package/src/core/markers.js +59 -0
  134. package/src/core/paths.js +173 -0
  135. package/src/core/plan-tasks.js +36 -0
  136. package/src/core/project-routing.js +285 -0
  137. package/src/core/projects.js +200 -0
  138. package/src/core/state.js +200 -0
  139. package/src/core/workflow-check.js +177 -0
  140. package/src/core/workflow-init.js +34 -0
  141. package/src/core/workflow-picker.js +154 -0
  142. package/src/core/workflow-policy.js +119 -0
  143. package/src/core/workflow-suggest.js +181 -0
  144. package/src/core/workflow-verify.js +88 -0
  145. package/src/core/workflow.js +433 -0
  146. package/src/core/worktree.js +241 -0
  147. package/src/knowledge/categories.js +107 -0
  148. package/src/knowledge/classify.js +125 -0
  149. package/src/knowledge/deposit.js +414 -0
  150. package/src/knowledge/migrate.js +149 -0
  151. package/src/knowledge/mr.js +219 -0
  152. package/src/knowledge/query.js +131 -0
  153. package/src/knowledge/registry.js +151 -0
  154. package/src/knowledge/sync.js +179 -0
  155. package/src/providers/base.js +74 -0
  156. package/src/providers/drivers/api-yapi.js +78 -0
  157. package/src/providers/drivers/ci-jenkins.js +109 -0
  158. package/src/providers/drivers/intake-confluence.js +544 -0
  159. package/src/providers/drivers/kb-git.js +549 -0
  160. package/src/providers/drivers/kb-weknora.js +472 -0
  161. package/src/providers/drivers/notify-smtp.js +515 -0
  162. package/src/providers/drivers/observability-oss.js +43 -0
  163. package/src/providers/drivers/observability-sls.js +50 -0
  164. package/src/providers/lifecycle.js +135 -0
  165. package/src/providers/loader.js +132 -0
  166. package/src/providers/local.js +190 -0
  167. package/src/providers/userconfig.js +283 -0
  168. package/src/reports/aggregate.js +185 -0
  169. package/src/reports/coverage.js +163 -0
  170. package/src/reports/detect.js +143 -0
  171. package/src/reports/parse.js +236 -0
  172. package/src/templates/files/ci/github.yml +38 -0
  173. package/src/templates/files/ci/gitlab.yml +27 -0
  174. package/src/templates/files/design.md +63 -0
  175. package/src/templates/files/ide/devflow-workflow.md +58 -0
  176. package/src/templates/files/ide/project-overview-reference.md +1 -0
  177. package/src/templates/files/ide/project-overview.md +27 -0
  178. package/src/templates/files/knowledge-index.json +17 -0
  179. package/src/templates/files/knowledge.md +28 -0
  180. package/src/templates/files/meta.json +8 -0
  181. package/src/templates/files/plan.md +38 -0
  182. package/src/templates/files/proposal.md +33 -0
  183. package/src/templates/files/reports/contract-test.md +40 -0
  184. package/src/templates/files/reports/e2e-test.md +30 -0
  185. package/src/templates/files/reports/integration-test.md +36 -0
  186. package/src/templates/files/reports/joint-test.md +58 -0
  187. package/src/templates/files/reports/perf.md +24 -0
  188. package/src/templates/files/reports/regression.md +20 -0
  189. package/src/templates/files/reports/remote-test.md +55 -0
  190. package/src/templates/files/reports/self-test.md +43 -0
  191. package/src/templates/files/reports/smoke-test.md +22 -0
  192. package/src/templates/files/reports/unit-test.md +36 -0
  193. package/src/templates/files/requirement.md +51 -0
  194. package/src/templates/files/review.md +38 -0
  195. package/src/templates/files/tests.md +36 -0
  196. package/src/templates/files/verify.md +32 -0
  197. package/src/templates/index.js +21 -0
  198. package/src/utils/log.js +37 -0
@@ -0,0 +1,617 @@
1
+ # RFC-001: devflow-kit 总体设计
2
+
3
+ - **状态**: Implemented(v0.1.x)
4
+ - **作者**: chenguangyao
5
+ - **创建日期**: 2026-04-24
6
+ - **最近更新**: 2026-04-27
7
+ - **目标版本**: v0.1.0(MVP,已发布)→ v0.2.x(进行中)→ v1.0.0
8
+ - **当前版本**: v0.1.7 / 126 测试 / 0 失败
9
+
10
+ ## 0. 摘要
11
+
12
+ `devflow-kit` 是一套独立、零内网依赖的开发工作流套件,融合 4 个来源的优点:
13
+
14
+ | 来源 | 吸收的能力 |
15
+ |------|----------|
16
+ | **arb-workflow-kit** | 全流程编排(需求→规格→编码→审查→测试→部署→沉淀)、L1/L2/L3 分级、双轮澄清+代码侦察、卡点机制、知识库三件套 |
17
+ | **superpowers** | brainstorming HARD-GATE、TDD bite-size 计划、verification-before-completion、deliver 4 选项、git worktree 隔离 |
18
+ | **OpenSpec** | change-folder 模型、spec delta(ADDED/MODIFIED/REMOVED)、archive 时自动合并、CLI + slash 命令双入口 |
19
+ | **qs-bridge** | 外部系统抽象成统一 CLI provider 协议、Cookie/浏览器登录、自动 force 重登 + 自动重试 |
20
+
21
+ 核心命题:**让任何项目可以 `npm i -g devflow-kit && cd <repo> && devflow init` 后立即获得完整开发工作流,内网/SaaS 集成按需安装 provider,核心流程不感知具体平台。**
22
+
23
+ ## 1. 目标与非目标
24
+
25
+ ### 1.1 目标
26
+
27
+ 1. **零内网依赖默认**:核心流程仅依赖 `git` + `node`,不绑定 Confluence/JIRA/Jenkins/WeKnora 等任一平台
28
+ 2. **Wiki-first 入口**:80%+ 的研发场景都是从 PRD URL 启动,提供 `devflow ingest <url>` 一行启动
29
+ 3. **懒生成**:核心 6 文件按需扩展,L1 ~5 个、L2 ~9 个、L3 ~12-15 个
30
+ 4. **多 IDE 适配**:Claude Code / Cursor / Codex 共用一份 marker 段指令文件
31
+ 5. **provider 可插拔**:wiki/issue/ci/notify/kb 五类外部系统按需接入,失效自动重登
32
+ 6. **规格沉淀**:archive 时 spec delta 自动合并到主 specs/,长期保留"当前能力"单一事实源
33
+ 7. **知识库分类**:默认 4 域 9 类(domain/system/ops/archive),边界清晰可机械判定;支持迁移自 arb-knowledge 7 类
34
+
35
+ ### 1.2 非目标(本期不做)
36
+
37
+ - 不做团队协作平台(不替代 JIRA/Linear)
38
+ - 不做内置 Wiki 引擎(只做 ingest 入口)
39
+ - 不做 LLM 调用(由上层 Agent IDE 完成,本工具只产生/消费文件)
40
+ - 不做 web UI(纯 CLI + Skill markdown)
41
+
42
+ ## 2. 名词与术语
43
+
44
+ | 术语 | 含义 |
45
+ |------|------|
46
+ | **change** | 一个开发任务的完整生命周期容器,对应 `devflow/changes/<slug>/` |
47
+ | **slug** | change 的稳定 ID,自动从 JIRA 编号或 wiki 标题推导,kebab-case |
48
+ | **核心 6 件** | 任何级别都产的 6 个 markdown:proposal/requirement/design/plan/review/verify |
49
+ | **spec** | 长期规格库 `devflow/specs/`,代表"当前已上线能力" |
50
+ | **delta** | 一次 change 对 spec 的增量(ADDED/MODIFIED/REMOVED) |
51
+ | **knowledge** | 项目知识库 `devflow/knowledge/`,4 域 9 类,可同步到外部 KB |
52
+ | **provider** | 外部系统适配器,5 类:intake/issue/ci/notify/kb;额外有 vcs |
53
+ | **driver** | provider 内部具体实现,如 kb 类的 weknora/notion/local |
54
+ | **marker 段** | IDE 指令文件中由 devflow 维护的 `<!-- BEGIN devflow:xxx --> ... <!-- END --> ` 区段 |
55
+ | **profile** | 命令集级别(core / expanded),对齐 OpenSpec 概念 |
56
+ | **level** | change 复杂度级别(L1/L2/L3),决定走哪些阶段、产哪些可选物 |
57
+
58
+ ## 3. 总体架构
59
+
60
+ ```
61
+ ┌─────────────────────────────────────────────────────────────┐
62
+ │ IDE / Agent (Claude Code, Cursor, Codex, ...) │
63
+ │ ↕ 通过 marker 段 + slash command + SKILL.md │
64
+ ├─────────────────────────────────────────────────────────────┤
65
+ │ CLI: devflow (alias: dfk) │
66
+ │ ├─ commands/ (init, ingest, new, design, plan, apply, │
67
+ │ │ review, verify, deliver, archive, ...) │
68
+ │ ├─ core/ (change, state, delta, paths, markers) │
69
+ │ ├─ providers/ (loader + base + builtin drivers) │
70
+ │ └─ templates/ (markdown + IDE 指令模板) │
71
+ ├─────────────────────────────────────────────────────────────┤
72
+ │ 文件系统 (单一事实源) │
73
+ │ devflow/ │
74
+ │ ├─ specs/ long-term capabilities │
75
+ │ ├─ knowledge/ 4 域 9 类 + .meta.json │
76
+ │ ├─ changes/ in-progress │
77
+ │ └─ archive/ 历史 │
78
+ ├─────────────────────────────────────────────────────────────┤
79
+ │ 外部系统 (可选,通过 provider 抽象) │
80
+ │ Confluence / Notion / JIRA / Jenkins / WeKnora / ... │
81
+ └─────────────────────────────────────────────────────────────┘
82
+ ```
83
+
84
+ ## 4. 数据模型
85
+
86
+ ### 4.1 仓库级目录布局
87
+
88
+ ```
89
+ <repo>/devflow/
90
+ ├── specs/ 主规格库,归档后自动累积
91
+ ├── knowledge/ 4 域 9 类
92
+ │ ├── 1-domain/{concepts,scenarios,rules}/
93
+ │ ├── 2-system/{services,contracts,decisions}/
94
+ │ ├── 3-ops/{runbooks,incidents,environments}/
95
+ │ ├── 4-archive/solutions/
96
+ │ ├── index.json
97
+ │ └── <每目录>/.meta.json
98
+ ├── changes/<slug>/ 开发期产物(详见 §4.2)
99
+ ├── archive/YYYY-MM-DD-<slug>/ 归档后整体迁入
100
+ ├── config.json 项目级配置
101
+ └── providers.json 项目级 provider 覆盖(禁含明文)
102
+ ```
103
+
104
+ ### 4.2 change folder
105
+
106
+ ```
107
+ changes/<slug>/
108
+ ├── proposal.md [核心] 立项书,devflow ingest 自动生成初稿
109
+ ├── requirement.md [核心] 结构化需求(L1 精简,L2/L3 双轮澄清)
110
+ ├── design.md [核心] 技术方案(L1 仅 1-2 段)
111
+ ├── plan.md [核心] TDD 任务清单(原 tasks.md)
112
+ ├── review.md [核心] 代码审查 + bugfix 迭代历史
113
+ ├── verify.md [核心] 验证总览,汇总 reports/
114
+ ├── state.json 状态机(level/phase/checkpoints/iterations/enabled)
115
+ ├── tests.md [按需] 独立测试用例;轻量需求可 inline 进 plan.md
116
+ ├── delta/ [按需] 有长期 spec 变化且启用 --with-spec 时
117
+ ├── knowledge.md [按需] devflow ingest 或 devflow knowledge query 产出
118
+ ├── refs/ [按需] devflow ingest 拉取的原始材料
119
+ ├── reports/ [按需] devflow test/report/deploy 聚合产出
120
+ │ ├── test-report.md unit/integration/e2e/smoke/self-test/deploy 等 section
121
+ │ └── screenshots/
122
+ └── knowledge/ [按中文分类沉淀可复用经验]
123
+ ```
124
+
125
+ 懒生成规则详见附录 A。
126
+
127
+ ### 4.3 state.json schema(简版)
128
+
129
+ ```json
130
+ {
131
+ "$schema": "https://devflow.dev/schemas/state.schema.json",
132
+ "slug": "scrum-15803-fund-cert-type",
133
+ "title": "渠道API保单代扣续期循环扣不能共用签约码",
134
+ "level": "L2",
135
+ "currentPhase": "design",
136
+ "phases": {
137
+ "intake": { "status": "completed", "ts": "2026-04-24T10:00:00Z" },
138
+ "requirement": { "status": "completed" },
139
+ "design": { "status": "in_progress" }
140
+ },
141
+ "checkpoints": [
142
+ { "name": "business-clarify", "status": "passed", "ts": "..." }
143
+ ],
144
+ "iterations": { "review": 0 },
145
+ "enabled": {
146
+ "tests.md": true,
147
+ "delta": true,
148
+ "reports.unit": true,
149
+ "reports.perf": false
150
+ },
151
+ "providers": {
152
+ "intake": "qs-bridge",
153
+ "issue": "qs-bridge",
154
+ "kb": "local"
155
+ },
156
+ "auditLog": [
157
+ { "ts": "...", "event": "devflow ingest https://wiki..." }
158
+ ]
159
+ }
160
+ ```
161
+
162
+ ### 4.4 spec delta 协议
163
+
164
+ ```
165
+ delta/<capability>.md
166
+
167
+ ## ADDED Requirements
168
+ ### 必须支持代扣循环扣不能共用签约码
169
+ - 系统 SHALL 校验同一签约码不能跨渠道使用
170
+ - ...
171
+
172
+ ## MODIFIED Requirements
173
+ ### 续期回调
174
+ - ~~原:支持单签约码~~
175
+ - 新:支持多签约码,需校验渠道归属
176
+
177
+ ## REMOVED Requirements
178
+ ### 旧的循环扣校验
179
+ - 已被新规则替代
180
+ ```
181
+
182
+ `devflow archive` 把 ADDED 追加到主 spec、把 MODIFIED 替换、把 REMOVED 删除,merge 失败时进入交互冲突处理。
183
+
184
+ ### 4.5 knowledge 目录与 .meta.json
185
+
186
+ 详见附录 B。
187
+
188
+ ## 5. CLI 命令规范
189
+
190
+ ### 5.1 命令一览(core profile)
191
+
192
+ | 命令 | 用途 |
193
+ |------|------|
194
+ | `devflow init` | 初始化项目接入(目录骨架/IDE 指令/CI 模板) |
195
+ | `devflow update` | 升级 marker 段、模板 |
196
+ | `devflow uninstall` | 移除 marker 段(`--purge` 删数据) |
197
+ | `devflow ingest <input>` | 主入口:URL/issue/incident 自动路由,落地 refs + proposal 初稿 |
198
+ | `devflow new <slug>` | 兜底入口:启动 brainstorm |
199
+ | `devflow propose` | 生成/编辑 proposal.md |
200
+ | `devflow requirement` | 双轮澄清 + 代码侦察 |
201
+ | `devflow design` | 技术方案(`--with-tests` 同时产 tests.md;`--with-spec` 产 delta/) |
202
+ | `devflow plan` | bite-size TDD 任务清单 |
203
+ | `devflow apply [--task N]` | 编码(可调度并行 worktree) |
204
+ | `devflow review` | 独立审查,3 轮迭代闭环 |
205
+ | `devflow test <unit\|integration\|e2e\|smoke\|regression\|perf>` | 跑测试并生成对应 report |
206
+ | `devflow report self-test` | 生成提测自测报告 |
207
+ | `devflow verify [finalize]` | 汇总 reports/,产 verify.md |
208
+ | `devflow deliver` | 4 选项收尾(merge/PR/keep/discard),自动嵌入 self-test |
209
+ | `devflow archive` | spec delta 合并 + 知识沉淀 + 归档 |
210
+ | `devflow status` | 显示当前 change 阶段与已生成文档 |
211
+ | `devflow doctor [--scope a,b] [--fix] [--json]` | 7 维度全景体检 |
212
+ | `devflow enable/disable <feature>` | 切换可选产物 |
213
+ | `devflow sync project [--check]` | 项目概览同步 |
214
+ | `devflow switch project-overview --mode=<m>` | 切换 reference/supplement/generate 模式 |
215
+ | `devflow provider <subcmd>` | provider 全生命周期(详见 §6) |
216
+ | `devflow knowledge <subcmd>` | 知识库三件套 + sync/validate/migrate(详见 §7) |
217
+ | `devflow skills install` | 拷贝 SKILL.md 到 IDE 目录 |
218
+
219
+ ### 5.2 入口路由 `devflow ingest`
220
+
221
+ ```
222
+ devflow ingest <input>
223
+ ├─ http(s):// + 域名匹配(wiki/confluence/notion/feishu/yuque/...) → intake provider
224
+ ├─ <PROJ>-<num>(SCRUM-15803, ENG-42) → issue provider
225
+ ├─ incident:<id> / alert:<id> → ops provider
226
+ └─ 其他 → 报错并提示
227
+
228
+ provider.fetch(input) → { title, body_md, attachments }
229
+
230
+ 落地到 changes/<slug>/refs/<source>-<id>.md
231
+
232
+ 生成 changes/<slug>/proposal.md 初稿(标题/来源链接/原始描述摘要/级别建议)
233
+
234
+ 触发 devflow knowledge query → changes/<slug>/knowledge.md
235
+
236
+ 提示用户运行 devflow requirement 进入下一阶段
237
+ ```
238
+
239
+ slug 自动推导:
240
+ - JIRA 编号 → `<proj>-<num>-<title-kebab>`(如 `scrum-15803-fund-cert-type`)
241
+ - Wiki page → `<title-kebab>`
242
+ - 推导失败时交互提问
243
+
244
+ ## 6. Provider 协议
245
+
246
+ ### 6.1 六类 provider
247
+
248
+ | 类 | 默认 | 用途 |
249
+ |----|------|------|
250
+ | `intake` | local(手动粘贴) | 拉 PRD / Wiki |
251
+ | `issue` | local | 拉 JIRA/Linear/GitHub Issue |
252
+ | `vcs` | git + gh | 推 PR/MR |
253
+ | `ci` | local(本地测试) | 触发构建 / 部署 |
254
+ | `notify` | stdout / git note | 发提测邮件/钉钉/飞书 |
255
+ | `kb` | local(纯 git) | 知识库推送/检索 |
256
+
257
+ ### 6.2 通用 Provider 接口(伪代码)
258
+
259
+ ```typescript
260
+ interface Provider {
261
+ type: 'intake' | 'issue' | 'vcs' | 'ci' | 'notify' | 'kb'
262
+ driver: string
263
+
264
+ validate(): Promise<{ ok: boolean; reason?: string }>
265
+ login?(opts?: { force?: boolean }): Promise<void>
266
+ logout?(): Promise<void>
267
+
268
+ // 各 type 自己的方法,intake 必须实现 fetch 等
269
+ }
270
+
271
+ interface IntakeProvider extends Provider {
272
+ fetch(url: string): Promise<{ title: string; body_md: string; attachments: Attachment[] }>
273
+ search?(query: string): Promise<SearchHit[]>
274
+ }
275
+
276
+ interface KbProvider extends Provider {
277
+ upload(file: string, meta: KbMeta): Promise<{ uuid: string; url?: string }>
278
+ update(uuid: string, file: string, meta: KbMeta): Promise<void>
279
+ delete(uuid: string): Promise<void>
280
+ search(query: string, opts?: SearchOpts): Promise<SearchHit[]>
281
+ }
282
+
283
+ // 其他 type 同理
284
+ ```
285
+
286
+ ### 6.3 配置 schema
287
+
288
+ `~/.devflow/providers.json`(全局)+ `devflow/providers.json`(项目级覆盖,**禁含明文凭证**):
289
+
290
+ ```json
291
+ {
292
+ "kb.weknora": {
293
+ "type": "kb",
294
+ "driver": "weknora",
295
+ "config": {
296
+ "baseUrl": "https://<your-kb-host>",
297
+ "knowledgeBaseId": "kb-uuid",
298
+ "tagId": "tag-uuid",
299
+ "apiKey": "${env:WEKNORA_API_KEY}",
300
+ "timeout": 30000,
301
+ "retry": { "max": 2, "backoffMs": 1000 }
302
+ }
303
+ }
304
+ }
305
+ ```
306
+
307
+ 凭证 3 种存法:`${env:VAR}` / `${keychain:service}` / 直存(强制 chmod 600 + git 排除)。
308
+
309
+ ### 6.4 失效自动恢复
310
+
311
+ ```
312
+ provider.call() → 401/403/cookie expired
313
+ ↓ 自动
314
+ devflow provider relogin <name> --force
315
+ ↓ provider 自身的 login 流程(浏览器/OAuth/token 输入)
316
+ ↓ 凭证写回
317
+ 自动重试原命令(上限 1 次)
318
+ ├─ 成功 → 继续
319
+ └─ 失败 → 停止 force 死循环,显式列排查清单
320
+ ```
321
+
322
+ ### 6.5 Onboarding 命令
323
+
324
+ ```
325
+ devflow provider setup [--scope=user|project] # ★ 引导式向导(v0.1.5+)
326
+ devflow provider list / status [<name>]
327
+ devflow provider add <name> [--scope=user|project] [--from=<file>] [--config-key=val]
328
+ devflow provider remove <name> [--scope=user|project]
329
+ devflow provider relogin <name> [--force]
330
+ devflow provider rotate <name> [--config-token=NEW]
331
+ devflow provider logout <name>
332
+ devflow provider audit # 凭证体检(v0.1.4+)
333
+ ```
334
+
335
+
336
+ `devflow provider setup` 一次列出 6 类预设(intake/issue/vcs/ci/notify/kb),用户多选 `1,3,5` / `all` / `none`,逐字段提示 → 写入 `~/.devflow/providers.json`(0600)。支持 `${env:VAR}` 引用,密钥不落明文。在非 TTY 环境(CI)早期拒绝,提示走 `provider add --no-prompt`。
337
+ ## 7. 知识库子系统
338
+
339
+ ### 7.1 4 域 9 类目录骨架(默认改良版)
340
+
341
+ ```
342
+ knowledge/
343
+ ├── 1-domain/{concepts,scenarios,rules}/
344
+ ├── 2-system/{services,contracts,decisions}/
345
+ ├── 3-ops/{runbooks,incidents,environments}/
346
+ ├── 4-archive/solutions/
347
+ └── index.json
348
+ ```
349
+
350
+ `index.json` 可切换成 `arb-7`(沿用 arb-knowledge 原 7 类)或自定义。`devflow knowledge migrate --from arb-7 --to improved-9` 自动重映射。
351
+
352
+ ### 7.2 .meta.json 协议(多 provider 并存,带 sha256 增量)
353
+
354
+ ```json
355
+ {
356
+ "category": "domain.scenarios",
357
+ "external": {
358
+ "weknora": {
359
+ "tagId": "...",
360
+ "documents": {
361
+ "保险补贴.md": { "uuid": "...", "syncedAt": "...", "sha256": "..." }
362
+ }
363
+ },
364
+ "notion": {
365
+ "databaseId": "...",
366
+ "pages": { "保险补贴.md": { "uuid": "...", "syncedAt": "..." } }
367
+ }
368
+ }
369
+ }
370
+ ```
371
+
372
+ ### 7.3 三件套命令
373
+
374
+ | 命令 | 行为 |
375
+ |------|------|
376
+ | `devflow knowledge init [--from-code]` | 首次开荒,扫代码生成 services/概述+代码地图 |
377
+ | `devflow knowledge query "<keywords>"` | 本地 grep + 远端 search,产 changes/<slug>/knowledge.md |
378
+ | `devflow knowledge deposit [--push\|--pr]` | 抽 workspace knowledge/design/reports → 分类目录;按 mode 直推或 PR+CI |
379
+ | `devflow knowledge sync --since <sha> --to <sha>` | CI 主入口,详见 §7.4 |
380
+ | `devflow knowledge validate --fix` | .meta.json 与文件一致性修复 |
381
+ | `devflow knowledge migrate --from arb-7 --to improved-9` | 分类迁移 |
382
+
383
+ ### 7.4 推送 3 种触发模式
384
+
385
+ | 模式 | 命令 | 适用 |
386
+ |------|------|------|
387
+ | 本地直推 | `devflow knowledge deposit --push` | 单人/紧急 |
388
+ | MR + CI 同步(默认) | `devflow knowledge deposit` 创建 PR/MR → 合并触发 CI → `devflow knowledge sync` | 团队协作 |
389
+ | 手动批量 | `devflow knowledge sync --all [--driver=...] [--dry-run]` | 初始化/全量重传 |
390
+
391
+ ### 7.5 CI 模板
392
+
393
+ `devflow init --with-ci=<github|gitlab>` 生成,完全对齐 arb-knowledge 现有风格(`[skip-sync]` 例外、$CI_COMMIT_BEFORE_SHA / $CI_COMMIT_SHA 区间)。
394
+
395
+ ## 8. 多 IDE 指令文件(双 marker 段)
396
+
397
+ ### 8.1 段 A `devflow:project-overview` — 项目长期上下文
398
+
399
+ 三种模式(默认 reference,引用现有 CLAUDE.md/PROJECT.md):
400
+
401
+ | 模式 | 触发条件 | 段 A 形态 |
402
+ |------|---------|----------|
403
+ | **reference**(默认) | 检测到候选文件 | 不生成段 A,只在段 B 顶部插一行链接 |
404
+ | **supplement** | 用户选 s 或 `--mode=supplement` | 只生成源文件缺失的小节 |
405
+ | **generate** | 无候选 / 显式 generate | 完整 7 节 |
406
+
407
+ 候选探测优先级:`.claude/CLAUDE.md` → `CLAUDE.md` → `PROJECT.md` → `AGENTS.md`(排除 devflow marker) → `.cursor/rules/project.mdc` → `docs/project-overview.md` → `docs/architecture.md` → `README.md`(兜底)。
408
+
409
+ ### 8.2 段 B `devflow:workflow` — 工作流指令
410
+
411
+ 固定 4 块:入口路由表 / 阶段-命令映射 / 硬规则 / 斜杠命令清单。
412
+
413
+ ### 8.3 多 IDE 适配
414
+
415
+ | IDE | 写入文件 |
416
+ |-----|---------|
417
+ | Claude Code | `.claude/CLAUDE.md` 追加 marker 段 |
418
+ | Cursor | `.cursor/rules/devflow.mdc`(独立,带 `alwaysApply: true`) |
419
+ | 通用 | 仓库根 `AGENTS.md` 追加 marker 段 |
420
+
421
+ 幂等保证:所有写入用 `<!-- BEGIN devflow:xxx --> ... <!-- END devflow:xxx -->`,`devflow update` 仅刷新段内,用户自定义内容不动。
422
+
423
+ ## 9. 文档懒生成策略
424
+
425
+ | 文件 | 触发 | L1 | L2 | L3 |
426
+ |------|------|----|----|-----|
427
+ | proposal/requirement/design/plan/review/verify | 对应 devflow 命令 | ✓ | ✓ | ✓ |
428
+ | tests.md | devflow design --with-tests;轻量需求可 inline 进 plan.md | 按需 | 按需 | 推荐/按需 |
429
+ | delta/ | devflow design --with-spec 或明确检测到长期 spec 变化 | 按需 | 按需 | 按需 |
430
+ | knowledge.md | devflow ingest / devflow knowledge query | 按需 | 按需 | 默认开 |
431
+ | refs/ | devflow ingest | 按需 | 按需 | 按需 |
432
+ | reports/ | devflow test <kind> | unit + smoke | unit + integration + smoke + self-test | 全部 + perf |
433
+ | knowledge/ | devflow archive 自动 | 按需 | 推荐 | 必写 |
434
+
435
+ `devflow enable/disable <feature>` 显式控制;`state.json.enabled` 持久化。
436
+
437
+ ## 10. 测试报告体系
438
+
439
+ 报告即第一公民产物,放在 `changes/<slug>/reports/`,共 6 类(详见 §4.2)。
440
+
441
+ 报告纪律:
442
+ - **无报告不得进入下一阶段**:`devflow verify finalize` 校验报告存在性
443
+ - **报告即证据**:含命令原文 + 完整输出片段
444
+ - **YAML frontmatter 机器可读**:`status: pass|fail`、`total/passed/failed`、`coverage`
445
+ - **与提测单挂钩**:`devflow deliver` 自动嵌入 `test-report.md#self-test` 摘要 + 测试汇总
446
+ - **归档进知识库**:`devflow archive` 把关键发现写入 `knowledge/3-ops/incidents/`
447
+
448
+ ## 11. devflow doctor 7 维度
449
+
450
+ | 维度 | 检查 | 自动修复 |
451
+ |------|------|---------|
452
+ | 环境 | Node/git 版本 / devflow 自身版本 | 提示升级 |
453
+ | 配置 | config.json / knowledge/index.json 完整性 | 列缺失字段 |
454
+ | Provider | version/logged-in/expires | 提示 relogin |
455
+ | 凭证安全 | providers.json chmod 600 / git 暂存 / 报告含 token 嫌疑 | --fix 强制 chmod + unstage |
456
+ | Change 健康 | 缺哪些必备/可选文档;state.json 与文件一致性 | --fix 重建 state.json.enabled |
457
+ | Knowledge 健康 | .meta.json 与文件同步;orphan | --fix 重建 .meta.json |
458
+ | 项目概览健康 | 按 projectOverview.mode 分化(reference/supplement/generate) | reference 模式只读源,**不自动改用户文件** |
459
+ | Git 健康 | 是否在 master/main;worktree 状态 | 阻断,不自动修 |
460
+
461
+ ## 12. 与 arb-workflow-kit 的差异
462
+
463
+ - **去内网耦合**:Confluence/Jenkins/JIRA/YAPI/WeKnora/arb-knowledge 全部下沉为可选 provider
464
+ - **change-folder 取代多目录散落**:不再用 `~/dev-workspace/feature-*/`;当前实现默认写入 `~/.devflow/workspace/changes/<slug>/`,并兼容读取旧的仓库内 `devflow/changes/<slug>/`
465
+ - **spec-delta + archive 合并**:吸收 OpenSpec,长期保留单一事实源 `devflow/specs/`
466
+ - **superpowers 纪律前置**:brainstorming HARD-GATE、TDD bite-size、deliver 4 选项、worktree 强制隔离
467
+ - **CLI + Slash 双入口**:对齐 OpenSpec 与 qs-bridge,任何 IDE/Agent/裸终端都能驱动同一套流程
468
+ - **测试报告升为一等公民**:6 类报告独立成文,有 frontmatter 可被机器解析
469
+
470
+ ## 13. 落地里程碑
471
+
472
+ | 里程碑 | 内容 | 状态 |
473
+ |--------|------|------|
474
+ | M0 | docs/RFC-001-devflow-kit.md(本文档) | ✅ done |
475
+ | M1 | CLI 骨架:devflow init/ingest/new/propose/apply/archive + change-folder + state.json + delta + local provider + intake-router | ✅ done(v0.1.0) |
476
+ | M2 | 核心 SKILL.md + devflow skills install | ✅ done(v0.1.0) |
477
+ | M3 | provider 生态:intake (qs-bridge/confluence/notion/feishu/yuque) + issue (jira-cloud/linear/github) + vcs/ci/notify | ✅ done(v0.1.1) |
478
+ | M3.5 | provider 全生命周期管线 + 引导式 setup wizard | ✅ done(v0.1.5) |
479
+ | M4 | apply 阶段 worktree-swarm + 编码-审查 3 轮迭代 | ✅ done(v0.1.0) |
480
+ | M5 | 6 类测试报告 + 9 种测试框架解析 + 5 种覆盖率 | ✅ done(v0.1.2) |
481
+ | M6 | 知识库子系统(4 域 9 类 + .meta.json + 三件套 + 3 触发模式 + CI 模板) | ✅ done(v0.1.3) |
482
+ | M7 | postinstall 全局安装 + namespace 化 + ~/.devflow 自动化 | ✅ done(v0.1.5; providers.example.json added later) |
483
+ | M8 | --ide 模式 + update --ide-clean | ✅ done(v0.1.6) |
484
+ | **M9** | `devflow migrate from-arb` 一键迁移 | 🚧 v0.2 计划 |
485
+ | **M10** | 知识库语义检索(embedding driver) | 🚧 v0.2 计划 |
486
+ | **M11** | provider rotate 接 1Password/Vault/Keychain | 🚧 v0.2 计划 |
487
+ | **M12** | review skill LLM round-1 evaluator(可选) | 🚧 v0.2 计划 |
488
+ | **M13** | Cursor Background Agents 集成(并行 worktree 自动化) | 🔮 v0.3 探索 |
489
+ | **M14** | web dashboard(跨项目 status 总览) | 🔮 v1.0 |
490
+ | **M15** | `devflow learn`(从 git history 反推 change folder) | 🔮 v1.0 |
491
+ | **M16** | knowledge.git 子模块跨仓库共享 | 🔮 v1.0 |
492
+
493
+ ## 14. v0.1 MVP 后的增量能力
494
+
495
+ 以下能力在 RFC 初稿后陆续补入,均已在 v0.1.x 发布:
496
+
497
+ ### 14.1 多 IDE 指令文件生成策略(`--ide` 模式)
498
+
499
+ `devflow init --ide=<auto|full|minimal|none>`:
500
+
501
+ | 模式 | 行为 |
502
+ | --- | --- |
503
+ | `auto`(默认) | 检测到 `~/.cursor/skills/devflow-kit/` 已装 → 切 `minimal`;否则 `full` |
504
+ | `full` | 写 `.claude/CLAUDE.md` / `.cursor/rules/devflow.mdc` / `AGENTS.md` 三份 marker |
505
+ | `minimal` | 不写 IDE 文件,只生成 `devflow/` 目录 |
506
+ | `none` | 静默跳过,适用于测试场景 |
507
+
508
+ 配套命令 `devflow update --ide-clean` 可一键清除老仓库中由 v0.1.x 之前 `init` 写入的过时 marker,会保留非 devflow 部分,并在文件变空后自动删除。
509
+
510
+ ### 14.2 全局 skill 安装 + namespace 化
511
+
512
+ `postinstall` 钩子(v0.1.5+)在 `npm i -g @chenguangyao/devflow-kit` 时同时完成两件事:
513
+
514
+ 1. **skill 全局安装** → 实体文件只放一份到 `~/.devflow/skills/devflow-kit/<skill>/SKILL.md`,再把 `~/.cursor/skills/devflow-kit`、`~/.claude/skills/devflow-kit` 和 `~/.agents/skills/devflow-kit` 软链到中心目录。所有 skill 仍集中在 `devflow-kit/` 子目录下,与其他 skill 集合(如 `superpowers/`)互不侵犯;不支持软链的环境可用 `devflow skills install --scope=user --copy` 回退到实体拷贝。
515
+ 2. **用户级 provider 配置引导** → `~/.devflow/`(0700) + `providers.json`(空 `{}`,0600) + `providers.example.json`(公共地址 + env 占位符) + `README.md`(schema 说明)。
516
+
517
+ 控制开关:
518
+
519
+ - `DEVFLOW_SKIP_POSTINSTALL=1` 跳过
520
+ - `npm i -g --ignore-scripts` 同效
521
+ - `CI=true` 自动跳过
522
+ - 在 devflow-kit 自己仓库里 `npm install` 时跳过(避免自装自己)
523
+
524
+ 老项目上的扣拼布局可走 `devflow skills migrate [--scope=user|project]` 迁进 `devflow-kit/` 子目录。
525
+
526
+ ### 14.3 `devflow init` 自动推导
527
+
528
+ 默认开启,仅读检测到以下事实并写进 `devflow/config.json#detect`:
529
+
530
+ - `git remote get-url origin` → 推导 host / project group / project name(支持 GitLab / GitHub / SSH 三种 URL 格式)
531
+ - 项目语言:Java(`pom.xml` / `build.gradle*`) / Go(`go.mod`) / Node(`package.json`) / Python(`pyproject.toml` / `requirements.txt`) / Vue(`vue.config.*` / `vite.config.*` + `vue` dep)
532
+ - 主分支:`master` / `main` / 自定义(读 `git symbolic-ref refs/remotes/origin/HEAD`)
533
+ - Jenkins job 候选:基于 project group/name 推导
534
+
535
+ 各 skill 在会话开头会读 `config.detect.language`,加载对应语言的 `references/language-cheatsheets/<lang>.md`。
536
+
537
+ ### 14.4 默认分支兼容 master / main
538
+
539
+ 公司内部项目多以 `master` 为主,社区/公网项目多以 `main` 为主。`devflow init` / `devflow apply --start` / `devflow deliver --base=<auto>` 都走同一个 `detectDefaultBranch()` 实现:优先 `git symbolic-ref` 推导,其次 `git branch --list master / main`,底底 fallback 到 `master`。CI 模板中使用 `${DEVFLOW_DEFAULT_BRANCH}` 占位符。
540
+
541
+ ### 14.5 SMTP 零依赖驱动
542
+
543
+ 原 arb 的 `deploy-submit/send-email.py` 被 Node 零依赖重写,完全对齐:
544
+
545
+ - SMTPS(465) / STARTTLS(587) / plain(25)三种连接模式
546
+ - `AUTH PLAIN` / `AUTH LOGIN` 自动协商(Exchange / 企业邮默认 LOGIN)
547
+ - Markdown → HTML(表格 / 列表 / 标题 / 粗体 / 行内代码)
548
+ - 多附件 + RFC 2047 中文 Subject 编码
549
+
550
+ `devflow deliver --notify` 在 PR 创建后自动发邮件;`--notify-dry-run` 只组装 MIME 不连 SMTP。
551
+
552
+ ### 14.6 WeKnora 驱动变成纯配置化
553
+
554
+ 初稿里的 WeKnora 驱动依赖内网 arb 奇形接口;v0.1 已重构为 **纯配置驱动**。驱动内部只保留一份最小通用 `DEFAULT_CONTRACT`(REST POST/PUT/PATCH),所有 内网奇形 endpoint / auth header / paths / body / responsePath 都可通过 `devflow provider add kb.weknora --from=<local-arb.json>` 覆盖。该本地参考文件 **不提交、不打包、不推 npm**,仅造内网使用(参见 `docs/internal-gitlab-setup.md` §2.3)。
555
+
556
+ ### 14.7 分层 skill 内容结构
557
+
558
+ 为解决"初稿 SKILL.md 太短,覆盖不了 arb-workflow-kit 那里的方法论深度",核心流程 skill 采用分层结构:
559
+
560
+ - `SKILL.md`(100-150 行)仅含:触发时机、CLI 契约、入出处、反模式
561
+ - `references/`(富内容、按需加载)含:详细 checklist、输出模板、升级 playbook、语言 cheatsheet
562
+
563
+ 语言 cheatsheet 钉住内部主要 4 语言:
564
+
565
+ - `references/language-cheatsheets/java-spring-mybatis.md`
566
+ - `references/language-cheatsheets/go.md`
567
+ - `references/language-cheatsheets/python.md`
568
+ - `references/language-cheatsheets/vue.md`
569
+
570
+ 加载时机:skill 在每次会话开头读 `devflow/config.json#detect.language`,只加载匹配的那份。
571
+
572
+ ### 14.8 9 种测试框架 + 5 种覆盖率解析器
573
+
574
+ `devflow test <kind>` 按 stdout 检测并解析 9 种测试框架输出:
575
+
576
+ Jest / Vitest / Mocha / Tap / Node `node:test` / Go `go test` / Python pytest / Python `unittest` / JUnit XML
577
+
578
+ 覆盖率识别 5 种格式:Istanbul JSON summary / LCOV / Cobertura XML / Go cover profile / JaCoCo XML。默认产出统一结构的 `reports/test-report.md#<kind>` section,含机器可读 meta(`status: pass|fail`、`total/passed/failed/skipped`、`coverage`)供 CI / dashboard 调用;需要兼容旧工具时可用 `--split-report` 额外写 `<kind>-test.md`。
579
+
580
+ ---
581
+
582
+ ---
583
+
584
+ ## 附录 A:level 与可选产物启用矩阵
585
+
586
+ (详见 §9 表格)
587
+
588
+ ## 附录 B:knowledge 4 域 9 类详细说明
589
+
590
+ | 域 | 类 | 内容类型 | 典型文件 |
591
+ |----|----|---------|---------|
592
+ | 1-domain | concepts | 术语与领域模型 | `保险术语表.md`、`订单状态机.md` |
593
+ | 1-domain | scenarios | 端到端业务场景 | `保险补贴申请.md`(主角+目标+触发) |
594
+ | 1-domain | rules | 业务规则与决策 | `合规跳转决策表.md` |
595
+ | 2-system | services | 服务/模块概述 + 代码地图 | `[order_service] 概述.md` |
596
+ | 2-system | contracts | 接口契约 | `订单 REST API.md`、`Kafka events.md` |
597
+ | 2-system | decisions | ADR 架构决策 | `ADR-001-选择-MyBatis.md` |
598
+ | 3-ops | runbooks | 排查手册/SOP | `Redis 连接抖动 SOP.md` |
599
+ | 3-ops | incidents | 故障复盘 | `2026-04-XX 支付超时复盘.md` |
600
+ | 3-ops | environments | 环境/基础设施清单 | `测试环境配置.md`、`Kafka topics.md` |
601
+ | 4-archive | solutions | 已上线技术方案 | `[SCRUM-15803] 续期签约码方案.md` |
602
+
603
+ ## 附录 C:从 arb-knowledge 7 类迁移映射
604
+
605
+ | arb-knowledge 7 类 | improved 9 类 |
606
+ |------------------|--------------|
607
+ | 业务场景 | 1-domain/scenarios |
608
+ | 业务流程 | 1-domain/scenarios(合并) |
609
+ | 业务规则 | 1-domain/rules |
610
+ | 概念与术语 | 1-domain/concepts |
611
+ | 技术方案 | 4-archive/solutions |
612
+ | 异常与案例 | 3-ops/incidents |
613
+ | 后端服务基础信息 | 2-system/services |
614
+
615
+ 新增分类(arb 缺失):2-system/contracts、2-system/decisions、3-ops/runbooks、3-ops/environments — 由用户自行填充。
616
+
617
+ `devflow knowledge migrate --from arb-7 --to improved-9` 自动重命名目录、重写 .meta.json 路径键。