ai-project-manage-cli 2.0.26 → 3.0.2

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 (293) hide show
  1. package/dist/index.js +500 -20
  2. package/package.json +27 -25
  3. package/template/apm.config.json +5 -0
  4. package/template/deploy/README.md +3 -0
  5. package/template/skills/apm-review/SKILL.md +38 -0
  6. package/template/skills/apm-review/apm-review-reference.md +89 -0
  7. package/template/workitems/README.md +19 -0
  8. package/README.md +0 -171
  9. package/dist/api/cli.d.ts +0 -228
  10. package/dist/api/cli.d.ts.map +0 -1
  11. package/dist/api/cli.js +0 -3
  12. package/dist/api/cli.js.map +0 -1
  13. package/dist/api/client.d.ts +0 -5
  14. package/dist/api/client.d.ts.map +0 -1
  15. package/dist/api/client.js +0 -30
  16. package/dist/api/client.js.map +0 -1
  17. package/dist/api/http.d.ts +0 -21
  18. package/dist/api/http.d.ts.map +0 -1
  19. package/dist/api/http.js +0 -108
  20. package/dist/api/http.js.map +0 -1
  21. package/dist/api/index.d.ts +0 -6
  22. package/dist/api/index.d.ts.map +0 -1
  23. package/dist/api/index.js +0 -13
  24. package/dist/api/index.js.map +0 -1
  25. package/dist/api/request-config.d.ts +0 -25
  26. package/dist/api/request-config.d.ts.map +0 -1
  27. package/dist/api/request-config.js +0 -73
  28. package/dist/api/request-config.js.map +0 -1
  29. package/dist/api/requirement.d.ts +0 -1
  30. package/dist/api/requirement.d.ts.map +0 -1
  31. package/dist/api/requirement.js +0 -2
  32. package/dist/api/requirement.js.map +0 -1
  33. package/dist/apm-dotenv.d.ts +0 -8
  34. package/dist/apm-dotenv.d.ts.map +0 -1
  35. package/dist/apm-dotenv.js +0 -73
  36. package/dist/apm-dotenv.js.map +0 -1
  37. package/dist/cli/agent-stream-log.d.ts +0 -41
  38. package/dist/cli/agent-stream-log.d.ts.map +0 -1
  39. package/dist/cli/agent-stream-log.js +0 -364
  40. package/dist/cli/agent-stream-log.js.map +0 -1
  41. package/dist/cli/commands/auth.d.ts +0 -3
  42. package/dist/cli/commands/auth.d.ts.map +0 -1
  43. package/dist/cli/commands/auth.js +0 -51
  44. package/dist/cli/commands/auth.js.map +0 -1
  45. package/dist/cli/commands/chat.d.ts +0 -3
  46. package/dist/cli/commands/chat.d.ts.map +0 -1
  47. package/dist/cli/commands/chat.js +0 -32
  48. package/dist/cli/commands/chat.js.map +0 -1
  49. package/dist/cli/commands/comment.d.ts +0 -3
  50. package/dist/cli/commands/comment.d.ts.map +0 -1
  51. package/dist/cli/commands/comment.js +0 -66
  52. package/dist/cli/commands/comment.js.map +0 -1
  53. package/dist/cli/commands/config.d.ts +0 -3
  54. package/dist/cli/commands/config.d.ts.map +0 -1
  55. package/dist/cli/commands/config.js +0 -39
  56. package/dist/cli/commands/config.js.map +0 -1
  57. package/dist/cli/commands/deploy-backend.d.ts +0 -7
  58. package/dist/cli/commands/deploy-backend.d.ts.map +0 -1
  59. package/dist/cli/commands/deploy-backend.js +0 -77
  60. package/dist/cli/commands/deploy-backend.js.map +0 -1
  61. package/dist/cli/commands/deploy-frontend.d.ts +0 -3
  62. package/dist/cli/commands/deploy-frontend.d.ts.map +0 -1
  63. package/dist/cli/commands/deploy-frontend.js +0 -167
  64. package/dist/cli/commands/deploy-frontend.js.map +0 -1
  65. package/dist/cli/commands/get.d.ts +0 -3
  66. package/dist/cli/commands/get.d.ts.map +0 -1
  67. package/dist/cli/commands/get.js +0 -145
  68. package/dist/cli/commands/get.js.map +0 -1
  69. package/dist/cli/commands/init.d.ts +0 -3
  70. package/dist/cli/commands/init.d.ts.map +0 -1
  71. package/dist/cli/commands/init.js +0 -179
  72. package/dist/cli/commands/init.js.map +0 -1
  73. package/dist/cli/commands/minio.d.ts +0 -3
  74. package/dist/cli/commands/minio.d.ts.map +0 -1
  75. package/dist/cli/commands/minio.js +0 -65
  76. package/dist/cli/commands/minio.js.map +0 -1
  77. package/dist/cli/commands/publish.d.ts +0 -3
  78. package/dist/cli/commands/publish.d.ts.map +0 -1
  79. package/dist/cli/commands/publish.js +0 -130
  80. package/dist/cli/commands/publish.js.map +0 -1
  81. package/dist/cli/commands/release.d.ts +0 -3
  82. package/dist/cli/commands/release.d.ts.map +0 -1
  83. package/dist/cli/commands/release.js +0 -37
  84. package/dist/cli/commands/release.js.map +0 -1
  85. package/dist/cli/commands/requirement.d.ts +0 -3
  86. package/dist/cli/commands/requirement.d.ts.map +0 -1
  87. package/dist/cli/commands/requirement.js +0 -169
  88. package/dist/cli/commands/requirement.js.map +0 -1
  89. package/dist/cli/commands/set.d.ts +0 -3
  90. package/dist/cli/commands/set.d.ts.map +0 -1
  91. package/dist/cli/commands/set.js +0 -103
  92. package/dist/cli/commands/set.js.map +0 -1
  93. package/dist/cli/commands/status.d.ts +0 -3
  94. package/dist/cli/commands/status.d.ts.map +0 -1
  95. package/dist/cli/commands/status.js +0 -42
  96. package/dist/cli/commands/status.js.map +0 -1
  97. package/dist/cli/commands/update.d.ts +0 -3
  98. package/dist/cli/commands/update.d.ts.map +0 -1
  99. package/dist/cli/commands/update.js +0 -36
  100. package/dist/cli/commands/update.js.map +0 -1
  101. package/dist/cli/commands/ws.d.ts +0 -3
  102. package/dist/cli/commands/ws.d.ts.map +0 -1
  103. package/dist/cli/commands/ws.js +0 -25
  104. package/dist/cli/commands/ws.js.map +0 -1
  105. package/dist/cli/credentials.d.ts +0 -30
  106. package/dist/cli/credentials.d.ts.map +0 -1
  107. package/dist/cli/credentials.js +0 -52
  108. package/dist/cli/credentials.js.map +0 -1
  109. package/dist/cli/exit-api-error.d.ts +0 -2
  110. package/dist/cli/exit-api-error.d.ts.map +0 -1
  111. package/dist/cli/exit-api-error.js +0 -18
  112. package/dist/cli/exit-api-error.js.map +0 -1
  113. package/dist/cli/instruction-log-stream-sink.d.ts +0 -31
  114. package/dist/cli/instruction-log-stream-sink.d.ts.map +0 -1
  115. package/dist/cli/instruction-log-stream-sink.js +0 -59
  116. package/dist/cli/instruction-log-stream-sink.js.map +0 -1
  117. package/dist/cli/session.d.ts +0 -26
  118. package/dist/cli/session.d.ts.map +0 -1
  119. package/dist/cli/session.js +0 -41
  120. package/dist/cli/session.js.map +0 -1
  121. package/dist/cli/utils/parse.d.ts +0 -2
  122. package/dist/cli/utils/parse.d.ts.map +0 -1
  123. package/dist/cli/utils/parse.js +0 -12
  124. package/dist/cli/utils/parse.js.map +0 -1
  125. package/dist/cli/ws-run-command.d.ts +0 -13
  126. package/dist/cli/ws-run-command.d.ts.map +0 -1
  127. package/dist/cli/ws-run-command.js +0 -330
  128. package/dist/cli/ws-run-command.js.map +0 -1
  129. package/dist/cli-version.d.ts +0 -9
  130. package/dist/cli-version.d.ts.map +0 -1
  131. package/dist/cli-version.js +0 -61
  132. package/dist/cli-version.js.map +0 -1
  133. package/dist/cli.d.ts +0 -3
  134. package/dist/cli.d.ts.map +0 -1
  135. package/dist/cli.js +0 -36
  136. package/dist/cli.js.map +0 -1
  137. package/dist/config-store.d.ts +0 -38
  138. package/dist/config-store.d.ts.map +0 -1
  139. package/dist/config-store.js +0 -131
  140. package/dist/config-store.js.map +0 -1
  141. package/dist/core/apm-config.d.ts +0 -81
  142. package/dist/core/apm-config.d.ts.map +0 -1
  143. package/dist/core/apm-config.js +0 -147
  144. package/dist/core/apm-config.js.map +0 -1
  145. package/dist/core/backend-deploy/backend-deploy-workflow.d.ts +0 -20
  146. package/dist/core/backend-deploy/backend-deploy-workflow.d.ts.map +0 -1
  147. package/dist/core/backend-deploy/backend-deploy-workflow.js +0 -86
  148. package/dist/core/backend-deploy/backend-deploy-workflow.js.map +0 -1
  149. package/dist/core/backend-deploy/command-runner.d.ts +0 -11
  150. package/dist/core/backend-deploy/command-runner.d.ts.map +0 -1
  151. package/dist/core/backend-deploy/command-runner.js +0 -47
  152. package/dist/core/backend-deploy/command-runner.js.map +0 -1
  153. package/dist/core/backend-deploy/dockerode-client/client.d.ts +0 -18
  154. package/dist/core/backend-deploy/dockerode-client/client.d.ts.map +0 -1
  155. package/dist/core/backend-deploy/dockerode-client/client.js +0 -114
  156. package/dist/core/backend-deploy/dockerode-client/client.js.map +0 -1
  157. package/dist/core/backend-deploy/dockerode-client/connection-options.d.ts +0 -6
  158. package/dist/core/backend-deploy/dockerode-client/connection-options.d.ts.map +0 -1
  159. package/dist/core/backend-deploy/dockerode-client/connection-options.js +0 -62
  160. package/dist/core/backend-deploy/dockerode-client/connection-options.js.map +0 -1
  161. package/dist/core/backend-deploy/dockerode-client/container-inspect-format.d.ts +0 -3
  162. package/dist/core/backend-deploy/dockerode-client/container-inspect-format.d.ts.map +0 -1
  163. package/dist/core/backend-deploy/dockerode-client/container-inspect-format.js +0 -23
  164. package/dist/core/backend-deploy/dockerode-client/container-inspect-format.js.map +0 -1
  165. package/dist/core/backend-deploy/dockerode-client/container-options.d.ts +0 -4
  166. package/dist/core/backend-deploy/dockerode-client/container-options.d.ts.map +0 -1
  167. package/dist/core/backend-deploy/dockerode-client/container-options.js +0 -44
  168. package/dist/core/backend-deploy/dockerode-client/container-options.js.map +0 -1
  169. package/dist/core/backend-deploy/dockerode-client/env.d.ts +0 -3
  170. package/dist/core/backend-deploy/dockerode-client/env.d.ts.map +0 -1
  171. package/dist/core/backend-deploy/dockerode-client/env.js +0 -40
  172. package/dist/core/backend-deploy/dockerode-client/env.js.map +0 -1
  173. package/dist/core/backend-deploy/dockerode-client/index.d.ts +0 -8
  174. package/dist/core/backend-deploy/dockerode-client/index.d.ts.map +0 -1
  175. package/dist/core/backend-deploy/dockerode-client/index.js +0 -17
  176. package/dist/core/backend-deploy/dockerode-client/index.js.map +0 -1
  177. package/dist/core/backend-deploy/dockerode-client/ports.d.ts +0 -9
  178. package/dist/core/backend-deploy/dockerode-client/ports.d.ts.map +0 -1
  179. package/dist/core/backend-deploy/dockerode-client/ports.js +0 -35
  180. package/dist/core/backend-deploy/dockerode-client/ports.js.map +0 -1
  181. package/dist/core/backend-deploy/dockerode-client/runtime.d.ts +0 -7
  182. package/dist/core/backend-deploy/dockerode-client/runtime.d.ts.map +0 -1
  183. package/dist/core/backend-deploy/dockerode-client/runtime.js +0 -26
  184. package/dist/core/backend-deploy/dockerode-client/runtime.js.map +0 -1
  185. package/dist/core/backend-deploy/dockerode-client/types.d.ts +0 -64
  186. package/dist/core/backend-deploy/dockerode-client/types.d.ts.map +0 -1
  187. package/dist/core/backend-deploy/dockerode-client/types.js +0 -3
  188. package/dist/core/backend-deploy/dockerode-client/types.js.map +0 -1
  189. package/dist/core/backend-deploy/image-tag.d.ts +0 -2
  190. package/dist/core/backend-deploy/image-tag.d.ts.map +0 -1
  191. package/dist/core/backend-deploy/image-tag.js +0 -15
  192. package/dist/core/backend-deploy/image-tag.js.map +0 -1
  193. package/dist/core/backend-deploy/index.d.ts +0 -3
  194. package/dist/core/backend-deploy/index.d.ts.map +0 -1
  195. package/dist/core/backend-deploy/index.js +0 -6
  196. package/dist/core/backend-deploy/index.js.map +0 -1
  197. package/dist/core/backend-deploy/local-docker-build.d.ts +0 -8
  198. package/dist/core/backend-deploy/local-docker-build.d.ts.map +0 -1
  199. package/dist/core/backend-deploy/local-docker-build.js +0 -25
  200. package/dist/core/backend-deploy/local-docker-build.js.map +0 -1
  201. package/dist/core/backend-deploy/logger.d.ts +0 -10
  202. package/dist/core/backend-deploy/logger.d.ts.map +0 -1
  203. package/dist/core/backend-deploy/logger.js +0 -22
  204. package/dist/core/backend-deploy/logger.js.map +0 -1
  205. package/dist/core/backend-deploy/registry-login-push.d.ts +0 -24
  206. package/dist/core/backend-deploy/registry-login-push.d.ts.map +0 -1
  207. package/dist/core/backend-deploy/registry-login-push.js +0 -37
  208. package/dist/core/backend-deploy/registry-login-push.js.map +0 -1
  209. package/dist/core/backend-deploy/remote-docker-client.d.ts +0 -11
  210. package/dist/core/backend-deploy/remote-docker-client.d.ts.map +0 -1
  211. package/dist/core/backend-deploy/remote-docker-client.js +0 -34
  212. package/dist/core/backend-deploy/remote-docker-client.js.map +0 -1
  213. package/dist/core/backend-deploy/remote-pull-image.d.ts +0 -9
  214. package/dist/core/backend-deploy/remote-pull-image.d.ts.map +0 -1
  215. package/dist/core/backend-deploy/remote-pull-image.js +0 -39
  216. package/dist/core/backend-deploy/remote-pull-image.js.map +0 -1
  217. package/dist/core/backend-deploy/resolve-dockerfile.d.ts +0 -7
  218. package/dist/core/backend-deploy/resolve-dockerfile.d.ts.map +0 -1
  219. package/dist/core/backend-deploy/resolve-dockerfile.js +0 -24
  220. package/dist/core/backend-deploy/resolve-dockerfile.js.map +0 -1
  221. package/dist/core/backend-deploy/run-docker-cli.d.ts +0 -9
  222. package/dist/core/backend-deploy/run-docker-cli.d.ts.map +0 -1
  223. package/dist/core/backend-deploy/run-docker-cli.js +0 -14
  224. package/dist/core/backend-deploy/run-docker-cli.js.map +0 -1
  225. package/dist/core/backend-deploy/types.d.ts +0 -23
  226. package/dist/core/backend-deploy/types.d.ts.map +0 -1
  227. package/dist/core/backend-deploy/types.js +0 -3
  228. package/dist/core/backend-deploy/types.js.map +0 -1
  229. package/dist/core/branch-name.d.ts +0 -8
  230. package/dist/core/branch-name.d.ts.map +0 -1
  231. package/dist/core/branch-name.js +0 -37
  232. package/dist/core/branch-name.js.map +0 -1
  233. package/dist/core/constants.d.ts +0 -4
  234. package/dist/core/constants.d.ts.map +0 -1
  235. package/dist/core/constants.js +0 -16
  236. package/dist/core/constants.js.map +0 -1
  237. package/dist/core/cursor-cmd.d.ts +0 -30
  238. package/dist/core/cursor-cmd.d.ts.map +0 -1
  239. package/dist/core/cursor-cmd.js +0 -193
  240. package/dist/core/cursor-cmd.js.map +0 -1
  241. package/dist/core/minio.d.ts +0 -37
  242. package/dist/core/minio.d.ts.map +0 -1
  243. package/dist/core/minio.js +0 -159
  244. package/dist/core/minio.js.map +0 -1
  245. package/dist/core/parse-testcase-md.d.ts +0 -17
  246. package/dist/core/parse-testcase-md.d.ts.map +0 -1
  247. package/dist/core/parse-testcase-md.js +0 -79
  248. package/dist/core/parse-testcase-md.js.map +0 -1
  249. package/dist/core/std-event-handler.d.ts +0 -25
  250. package/dist/core/std-event-handler.d.ts.map +0 -1
  251. package/dist/core/std-event-handler.js +0 -90
  252. package/dist/core/std-event-handler.js.map +0 -1
  253. package/dist/core/utils.d.ts +0 -19
  254. package/dist/core/utils.d.ts.map +0 -1
  255. package/dist/core/utils.js +0 -71
  256. package/dist/core/utils.js.map +0 -1
  257. package/dist/core/ws-client.d.ts +0 -29
  258. package/dist/core/ws-client.d.ts.map +0 -1
  259. package/dist/core/ws-client.js +0 -81
  260. package/dist/core/ws-client.js.map +0 -1
  261. package/dist/employee-ws-client.d.ts +0 -42
  262. package/dist/employee-ws-client.d.ts.map +0 -1
  263. package/dist/employee-ws-client.js +0 -99
  264. package/dist/employee-ws-client.js.map +0 -1
  265. package/dist/index.d.ts +0 -6
  266. package/dist/index.d.ts.map +0 -1
  267. package/dist/index.js.map +0 -1
  268. package/templates/commands/apm-auto-dev.md +0 -6
  269. package/templates/commands/apm-fixbug.md +0 -6
  270. package/templates/commands/apm-prd-review.md +0 -6
  271. package/templates/commands/apm-prd-sync.md +0 -6
  272. package/templates/skills/apm-apply-change/SKILL.md +0 -191
  273. package/templates/skills/apm-auto-dev/SKILL.md +0 -170
  274. package/templates/skills/apm-fixbug/SKILL.md +0 -97
  275. package/templates/skills/apm-propose/SKILL.md +0 -123
  276. package/templates/skills/apm-propose/design-instruction.md +0 -94
  277. package/templates/skills/apm-propose/propose-instruction.md +0 -81
  278. package/templates/skills/apm-propose/specs-instruction.md +0 -114
  279. package/templates/skills/apm-propose/tasks-instruction.md +0 -90
  280. package/templates/skills/apm-release/SKILL.md +0 -87
  281. package/templates/skills/code-change-summary/SKILL.md +0 -84
  282. package/templates/skills/code-change-summary/summary-template.md +0 -55
  283. package/templates/skills/code-deploy/SKILL.md +0 -39
  284. package/templates/skills/prd-review/SKILL.md +0 -48
  285. package/templates/skills/prd-review/output-template.md +0 -47
  286. package/templates/skills/prd-sync/SKILL.md +0 -74
  287. package/templates/skills/prd-sync/updated-requirement-template.md +0 -39
  288. package/templates/skills/prd-testcase/SKILL.md +0 -82
  289. package/templates/skills/prd-testcase/reference.md +0 -44
  290. package/templates/skills/product-capability-inventory/SKILL.md +0 -131
  291. package/templates/skills/product-capability-inventory/template.md +0 -80
  292. package/templates/skills/product-capability-inventory//344/275/277/347/224/250/350/257/264/346/230/216/344/271/246.md +0 -36
  293. package/templates/skills/product-capability-inventory//347/233/256/345/275/225/350/247/204/350/214/203.md +0 -58
