@gong-ym/ai-spec-auto 0.2.14 → 0.2.15

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 (631) hide show
  1. package/.agents/commands/README.md +33 -33
  2. package/.agents/commands/claude/spec-start-review.md +88 -88
  3. package/.agents/commands/codex/spec-continue.md +74 -74
  4. package/.agents/commands/codex/spec-orchestrate.md +35 -35
  5. package/.agents/commands/codex/spec-start-review.md +88 -88
  6. package/.agents/commands/codex/spec-start.md +67 -67
  7. package/.agents/commands/codex/spec-status.md +22 -22
  8. package/.agents/commands/codex/spec-stop.md +29 -29
  9. package/.agents/commands/codex/spec-update.md +40 -40
  10. package/.agents/commands/common/branch-review.md +117 -117
  11. package/.agents/commands/common/project-init.md +25 -25
  12. package/.agents/commands/common/spec-continue.md +74 -74
  13. package/.agents/commands/common/spec-orchestrate.md +35 -35
  14. package/.agents/commands/common/spec-start-review.md +82 -82
  15. package/.agents/commands/common/spec-start.md +67 -67
  16. package/.agents/commands/common/spec-status.md +22 -22
  17. package/.agents/commands/common/spec-stop.md +29 -29
  18. package/.agents/commands/common/spec-update.md +60 -40
  19. package/.agents/commands/cursor/opsx-apply.md +55 -55
  20. package/.agents/commands/cursor/opsx-archive.md +48 -48
  21. package/.agents/commands/cursor/opsx-explore.md +45 -45
  22. package/.agents/commands/cursor/opsx-propose.md +59 -59
  23. package/.agents/commands/cursor/spec-continue.md +63 -63
  24. package/.agents/commands/cursor/spec-orchestrate.md +53 -53
  25. package/.agents/commands/cursor/spec-start-review.md +78 -78
  26. package/.agents/commands/cursor/spec-start.md +59 -59
  27. package/.agents/commands/cursor/spec-status.md +30 -30
  28. package/.agents/commands/cursor/spec-stop.md +29 -29
  29. package/.agents/commands/cursor/spec-update.md +41 -41
  30. package/.agents/flows/FRONTMATTER.md +263 -263
  31. package/.agents/flows/RUN_OUTPUT.md +263 -263
  32. package/.agents/flows/common/README.md +29 -29
  33. package/.agents/flows/common/bugfix-to-verification.md +95 -95
  34. package/.agents/flows/common/change-to-architecture-review.md +89 -89
  35. package/.agents/flows/common/change-to-release.md +94 -94
  36. package/.agents/flows/common/prd-to-delivery.md +184 -184
  37. package/.agents/flows/common/requirement-to-observability.md +97 -97
  38. package/.agents/orchestration/README.md +22 -22
  39. package/.agents/orchestration/expert-dispatch-spec.md +155 -155
  40. package/.agents/orchestration/expert-executor-spec.md +84 -84
  41. package/.agents/orchestration/expert-runtime-action-spec.md +73 -73
  42. package/.agents/orchestration/runtime-state-handoff-spec.md +264 -264
  43. package/.agents/orchestration/task-anchor-spec.md +212 -212
  44. package/.agents/orchestration/task-orchestrator-adapter-payload.md +153 -153
  45. package/.agents/orchestration/task-orchestrator-bootstrap-payload.md +145 -145
  46. package/.agents/orchestration/task-orchestrator-output-extractor-spec.md +93 -93
  47. package/.agents/orchestration/task-orchestrator-run-plan-template.md +312 -312
  48. package/.agents/orchestration/task-orchestrator-runtime-hooks.md +214 -214
  49. package/.agents/registry/README.md +63 -63
  50. package/.agents/registry/flows.json +125 -125
  51. package/.agents/registry/profiles.json +101 -101
  52. package/.agents/registry/roles.json +1265 -1265
  53. package/.agents/registry/rules.json +148 -148
  54. package/.agents/registry/scenario-packages.json +123 -123
  55. package/.agents/registry/skills.json +130 -130
  56. package/.agents/roles/INDEX.md +346 -346
  57. package/.agents/roles/common/README.md +76 -76
  58. package/.agents/roles/common/archive-change.md +80 -80
  59. package/.agents/roles/common/backend-implementer.md +92 -92
  60. package/.agents/roles/common/code-guardian.md +151 -151
  61. package/.agents/roles/common/frontend-implementer.md +146 -146
  62. package/.agents/roles/common/requirement-analyst.md +138 -138
  63. package/.agents/roles/common/task-orchestrator-routing.md +301 -301
  64. package/.agents/roles/common/task-orchestrator.md +224 -224
  65. package/.agents/roles/common/tooling-implementer.md +92 -92
  66. package/.agents/roles/domains/README.md +35 -35
  67. package/.agents/roles/domains/delivery/README.md +11 -11
  68. package/.agents/roles/domains/delivery/container-specialist.md +50 -50
  69. package/.agents/roles/domains/delivery/deployment-specialist.md +50 -50
  70. package/.agents/roles/domains/delivery/pipeline-specialist.md +50 -50
  71. package/.agents/roles/domains/demand-design/README.md +16 -16
  72. package/.agents/roles/domains/demand-design/api-contract-specialist.md +52 -52
  73. package/.agents/roles/domains/demand-design/design-collaborator.md +58 -58
  74. package/.agents/roles/domains/documentation/README.md +11 -11
  75. package/.agents/roles/domains/documentation/api-doc-specialist.md +50 -50
  76. package/.agents/roles/domains/documentation/component-doc-specialist.md +49 -49
  77. package/.agents/roles/domains/documentation/technical-writing-specialist.md +48 -48
  78. package/.agents/roles/domains/engineering/README.md +17 -17
  79. package/.agents/roles/domains/engineering/architecture-advisor.md +53 -53
  80. package/.agents/roles/domains/engineering/build-specialist.md +51 -51
  81. package/.agents/roles/domains/engineering/dependency-governor.md +52 -52
  82. package/.agents/roles/domains/governance/README.md +17 -17
  83. package/.agents/roles/domains/governance/api-governance-specialist.md +51 -51
  84. package/.agents/roles/domains/governance/lint-policy-specialist.md +49 -49
  85. package/.agents/roles/domains/governance/route-governance-specialist.md +52 -52
  86. package/.agents/roles/domains/observability/README.md +11 -11
  87. package/.agents/roles/domains/observability/error-tracker.md +50 -50
  88. package/.agents/roles/domains/observability/event-instrumentation-specialist.md +51 -51
  89. package/.agents/roles/domains/observability/rum-analyst.md +50 -50
  90. package/.agents/roles/domains/performance/README.md +11 -11
  91. package/.agents/roles/domains/performance/asset-optimizer.md +50 -50
  92. package/.agents/roles/domains/performance/performance-auditor.md +56 -56
  93. package/.agents/roles/domains/performance/vitals-analyst.md +50 -50
  94. package/.agents/roles/domains/security-a11y/README.md +11 -11
  95. package/.agents/roles/domains/security-a11y/a11y-auditor.md +50 -50
  96. package/.agents/roles/domains/security-a11y/aria-specialist.md +51 -51
  97. package/.agents/roles/domains/security-a11y/security-reviewer.md +49 -49
  98. package/.agents/roles/domains/testing/README.md +12 -12
  99. package/.agents/roles/domains/testing/coverage-analyst.md +50 -50
  100. package/.agents/roles/domains/testing/e2e-test-specialist.md +51 -51
  101. package/.agents/roles/domains/testing/unit-test-specialist.md +56 -56
  102. package/.agents/roles/domains/testing/verification-reviewer.md +67 -67
  103. package/.agents/rules/README.md +87 -87
  104. package/.agents/rules/common/02-/347/274/226/347/240/201/350/247/204/350/214/203.md +45 -45
  105. package/.agents/rules/common/08-/351/200/232/347/224/250/347/272/246/346/235/237.md +63 -63
  106. package/.agents/rules/common/10-/346/226/207/346/241/243/350/247/204/350/214/203.md +101 -101
  107. package/.agents/rules/common/12-Superpowers/346/211/247/350/241/214/350/247/204/350/214/203.md +46 -46
  108. package/.agents/rules/common/14-/345/256/241/350/256/241/346/261/207/346/212/245/350/247/204/350/214/203.md +107 -107
  109. package/.agents/rules/common/15-visual-gate-wait.md +90 -90
  110. package/.agents/rules/profiles/nestjs/01-/351/241/271/347/233/256/346/246/202/350/277/260.md +27 -27
  111. package/.agents/rules/profiles/nestjs/03-/351/241/271/347/233/256/347/273/223/346/236/204.md +20 -20
  112. package/.agents/rules/profiles/nestjs/04-/346/250/241/345/235/227/347/273/223/346/236/204/350/247/204/350/214/203.md +24 -24
  113. package/.agents/rules/profiles/nestjs/05-/346/216/245/345/217/243/344/270/216/345/245/221/347/272/246/350/247/204/350/214/203.md +24 -24
  114. package/.agents/rules/profiles/nestjs/06-/346/225/260/346/215/256/350/256/277/351/227/256/350/247/204/350/214/203.md +24 -24
  115. package/.agents/rules/profiles/nestjs/07-/351/205/215/347/275/256/344/270/216/350/277/220/350/241/214/346/227/266/350/247/204/350/214/203.md +20 -20
  116. package/.agents/rules/profiles/nestjs/09-/345/274/202/345/270/270/344/270/216/346/227/245/345/277/227/350/247/204/350/214/203.md +20 -20
  117. package/.agents/rules/profiles/nestjs/11-/346/265/213/350/257/225/350/247/204/350/214/203.md +24 -24
  118. package/.agents/rules/profiles/nestjs/13-/344/273/243/347/240/201/346/240/274/345/274/217/345/214/226/344/270/216/346/243/200/346/237/245.md +20 -20
  119. package/.agents/rules/profiles/node-tooling/01-/351/241/271/347/233/256/346/246/202/350/277/260.md +30 -30
  120. package/.agents/rules/profiles/node-tooling/03-/351/241/271/347/233/256/347/273/223/346/236/204.md +37 -37
  121. package/.agents/rules/profiles/node-tooling/04-CLI/344/270/216/346/250/241/345/235/227/350/247/204/350/214/203.md +42 -42
  122. package/.agents/rules/profiles/node-tooling/05-Contract/344/270/216Schema/350/247/204/350/214/203.md +42 -42
  123. package/.agents/rules/profiles/node-tooling/06-/350/277/220/350/241/214/346/227/266/346/226/207/344/273/266/350/247/204/350/214/203.md +30 -30
  124. package/.agents/rules/profiles/node-tooling/07-/346/227/245/345/277/227/344/270/216/351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +60 -60
  125. package/.agents/rules/profiles/node-tooling/09-/350/204/232/346/234/254/344/270/216/345/205/245/345/217/243/350/247/204/350/214/203.md +45 -45
  126. package/.agents/rules/profiles/node-tooling/11-/346/265/213/350/257/225/350/247/204/350/214/203.md +41 -41
  127. package/.agents/rules/profiles/node-tooling/13-/344/273/243/347/240/201/346/240/274/345/274/217/345/214/226/344/270/216/346/243/200/346/237/245.md +55 -55
  128. package/.agents/rules/profiles/react/01-/351/241/271/347/233/256/346/246/202/350/277/260.md +29 -29
  129. package/.agents/rules/profiles/react/03-/351/241/271/347/233/256/347/273/223/346/236/204.md +104 -104
  130. package/.agents/rules/profiles/react/04-/347/273/204/344/273/266/350/247/204/350/214/203.md +46 -46
  131. package/.agents/rules/profiles/react/05-API/350/247/204/350/214/203.md +67 -67
  132. package/.agents/rules/profiles/react/06-/350/267/257/347/224/261/350/247/204/350/214/203.md +54 -54
  133. package/.agents/rules/profiles/react/07-/347/212/266/346/200/201/347/256/241/347/220/206.md +226 -226
  134. package/.agents/rules/profiles/react/09-/346/240/267/345/274/217/350/247/204/350/214/203.md +71 -71
  135. package/.agents/rules/profiles/react/11-/346/265/213/350/257/225/350/247/204/350/214/203.md +80 -80
  136. package/.agents/rules/profiles/react/13-/344/273/243/347/240/201/346/240/274/345/274/217/345/214/226/344/270/216/346/243/200/346/237/245.md +159 -159
  137. package/.agents/rules/profiles/springboot/01-/351/241/271/347/233/256/346/246/202/350/277/260.md +31 -31
  138. package/.agents/rules/profiles/springboot/03-/351/241/271/347/233/256/347/273/223/346/236/204.md +37 -37
  139. package/.agents/rules/profiles/springboot/04-/345/210/206/345/261/202/350/247/204/350/214/203.md +33 -33
  140. package/.agents/rules/profiles/springboot/05-/346/216/245/345/217/243/344/270/216/345/245/221/347/272/246/350/247/204/350/214/203.md +51 -51
  141. package/.agents/rules/profiles/springboot/06-/346/225/260/346/215/256/350/256/277/351/227/256/350/247/204/350/214/203.md +34 -34
  142. package/.agents/rules/profiles/springboot/07-/351/205/215/347/275/256/344/270/216/350/277/220/350/241/214/346/227/266/350/247/204/350/214/203.md +38 -38
  143. package/.agents/rules/profiles/springboot/09-/345/274/202/345/270/270/344/270/216/346/227/245/345/277/227/350/247/204/350/214/203.md +48 -48
  144. package/.agents/rules/profiles/springboot/11-/346/265/213/350/257/225/350/247/204/350/214/203.md +43 -43
  145. package/.agents/rules/profiles/springboot/13-/344/273/243/347/240/201/346/240/274/345/274/217/345/214/226/344/270/216/346/243/200/346/237/245.md +48 -48
  146. package/.agents/rules/profiles/vue/01-/351/241/271/347/233/256/346/246/202/350/277/260.md +47 -47
  147. package/.agents/rules/profiles/vue/03-/351/241/271/347/233/256/347/273/223/346/236/204.md +106 -106
  148. package/.agents/rules/profiles/vue/04-/347/273/204/344/273/266/350/247/204/350/214/203.md +61 -61
  149. package/.agents/rules/profiles/vue/05-API/350/247/204/350/214/203.md +67 -67
  150. package/.agents/rules/profiles/vue/06-/350/267/257/347/224/261/350/247/204/350/214/203.md +69 -69
  151. package/.agents/rules/profiles/vue/07-/347/212/266/346/200/201/347/256/241/347/220/206.md +93 -93
  152. package/.agents/rules/profiles/vue/09-/346/240/267/345/274/217/350/247/204/350/214/203.md +67 -67
  153. package/.agents/rules/profiles/vue/11-/346/265/213/350/257/225/350/247/204/350/214/203.md +80 -80
  154. package/.agents/rules/profiles/vue/13-/344/273/243/347/240/201/346/240/274/345/274/217/345/214/226/344/270/216/346/243/200/346/237/245.md +159 -159
  155. package/.agents/skills/README.md +171 -171
  156. package/.agents/skills/common/archive-change/SKILL.md +180 -180
  157. package/.agents/skills/common/branch-code-reviewer/SKILL.md +533 -533
  158. package/.agents/skills/common/branch-code-reviewer/references/business-risk-guide.md +293 -293
  159. package/.agents/skills/common/branch-code-reviewer/references/html-template-guide.md +121 -121
  160. package/.agents/skills/common/config-and-secret-scan/SKILL.md +99 -99
  161. package/.agents/skills/common/create-proposal/SKILL.md +192 -192
  162. package/.agents/skills/common/create-proposal/evals/evals.json +16 -16
  163. package/.agents/skills/common/create-proposal/evals/train_queries.json +18 -18
  164. package/.agents/skills/common/create-proposal/evals/validation_queries.json +18 -18
  165. package/.agents/skills/common/create-proposal/references/interaction-spec-template.md +42 -42
  166. package/.agents/skills/common/create-test/SKILL.md +292 -292
  167. package/.agents/skills/common/dependency-impact-graph/SKILL.md +80 -80
  168. package/.agents/skills/common/execute-task/SKILL.md +206 -206
  169. package/.agents/skills/common/execute-task/evals/evals.json +16 -16
  170. package/.agents/skills/common/execute-task/evals/train_queries.json +18 -18
  171. package/.agents/skills/common/execute-task/evals/validation_queries.json +18 -18
  172. package/.agents/skills/common/find-skills/SKILL.md +144 -144
  173. package/.agents/skills/common/install-ai-spec-auto/SKILL.md +260 -260
  174. package/.agents/skills/common/install-ai-spec-auto/evals/evals.json +17 -17
  175. package/.agents/skills/common/install-ai-spec-auto/evals/train_queries.json +18 -18
  176. package/.agents/skills/common/install-ai-spec-auto/evals/validation_queries.json +18 -18
  177. package/.agents/skills/common/project-init/SKILL.md +178 -178
  178. package/.agents/skills/common/project-init/evals/evals.json +16 -16
  179. package/.agents/skills/common/project-init/evals/train_queries.json +18 -18
  180. package/.agents/skills/common/project-init/evals/validation_queries.json +18 -18
  181. package/.agents/skills/common/project-init/references/custom-rule-generation.md +89 -89
  182. package/.agents/skills/common/project-init/references/deep-scan-rules.md +67 -67
  183. package/.agents/skills/common/project-init/references/output-contracts.md +71 -71
  184. package/.agents/skills/common/project-init/references/repo-fact-gathering.md +83 -83
  185. package/.agents/skills/common/project-init/references/scope-resolution.md +76 -76
  186. package/.agents/skills/common/project-init/scripts/inspect-project.js +112 -112
  187. package/.agents/skills/common/skill-creator/LICENSE.txt +201 -201
  188. package/.agents/skills/common/skill-creator/SKILL.md +370 -370
  189. package/.agents/skills/common/skill-creator/evals/evals.json +16 -16
  190. package/.agents/skills/common/skill-creator/evals/train_queries.json +18 -18
  191. package/.agents/skills/common/skill-creator/evals/validation_queries.json +18 -18
  192. package/.agents/skills/common/skill-creator/references/output-patterns.md +82 -82
  193. package/.agents/skills/common/skill-creator/references/workflows.md +27 -27
  194. package/.agents/skills/common/skill-creator/scripts/init_skill.py +209 -209
  195. package/.agents/skills/common/skill-creator/scripts/package_skill.py +110 -110
  196. package/.agents/skills/common/skill-creator/scripts/quick_validate.py +51 -51
  197. package/.agents/skills/common/skill-optimizer/SKILL.md +102 -102
  198. package/.agents/skills/common/skill-optimizer/evals/evals.json +16 -16
  199. package/.agents/skills/common/skill-optimizer/evals/train_queries.json +18 -18
  200. package/.agents/skills/common/skill-optimizer/evals/validation_queries.json +18 -18
  201. package/.agents/skills/common/skill-optimizer/references/design-patterns.md +26 -26
  202. package/.agents/skills/common/skill-optimizer/references/review-checklist.md +22 -22
  203. package/.agents/skills/common/using-superpowers/SKILL.md +151 -151
  204. package/.agents/skills/common/wait-for-gate-signal/SKILL.md +85 -85
  205. package/.agents/skills/domains/README.md +19 -19
  206. package/.agents/skills/domains/ui-ux-pro-max/SKILL.md +58 -58
  207. package/.agents/skills/domains/web/design-analysis/SKILL.md +89 -89
  208. package/.agents/skills/domains/web/design-analysis/rules/analysis-order.md +61 -61
  209. package/.agents/skills/domains/web/design-analysis/rules/analysis-priorities.md +136 -136
  210. package/.agents/skills/domains/web/design-analysis/rules/checklist-common-misses.md +107 -107
  211. package/.agents/skills/domains/web/design-analysis/rules/implementation-common-errors.md +204 -204
  212. package/.agents/skills/domains/web/design-analysis/rules/implementation-guidelines.md +211 -211
  213. package/.agents/skills/domains/web/design-analysis/rules/output-analysis-checklist.md +247 -247
  214. package/.agents/skills/domains/web/design-analysis/rules/tools-design-guidelines.md +108 -108
  215. package/.agents/skills/domains/web/design-analysis/rules/workflow-element-extraction.md +162 -162
  216. package/.agents/skills/domains/web/design-analysis/rules/workflow-layout-map.md +131 -131
  217. package/.agents/skills/domains/web/design-analysis/rules/workflow-output-checklist.md +70 -70
  218. package/.agents/skills/domains/web/design-analysis/rules/workflow-style-summary.md +91 -91
  219. package/.agents/skills/domains/web/route-permission-map/SKILL.md +103 -103
  220. package/.agents/skills/domains/web/ui-verification/SKILL.md +114 -114
  221. package/.agents/skills/domains/web/ui-verification/evals/evals.json +16 -16
  222. package/.agents/skills/domains/web/ui-verification/evals/train_queries.json +18 -18
  223. package/.agents/skills/domains/web/ui-verification/evals/validation_queries.json +18 -18
  224. package/.agents/skills/domains/web/ui-verification/rules/comparison-content-image.md +34 -34
  225. package/.agents/skills/domains/web/ui-verification/rules/comparison-content-text.md +30 -30
  226. package/.agents/skills/domains/web/ui-verification/rules/comparison-hierarchy.md +33 -33
  227. package/.agents/skills/domains/web/ui-verification/rules/comparison-layout.md +35 -35
  228. package/.agents/skills/domains/web/ui-verification/rules/errors-alignment.md +42 -42
  229. package/.agents/skills/domains/web/ui-verification/rules/errors-button-dimensions.md +28 -28
  230. package/.agents/skills/domains/web/ui-verification/rules/errors-button-position.md +25 -25
  231. package/.agents/skills/domains/web/ui-verification/rules/errors-css-priority.md +50 -50
  232. package/.agents/skills/domains/web/ui-verification/rules/errors-flex-column-width.md +46 -46
  233. package/.agents/skills/domains/web/ui-verification/rules/errors-flex-layout.md +46 -46
  234. package/.agents/skills/domains/web/ui-verification/rules/errors-grid-container-width.md +44 -44
  235. package/.agents/skills/domains/web/ui-verification/rules/errors-page-container-width.md +39 -39
  236. package/.agents/skills/domains/web/ui-verification/rules/tools-browser-navigation.md +53 -53
  237. package/.agents/skills/domains/web/ui-verification/rules/tools-design-guidelines.md +53 -53
  238. package/.agents/skills/domains/web/ui-verification/rules/workflow-checklist.md +27 -27
  239. package/.agents/skills/domains/web/ui-verification/rules/workflow-problem-list.md +56 -56
  240. package/.agents/skills/domains/web/ui-verification/rules/workflow-reflection.md +44 -44
  241. package/.agents/skills/domains/web/ui-verification/rules/writing-alignment.md +44 -44
  242. package/.agents/skills/domains/web/ui-verification/rules/writing-element-completeness.md +63 -63
  243. package/.agents/skills/domains/web/ui-verification/rules/writing-list-layout.md +75 -75
  244. package/.agents/skills/domains/web/ui-verification/rules/writing-page-container-width.md +37 -37
  245. package/.agents/skills/domains/web/web-design-guidelines/SKILL.md +40 -40
  246. package/.agents/skills/profiles/nestjs/README.md +4 -4
  247. package/.agents/skills/profiles/node-tooling/README.md +9 -9
  248. package/.agents/skills/profiles/react/create-api/SKILL.md +145 -145
  249. package/.agents/skills/profiles/react/create-component/SKILL.md +160 -160
  250. package/.agents/skills/profiles/react/create-route/SKILL.md +168 -168
  251. package/.agents/skills/profiles/react/create-store/SKILL.md +262 -262
  252. package/.agents/skills/profiles/react/theme-variables/SKILL.md +82 -82
  253. package/.agents/skills/profiles/react/vercel-composition-patterns/AGENTS.md +899 -899
  254. package/.agents/skills/profiles/react/vercel-composition-patterns/SKILL.md +81 -81
  255. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -100
  256. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/architecture-compound-components.md +112 -112
  257. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -87
  258. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -100
  259. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/state-context-interface.md +191 -191
  260. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -113
  261. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/state-lift-state.md +125 -125
  262. package/.agents/skills/profiles/react/vercel-react-best-practices/AGENTS.md +2934 -2934
  263. package/.agents/skills/profiles/react/vercel-react-best-practices/SKILL.md +136 -136
  264. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -55
  265. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/advanced-init-once.md +42 -42
  266. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/advanced-use-latest.md +39 -39
  267. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/async-api-routes.md +38 -38
  268. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/async-defer-await.md +80 -80
  269. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/async-dependencies.md +51 -51
  270. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/async-parallel.md +28 -28
  271. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -99
  272. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -59
  273. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/bundle-conditional.md +31 -31
  274. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -49
  275. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -35
  276. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/bundle-preload.md +50 -50
  277. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/client-event-listeners.md +74 -74
  278. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -71
  279. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -48
  280. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/client-swr-dedup.md +56 -56
  281. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -107
  282. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-cache-function-results.md +80 -80
  283. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-cache-property-access.md +28 -28
  284. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-cache-storage.md +70 -70
  285. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-combine-iterations.md +32 -32
  286. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-early-exit.md +50 -50
  287. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -45
  288. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-index-maps.md +37 -37
  289. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-length-check-first.md +49 -49
  290. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-min-max-loop.md +82 -82
  291. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -24
  292. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -57
  293. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-activity.md +26 -26
  294. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -47
  295. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -40
  296. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -38
  297. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -46
  298. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -82
  299. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -30
  300. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -28
  301. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -75
  302. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -39
  303. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-dependencies.md +45 -45
  304. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -40
  305. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-derived-state.md +29 -29
  306. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -74
  307. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -58
  308. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -38
  309. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-memo.md +44 -44
  310. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -45
  311. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -35
  312. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-transitions.md +40 -40
  313. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -73
  314. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -73
  315. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-auth-actions.md +96 -96
  316. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-cache-lru.md +41 -41
  317. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-cache-react.md +76 -76
  318. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-dedup-props.md +65 -65
  319. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -83
  320. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-serialization.md +38 -38
  321. package/.agents/skills/profiles/springboot/README.md +10 -10
  322. package/.agents/skills/profiles/vue/create-api/SKILL.md +105 -105
  323. package/.agents/skills/profiles/vue/create-component/SKILL.md +76 -76
  324. package/.agents/skills/profiles/vue/create-route/SKILL.md +141 -141
  325. package/.agents/skills/profiles/vue/create-store/SKILL.md +97 -97
  326. package/.agents/skills/profiles/vue/create-view/SKILL.md +81 -81
  327. package/.agents/skills/profiles/vue/theme-variables/SKILL.md +73 -73
  328. package/.agents/skills/profiles/vue/vue-best-practices/SKILL.md +166 -166
  329. package/.agents/skills/profiles/vue/vue-best-practices/references/animation-class-based-technique.md +254 -254
  330. package/.agents/skills/profiles/vue/vue-best-practices/references/animation-state-driven-technique.md +291 -291
  331. package/.agents/skills/profiles/vue/vue-best-practices/references/component-async.md +97 -97
  332. package/.agents/skills/profiles/vue/vue-best-practices/references/component-data-flow.md +307 -307
  333. package/.agents/skills/profiles/vue/vue-best-practices/references/component-fallthrough-attrs.md +174 -174
  334. package/.agents/skills/profiles/vue/vue-best-practices/references/component-keep-alive.md +137 -137
  335. package/.agents/skills/profiles/vue/vue-best-practices/references/component-slots.md +216 -216
  336. package/.agents/skills/profiles/vue/vue-best-practices/references/component-suspense.md +228 -228
  337. package/.agents/skills/profiles/vue/vue-best-practices/references/component-teleport.md +108 -108
  338. package/.agents/skills/profiles/vue/vue-best-practices/references/component-transition-group.md +128 -128
  339. package/.agents/skills/profiles/vue/vue-best-practices/references/component-transition.md +125 -125
  340. package/.agents/skills/profiles/vue/vue-best-practices/references/composables.md +290 -290
  341. package/.agents/skills/profiles/vue/vue-best-practices/references/directives.md +162 -162
  342. package/.agents/skills/profiles/vue/vue-best-practices/references/perf-avoid-component-abstraction-in-lists.md +159 -159
  343. package/.agents/skills/profiles/vue/vue-best-practices/references/perf-v-once-v-memo-directives.md +182 -182
  344. package/.agents/skills/profiles/vue/vue-best-practices/references/perf-virtualize-large-lists.md +187 -187
  345. package/.agents/skills/profiles/vue/vue-best-practices/references/plugins.md +166 -166
  346. package/.agents/skills/profiles/vue/vue-best-practices/references/reactivity.md +344 -344
  347. package/.agents/skills/profiles/vue/vue-best-practices/references/render-functions.md +201 -201
  348. package/.agents/skills/profiles/vue/vue-best-practices/references/sfc.md +310 -310
  349. package/.agents/skills/profiles/vue/vue-best-practices/references/state-management.md +135 -135
  350. package/.agents/skills/profiles/vue/vue-best-practices/references/updated-hook-performance.md +187 -187
  351. package/.agents/templates/common/README.md +23 -23
  352. package/.agents/templates/common/bugfix.md +22 -22
  353. package/.agents/templates/common/create-expert-package.md +458 -458
  354. package/.agents/templates/common/mock-page.md +28 -28
  355. package/.agents/templates/common/new-component.md +25 -25
  356. package/.agents/templates/common/new-page.md +31 -31
  357. package/.cursor/mcp.json +35 -35
  358. package/.qoder/mcp.json +26 -26
  359. package/bin/archive-change.js +560 -474
  360. package/bin/check-command.js +62 -62
  361. package/bin/cli.js +0 -0
  362. package/bin/command-template-renderer.js +40 -40
  363. package/bin/context-command.js +102 -102
  364. package/bin/demo-runtime-smoke.js +760 -760
  365. package/bin/execution-semantics.js +821 -821
  366. package/bin/executor-command.js +93 -93
  367. package/bin/expert-dispatch.js +334 -334
  368. package/bin/expert-executor.js +1148 -1148
  369. package/bin/guard-command.js +52 -52
  370. package/bin/hub-command.js +876 -876
  371. package/bin/ide-command.js +242 -242
  372. package/bin/init-command.js +193 -193
  373. package/bin/install-workflow.js +35 -3
  374. package/bin/manifest-export.js +34 -34
  375. package/bin/profile-registry.js +90 -90
  376. package/bin/protocol-workflow.js +452 -446
  377. package/bin/repair-command.js +161 -161
  378. package/bin/repo-map.js +177 -177
  379. package/bin/report-command.js +236 -236
  380. package/bin/runtime-bootstrap.js +428 -428
  381. package/bin/runtime-embedded.js +101 -101
  382. package/bin/runtime-fallback.js +106 -106
  383. package/bin/runtime-launcher.js +116 -116
  384. package/bin/runtime-paths.js +177 -177
  385. package/bin/runtime-registry.js +289 -289
  386. package/bin/runtime-state.js +2541 -2541
  387. package/bin/scan.js +96 -96
  388. package/bin/self-upgrade.js +206 -206
  389. package/bin/skill-spec-validator.js +457 -457
  390. package/bin/spec-command.js +366 -366
  391. package/bin/superpowers.js +384 -384
  392. package/bin/sync-command.js +59 -59
  393. package/bin/sync.js +1904 -1904
  394. package/bin/task-orchestrator-adapter.js +341 -341
  395. package/bin/task-orchestrator-extractor.js +274 -274
  396. package/bin/task-orchestrator-runner.js +1208 -1208
  397. package/bin/telemetry/README.md +66 -66
  398. package/bin/telemetry/aspect.js +153 -153
  399. package/bin/telemetry/collect.js +67 -67
  400. package/bin/telemetry/config.js +114 -114
  401. package/bin/telemetry/defaults.json +5 -5
  402. package/bin/telemetry/healthcheck.js +195 -195
  403. package/bin/telemetry/identity.js +53 -53
  404. package/bin/telemetry/index.js +25 -25
  405. package/bin/telemetry/reporter.js +83 -83
  406. package/bin/telemetry/safe.js +39 -39
  407. package/bin/validate-registry.js +740 -740
  408. package/bin/visual-bridge-config.js +117 -117
  409. package/bin/visual-bridge.js +287 -287
  410. package/bin/visual-command.js +432 -432
  411. package/bin/worktree-command.js +194 -194
  412. package/configs/common/.editorconfig +15 -15
  413. package/configs/common/.husky/commit-msg +4 -4
  414. package/configs/common/.husky/pre-commit +4 -4
  415. package/configs/common/.lintstagedrc +11 -11
  416. package/configs/common/.prettierignore +11 -11
  417. package/configs/common/.prettierrc.json +11 -11
  418. package/configs/common/.stylelintignore +14 -14
  419. package/configs/common/.stylelintrc.json +21 -21
  420. package/configs/common/commitlint.config.js +3 -3
  421. package/configs/profiles/nestjs/.gitkeep +1 -1
  422. package/configs/profiles/node-tooling/.gitkeep +1 -1
  423. package/configs/profiles/react/.eslintignore +6 -6
  424. package/configs/profiles/react/.eslintrc.js +16 -16
  425. package/configs/profiles/react/.stylelintrc.json +18 -18
  426. package/configs/profiles/springboot/.gitkeep +1 -1
  427. package/configs/profiles/vue/.eslintignore +6 -6
  428. package/configs/profiles/vue/.eslintrc.cjs +17 -17
  429. package/contracts/README.md +28 -28
  430. package/contracts/fixtures/asset-package.fixture.json +26 -26
  431. package/contracts/fixtures/asset-usage-feedback.fixture.json +14 -14
  432. package/contracts/fixtures/evidence-report.fixture.json +28 -28
  433. package/contracts/fixtures/manifest.fixture.json +20 -20
  434. package/contracts/fixtures/run-event.fixture.json +15 -15
  435. package/contracts/schemas/asset-package.schema.json +76 -76
  436. package/contracts/schemas/asset-usage-feedback.schema.json +57 -57
  437. package/contracts/schemas/evidence-report.schema.json +60 -60
  438. package/contracts/schemas/manifest.schema.json +63 -63
  439. package/contracts/schemas/run-event.schema.json +72 -72
  440. package/install.ps1 +35 -35
  441. package/install.sh +17 -17
  442. package/internal/ai-protocol-workflow.js +5824 -5600
  443. package/internal/hub-client.js +98 -98
  444. package/internal/hub-sync-selection.js +69 -69
  445. package/internal/visual-hooks/README.md +481 -481
  446. package/internal/visual-hooks/config-loader.js +218 -218
  447. package/internal/visual-hooks/control-puller.js +206 -206
  448. package/internal/visual-hooks/gate-signal.js +150 -150
  449. package/internal/visual-hooks/inbox-consumer.js +469 -469
  450. package/internal/visual-hooks/index.js +197 -197
  451. package/internal/visual-hooks/push-client.js +189 -189
  452. package/internal/visual-hooks/receipt-pusher.js +176 -176
  453. package/internal/visual-hooks/runtime-state-pusher.js +128 -128
  454. package/openspec/config.yaml.template +52 -52
  455. package/openspec/schemas/expert-delivery/schema.yaml +68 -68
  456. package/openspec/schemas/expert-delivery/templates/checklist.md +39 -39
  457. package/openspec/schemas/expert-delivery/templates/design.md +61 -61
  458. package/openspec/schemas/expert-delivery/templates/iterations.md +25 -25
  459. package/openspec/schemas/expert-delivery/templates/proposal.md +45 -45
  460. package/openspec/schemas/expert-delivery/templates/spec.md +29 -29
  461. package/openspec/schemas/expert-delivery/templates/tasks.md +24 -24
  462. package/package.json +1 -1
  463. package/scripts/acceptance-zero-intrusion.sh +168 -168
  464. package/scripts/hub-sync-assets.config.example.json +296 -296
  465. package/scripts/hub-sync-assets.js +2038 -2038
  466. package/scripts/local-verify.sh +280 -280
  467. package/scripts/post-publish-auto-fix-check.js +404 -404
  468. package/scripts/post-publish-verify.sh +175 -175
  469. package/scripts/setup-cursor-manual-test.sh +107 -107
  470. package/scripts/setup-cursor-spec-archive-test.sh +111 -111
  471. package/scripts/setup-visual-integration.sh +225 -225
  472. package/scripts/test-integration.sh +176 -176
  473. package/scripts/update-test-project.sh +93 -93
  474. package/scripts/upload-four-web.sh +57 -57
  475. package/scripts/verify-install-ps1-bom.js +26 -26
  476. package/src/agent/agent-context.js +259 -259
  477. package/src/agent/agent-profile.js +185 -185
  478. package/src/agent/agent-templates.js +161 -161
  479. package/src/agent/agent-types.js +108 -108
  480. package/src/agent/collaboration-protocol.js +333 -333
  481. package/src/agent/conflict-handler.js +364 -364
  482. package/src/agent/file-permission.js +121 -121
  483. package/src/agent/index.js +38 -38
  484. package/src/agent/permission-audit.js +151 -151
  485. package/src/agent/review-repair-loop.js +270 -270
  486. package/src/agent/tool-permission.js +101 -101
  487. package/src/asset/asset-dependency.js +322 -322
  488. package/src/asset/asset-feedback.js +350 -350
  489. package/src/asset/asset-fork.js +300 -300
  490. package/src/asset/asset-install.js +278 -278
  491. package/src/asset/asset-installer.js +497 -497
  492. package/src/asset/asset-lifecycle.js +324 -324
  493. package/src/asset/asset-manager.js +245 -245
  494. package/src/asset/asset-package-manager.js +349 -349
  495. package/src/asset/asset-package.js +186 -186
  496. package/src/asset/asset-quality.js +262 -262
  497. package/src/asset/asset-registry.js +387 -387
  498. package/src/asset/asset-version.js +293 -293
  499. package/src/asset/index.js +86 -86
  500. package/src/cache/agent-profile-cache.js +59 -59
  501. package/src/cache/asset-cache.js +63 -63
  502. package/src/cache/global-cache.js +61 -61
  503. package/src/cache/manifest-cache.js +30 -30
  504. package/src/check/check-service.js +32 -32
  505. package/src/config/config-layer.js +343 -343
  506. package/src/config/config-loader.js +60 -60
  507. package/src/config/defaults.js +49 -49
  508. package/src/connectors/hub/asset-package.js +72 -72
  509. package/src/connectors/hub/asset-usage-feedback.js +46 -46
  510. package/src/connectors/hub/hub-connector.js +44 -44
  511. package/src/connectors/hub/index.js +21 -21
  512. package/src/connectors/visual/evidence-report.js +49 -49
  513. package/src/connectors/visual/index.js +15 -15
  514. package/src/connectors/visual/queue.js +41 -41
  515. package/src/connectors/visual/run-event.js +81 -81
  516. package/src/connectors/visual/visual-connector.js +77 -77
  517. package/src/context/context-budget.js +59 -59
  518. package/src/context/context-builder.js +285 -285
  519. package/src/context/context-loader.js +116 -116
  520. package/src/context/context-planner.js +158 -158
  521. package/src/context/types.js +96 -96
  522. package/src/contracts/index.js +63 -63
  523. package/src/executor/executor-registry.js +78 -78
  524. package/src/executor/executor-result-parser.js +44 -44
  525. package/src/executor/executor-runner.js +141 -141
  526. package/src/executor/executor-selector.js +139 -139
  527. package/src/executor/executor-timeout.js +36 -36
  528. package/src/executor/providers/base-provider-utils.js +189 -189
  529. package/src/executor/providers/claude-code-executor-provider.js +128 -128
  530. package/src/executor/providers/codex-executor-provider.js +126 -126
  531. package/src/executor/providers/cursor-executor-provider.js +99 -99
  532. package/src/executor/types.js +137 -137
  533. package/src/git/branch-manager.js +71 -71
  534. package/src/git/dirty-checker.js +43 -43
  535. package/src/git/dirty-strategy-handler.js +29 -29
  536. package/src/git/git-command.js +37 -37
  537. package/src/git/git-repository-detector.js +45 -45
  538. package/src/git/multi-repo-worktree-planner.js +88 -88
  539. package/src/git/policy.js +19 -19
  540. package/src/git/strategies/block-dirty-strategy.js +34 -34
  541. package/src/git/strategies/ignore-dirty-strategy.js +33 -33
  542. package/src/git/strategies/patch-snapshot-strategy.js +53 -53
  543. package/src/git/strategies/wip-commit-strategy.js +38 -38
  544. package/src/git/types.js +71 -71
  545. package/src/git/worktree-manager.js +85 -85
  546. package/src/governance/asset-review.js +351 -351
  547. package/src/governance/audit-log.js +368 -368
  548. package/src/governance/gray-release.js +312 -312
  549. package/src/governance/index.js +31 -31
  550. package/src/governance/policy-types.js +56 -56
  551. package/src/governance/rbac-types.js +171 -171
  552. package/src/governance/rbac.js +382 -382
  553. package/src/governance/rollback.js +360 -360
  554. package/src/governance/security-policy.js +354 -354
  555. package/src/hook/hook-config-writer.js +125 -125
  556. package/src/hub/hub-client.js +186 -186
  557. package/src/hub/hub-config.js +39 -39
  558. package/src/hub/project-facts.js +31 -31
  559. package/src/hub/runtime-feedback-reporter.js +55 -55
  560. package/src/ide/adapters/adapter-protocol.js +385 -385
  561. package/src/ide/adapters/claude-adapter.js +419 -419
  562. package/src/ide/adapters/codex-adapter.js +60 -60
  563. package/src/ide/adapters/cursor-adapter.js +484 -484
  564. package/src/ide/adapters/index.js +24 -24
  565. package/src/ide/anchors/markdown-anchor-writer.js +152 -152
  566. package/src/ide/ide-service.js +270 -270
  567. package/src/ide/ide-types.js +94 -94
  568. package/src/ide/links/link-mode-resolver.js +160 -160
  569. package/src/ide/registry/ide-registry-builder.js +165 -165
  570. package/src/incident/incident-writer.js +47 -47
  571. package/src/incident/types.js +22 -22
  572. package/src/init/ide-linker.js +126 -126
  573. package/src/init/ide-pointer-injector.js +75 -75
  574. package/src/init/init-applier.js +197 -197
  575. package/src/init/init-plan.js +294 -294
  576. package/src/init/init-service.js +65 -65
  577. package/src/init/manifest-installer.js +302 -302
  578. package/src/init/types.js +26 -26
  579. package/src/project/config-writer.js +83 -83
  580. package/src/project/context-index-writer.js +82 -82
  581. package/src/project/json-utils.js +72 -72
  582. package/src/project/local-state-writer.js +50 -50
  583. package/src/project/lock-file-writer.js +98 -98
  584. package/src/project/manifest-writer.js +126 -126
  585. package/src/project/policy-config-writer.js +91 -91
  586. package/src/project/project-config-writer.js +74 -74
  587. package/src/project/project-files.js +39 -39
  588. package/src/project/registry-index-writer.js +43 -43
  589. package/src/project/workspace-config-writer.js +63 -63
  590. package/src/run/index.js +11 -11
  591. package/src/run/run-id.js +32 -32
  592. package/src/run/run-service.js +269 -269
  593. package/src/run/run-store.js +80 -80
  594. package/src/scanner/aggregator/detection-aggregator.js +23 -23
  595. package/src/scanner/boundary/boundary-resolver.js +229 -229
  596. package/src/scanner/detectors/detector-registry.js +44 -44
  597. package/src/scanner/detectors/fastapi-detector.js +46 -46
  598. package/src/scanner/detectors/go-detector.js +46 -46
  599. package/src/scanner/detectors/nestjs-detector.js +57 -57
  600. package/src/scanner/detectors/nextjs-detector.js +52 -52
  601. package/src/scanner/detectors/react-vite-detector.js +52 -52
  602. package/src/scanner/detectors/react-webpack-detector.js +57 -57
  603. package/src/scanner/detectors/springboot-detector.js +46 -46
  604. package/src/scanner/detectors/springcloud-detector.js +46 -46
  605. package/src/scanner/detectors/springmvc-detector.js +46 -46
  606. package/src/scanner/detectors/vue-vite-detector.js +52 -52
  607. package/src/scanner/engine.js +72 -72
  608. package/src/scanner/facts/fact-extractor.js +211 -211
  609. package/src/scanner/types.js +30 -30
  610. package/src/security/asset-tamper-checker.js +188 -188
  611. package/src/security/checksum.js +40 -40
  612. package/src/spec/spec-writer.js +302 -302
  613. package/src/state-machine/circuit-breaker.js +112 -112
  614. package/src/state-machine/escape-hatch.js +49 -49
  615. package/src/state-machine/stage-runner.js +281 -281
  616. package/src/state-machine/state-machine.js +24 -24
  617. package/src/state-machine/transition-guard.js +36 -36
  618. package/src/state-machine/types.js +37 -37
  619. package/src/sync/sync-service.js +192 -192
  620. package/src/visual/agent-visual.js +142 -142
  621. package/src/visual/event-gateway.js +357 -357
  622. package/src/visual/event-mapper.js +128 -128
  623. package/src/visual/hook-dashboard.js +216 -216
  624. package/src/visual/index.js +27 -27
  625. package/src/visual/metrics.js +287 -287
  626. package/src/visual/privacy-filter.js +100 -100
  627. package/src/visual/risk-board.js +252 -252
  628. package/src/visual/timeline.js +245 -245
  629. package/src/visual/visual-client.js +94 -94
  630. package/src/visual/visual-config.js +40 -40
  631. package/src/visual/visual-reporter.js +88 -88