@@ -1,131 +0,0 @@
1
- ---
2
- name: product-capability-inventory
3
- description: 仅在用户明确表达要更新或同步产品能力清单(.apm/product-capability-inventory)时使用——例如明确说更新能力清单、同步清单、初始化/维护 CAP 文档、更新产品说明书(指本清单)。泛泛提及 CAP、产品文档或读清单时不要自动启用。
4
- ---
5
-
6
- # 产品能力清单维护
7
-
8
- ## 何时启用本技能(必须)
9
-
10
- - **启用**:用户**明确表达**要**更新、初始化或同步**仓库内产品能力清单(`.apm/product-capability-inventory/`,即本仓库的「产品说明书」落地位置),或同义表述(如「同步能力清单」「把 CAP 文档跟上代码」)。
11
- - **不启用**:仅实现需求、评审、浏览代码、或对话里顺带提到 CAP/能力清单但**没有更新清单的意图**时,**不要**按本技能去改文档;需要时只读现有 `.apm/` 即可。
12
-
13
- 落地数据在 `.apm/product-capability-inventory/`。**目录树、各文件职责、`index.md` / `CAP-*.md` 的章节与字段、链接格式** 等一律见独立文档 **[`目录规范.md`](./目录规范.md)**(初始化与补全时按该文档施工;更新时新增/改写条目亦须符合其中格式)。**`使用说明书.md`** 从同目录模板 **[`使用说明书.md`](./使用说明书.md)** 复制到 `.apm/product-capability-inventory/`。
14
-
15
- 本技能的核心目标是避免“**需求入口写的是 A,但代码改到 B**”这类错误:为每个 CAP 强制维护 **入口锚点 + UI 识别锚点 + 实现锚点** 三件套,并在生成 spec/实现前做映射校验。
16
-
17
- ## 工作流程
18
-
19
- 在用户已明确要处理产品能力清单的前提下,按顺序判断:
20
-
21
- 1. **是否存在清单根目录**
22
- 若仓库中**不存在**路径 `.apm/product-capability-inventory/`(未创建该文件夹),则**必须**走 **「场景 1:初始化」**:在该路径下按 **[`目录规范.md`](./目录规范.md)** **一次性建好目录树**,并写入与各文件职责匹配的初始 Markdown(内容可占位,但结构、文件名、小节须齐全)。
23
-
24
- 2. **目录已存在**
25
- 若 `.apm/product-capability-inventory/` 已存在,但缺少总览 `README.md`、**`使用说明书.md`**、或缺少某系统子目录下的 `index.md` 等 **[`目录规范.md`](./目录规范.md)** 所要求的文件,则**补建缺失部分**(等同初始化中对应步骤;`使用说明书.md` 缺失时从技能目录模板**复制**),仍遵守该文档中的目录与结构要求。
26
-
27
- 3. **结构已完整**
28
- 若 `.apm/product-capability-inventory/` 已存在且具备规范要求的文件,且用户明确要**更新或同步**清单时,走 **「场景 2:更新」**(见后文):以**本分支相对上线基线(如 `main`/`master`)的代码变更**为依据,补齐或调整能力条目与术语,并写变更记录。
29
-
30
- ## 使用说明(给谁用)
31
-
32
- | 角色 | 用法 |
33
- | ------------ | -------------------------------------------------------------------------------------------------- |
34
- | 产品 / 评审 | 用 `index.md` 核对「系统已有能力」;新需求写清关联 CAP 或缺口。 |
35
- | 研发 / AI | 实现前读相关 `CAP-*.md`;需要改清单时,仅在用户明确说要同步/更新清单后,再按本技能 **更新** 清单。 |
36
- | 写 spec / 测 | 先 **PRD → CAP** 对照,再写验收与用例。 |
37
-
38
- ## 场景 1:初始化(无 `.apm/product-capability-inventory` 或结构不完整)
39
-
40
- **何时进入本场景**
41
-
42
- - 仓库中**不存在**目录 `.apm/product-capability-inventory/`,或
43
- - 该目录存在但**缺少** [`目录规范.md`](./目录规范.md) 所要求的 `README.md`、**`使用说明书.md`**、或某系统子目录下缺少 `index.md`。
44
-
45
- **动作(按顺序执行)**
46
-
47
- 1. 若不存在 `.apm/product-capability-inventory/`,**创建该目录**。
48
- 2. **放置使用说明书**:将 **`.apm/skills/product-capability-inventory/使用说明书.md`** **复制**为 **`.apm/product-capability-inventory/使用说明书.md`**(内容保持与模板一致;若目标文件已存在且非空,可跳过覆盖,除非用户要求重置)。
49
- 3. 创建 `.apm/product-capability-inventory/README.md`:写明用途,包含 **子系统列表** 表格(可占位),并含指向 **`[使用说明书.md](./使用说明书.md)`** 的链接或一句引导。
50
- 4. 选定 `<系统名>`,创建 `.apm/product-capability-inventory/<系统名>/index.md`,且 **[`目录规范.md`](./目录规范.md)** 中 **`index.md` 各章节**均已出现(表格可空、须有句说明或一行初始化记录)。
51
- 5. 若可从代码识别菜单/路由(如 `apps/fe/src/router/menus.tsx`),至少草拟 **1 个** `CAP-*.md` 示例,并在 `index.md` 的 **能力条目目录** 表中登记一行。
52
- 6. 在总览 `README.md` 的子系统列表中增加指向 `<系统名>/index.md` 的链接。
53
- 7. 告知用户:清单已按 **[`目录规范.md`](./目录规范.md)** 初始化;**勿**使用已废弃路径 `.apm/capability/`。
54
-
55
- **禁止**:把密钥写入文档;实现索引用仓库内路径即可。
56
-
57
- ## 场景 2:目录已存在时的更新(仅在有明确意图时)
58
-
59
- 仅在用户**明确表达**要更新或同步产品能力清单时执行(例如「同步能力清单」「更新 CAP」「按本分支上线内容更新清单」)。**不要**在未收到此类明确指令时自动改清单。
60
-
61
- 更新时按下面顺序执行(**以本分支拟上线代码为准**,基线一般为 `main`/`master` 或与用户指定的对比分支;用 `git log`、`git diff <base>...HEAD`、变更文件列表等理解「本次会随分支上线什么」)。
62
-
63
- ### 1. 理解本次上线的代码(本分支 commit 的代码)
64
-
65
- - 对比**当前分支**与**上线基线分支**(默认 `main` 或 `master`,以仓库默认分支为准)之间的 **commit 与 diff**。
66
- - 关注:前端路由/菜单、页面与交互、后端模块与接口、权限与数据范围、配置或环境相关行为等**用户可见或可感知**的变化。
67
-
68
- ### 2. 提取可写入能力条目的要点
69
-
70
- - 将变更归纳为**能力粒度**的条目:新入口/新流程、行为变化、新依赖、下线或移除的能力等。
71
- - 每条要点应对应或归入某个 **CAP**(同一域下合并相关小改动,避免碎片 CAP)。
72
-
73
- ### 3. 补齐能力条目(按格式;可增、可改、可删)
74
-
75
- - **新增**:对本次上线**新增**的用户可见能力,按 **[`目录规范.md`](./目录规范.md)** 中 `CAP-*.md` 的字段**新建** `CAP-<域>-<序号>.md`,并在对应系统 `index.md` 的 **能力条目目录** 表中增加一行(含关键词与链接)。
76
- - **更新**:对已有 CAP 覆盖的能力,若入口、主流程、前置条件、实现索引等随本分支变化,**修改**对应 `CAP-*.md` 表格内容,并视情况更新 **跨能力依赖**。
77
- - **删除**:若本分支**已删除**某段产品代码且**不再提供**该能力,可**删除**对应 `CAP-*.md` 文件,并在 `index.md` 的 **能力条目目录** 中移除该行;不删文件而在该 CAP 内标注「已下线」并在目录表注明。
78
- - 全文格式、链接规则仍遵守 **[`目录规范.md`](./目录规范.md)**(含其中「格式说明」)。
79
-
80
- **CAP 字段规范(强制)**:每个 `CAP-*.md` 必须包含并维护以下锚点(缺一则视为“不可用于约束 AI”的 CAP,需要先补齐再推进 spec/实现):
81
- - **入口锚点**:用“用户路径”把入口写死(菜单/抽屉/Tab/表格等层级),避免同名组件/表格被误选。
82
- - **UI 识别锚点**:2~5 个可验证信号(标题/表头列名/关键文案/`data-testid`),用于在 spec 与测试中确认“就是这个区域”。
83
- - **实现锚点**:允许修改的落点范围(前端文件/组件、后端模块/接口)。后续任何实现与修复必须优先落在这个范围内,否则先判定为“入口不确定/映射不通过”,不要直接改代码。
84
-
85
- ### 4. 术语与口径(易混淆业务点)
86
-
87
- - 若本次上线引入或变更了**易混淆的术语、统计口径、业务规则**(与纯技术重构无关),在对应系统 `index.md` 的 **术语与口径** 表中**增补或修订**行(术语、定义、易混点)。
88
-
89
- ### 5. 变更记录与元信息
90
-
91
- - 在对应系统 `index.md` 的 **变更记录** 表中**追加一行**:
92
- - **日期**:更新当日(或用户指定日期);
93
- - **版本**:在 **元信息** 中递增文档版本(如 v0.4 → v0.5),与本行一致或在本行摘要中说明;
94
- - **变更摘要**:概括本分支对清单的改动(如新增/调整/下线哪些 CAP、术语变更要点);
95
- - **作者**:填写**当前 Git 分支名称**(`git branch --show-current` 或等价方式),用于与上线分支追溯。
96
- - 若本次还新增 **系统/模块子目录**,在 `.apm/product-capability-inventory/README.md` 的 **子系统列表** 中增加一行。
97
-
98
- ### 6. 一致性检查
99
-
100
- - 入口 URL、菜单与权限描述须与代码一致(如本仓库前端 `basename` `/contract-payment-collection`,以 `menus.tsx`、`MainLayout`、`getMenus` 等为准)。
101
-
102
- ### 7. 生成 spec 的强制“入口锚点”流程(用于防改错页面)
103
-
104
- 当用户要“根据需求生成 spec”(或你将要进入实现/测试闭环)时,必须先执行**映射校验**,再写 spec 正文:
105
-
106
- 1. 输出一张 **「需求点 → CAP 映射表」**(写在 spec 或生成日志均可),每行至少包含:
107
- - 需求点(标题或 REQ ID)
108
- - 命中的 **CAP ID**
109
- - **入口锚点**(从 CAP 拿)
110
- - **UI 识别锚点**(从 CAP 拿,至少 2 个)
111
- - **实现锚点**(从 CAP 拿:允许修改文件/模块范围)
112
- 2. **拒绝条件**:若任一需求点无法映射到 CAP,或 CAP 缺少上述锚点字段,必须标记为“需补充 CAP/入口锚点”,停止继续生成实现性 spec(只能输出待澄清项/待补充项)。
113
- 3. spec 正文中应把入口锚点写成显式小节(例如“Scope/Entry anchor”),确保后续 code-test-fix 循环不会把修复落到错误入口。
114
-
115
- **不强制**:若本分支仅为**未触达任何用户可见行为**的纯重构,可在变更记录写「无能力清单变更」或跳过正文修改(仍可按需只 bump 版本或省略本次记录,与用户约定一致即可)。
116
-
117
- ## 更新逻辑(决策表)
118
-
119
- | 变更类型 | 更新对象 |
120
- | ------------------------------ | --------------------------------------------------------------- |
121
- | 新菜单/新路由 | 新 CAP 或扩展现有 CAP 的入口/主流程;`index.md` 目录表 + 关键词 |
122
- | 新接口/新模块 | `CAP-*.md` 实现索引;必要时术语表 |
123
- | 权限/数据范围变化 | `index.md` 角色与数据范围;相关 CAP 前置条件 |
124
- | 跨模块依赖(导入依赖业务员等) | `index.md` 跨能力依赖表 |
125
- | 环境依赖(SMTP、MinIO) | 对应 CAP 前置条件或术语 |
126
-
127
- ## Guardrails
128
-
129
- - **删除与下线**:若代码已移除对应能力,按「场景 2」可删除 CAP 或在条目标注「已下线」,并同步 `index.md` 目录表与变更记录;勿让清单描述仍像功能可用。
130
- - 不编造未在代码中出现的路由或 API;不确定时查 `menus.tsx`、对应 controller。
131
- - **优先补文档再写代码**:当入口不明确(同名表格/组件多处存在)时,先补 `product-capability-inventory` 的入口锚点与 UI 识别锚点,再生成 spec/实现。
@@ -1,80 +0,0 @@
1
- # 产品能力清单(模板)
2
-
3
- > **用途**:记录「系统里已经有什么」,供 PRD / spec / AI 生成实现时引用,减少「沿用现有流程」但模型不知道指哪里的问题。
4
- > **维护**:产品与研发共担;**有行为变更的迭代必须同步更新**对应条目或版本说明。
5
- > **命名**:下文 `[CAP-xxx]` 为稳定 ID,PRD 可写「依赖 CAP-xxx」。
6
-
7
-
8
- ## 0. 元信息
9
-
10
- | 字段 | 说明 |
11
- |------|------|
12
- | 产品 / 子系统 | |
13
- | 文档版本 | `v1.0.0` / 日期 |
14
- | 上次评审 | 人名 + 日期 |
15
- | 关联仓库路径 | 可选,如 `apps/fe`、`servers/be` |
16
-
17
-
18
- ## 1. 角色与数据范围
19
-
20
- | 角色 / 维度 | 说明 | 备注 |
21
- |---------------|------|------|
22
- | 例如:超管 / 普通用户 | 能力差异概要 | |
23
- | 数据范围(公司、项目可见性) | | 与权限模型一致 |
24
-
25
-
26
- ## 1.b 能力条目目录(仅写在各系统 `index.md`)
27
-
28
- > 用于索引本目录下有哪些 `CAP-*.md`,**不要**把 §2 的整段正文贴在这里。
29
-
30
- | CAP ID | 短名称 / 关键词 | 详文 |
31
- |--------|------------------|------|
32
- | CAP-xxx-01 | (便于 PRD / 检索) | [CAP-xxx-01](CAP-xxx-01.md) |
33
-
34
-
35
- ## 2. 能力条目(按域分组)
36
-
37
- 每条建议固定结构,便于检索与 PRD 引用。
38
-
39
- ### 2.x [CAP-领域-序号] 能力短名称
40
-
41
- | 项 | 内容 |
42
- |----|------|
43
- | **一句话** | 用户能完成什么目标 |
44
- | **入口** | 菜单路径 / URL 模式 / 移动端路由(描述“去哪里找得到”) |
45
- | **入口锚点(强制)** | 用“用户路径”把入口写死(例如:`项目列表 → 编辑抽屉 → 收款 → 回款记录 → 明细表`),用于避免改错页面 |
46
- | **UI 识别锚点(强制)** | 2~5 个可验证信号:页面标题/模块标题/表格表头列名/关键文案/`data-testid`(至少 2 个),用于确认“就是这个区域” |
47
- | **前置条件** | 登录、权限、数据存在性等 |
48
- | **主流程** | 3~7 步,可编号 |
49
- | **结束状态** | 成功后的数据或页面状态 |
50
- | **与外部/邮件/任务** | 若涉及异步、配置依赖,写一句(如 SMTP) |
51
- | **已知限制** | 本期不做、配额、浏览器要求等 |
52
- | **实现锚点(强制,研发填)** | 允许修改的“落点范围”:前端文件/组件名、后端模块/接口(可选行号或函数名);用于约束 AI 改动范围 |
53
- | **反例(可选但推荐)** | 1~3 条“不要改的地方/不要发生的行为”(例如“不要改 B 页面同名表格”“不要删除旧图表”) |
54
- | **关联历史需求** | REQ ID / 飞书文档链接(可选) |
55
-
56
- ---
57
-
58
- ## 3. 跨能力依赖与复用关系
59
-
60
- | 能力 A | 依赖 / 复用 | 能力 B | 说明 |
61
- |--------|----------------|--------|------|
62
- | [CAP-…] | 复用审批状态 | [CAP-…] | 一句话 |
63
-
64
- (用于回答「和原来一样」到底指哪条链路。)
65
-
66
- 可与 **§4、§5 一并写在各系统目录的 `index.md`** 中,无需单独文件。
67
-
68
- ## 4. 术语与口径
69
-
70
- | 术语 | 定义 | 易混点 |
71
- |------|------|--------|
72
- | | | |
73
-
74
- ---
75
-
76
- ## 5. 变更记录
77
-
78
- | 日期 | 版本 | 变更摘要 | 作者 |
79
- |------|------|----------|------|
80
- | | | | |
@@ -1,36 +0,0 @@
1
- # 产品能力清单 — 使用说明
2
-
3
- > 本文件由仓库初始化清单时从 **`.apm/skills/product-capability-inventory/使用说明书.md`** 复制到此处;可直接编辑本副本以补充团队约定,无需回写技能目录。
4
-
5
- ## 本目录是什么
6
-
7
- `docs/product-capability-inventory/` 存放**产品能力清单**:用结构化文档说明「系统里已经有哪些能力、入口在哪、流程与口径是什么」,便于产品评审、写需求、写 spec 与测试对齐,也便于研发与 AI 实现时引用。
8
-
9
- - **不是**需求文档:需求描述「要改什么」;清单描述「当前世界长什么样」。
10
- - **与代码的关系**:清单应随上线代码同步更新;维护流程见技能。
11
-
12
- ## 怎么读
13
-
14
- 1. 打开本目录下的 **`README.md`**:查看有哪些**子系统/模块**子目录。
15
- 2. 进入某一子系统目录(如 `<系统名>/`),先读 **`index.md`**:元信息、角色与数据范围、**能力条目目录**(CAP ID 列表)、跨能力依赖、术语与口径、变更记录。
16
- 3. 对感兴趣的能力,打开同目录下的 **`CAP-xxx.md`**:该能力的详述(入口、前置条件、主流程、实现索引等)。
17
-
18
- **CAP ID**:形如 `CAP-<域>-<序号>`,在 PRD 中可写「依赖 CAP-xxx」以引用稳定条目。
19
-
20
- ## 目录里常见文件
21
-
22
- | 文件 | 作用 |
23
- |------|------|
24
- | `README.md`(本目录根下) | 总览与子系统列表 |
25
- | `使用说明书.md` | 本说明(阅读指引) |
26
- | `<系统名>/index.md` | 该系统的清单入口与索引 |
27
- | `<系统名>/CAP-*.md` | 单条能力详文 |
28
-
29
- ## 谁维护、如何更新
30
-
31
- - **产品 / 研发**:在迭代或上线前,按团队约定将清单与代码、口径对齐。
32
- - **更新方式**:由具备权限的同事按技能 **product-capability-inventory** 中的流程执行(初始化、按分支变更更新 CAP 与术语等);变更记录中会标注分支名等信息以便追溯。
33
-
34
- ---
35
-
36
- *模板版本:与技能目录中 `使用说明书.md` 同源;若团队有固定补充段落,可写在本文件副本末尾。*
@@ -1,58 +0,0 @@
1
- # 产品能力清单 — 目录规范
2
-
3
- ## 根路径与总览文件
4
-
5
- - **根目录**:`.apm/product-capability-inventory/`
6
- 所有产品能力清单文档的根。其下**不**把「总览」与「某系统详情」混在一个文件里;系统级内容放在子目录中。
7
-
8
- - **`.apm/product-capability-inventory/使用说明书.md`(阅读指引,来自模板)**
9
-
10
- - **来源**:初始化时从技能目录 **`.apm/skills/product-capability-inventory/使用说明书.md`** **原样复制**到上述路径(文件名固定为 `使用说明书.md`)。
11
- - **作用**:面向产品/研发/读者的**使用说明**,与总览 `README.md` 分工:`README.md` 列子系统入口;`使用说明书.md` 说明如何阅读清单、CAP 含义、维护入口指向技能。
12
- - 团队可在 `.apm/` 下的副本中增删段落;技能目录中的文件作为**模板母版**,下次新仓库初始化时仍从母版复制。
13
-
14
- - **`.apm/product-capability-inventory/README.md`(总览)**
15
- - 说明本目录用途:按系统/模块分子目录,**各子目录入口为该系统下的 `index.md`**;建议增加一句指向 **`[使用说明书.md](./使用说明书.md)`**。
16
- - 包含一张 **「子系统列表」** 表格,列至少包含:**目录(链接到 `<系统名>/index.md`)**、**说明**。新初始化时可只有一行占位或一行真实条目。
17
-
18
- ## 系统子目录与命名
19
-
20
- - **子目录名**:`.apm/product-capability-inventory/<系统或模块名>/`
21
- 使用可读的文件夹名(如本仓库示例 `contract-payment-collection`)。**一个业务系统或模块对应一个子目录**;跨系统能力在各自 `index.md` 里用「跨能力依赖」表描述关系。
22
-
23
- - **该系统内允许的文件类型**:
24
- - **`index.md`**:必填,**该系统清单的唯一入口**,所有索引类信息集中在此文件。
25
- - **`CAP-*.md`**:每条业务能力一篇,**文件名必须与 CAP ID 完全一致**,例如 `CAP-PROJ-01.md` 对应 ID `CAP-PROJ-01`。
26
- - **不要**为同一系统再拆「横向」的多个索引文件(例如单独的 glossary.md 替代 `index.md` 中的术语表);术语、变更记录、能力目录表均在 `index.md` 内用章节区分。
27
-
28
- ## `index.md`(系统入口)
29
-
30
- 初始化或补全 `index.md` 时,**章节、表头与表格样式以同目录 [`template.md`](./template.md) 为准**,不在此重复展开:
31
-
32
- - 依次包含 **§0 元信息、§1 角色与数据范围、§1.b 能力条目目录、§3 跨能力依赖、§4 术语与口径、§5 变更记录**;同一文件内**顺序可微调,不得缺项**。
33
- - **§1.b** 只出现在 `index.md`:索引本目录下有哪些 `CAP-*.md`;**勿**把 **§2** 的单条能力正文整段贴进 `index.md`(§2 对应独立文件 `CAP-*.md`,见下节)。
34
- - **变更记录**表中「作者」列:更新场景下填 **当前 Git 分支名**。
35
-
36
- ## `CAP-*.md`(单条能力详文)
37
-
38
- - **CAP ID** 与文件名一致:`CAP-<域缩写>-<序号>`,全仓库唯一;PRD 可写「依赖 CAP-xxx」。
39
- - **表格字段与表头**:完全按 [`template.md`](./template.md) **§2**(「### 2.x …」下那张表)填写;标题可用 `### CAP-领域-序号 短名称` 等形式,与同目录文件名对应。
40
- - 同目录链到其他 CAP 用相对路径;文末或文内可加 `[← 返回索引](index.md)`。
41
-
42
- ## 目录树示意
43
-
44
- ```text
45
- .apm/product-capability-inventory/
46
- README.md # 总览:用途 + 子系统列表表 + 链到使用说明书
47
- 使用说明书.md # 从技能目录「使用说明书.md」模板复制,阅读指引
48
- <系统或模块名>/
49
- index.md # 该系统唯一入口:元信息、角色、能力目录、依赖、术语、变更记录
50
- CAP-<域>-<序号>.md # 单条能力详文,文件名 = CAP ID
51
- ```
52
-
53
- ## 格式说明(Markdown 与链接)
54
-
55
- - **Markdown 表格**:与 [`template.md`](./template.md) 及现有 `index.md`、`CAP-*.md` 保持一致。
56
- - **链接**:同目录内 CAP 用相对路径 `[CAP-xxx](CAP-xxx.md)`;返回索引用 `[← 返回索引](index.md)`。
57
-
58
- **字段级写法一律以 [`template.md`](./template.md) 为准**;**以本文的目录树与 `index.md` / `CAP` 分工(上两节)为准**。