@@ -1,292 +1,292 @@
1
- ---
2
- name: create-test
3
- description: 当需要为功能模块编写单元测试或集成测试时使用本技能。指导按团队规范创建 Vitest 测试文件,涵盖命名约定、断言模式、Mock 策略与覆盖率要求。
4
- compatibility: Assumes a local TypeScript/JavaScript repository with Vitest-compatible tooling and .agents/rules/common testing conventions.
5
- ---
6
-
7
- # 创建测试
8
-
9
- ## 使用时机
10
-
11
- 当出现以下场景时使用本技能:
12
-
13
- - 为新增的工具函数、Store 逻辑、数据转换编写**单元测试**
14
- - 为关键用户交互流程编写**组件测试**或**集成测试**
15
- - 重构现有模块后需补充或更新测试用例
16
- - `execute-task` 技能中 TDD 落地编码阶段需要创建测试文件
17
-
18
- ## 环境依赖
19
-
20
- - 默认面向本仓库的 `.agents/rules/common/11-测试规范.md`
21
- - 示例以 Vitest 为主,若项目测试栈不同,需要按项目实际工具调整
22
-
23
- ## 注意事项
24
-
25
- - 不要为了“补覆盖率”去 mock 被测模块内部逻辑
26
- - 测试文件应跟随真实代码落点,不要新造一套平行目录
27
- - 组件测试只在项目已具备对应测试运行条件时再补
28
-
29
- ---
30
-
31
- ## 步骤
32
-
33
- ### 步骤 1:确认测试目标与类型
34
-
35
- 1. 明确被测模块:工具函数、Store、组件、业务逻辑。
36
- 2. 确定测试级别:
37
-
38
- | 级别 | 适用对象 | 说明 |
39
- |------|----------|------|
40
- | 单元测试 | 工具函数、纯逻辑、数据转换 | 隔离测试单个函数/模块的输入输出 |
41
- | 组件测试 | UI 组件交互 | 使用 `@testing-library/react` 或 `@vue/test-utils` |
42
- | 集成测试 | 多模块协作流程 | 验证模块间协作的正确性 |
43
-
44
- ### 步骤 2:创建测试文件
45
-
46
- 1. 在被测源文件**同目录**下创建测试文件。
47
- 2. 文件命名:`<源文件名>.test.ts`(逻辑)或 `<源文件名>.test.tsx`(React 组件)。
48
- 3. 导入 Vitest API 与被测模块。
49
-
50
- ```text
51
- src/utils/
52
- ├── formatDate.ts
53
- └── formatDate.test.ts # 与源文件同目录
54
- ```
55
-
56
- ### 步骤 3:编写测试用例
57
-
58
- 按 **Arrange-Act-Assert** 模式编写每个测试:
59
-
60
- 1. **Arrange**:准备测试数据和前置条件。
61
- 2. **Act**:调用被测函数或触发被测行为。
62
- 3. **Assert**:断言结果符合预期。
63
-
64
- ```ts
65
- import { describe, it, expect } from 'vitest';
66
- import { formatDate } from './formatDate';
67
-
68
- describe('formatDate', () => {
69
- it('应将时间戳转换为 YYYY-MM-DD 格式', () => {
70
- const timestamp = 1700000000000;
71
- const result = formatDate(timestamp);
72
- expect(result).toBe('2023-11-15');
73
- });
74
-
75
- it('传入 null 时应返回空字符串', () => {
76
- expect(formatDate(null)).toBe('');
77
- });
78
-
79
- it('传入 undefined 时应返回空字符串', () => {
80
- expect(formatDate(undefined)).toBe('');
81
- });
82
- });
83
- ```
84
-
85
- ### 步骤 4:补充边界与异常用例
86
-
87
- 每个被测函数至少覆盖:
88
-
89
- - **正常路径**:典型输入的预期输出
90
- - **边界值**:空值、零值、极大/极小值、空数组/空对象
91
- - **异常输入**:类型错误、格式异常、非法参数
92
- - **特殊场景**:并发、超时等(视业务而定)
93
-
94
- ### 步骤 5:运行测试并确认通过
95
-
96
- ```bash
97
- npx vitest run <测试文件路径>
98
- ```
99
-
100
- 确认所有用例通过后,再提交代码。
101
-
102
- ---
103
-
104
- ## 命名约定
105
-
106
- ### 文件命名
107
-
108
- | 类型 | 命名规则 | 示例 |
109
- |------|----------|------|
110
- | 逻辑/工具测试 | `<name>.test.ts` | `formatDate.test.ts` |
111
- | React 组件测试 | `<name>.test.tsx` | `UserCard.test.tsx` |
112
- | Vue 组件测试 | `<name>.test.ts` | `UserCard.test.ts` |
113
- | 公共 Mock / 辅助 | 放置于 `tests/` 或 `src/__tests__/helpers/` | `tests/mocks/mockUser.ts` |
114
-
115
- ### 描述命名
116
-
117
- - `describe` 块:使用被测模块名称(函数名、组件名、Store 名)
118
- - `it` / `test` 块:使用**中文**描述预期行为,格式为「应……」或「当……时应……」
119
- - 描述表达**预期行为**,而非实现步骤
120
-
121
- ```ts
122
- describe('useAuthStore', () => {
123
- it('登录成功后应保存用户信息到 state', () => { /* ... */ });
124
- it('token 过期时应自动清除登录状态', () => { /* ... */ });
125
- it('当网络异常时应抛出错误并保持原状态', () => { /* ... */ });
126
- });
127
- ```
128
-
129
- ---
130
-
131
- ## 测试模式
132
-
133
- ### 单元测试模式
134
-
135
- 隔离测试纯函数,不依赖外部环境:
136
-
137
- ```ts
138
- describe('calculateTotal', () => {
139
- it('应正确计算商品总价', () => {
140
- const items = [
141
- { price: 10, quantity: 2 },
142
- { price: 20, quantity: 1 },
143
- ];
144
- expect(calculateTotal(items)).toBe(40);
145
- });
146
-
147
- it('空数组应返回 0', () => {
148
- expect(calculateTotal([])).toBe(0);
149
- });
150
- });
151
- ```
152
-
153
- ### Mock 策略
154
-
155
- 遵循原则:**Mock 外部依赖,不 Mock 被测模块内部。**
156
-
157
- #### API 请求 Mock
158
-
159
- ```ts
160
- import { vi } from 'vitest';
161
- import { fetchUser } from './api';
162
-
163
- vi.mock('./api', () => ({
164
- fetchUser: vi.fn(),
165
- }));
166
-
167
- describe('UserService', () => {
168
- it('应正确处理用户数据', async () => {
169
- vi.mocked(fetchUser).mockResolvedValue({ id: 1, name: '张三' });
170
- const result = await getUserInfo(1);
171
- expect(result.name).toBe('张三');
172
- });
173
-
174
- it('接口异常时应抛出错误', async () => {
175
- vi.mocked(fetchUser).mockRejectedValue(new Error('网络错误'));
176
- await expect(getUserInfo(1)).rejects.toThrow('网络错误');
177
- });
178
- });
179
- ```
180
-
181
- #### 定时器 Mock
182
-
183
- ```ts
184
- import { vi, beforeEach, afterEach } from 'vitest';
185
-
186
- beforeEach(() => {
187
- vi.useFakeTimers();
188
- });
189
-
190
- afterEach(() => {
191
- vi.useRealTimers();
192
- });
193
-
194
- it('防抖函数应在延迟后执行', () => {
195
- const fn = vi.fn();
196
- const debounced = debounce(fn, 300);
197
-
198
- debounced();
199
- expect(fn).not.toHaveBeenCalled();
200
-
201
- vi.advanceTimersByTime(300);
202
- expect(fn).toHaveBeenCalledOnce();
203
- });
204
- ```
205
-
206
- #### 模块 Mock
207
-
208
- ```ts
209
- vi.mock('@/utils/storage', () => ({
210
- getItem: vi.fn(),
211
- setItem: vi.fn(),
212
- }));
213
- ```
214
-
215
- ### 组件测试模式(React)
216
-
217
- ```tsx
218
- import { render, screen, fireEvent } from '@testing-library/react';
219
-
220
- describe('SearchInput', () => {
221
- it('输入关键词后应触发搜索回调', async () => {
222
- const onSearch = vi.fn();
223
- render(<SearchInput onSearch={onSearch} />);
224
-
225
- const input = screen.getByTestId('search-input');
226
- await fireEvent.change(input, { target: { value: '测试' } });
227
- await fireEvent.click(screen.getByTestId('search-btn'));
228
-
229
- expect(onSearch).toHaveBeenCalledWith('测试');
230
- });
231
- });
232
- ```
233
-
234
- ### 组件测试模式(Vue)
235
-
236
- ```ts
237
- import { mount } from '@vue/test-utils';
238
-
239
- describe('SearchInput', () => {
240
- it('输入关键词后应触发搜索事件', async () => {
241
- const wrapper = mount(SearchInput);
242
-
243
- await wrapper.find('[data-testid="search-input"]').setValue('测试');
244
- await wrapper.find('[data-testid="search-btn"]').trigger('click');
245
-
246
- expect(wrapper.emitted('search')?.[0]).toEqual(['测试']);
247
- });
248
- });
249
- ```
250
-
251
- ---
252
-
253
- ## 禁止模式
254
-
255
- | 禁止项 | 原因 |
256
- |--------|------|
257
- | 测试依赖执行顺序 | 测试应互相独立,可单独运行 |
258
- | 快照测试滥用 | 仅用于关键 UI 结构,禁止对大段 HTML 做快照 |
259
- | 硬编码延时(`setTimeout`) | 使用 `vi.useFakeTimers()` 或 `waitFor` |
260
- | Mock 被测模块内部方法 | 只 Mock 外部依赖 |
261
- | 断言内部状态或私有变量 | 测试行为而非实现 |
262
- | `data-testid` 以外的元素定位 | 禁止依赖 CSS class 或 DOM 结构 |
263
-
264
- ---
265
-
266
- ## 检查清单
267
-
268
- 完成测试编写后,逐条确认以下事项:
269
-
270
- - [ ] **文件位置**:测试文件与源文件在同一目录下
271
- - [ ] **文件命名**:遵循 `<name>.test.ts` / `<name>.test.tsx` 命名规则
272
- - [ ] **describe 命名**:使用被测模块名称作为 describe 描述
273
- - [ ] **it 描述**:使用中文描述预期行为(「应……」「当……时应……」)
274
- - [ ] **AAA 模式**:每个测试用例遵循 Arrange-Act-Assert 结构
275
- - [ ] **每个 it 单一职责**:每个 `it` 只验证一个行为点
276
- - [ ] **正常路径覆盖**:典型输入场景已测试
277
- - [ ] **边界值覆盖**:空值、零值、极值等已测试
278
- - [ ] **异常输入覆盖**:非法参数、类型错误等已测试
279
- - [ ] **Mock 合理性**:仅 Mock 外部依赖,未 Mock 被测模块内部
280
- - [ ] **元素定位**:组件测试使用 `data-testid` 定位元素
281
- - [ ] **测试独立性**:每个测试可单独运行,不依赖执行顺序
282
- - [ ] **测试通过**:所有用例通过 `vitest run`
283
- - [ ] **类型检查**:`tsc --noEmit` 无报错
284
-
285
- ---
286
-
287
- ## 相关规范
288
-
289
- - `.agents/rules/common/11-测试规范.md` — 测试框架选型、文件约定、编写规范与质量门禁
290
- - `.agents/rules/common/02-编码规范.md` — 通用编码规范
291
- - `.agents/rules/common/08-通用约束.md` — 中文描述等通用约束
292
- - `.agents/skills/common/execute-task/SKILL.md` — TDD 落地编码阶段引用本技能
1
+ ---
2
+ name: create-test
3
+ description: 当需要为功能模块编写单元测试或集成测试时使用本技能。指导按团队规范创建 Vitest 测试文件,涵盖命名约定、断言模式、Mock 策略与覆盖率要求。
4
+ compatibility: Assumes a local TypeScript/JavaScript repository with Vitest-compatible tooling and .agents/rules/common testing conventions.
5
+ ---
6
+
7
+ # 创建测试
8
+
9
+ ## 使用时机
10
+
11
+ 当出现以下场景时使用本技能:
12
+
13
+ - 为新增的工具函数、Store 逻辑、数据转换编写**单元测试**
14
+ - 为关键用户交互流程编写**组件测试**或**集成测试**
15
+ - 重构现有模块后需补充或更新测试用例
16
+ - `execute-task` 技能中 TDD 落地编码阶段需要创建测试文件
17
+
18
+ ## 环境依赖
19
+
20
+ - 默认面向本仓库的 `.agents/rules/common/11-测试规范.md`
21
+ - 示例以 Vitest 为主,若项目测试栈不同,需要按项目实际工具调整
22
+
23
+ ## 注意事项
24
+
25
+ - 不要为了“补覆盖率”去 mock 被测模块内部逻辑
26
+ - 测试文件应跟随真实代码落点,不要新造一套平行目录
27
+ - 组件测试只在项目已具备对应测试运行条件时再补
28
+
29
+ ---
30
+
31
+ ## 步骤
32
+
33
+ ### 步骤 1:确认测试目标与类型
34
+
35
+ 1. 明确被测模块:工具函数、Store、组件、业务逻辑。
36
+ 2. 确定测试级别:
37
+
38
+ | 级别 | 适用对象 | 说明 |
39
+ |------|----------|------|
40
+ | 单元测试 | 工具函数、纯逻辑、数据转换 | 隔离测试单个函数/模块的输入输出 |
41
+ | 组件测试 | UI 组件交互 | 使用 `@testing-library/react` 或 `@vue/test-utils` |
42
+ | 集成测试 | 多模块协作流程 | 验证模块间协作的正确性 |
43
+
44
+ ### 步骤 2:创建测试文件
45
+
46
+ 1. 在被测源文件**同目录**下创建测试文件。
47
+ 2. 文件命名:`<源文件名>.test.ts`(逻辑)或 `<源文件名>.test.tsx`(React 组件)。
48
+ 3. 导入 Vitest API 与被测模块。
49
+
50
+ ```text
51
+ src/utils/
52
+ ├── formatDate.ts
53
+ └── formatDate.test.ts # 与源文件同目录
54
+ ```
55
+
56
+ ### 步骤 3:编写测试用例
57
+
58
+ 按 **Arrange-Act-Assert** 模式编写每个测试:
59
+
60
+ 1. **Arrange**:准备测试数据和前置条件。
61
+ 2. **Act**:调用被测函数或触发被测行为。
62
+ 3. **Assert**:断言结果符合预期。
63
+
64
+ ```ts
65
+ import { describe, it, expect } from 'vitest';
66
+ import { formatDate } from './formatDate';
67
+
68
+ describe('formatDate', () => {
69
+ it('应将时间戳转换为 YYYY-MM-DD 格式', () => {
70
+ const timestamp = 1700000000000;
71
+ const result = formatDate(timestamp);
72
+ expect(result).toBe('2023-11-15');
73
+ });
74
+
75
+ it('传入 null 时应返回空字符串', () => {
76
+ expect(formatDate(null)).toBe('');
77
+ });
78
+
79
+ it('传入 undefined 时应返回空字符串', () => {
80
+ expect(formatDate(undefined)).toBe('');
81
+ });
82
+ });
83
+ ```
84
+
85
+ ### 步骤 4:补充边界与异常用例
86
+
87
+ 每个被测函数至少覆盖:
88
+
89
+ - **正常路径**:典型输入的预期输出
90
+ - **边界值**:空值、零值、极大/极小值、空数组/空对象
91
+ - **异常输入**:类型错误、格式异常、非法参数
92
+ - **特殊场景**:并发、超时等(视业务而定)
93
+
94
+ ### 步骤 5:运行测试并确认通过
95
+
96
+ ```bash
97
+ npx vitest run <测试文件路径>
98
+ ```
99
+
100
+ 确认所有用例通过后,再提交代码。
101
+
102
+ ---
103
+
104
+ ## 命名约定
105
+
106
+ ### 文件命名
107
+
108
+ | 类型 | 命名规则 | 示例 |
109
+ |------|----------|------|
110
+ | 逻辑/工具测试 | `<name>.test.ts` | `formatDate.test.ts` |
111
+ | React 组件测试 | `<name>.test.tsx` | `UserCard.test.tsx` |
112
+ | Vue 组件测试 | `<name>.test.ts` | `UserCard.test.ts` |
113
+ | 公共 Mock / 辅助 | 放置于 `tests/` 或 `src/__tests__/helpers/` | `tests/mocks/mockUser.ts` |
114
+
115
+ ### 描述命名
116
+
117
+ - `describe` 块:使用被测模块名称(函数名、组件名、Store 名)
118
+ - `it` / `test` 块:使用**中文**描述预期行为,格式为「应……」或「当……时应……」
119
+ - 描述表达**预期行为**,而非实现步骤
120
+
121
+ ```ts
122
+ describe('useAuthStore', () => {
123
+ it('登录成功后应保存用户信息到 state', () => { /* ... */ });
124
+ it('token 过期时应自动清除登录状态', () => { /* ... */ });
125
+ it('当网络异常时应抛出错误并保持原状态', () => { /* ... */ });
126
+ });
127
+ ```
128
+
129
+ ---
130
+
131
+ ## 测试模式
132
+
133
+ ### 单元测试模式
134
+
135
+ 隔离测试纯函数,不依赖外部环境:
136
+
137
+ ```ts
138
+ describe('calculateTotal', () => {
139
+ it('应正确计算商品总价', () => {
140
+ const items = [
141
+ { price: 10, quantity: 2 },
142
+ { price: 20, quantity: 1 },
143
+ ];
144
+ expect(calculateTotal(items)).toBe(40);
145
+ });
146
+
147
+ it('空数组应返回 0', () => {
148
+ expect(calculateTotal([])).toBe(0);
149
+ });
150
+ });
151
+ ```
152
+
153
+ ### Mock 策略
154
+
155
+ 遵循原则:**Mock 外部依赖,不 Mock 被测模块内部。**
156
+
157
+ #### API 请求 Mock
158
+
159
+ ```ts
160
+ import { vi } from 'vitest';
161
+ import { fetchUser } from './api';
162
+
163
+ vi.mock('./api', () => ({
164
+ fetchUser: vi.fn(),
165
+ }));
166
+
167
+ describe('UserService', () => {
168
+ it('应正确处理用户数据', async () => {
169
+ vi.mocked(fetchUser).mockResolvedValue({ id: 1, name: '张三' });
170
+ const result = await getUserInfo(1);
171
+ expect(result.name).toBe('张三');
172
+ });
173
+
174
+ it('接口异常时应抛出错误', async () => {
175
+ vi.mocked(fetchUser).mockRejectedValue(new Error('网络错误'));
176
+ await expect(getUserInfo(1)).rejects.toThrow('网络错误');
177
+ });
178
+ });
179
+ ```
180
+
181
+ #### 定时器 Mock
182
+
183
+ ```ts
184
+ import { vi, beforeEach, afterEach } from 'vitest';
185
+
186
+ beforeEach(() => {
187
+ vi.useFakeTimers();
188
+ });
189
+
190
+ afterEach(() => {
191
+ vi.useRealTimers();
192
+ });
193
+
194
+ it('防抖函数应在延迟后执行', () => {
195
+ const fn = vi.fn();
196
+ const debounced = debounce(fn, 300);
197
+
198
+ debounced();
199
+ expect(fn).not.toHaveBeenCalled();
200
+
201
+ vi.advanceTimersByTime(300);
202
+ expect(fn).toHaveBeenCalledOnce();
203
+ });
204
+ ```
205
+
206
+ #### 模块 Mock
207
+
208
+ ```ts
209
+ vi.mock('@/utils/storage', () => ({
210
+ getItem: vi.fn(),
211
+ setItem: vi.fn(),
212
+ }));
213
+ ```
214
+
215
+ ### 组件测试模式(React)
216
+
217
+ ```tsx
218
+ import { render, screen, fireEvent } from '@testing-library/react';
219
+
220
+ describe('SearchInput', () => {
221
+ it('输入关键词后应触发搜索回调', async () => {
222
+ const onSearch = vi.fn();
223
+ render(<SearchInput onSearch={onSearch} />);
224
+
225
+ const input = screen.getByTestId('search-input');
226
+ await fireEvent.change(input, { target: { value: '测试' } });
227
+ await fireEvent.click(screen.getByTestId('search-btn'));
228
+
229
+ expect(onSearch).toHaveBeenCalledWith('测试');
230
+ });
231
+ });
232
+ ```
233
+
234
+ ### 组件测试模式(Vue)
235
+
236
+ ```ts
237
+ import { mount } from '@vue/test-utils';
238
+
239
+ describe('SearchInput', () => {
240
+ it('输入关键词后应触发搜索事件', async () => {
241
+ const wrapper = mount(SearchInput);
242
+
243
+ await wrapper.find('[data-testid="search-input"]').setValue('测试');
244
+ await wrapper.find('[data-testid="search-btn"]').trigger('click');
245
+
246
+ expect(wrapper.emitted('search')?.[0]).toEqual(['测试']);
247
+ });
248
+ });
249
+ ```
250
+
251
+ ---
252
+
253
+ ## 禁止模式
254
+
255
+ | 禁止项 | 原因 |
256
+ |--------|------|
257
+ | 测试依赖执行顺序 | 测试应互相独立,可单独运行 |
258
+ | 快照测试滥用 | 仅用于关键 UI 结构,禁止对大段 HTML 做快照 |
259
+ | 硬编码延时(`setTimeout`) | 使用 `vi.useFakeTimers()` 或 `waitFor` |
260
+ | Mock 被测模块内部方法 | 只 Mock 外部依赖 |
261
+ | 断言内部状态或私有变量 | 测试行为而非实现 |
262
+ | `data-testid` 以外的元素定位 | 禁止依赖 CSS class 或 DOM 结构 |
263
+
264
+ ---
265
+
266
+ ## 检查清单
267
+
268
+ 完成测试编写后,逐条确认以下事项:
269
+
270
+ - [ ] **文件位置**:测试文件与源文件在同一目录下
271
+ - [ ] **文件命名**:遵循 `<name>.test.ts` / `<name>.test.tsx` 命名规则
272
+ - [ ] **describe 命名**:使用被测模块名称作为 describe 描述
273
+ - [ ] **it 描述**:使用中文描述预期行为(「应……」「当……时应……」)
274
+ - [ ] **AAA 模式**:每个测试用例遵循 Arrange-Act-Assert 结构
275
+ - [ ] **每个 it 单一职责**:每个 `it` 只验证一个行为点
276
+ - [ ] **正常路径覆盖**:典型输入场景已测试
277
+ - [ ] **边界值覆盖**:空值、零值、极值等已测试
278
+ - [ ] **异常输入覆盖**:非法参数、类型错误等已测试
279
+ - [ ] **Mock 合理性**:仅 Mock 外部依赖,未 Mock 被测模块内部
280
+ - [ ] **元素定位**:组件测试使用 `data-testid` 定位元素
281
+ - [ ] **测试独立性**:每个测试可单独运行,不依赖执行顺序
282
+ - [ ] **测试通过**:所有用例通过 `vitest run`
283
+ - [ ] **类型检查**:`tsc --noEmit` 无报错
284
+
285
+ ---
286
+
287
+ ## 相关规范
288
+
289
+ - `.agents/rules/common/11-测试规范.md` — 测试框架选型、文件约定、编写规范与质量门禁
290
+ - `.agents/rules/common/02-编码规范.md` — 通用编码规范
291
+ - `.agents/rules/common/08-通用约束.md` — 中文描述等通用约束
292
+ - `.agents/skills/common/execute-task/SKILL.md` — TDD 落地编码阶段引用本技能