@gong-ym/ai-spec-auto 0.2.3

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 (640) hide show
  1. package/.agents/commands/README.md +33 -0
  2. package/.agents/commands/claude/spec-start-review.md +88 -0
  3. package/.agents/commands/codex/spec-continue.md +74 -0
  4. package/.agents/commands/codex/spec-orchestrate.md +35 -0
  5. package/.agents/commands/codex/spec-start-review.md +88 -0
  6. package/.agents/commands/codex/spec-start.md +67 -0
  7. package/.agents/commands/codex/spec-status.md +22 -0
  8. package/.agents/commands/codex/spec-stop.md +29 -0
  9. package/.agents/commands/codex/spec-update.md +40 -0
  10. package/.agents/commands/common/branch-review.md +117 -0
  11. package/.agents/commands/common/project-init.md +25 -0
  12. package/.agents/commands/common/spec-continue.md +74 -0
  13. package/.agents/commands/common/spec-orchestrate.md +35 -0
  14. package/.agents/commands/common/spec-start-review.md +82 -0
  15. package/.agents/commands/common/spec-start.md +67 -0
  16. package/.agents/commands/common/spec-status.md +22 -0
  17. package/.agents/commands/common/spec-stop.md +29 -0
  18. package/.agents/commands/common/spec-update.md +40 -0
  19. package/.agents/commands/cursor/opsx-apply.md +55 -0
  20. package/.agents/commands/cursor/opsx-archive.md +48 -0
  21. package/.agents/commands/cursor/opsx-explore.md +45 -0
  22. package/.agents/commands/cursor/opsx-propose.md +59 -0
  23. package/.agents/commands/cursor/spec-continue.md +63 -0
  24. package/.agents/commands/cursor/spec-orchestrate.md +53 -0
  25. package/.agents/commands/cursor/spec-start-review.md +78 -0
  26. package/.agents/commands/cursor/spec-start.md +59 -0
  27. package/.agents/commands/cursor/spec-status.md +30 -0
  28. package/.agents/commands/cursor/spec-stop.md +29 -0
  29. package/.agents/commands/cursor/spec-update.md +41 -0
  30. package/.agents/flows/FRONTMATTER.md +263 -0
  31. package/.agents/flows/RUN_OUTPUT.md +263 -0
  32. package/.agents/flows/common/README.md +29 -0
  33. package/.agents/flows/common/bugfix-to-verification.md +95 -0
  34. package/.agents/flows/common/change-to-architecture-review.md +89 -0
  35. package/.agents/flows/common/change-to-release.md +94 -0
  36. package/.agents/flows/common/prd-to-delivery.md +184 -0
  37. package/.agents/flows/common/requirement-to-observability.md +97 -0
  38. package/.agents/orchestration/README.md +22 -0
  39. package/.agents/orchestration/expert-dispatch-spec.md +155 -0
  40. package/.agents/orchestration/expert-executor-spec.md +84 -0
  41. package/.agents/orchestration/expert-runtime-action-spec.md +73 -0
  42. package/.agents/orchestration/runtime-state-handoff-spec.md +264 -0
  43. package/.agents/orchestration/task-anchor-spec.md +212 -0
  44. package/.agents/orchestration/task-orchestrator-adapter-payload.md +153 -0
  45. package/.agents/orchestration/task-orchestrator-bootstrap-payload.md +145 -0
  46. package/.agents/orchestration/task-orchestrator-output-extractor-spec.md +93 -0
  47. package/.agents/orchestration/task-orchestrator-run-plan-template.md +312 -0
  48. package/.agents/orchestration/task-orchestrator-runtime-hooks.md +214 -0
  49. package/.agents/registry/README.md +63 -0
  50. package/.agents/registry/flows.json +125 -0
  51. package/.agents/registry/profiles.json +101 -0
  52. package/.agents/registry/roles.json +1266 -0
  53. package/.agents/registry/rules.json +148 -0
  54. package/.agents/registry/scenario-packages.json +123 -0
  55. package/.agents/registry/skills.json +130 -0
  56. package/.agents/roles/INDEX.md +346 -0
  57. package/.agents/roles/common/README.md +76 -0
  58. package/.agents/roles/common/archive-change.md +80 -0
  59. package/.agents/roles/common/backend-implementer.md +92 -0
  60. package/.agents/roles/common/code-guardian.md +151 -0
  61. package/.agents/roles/common/frontend-implementer.md +146 -0
  62. package/.agents/roles/common/requirement-analyst.md +138 -0
  63. package/.agents/roles/common/task-orchestrator-routing.md +301 -0
  64. package/.agents/roles/common/task-orchestrator.md +224 -0
  65. package/.agents/roles/common/tooling-implementer.md +92 -0
  66. package/.agents/roles/domains/README.md +35 -0
  67. package/.agents/roles/domains/delivery/README.md +11 -0
  68. package/.agents/roles/domains/delivery/container-specialist.md +50 -0
  69. package/.agents/roles/domains/delivery/deployment-specialist.md +50 -0
  70. package/.agents/roles/domains/delivery/pipeline-specialist.md +50 -0
  71. package/.agents/roles/domains/demand-design/README.md +16 -0
  72. package/.agents/roles/domains/demand-design/api-contract-specialist.md +52 -0
  73. package/.agents/roles/domains/demand-design/design-collaborator.md +58 -0
  74. package/.agents/roles/domains/documentation/README.md +11 -0
  75. package/.agents/roles/domains/documentation/api-doc-specialist.md +50 -0
  76. package/.agents/roles/domains/documentation/component-doc-specialist.md +49 -0
  77. package/.agents/roles/domains/documentation/technical-writing-specialist.md +48 -0
  78. package/.agents/roles/domains/engineering/README.md +17 -0
  79. package/.agents/roles/domains/engineering/architecture-advisor.md +53 -0
  80. package/.agents/roles/domains/engineering/build-specialist.md +51 -0
  81. package/.agents/roles/domains/engineering/dependency-governor.md +52 -0
  82. package/.agents/roles/domains/governance/README.md +17 -0
  83. package/.agents/roles/domains/governance/api-governance-specialist.md +51 -0
  84. package/.agents/roles/domains/governance/lint-policy-specialist.md +49 -0
  85. package/.agents/roles/domains/governance/route-governance-specialist.md +52 -0
  86. package/.agents/roles/domains/observability/README.md +11 -0
  87. package/.agents/roles/domains/observability/error-tracker.md +50 -0
  88. package/.agents/roles/domains/observability/event-instrumentation-specialist.md +51 -0
  89. package/.agents/roles/domains/observability/rum-analyst.md +50 -0
  90. package/.agents/roles/domains/performance/README.md +11 -0
  91. package/.agents/roles/domains/performance/asset-optimizer.md +50 -0
  92. package/.agents/roles/domains/performance/performance-auditor.md +56 -0
  93. package/.agents/roles/domains/performance/vitals-analyst.md +50 -0
  94. package/.agents/roles/domains/security-a11y/README.md +11 -0
  95. package/.agents/roles/domains/security-a11y/a11y-auditor.md +50 -0
  96. package/.agents/roles/domains/security-a11y/aria-specialist.md +51 -0
  97. package/.agents/roles/domains/security-a11y/security-reviewer.md +49 -0
  98. package/.agents/roles/domains/testing/README.md +12 -0
  99. package/.agents/roles/domains/testing/coverage-analyst.md +50 -0
  100. package/.agents/roles/domains/testing/e2e-test-specialist.md +51 -0
  101. package/.agents/roles/domains/testing/unit-test-specialist.md +56 -0
  102. package/.agents/roles/domains/testing/verification-reviewer.md +67 -0
  103. package/.agents/rules/README.md +87 -0
  104. package/.agents/rules/common/02-/347/274/226/347/240/201/350/247/204/350/214/203.md +45 -0
  105. package/.agents/rules/common/08-/351/200/232/347/224/250/347/272/246/346/235/237.md +63 -0
  106. package/.agents/rules/common/10-/346/226/207/346/241/243/350/247/204/350/214/203.md +101 -0
  107. package/.agents/rules/common/12-Superpowers/346/211/247/350/241/214/350/247/204/350/214/203.md +46 -0
  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 -0
  109. package/.agents/rules/common/15-visual-gate-wait.md +90 -0
  110. package/.agents/rules/profiles/nestjs/01-/351/241/271/347/233/256/346/246/202/350/277/260.md +27 -0
  111. package/.agents/rules/profiles/nestjs/03-/351/241/271/347/233/256/347/273/223/346/236/204.md +20 -0
  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 -0
  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 -0
  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 -0
  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 -0
  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 -0
  117. package/.agents/rules/profiles/nestjs/11-/346/265/213/350/257/225/350/247/204/350/214/203.md +24 -0
  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 -0
  119. package/.agents/rules/profiles/node-tooling/01-/351/241/271/347/233/256/346/246/202/350/277/260.md +30 -0
  120. package/.agents/rules/profiles/node-tooling/03-/351/241/271/347/233/256/347/273/223/346/236/204.md +37 -0
  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 -0
  122. package/.agents/rules/profiles/node-tooling/05-Contract/344/270/216Schema/350/247/204/350/214/203.md +42 -0
  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 -0
  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 -0
  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 -0
  126. package/.agents/rules/profiles/node-tooling/11-/346/265/213/350/257/225/350/247/204/350/214/203.md +41 -0
  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 -0
  128. package/.agents/rules/profiles/react/01-/351/241/271/347/233/256/346/246/202/350/277/260.md +29 -0
  129. package/.agents/rules/profiles/react/03-/351/241/271/347/233/256/347/273/223/346/236/204.md +104 -0
  130. package/.agents/rules/profiles/react/04-/347/273/204/344/273/266/350/247/204/350/214/203.md +46 -0
  131. package/.agents/rules/profiles/react/05-API/350/247/204/350/214/203.md +67 -0
  132. package/.agents/rules/profiles/react/06-/350/267/257/347/224/261/350/247/204/350/214/203.md +54 -0
  133. package/.agents/rules/profiles/react/07-/347/212/266/346/200/201/347/256/241/347/220/206.md +226 -0
  134. package/.agents/rules/profiles/react/09-/346/240/267/345/274/217/350/247/204/350/214/203.md +71 -0
  135. package/.agents/rules/profiles/react/11-/346/265/213/350/257/225/350/247/204/350/214/203.md +80 -0
  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 -0
  137. package/.agents/rules/profiles/springboot/01-/351/241/271/347/233/256/346/246/202/350/277/260.md +31 -0
  138. package/.agents/rules/profiles/springboot/03-/351/241/271/347/233/256/347/273/223/346/236/204.md +37 -0
  139. package/.agents/rules/profiles/springboot/04-/345/210/206/345/261/202/350/247/204/350/214/203.md +33 -0
  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 -0
  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 -0
  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 -0
  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 -0
  144. package/.agents/rules/profiles/springboot/11-/346/265/213/350/257/225/350/247/204/350/214/203.md +43 -0
  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 -0
  146. package/.agents/rules/profiles/vue/01-/351/241/271/347/233/256/346/246/202/350/277/260.md +47 -0
  147. package/.agents/rules/profiles/vue/03-/351/241/271/347/233/256/347/273/223/346/236/204.md +106 -0
  148. package/.agents/rules/profiles/vue/04-/347/273/204/344/273/266/350/247/204/350/214/203.md +61 -0
  149. package/.agents/rules/profiles/vue/05-API/350/247/204/350/214/203.md +67 -0
  150. package/.agents/rules/profiles/vue/06-/350/267/257/347/224/261/350/247/204/350/214/203.md +69 -0
  151. package/.agents/rules/profiles/vue/07-/347/212/266/346/200/201/347/256/241/347/220/206.md +93 -0
  152. package/.agents/rules/profiles/vue/09-/346/240/267/345/274/217/350/247/204/350/214/203.md +67 -0
  153. package/.agents/rules/profiles/vue/11-/346/265/213/350/257/225/350/247/204/350/214/203.md +80 -0
  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 -0
  155. package/.agents/skills/README.md +171 -0
  156. package/.agents/skills/common/archive-change/SKILL.md +180 -0
  157. package/.agents/skills/common/branch-code-reviewer/SKILL.md +459 -0
  158. package/.agents/skills/common/branch-code-reviewer/references/business-risk-guide.md +293 -0
  159. package/.agents/skills/common/branch-code-reviewer/references/html-template-guide.md +121 -0
  160. package/.agents/skills/common/config-and-secret-scan/SKILL.md +99 -0
  161. package/.agents/skills/common/create-proposal/SKILL.md +192 -0
  162. package/.agents/skills/common/create-proposal/evals/evals.json +16 -0
  163. package/.agents/skills/common/create-proposal/evals/train_queries.json +18 -0
  164. package/.agents/skills/common/create-proposal/evals/validation_queries.json +18 -0
  165. package/.agents/skills/common/create-proposal/references/interaction-spec-template.md +42 -0
  166. package/.agents/skills/common/create-test/SKILL.md +292 -0
  167. package/.agents/skills/common/dependency-impact-graph/SKILL.md +80 -0
  168. package/.agents/skills/common/execute-task/SKILL.md +206 -0
  169. package/.agents/skills/common/execute-task/evals/evals.json +16 -0
  170. package/.agents/skills/common/execute-task/evals/train_queries.json +18 -0
  171. package/.agents/skills/common/execute-task/evals/validation_queries.json +18 -0
  172. package/.agents/skills/common/find-skills/SKILL.md +144 -0
  173. package/.agents/skills/common/install-ai-spec-auto/SKILL.md +260 -0
  174. package/.agents/skills/common/install-ai-spec-auto/evals/evals.json +17 -0
  175. package/.agents/skills/common/install-ai-spec-auto/evals/train_queries.json +18 -0
  176. package/.agents/skills/common/install-ai-spec-auto/evals/validation_queries.json +18 -0
  177. package/.agents/skills/common/project-init/SKILL.md +178 -0
  178. package/.agents/skills/common/project-init/evals/evals.json +16 -0
  179. package/.agents/skills/common/project-init/evals/train_queries.json +18 -0
  180. package/.agents/skills/common/project-init/evals/validation_queries.json +18 -0
  181. package/.agents/skills/common/project-init/references/custom-rule-generation.md +89 -0
  182. package/.agents/skills/common/project-init/references/deep-scan-rules.md +67 -0
  183. package/.agents/skills/common/project-init/references/output-contracts.md +71 -0
  184. package/.agents/skills/common/project-init/references/repo-fact-gathering.md +83 -0
  185. package/.agents/skills/common/project-init/references/scope-resolution.md +76 -0
  186. package/.agents/skills/common/project-init/scripts/inspect-project.js +112 -0
  187. package/.agents/skills/common/skill-creator/LICENSE.txt +202 -0
  188. package/.agents/skills/common/skill-creator/SKILL.md +370 -0
  189. package/.agents/skills/common/skill-creator/evals/evals.json +16 -0
  190. package/.agents/skills/common/skill-creator/evals/train_queries.json +18 -0
  191. package/.agents/skills/common/skill-creator/evals/validation_queries.json +18 -0
  192. package/.agents/skills/common/skill-creator/references/output-patterns.md +82 -0
  193. package/.agents/skills/common/skill-creator/references/workflows.md +28 -0
  194. package/.agents/skills/common/skill-creator/scripts/init_skill.py +209 -0
  195. package/.agents/skills/common/skill-creator/scripts/package_skill.py +110 -0
  196. package/.agents/skills/common/skill-creator/scripts/quick_validate.py +51 -0
  197. package/.agents/skills/common/skill-optimizer/SKILL.md +102 -0
  198. package/.agents/skills/common/skill-optimizer/evals/evals.json +16 -0
  199. package/.agents/skills/common/skill-optimizer/evals/train_queries.json +18 -0
  200. package/.agents/skills/common/skill-optimizer/evals/validation_queries.json +18 -0
  201. package/.agents/skills/common/skill-optimizer/references/design-patterns.md +26 -0
  202. package/.agents/skills/common/skill-optimizer/references/review-checklist.md +22 -0
  203. package/.agents/skills/common/using-superpowers/SKILL.md +151 -0
  204. package/.agents/skills/common/wait-for-gate-signal/SKILL.md +85 -0
  205. package/.agents/skills/domains/README.md +19 -0
  206. package/.agents/skills/domains/ui-ux-pro-max/SKILL.md +58 -0
  207. package/.agents/skills/domains/web/design-analysis/SKILL.md +89 -0
  208. package/.agents/skills/domains/web/design-analysis/rules/analysis-order.md +61 -0
  209. package/.agents/skills/domains/web/design-analysis/rules/analysis-priorities.md +136 -0
  210. package/.agents/skills/domains/web/design-analysis/rules/checklist-common-misses.md +107 -0
  211. package/.agents/skills/domains/web/design-analysis/rules/implementation-common-errors.md +204 -0
  212. package/.agents/skills/domains/web/design-analysis/rules/implementation-guidelines.md +211 -0
  213. package/.agents/skills/domains/web/design-analysis/rules/output-analysis-checklist.md +247 -0
  214. package/.agents/skills/domains/web/design-analysis/rules/tools-design-guidelines.md +108 -0
  215. package/.agents/skills/domains/web/design-analysis/rules/workflow-element-extraction.md +162 -0
  216. package/.agents/skills/domains/web/design-analysis/rules/workflow-layout-map.md +131 -0
  217. package/.agents/skills/domains/web/design-analysis/rules/workflow-output-checklist.md +70 -0
  218. package/.agents/skills/domains/web/design-analysis/rules/workflow-style-summary.md +91 -0
  219. package/.agents/skills/domains/web/route-permission-map/SKILL.md +103 -0
  220. package/.agents/skills/domains/web/ui-verification/SKILL.md +114 -0
  221. package/.agents/skills/domains/web/ui-verification/evals/evals.json +16 -0
  222. package/.agents/skills/domains/web/ui-verification/evals/train_queries.json +18 -0
  223. package/.agents/skills/domains/web/ui-verification/evals/validation_queries.json +18 -0
  224. package/.agents/skills/domains/web/ui-verification/rules/comparison-content-image.md +34 -0
  225. package/.agents/skills/domains/web/ui-verification/rules/comparison-content-text.md +30 -0
  226. package/.agents/skills/domains/web/ui-verification/rules/comparison-hierarchy.md +33 -0
  227. package/.agents/skills/domains/web/ui-verification/rules/comparison-layout.md +35 -0
  228. package/.agents/skills/domains/web/ui-verification/rules/errors-alignment.md +42 -0
  229. package/.agents/skills/domains/web/ui-verification/rules/errors-button-dimensions.md +28 -0
  230. package/.agents/skills/domains/web/ui-verification/rules/errors-button-position.md +25 -0
  231. package/.agents/skills/domains/web/ui-verification/rules/errors-css-priority.md +50 -0
  232. package/.agents/skills/domains/web/ui-verification/rules/errors-flex-column-width.md +46 -0
  233. package/.agents/skills/domains/web/ui-verification/rules/errors-flex-layout.md +46 -0
  234. package/.agents/skills/domains/web/ui-verification/rules/errors-grid-container-width.md +44 -0
  235. package/.agents/skills/domains/web/ui-verification/rules/errors-page-container-width.md +39 -0
  236. package/.agents/skills/domains/web/ui-verification/rules/tools-browser-navigation.md +53 -0
  237. package/.agents/skills/domains/web/ui-verification/rules/tools-design-guidelines.md +53 -0
  238. package/.agents/skills/domains/web/ui-verification/rules/workflow-checklist.md +27 -0
  239. package/.agents/skills/domains/web/ui-verification/rules/workflow-problem-list.md +56 -0
  240. package/.agents/skills/domains/web/ui-verification/rules/workflow-reflection.md +44 -0
  241. package/.agents/skills/domains/web/ui-verification/rules/writing-alignment.md +44 -0
  242. package/.agents/skills/domains/web/ui-verification/rules/writing-element-completeness.md +63 -0
  243. package/.agents/skills/domains/web/ui-verification/rules/writing-list-layout.md +75 -0
  244. package/.agents/skills/domains/web/ui-verification/rules/writing-page-container-width.md +37 -0
  245. package/.agents/skills/domains/web/web-design-guidelines/SKILL.md +40 -0
  246. package/.agents/skills/profiles/nestjs/README.md +4 -0
  247. package/.agents/skills/profiles/node-tooling/README.md +9 -0
  248. package/.agents/skills/profiles/react/create-api/SKILL.md +145 -0
  249. package/.agents/skills/profiles/react/create-component/SKILL.md +160 -0
  250. package/.agents/skills/profiles/react/create-route/SKILL.md +168 -0
  251. package/.agents/skills/profiles/react/create-store/SKILL.md +262 -0
  252. package/.agents/skills/profiles/react/theme-variables/SKILL.md +82 -0
  253. package/.agents/skills/profiles/react/vercel-composition-patterns/AGENTS.md +899 -0
  254. package/.agents/skills/profiles/react/vercel-composition-patterns/SKILL.md +81 -0
  255. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
  256. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
  257. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
  258. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
  259. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/state-context-interface.md +191 -0
  260. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
  261. package/.agents/skills/profiles/react/vercel-composition-patterns/rules/state-lift-state.md +125 -0
  262. package/.agents/skills/profiles/react/vercel-react-best-practices/AGENTS.md +2934 -0
  263. package/.agents/skills/profiles/react/vercel-react-best-practices/SKILL.md +136 -0
  264. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  265. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  266. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  267. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  268. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  269. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  270. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/async-parallel.md +28 -0
  271. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  272. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  273. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  274. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  275. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  276. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  277. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  278. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  279. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  280. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  281. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  282. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  283. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  284. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  285. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  286. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  287. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  288. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  289. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  290. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  291. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  292. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  293. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  294. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  295. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  296. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  297. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  298. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  299. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  300. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  301. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  302. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  303. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  304. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  305. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  306. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  307. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  308. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  309. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  310. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  311. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  312. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  313. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  314. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  315. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  316. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  317. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  318. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  319. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  320. package/.agents/skills/profiles/react/vercel-react-best-practices/rules/server-serialization.md +38 -0
  321. package/.agents/skills/profiles/springboot/README.md +10 -0
  322. package/.agents/skills/profiles/vue/create-api/SKILL.md +105 -0
  323. package/.agents/skills/profiles/vue/create-component/SKILL.md +76 -0
  324. package/.agents/skills/profiles/vue/create-route/SKILL.md +141 -0
  325. package/.agents/skills/profiles/vue/create-store/SKILL.md +97 -0
  326. package/.agents/skills/profiles/vue/create-view/SKILL.md +81 -0
  327. package/.agents/skills/profiles/vue/theme-variables/SKILL.md +73 -0
  328. package/.agents/skills/profiles/vue/vue-best-practices/SKILL.md +166 -0
  329. package/.agents/skills/profiles/vue/vue-best-practices/references/animation-class-based-technique.md +254 -0
  330. package/.agents/skills/profiles/vue/vue-best-practices/references/animation-state-driven-technique.md +291 -0
  331. package/.agents/skills/profiles/vue/vue-best-practices/references/component-async.md +97 -0
  332. package/.agents/skills/profiles/vue/vue-best-practices/references/component-data-flow.md +307 -0
  333. package/.agents/skills/profiles/vue/vue-best-practices/references/component-fallthrough-attrs.md +174 -0
  334. package/.agents/skills/profiles/vue/vue-best-practices/references/component-keep-alive.md +137 -0
  335. package/.agents/skills/profiles/vue/vue-best-practices/references/component-slots.md +216 -0
  336. package/.agents/skills/profiles/vue/vue-best-practices/references/component-suspense.md +228 -0
  337. package/.agents/skills/profiles/vue/vue-best-practices/references/component-teleport.md +108 -0
  338. package/.agents/skills/profiles/vue/vue-best-practices/references/component-transition-group.md +128 -0
  339. package/.agents/skills/profiles/vue/vue-best-practices/references/component-transition.md +125 -0
  340. package/.agents/skills/profiles/vue/vue-best-practices/references/composables.md +290 -0
  341. package/.agents/skills/profiles/vue/vue-best-practices/references/directives.md +162 -0
  342. package/.agents/skills/profiles/vue/vue-best-practices/references/perf-avoid-component-abstraction-in-lists.md +159 -0
  343. package/.agents/skills/profiles/vue/vue-best-practices/references/perf-v-once-v-memo-directives.md +182 -0
  344. package/.agents/skills/profiles/vue/vue-best-practices/references/perf-virtualize-large-lists.md +187 -0
  345. package/.agents/skills/profiles/vue/vue-best-practices/references/plugins.md +166 -0
  346. package/.agents/skills/profiles/vue/vue-best-practices/references/reactivity.md +344 -0
  347. package/.agents/skills/profiles/vue/vue-best-practices/references/render-functions.md +201 -0
  348. package/.agents/skills/profiles/vue/vue-best-practices/references/sfc.md +310 -0
  349. package/.agents/skills/profiles/vue/vue-best-practices/references/state-management.md +135 -0
  350. package/.agents/skills/profiles/vue/vue-best-practices/references/updated-hook-performance.md +187 -0
  351. package/.agents/templates/common/README.md +23 -0
  352. package/.agents/templates/common/bugfix.md +22 -0
  353. package/.agents/templates/common/create-expert-package.md +458 -0
  354. package/.agents/templates/common/mock-page.md +28 -0
  355. package/.agents/templates/common/new-component.md +25 -0
  356. package/.agents/templates/common/new-page.md +31 -0
  357. package/.cursor/mcp.json +36 -0
  358. package/.qoder/README.md +114 -0
  359. package/.qoder/commands +1 -0
  360. package/.qoder/mcp.json +26 -0
  361. package/.qoder/rules +1 -0
  362. package/.qoder/skills +1 -0
  363. package/LICENSE +21 -0
  364. package/README.md +433 -0
  365. package/bin/archive-change.js +474 -0
  366. package/bin/check-command.js +62 -0
  367. package/bin/cli.js +295 -0
  368. package/bin/command-template-renderer.js +40 -0
  369. package/bin/context-command.js +102 -0
  370. package/bin/demo-runtime-smoke.js +760 -0
  371. package/bin/execution-semantics.js +821 -0
  372. package/bin/executor-command.js +93 -0
  373. package/bin/expert-dispatch.js +334 -0
  374. package/bin/expert-executor.js +1148 -0
  375. package/bin/guard-command.js +52 -0
  376. package/bin/hub-command.js +876 -0
  377. package/bin/ide-command.js +242 -0
  378. package/bin/init-command.js +193 -0
  379. package/bin/install-workflow.js +2983 -0
  380. package/bin/manifest-export.js +34 -0
  381. package/bin/profile-registry.js +90 -0
  382. package/bin/protocol-workflow.js +446 -0
  383. package/bin/repair-command.js +161 -0
  384. package/bin/repo-map.js +177 -0
  385. package/bin/report-command.js +236 -0
  386. package/bin/runtime-bootstrap.js +428 -0
  387. package/bin/runtime-embedded.js +101 -0
  388. package/bin/runtime-fallback.js +106 -0
  389. package/bin/runtime-launcher.js +116 -0
  390. package/bin/runtime-paths.js +177 -0
  391. package/bin/runtime-registry.js +289 -0
  392. package/bin/runtime-state.js +2541 -0
  393. package/bin/scan.js +96 -0
  394. package/bin/self-upgrade.js +206 -0
  395. package/bin/skill-spec-validator.js +457 -0
  396. package/bin/spec-command.js +366 -0
  397. package/bin/superpowers.js +384 -0
  398. package/bin/sync-command.js +59 -0
  399. package/bin/sync.js +1904 -0
  400. package/bin/task-orchestrator-adapter.js +341 -0
  401. package/bin/task-orchestrator-extractor.js +274 -0
  402. package/bin/task-orchestrator-runner.js +1208 -0
  403. package/bin/telemetry/README.md +66 -0
  404. package/bin/telemetry/aspect.js +153 -0
  405. package/bin/telemetry/collect.js +67 -0
  406. package/bin/telemetry/config.js +114 -0
  407. package/bin/telemetry/defaults.json +5 -0
  408. package/bin/telemetry/healthcheck.js +195 -0
  409. package/bin/telemetry/identity.js +53 -0
  410. package/bin/telemetry/index.js +25 -0
  411. package/bin/telemetry/reporter.js +83 -0
  412. package/bin/telemetry/safe.js +39 -0
  413. package/bin/validate-registry.js +740 -0
  414. package/bin/visual-bridge-config.js +117 -0
  415. package/bin/visual-bridge.js +287 -0
  416. package/bin/visual-command.js +432 -0
  417. package/bin/worktree-command.js +194 -0
  418. package/configs/common/.editorconfig +15 -0
  419. package/configs/common/.husky/commit-msg +4 -0
  420. package/configs/common/.husky/pre-commit +4 -0
  421. package/configs/common/.lintstagedrc +11 -0
  422. package/configs/common/.prettierignore +11 -0
  423. package/configs/common/.prettierrc.json +11 -0
  424. package/configs/common/.stylelintignore +14 -0
  425. package/configs/common/.stylelintrc.json +21 -0
  426. package/configs/common/commitlint.config.js +3 -0
  427. package/configs/profiles/nestjs/.gitkeep +1 -0
  428. package/configs/profiles/node-tooling/.gitkeep +1 -0
  429. package/configs/profiles/react/.eslintignore +6 -0
  430. package/configs/profiles/react/.eslintrc.js +16 -0
  431. package/configs/profiles/react/.stylelintrc.json +18 -0
  432. package/configs/profiles/springboot/.gitkeep +1 -0
  433. package/configs/profiles/vue/.eslintignore +7 -0
  434. package/configs/profiles/vue/.eslintrc.cjs +17 -0
  435. package/contracts/README.md +28 -0
  436. package/contracts/fixtures/asset-package.fixture.json +26 -0
  437. package/contracts/fixtures/asset-usage-feedback.fixture.json +14 -0
  438. package/contracts/fixtures/evidence-report.fixture.json +28 -0
  439. package/contracts/fixtures/manifest.fixture.json +20 -0
  440. package/contracts/fixtures/run-event.fixture.json +15 -0
  441. package/contracts/schemas/asset-package.schema.json +76 -0
  442. package/contracts/schemas/asset-usage-feedback.schema.json +57 -0
  443. package/contracts/schemas/evidence-report.schema.json +60 -0
  444. package/contracts/schemas/manifest.schema.json +63 -0
  445. package/contracts/schemas/run-event.schema.json +72 -0
  446. package/install.ps1 +35 -0
  447. package/install.sh +17 -0
  448. package/internal/ai-protocol-workflow.js +5600 -0
  449. package/internal/hub-client.js +98 -0
  450. package/internal/hub-sync-selection.js +69 -0
  451. package/internal/visual-hooks/README.md +481 -0
  452. package/internal/visual-hooks/config-loader.js +218 -0
  453. package/internal/visual-hooks/control-puller.js +206 -0
  454. package/internal/visual-hooks/gate-signal.js +150 -0
  455. package/internal/visual-hooks/inbox-consumer.js +469 -0
  456. package/internal/visual-hooks/index.js +197 -0
  457. package/internal/visual-hooks/push-client.js +189 -0
  458. package/internal/visual-hooks/receipt-pusher.js +176 -0
  459. package/internal/visual-hooks/runtime-state-pusher.js +128 -0
  460. package/openspec/changes/.gitkeep +0 -0
  461. package/openspec/changes/archive/.gitkeep +0 -0
  462. package/openspec/config.yaml.template +52 -0
  463. package/openspec/schemas/expert-delivery/schema.yaml +68 -0
  464. package/openspec/schemas/expert-delivery/templates/checklist.md +39 -0
  465. package/openspec/schemas/expert-delivery/templates/design.md +61 -0
  466. package/openspec/schemas/expert-delivery/templates/iterations.md +25 -0
  467. package/openspec/schemas/expert-delivery/templates/proposal.md +45 -0
  468. package/openspec/schemas/expert-delivery/templates/spec.md +29 -0
  469. package/openspec/schemas/expert-delivery/templates/tasks.md +24 -0
  470. package/openspec/specs/.gitkeep +0 -0
  471. package/package.json +73 -0
  472. package/scripts/acceptance-zero-intrusion.sh +168 -0
  473. package/scripts/hub-sync-assets.config.example.json +296 -0
  474. package/scripts/hub-sync-assets.js +2038 -0
  475. package/scripts/local-verify.sh +280 -0
  476. package/scripts/post-publish-auto-fix-check.js +404 -0
  477. package/scripts/post-publish-verify.sh +175 -0
  478. package/scripts/setup-cursor-manual-test.sh +107 -0
  479. package/scripts/setup-cursor-spec-archive-test.sh +111 -0
  480. package/scripts/setup-visual-integration.sh +225 -0
  481. package/scripts/test-integration.sh +176 -0
  482. package/scripts/update-test-project.sh +93 -0
  483. package/scripts/upload-four-web.sh +57 -0
  484. package/scripts/verify-install-ps1-bom.js +26 -0
  485. package/src/agent/agent-context.js +259 -0
  486. package/src/agent/agent-profile.js +185 -0
  487. package/src/agent/agent-templates.js +161 -0
  488. package/src/agent/agent-types.js +108 -0
  489. package/src/agent/collaboration-protocol.js +333 -0
  490. package/src/agent/conflict-handler.js +364 -0
  491. package/src/agent/file-permission.js +121 -0
  492. package/src/agent/index.js +38 -0
  493. package/src/agent/permission-audit.js +151 -0
  494. package/src/agent/review-repair-loop.js +270 -0
  495. package/src/agent/tool-permission.js +101 -0
  496. package/src/asset/asset-dependency.js +322 -0
  497. package/src/asset/asset-feedback.js +350 -0
  498. package/src/asset/asset-fork.js +300 -0
  499. package/src/asset/asset-install.js +278 -0
  500. package/src/asset/asset-installer.js +497 -0
  501. package/src/asset/asset-lifecycle.js +324 -0
  502. package/src/asset/asset-manager.js +245 -0
  503. package/src/asset/asset-package-manager.js +349 -0
  504. package/src/asset/asset-package.js +186 -0
  505. package/src/asset/asset-quality.js +262 -0
  506. package/src/asset/asset-registry.js +387 -0
  507. package/src/asset/asset-version.js +293 -0
  508. package/src/asset/index.js +86 -0
  509. package/src/cache/agent-profile-cache.js +59 -0
  510. package/src/cache/asset-cache.js +63 -0
  511. package/src/cache/global-cache.js +61 -0
  512. package/src/cache/manifest-cache.js +30 -0
  513. package/src/check/check-service.js +32 -0
  514. package/src/config/config-layer.js +343 -0
  515. package/src/config/config-loader.js +60 -0
  516. package/src/config/defaults.js +49 -0
  517. package/src/connectors/hub/asset-package.js +72 -0
  518. package/src/connectors/hub/asset-usage-feedback.js +46 -0
  519. package/src/connectors/hub/hub-connector.js +44 -0
  520. package/src/connectors/hub/index.js +21 -0
  521. package/src/connectors/visual/evidence-report.js +49 -0
  522. package/src/connectors/visual/index.js +15 -0
  523. package/src/connectors/visual/queue.js +41 -0
  524. package/src/connectors/visual/run-event.js +81 -0
  525. package/src/connectors/visual/visual-connector.js +77 -0
  526. package/src/context/context-budget.js +59 -0
  527. package/src/context/context-builder.js +285 -0
  528. package/src/context/context-loader.js +116 -0
  529. package/src/context/context-planner.js +158 -0
  530. package/src/context/types.js +96 -0
  531. package/src/contracts/index.js +63 -0
  532. package/src/executor/executor-registry.js +78 -0
  533. package/src/executor/executor-result-parser.js +44 -0
  534. package/src/executor/executor-runner.js +141 -0
  535. package/src/executor/executor-selector.js +139 -0
  536. package/src/executor/executor-timeout.js +36 -0
  537. package/src/executor/providers/base-provider-utils.js +189 -0
  538. package/src/executor/providers/claude-code-executor-provider.js +128 -0
  539. package/src/executor/providers/codex-executor-provider.js +126 -0
  540. package/src/executor/providers/cursor-executor-provider.js +99 -0
  541. package/src/executor/types.js +137 -0
  542. package/src/git/branch-manager.js +71 -0
  543. package/src/git/dirty-checker.js +43 -0
  544. package/src/git/dirty-strategy-handler.js +29 -0
  545. package/src/git/git-command.js +37 -0
  546. package/src/git/git-repository-detector.js +45 -0
  547. package/src/git/multi-repo-worktree-planner.js +88 -0
  548. package/src/git/policy.js +19 -0
  549. package/src/git/strategies/block-dirty-strategy.js +34 -0
  550. package/src/git/strategies/ignore-dirty-strategy.js +33 -0
  551. package/src/git/strategies/patch-snapshot-strategy.js +53 -0
  552. package/src/git/strategies/wip-commit-strategy.js +38 -0
  553. package/src/git/types.js +71 -0
  554. package/src/git/worktree-manager.js +85 -0
  555. package/src/governance/asset-review.js +351 -0
  556. package/src/governance/audit-log.js +368 -0
  557. package/src/governance/gray-release.js +312 -0
  558. package/src/governance/index.js +31 -0
  559. package/src/governance/policy-types.js +56 -0
  560. package/src/governance/rbac-types.js +171 -0
  561. package/src/governance/rbac.js +382 -0
  562. package/src/governance/rollback.js +360 -0
  563. package/src/governance/security-policy.js +354 -0
  564. package/src/hook/hook-config-writer.js +125 -0
  565. package/src/hub/hub-client.js +186 -0
  566. package/src/hub/hub-config.js +39 -0
  567. package/src/hub/project-facts.js +31 -0
  568. package/src/hub/runtime-feedback-reporter.js +55 -0
  569. package/src/ide/adapters/adapter-protocol.js +385 -0
  570. package/src/ide/adapters/claude-adapter.js +419 -0
  571. package/src/ide/adapters/codex-adapter.js +60 -0
  572. package/src/ide/adapters/cursor-adapter.js +484 -0
  573. package/src/ide/adapters/index.js +24 -0
  574. package/src/ide/anchors/markdown-anchor-writer.js +152 -0
  575. package/src/ide/ide-service.js +270 -0
  576. package/src/ide/ide-types.js +94 -0
  577. package/src/ide/links/link-mode-resolver.js +160 -0
  578. package/src/ide/registry/ide-registry-builder.js +165 -0
  579. package/src/incident/incident-writer.js +47 -0
  580. package/src/incident/types.js +22 -0
  581. package/src/init/ide-linker.js +126 -0
  582. package/src/init/ide-pointer-injector.js +75 -0
  583. package/src/init/init-applier.js +197 -0
  584. package/src/init/init-plan.js +294 -0
  585. package/src/init/init-service.js +65 -0
  586. package/src/init/manifest-installer.js +302 -0
  587. package/src/init/types.js +26 -0
  588. package/src/project/config-writer.js +83 -0
  589. package/src/project/context-index-writer.js +82 -0
  590. package/src/project/json-utils.js +72 -0
  591. package/src/project/local-state-writer.js +50 -0
  592. package/src/project/lock-file-writer.js +98 -0
  593. package/src/project/manifest-writer.js +126 -0
  594. package/src/project/policy-config-writer.js +91 -0
  595. package/src/project/project-config-writer.js +74 -0
  596. package/src/project/project-files.js +39 -0
  597. package/src/project/registry-index-writer.js +43 -0
  598. package/src/project/workspace-config-writer.js +63 -0
  599. package/src/run/index.js +11 -0
  600. package/src/run/run-id.js +32 -0
  601. package/src/run/run-service.js +269 -0
  602. package/src/run/run-store.js +80 -0
  603. package/src/scanner/aggregator/detection-aggregator.js +23 -0
  604. package/src/scanner/boundary/boundary-resolver.js +229 -0
  605. package/src/scanner/detectors/detector-registry.js +44 -0
  606. package/src/scanner/detectors/fastapi-detector.js +46 -0
  607. package/src/scanner/detectors/go-detector.js +46 -0
  608. package/src/scanner/detectors/nestjs-detector.js +57 -0
  609. package/src/scanner/detectors/nextjs-detector.js +52 -0
  610. package/src/scanner/detectors/react-vite-detector.js +52 -0
  611. package/src/scanner/detectors/react-webpack-detector.js +57 -0
  612. package/src/scanner/detectors/springboot-detector.js +46 -0
  613. package/src/scanner/detectors/springcloud-detector.js +46 -0
  614. package/src/scanner/detectors/springmvc-detector.js +46 -0
  615. package/src/scanner/detectors/vue-vite-detector.js +52 -0
  616. package/src/scanner/engine.js +72 -0
  617. package/src/scanner/facts/fact-extractor.js +211 -0
  618. package/src/scanner/types.js +30 -0
  619. package/src/security/asset-tamper-checker.js +188 -0
  620. package/src/security/checksum.js +40 -0
  621. package/src/spec/spec-writer.js +302 -0
  622. package/src/state-machine/circuit-breaker.js +112 -0
  623. package/src/state-machine/escape-hatch.js +49 -0
  624. package/src/state-machine/stage-runner.js +281 -0
  625. package/src/state-machine/state-machine.js +24 -0
  626. package/src/state-machine/transition-guard.js +36 -0
  627. package/src/state-machine/types.js +37 -0
  628. package/src/sync/sync-service.js +192 -0
  629. package/src/visual/agent-visual.js +142 -0
  630. package/src/visual/event-gateway.js +357 -0
  631. package/src/visual/event-mapper.js +128 -0
  632. package/src/visual/hook-dashboard.js +216 -0
  633. package/src/visual/index.js +27 -0
  634. package/src/visual/metrics.js +287 -0
  635. package/src/visual/privacy-filter.js +100 -0
  636. package/src/visual/risk-board.js +252 -0
  637. package/src/visual/timeline.js +245 -0
  638. package/src/visual/visual-client.js +94 -0
  639. package/src/visual/visual-config.js +40 -0
  640. package/src/visual/visual-reporter.js +88 -0
@@ -0,0 +1,90 @@
1
+ # 15 — Visual 门禁等待规范(ai-spec-auto / 所有 profile 共用)
2
+
3
+ > 目的:当 `/spec-start` 或其他协议推进命中门禁(`status=waiting-approval`)时,
4
+ > 让 IDE 中的 AI **在原对话里主动轮询** `.ai-spec/gate-signal.json`,实现
5
+ > "Visual 页面点批准 → 原对话自动继续"的无人值守体验。
6
+ >
7
+ > 本规则为强制切面规则(优先级高于默认等待行为),但允许项目级 `.cursor/rules/overrides/*`
8
+ > 调整轮询参数。所有 IO 失败必须静默降级,绝不阻断主协议推进。
9
+
10
+ ## 15.1 触发条件(必须)
11
+
12
+ 同时满足以下两项时,AI **必须立即进入** "visual 门禁等待循环",而不是挂起询问用户:
13
+
14
+ 1. `.ai-spec/current-run.json` 中 `status === "waiting-approval"` 且 `pending_gate` 非空
15
+ 2. `.ai-spec/visual-bridge.json` 存在且 `enabled !== false`
16
+
17
+ 若 visual-bridge 未启用或不存在,视为"纯本地模式",按原有人工确认流程处理,**不** 进入本循环。
18
+
19
+ ## 15.2 循环算法(每轮 3 秒,最多 20 轮 = 60 秒)
20
+
21
+ ```text
22
+ waitStartedAt := Date.now()
23
+ currentRunId := current-run.json.run_id
24
+ currentGate := current-run.json.pending_gate
25
+
26
+ for i in 1..20:
27
+ sleep 3s
28
+ 在对话输出一行:"[T+{i*3}s] 等待 Visual 审批(run=<runId> gate=<gate>)..."
29
+ try:
30
+ signal := read JSON from .ai-spec/gate-signal.json
31
+ catch any:
32
+ signal := null # 文件不存在 / JSON 损坏 → 继续等
33
+
34
+ if signal 满足以下全部条件:
35
+ - signal.schema_version === 1
36
+ - signal.run_id === currentRunId
37
+ - signal.gate === currentGate
38
+ - signal.ts_ms > waitStartedAt
39
+ then:
40
+ if signal.decision in ("approved", "resumed"):
41
+ 汇报"已收到 Visual 审批:<decision>,继续执行 /spec-continue"
42
+ 执行 /spec-continue
43
+ return
44
+ if signal.decision === "rejected":
45
+ 汇报"Visual 审批被拒绝:<signal.reason>,停止本轮推进。"
46
+ return
47
+
48
+ # 60 秒仍无信号 → 默认自动放行
49
+ 汇报"60 秒内未收到 Visual 审批决定,按默认策略自动放行,继续执行 /spec-continue"
50
+ 执行 /spec-continue
51
+ ```
52
+
53
+ > 陈旧信号防误触:`signal.ts_ms > waitStartedAt` 的校验能自动忽略上一轮遗留的 gate-signal.json。
54
+ > 这是本规则的关键幂等保证,不得省略。
55
+
56
+ ## 15.3 AI 行为契约(必须遵守)
57
+
58
+ - **不许** 在循环期间询问用户"要不要继续"。循环本身就是等待机制。
59
+ - **不许** 读到任意 gate-signal 就直接 `/spec-continue`,必须通过 15.2 的四项校验。
60
+ - **不许** 跳过 60 秒超时(除非项目级 override 显式设置 `visualGateWait.timeoutMs`)。
61
+ - **必须** 每轮输出一行进度,保证原对话可见。
62
+ - **必须** 整个循环用户仍可随时打断(Ctrl+C / 发送新消息),打断后视为人工接管,本规则不再自动推进。
63
+
64
+ ## 15.4 异常兜底
65
+
66
+ | 情况 | 处理 |
67
+ |---|---|
68
+ | `current-run.json` 读失败 | 退回人工询问(本规则不适用) |
69
+ | `gate-signal.json` JSON 损坏 | 当次视为"无信号",继续等 |
70
+ | `.ai-spec/` 目录不存在 | 退回人工询问 |
71
+ | 循环中抛出任何异常 | 捕获后汇报错误 + 继续下一轮;连续 3 次异常 → 按超时路径默认放行 |
72
+
73
+ ## 15.5 与既有资产的关系
74
+
75
+ - 本规则与 `.ai-spec/next-step.md`(由 `inbox-consumer.js` 追加写入)互为双通道:
76
+ `next-step.md` 提供人类可读的审批历史;`gate-signal.json` 提供机器可判定的即时信号。
77
+ **AI 推进决策以 `gate-signal.json` 为准**,`next-step.md` 仅作审计参考。
78
+ - 不改变、不覆盖、不依赖 Cursor hook / Claude Code hook 能力;仅依赖文件系统读取。
79
+ - 与 `cli.js visual watch` 守护解耦:watch 负责把 Visual 侧 outbox 应用到本地并写 gate-signal,
80
+ AI 负责读取并决策;两者独立失败独立恢复。
81
+
82
+ ## 15.6 项目级覆盖(可选)
83
+
84
+ 业务仓可在 `.cursor/rules/overrides/visual-gate-wait.md` 声明以下参数覆盖默认值:
85
+
86
+ - `intervalMs`(默认 3000)
87
+ - `maxAttempts`(默认 20)
88
+ - `defaultOnTimeout`(`"continue"` | `"pause"`,默认 `"continue"`)
89
+
90
+ 当 `defaultOnTimeout === "pause"` 时,超时后 AI 退回人工询问;否则按默认放行。
@@ -0,0 +1,27 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: NestJS 项目概述,描述项目定位、技术栈、模块结构与核心依赖。当了解项目背景或进行整体规划时读取此规则。
4
+ ---
5
+
6
+ # 项目概述(NestJS)
7
+
8
+ > 本文件由 `project-init` 技能根据仓库实际情况生成,请勿手动覆盖自动生成的内容。
9
+
10
+ ## 项目定位
11
+
12
+ <!-- 由 project-init 填写:项目名称、业务背景、核心功能定位 -->
13
+
14
+ ## 技术栈
15
+
16
+ - 运行时:Node.js
17
+ - 框架:NestJS
18
+ - 语言:TypeScript
19
+ - 构建:nest build / tsc
20
+
21
+ ## 核心模块
22
+
23
+ <!-- 由 project-init 填写:主要 Module 列表及职责 -->
24
+
25
+ ## 主要依赖
26
+
27
+ <!-- 由 project-init 根据 package.json 填写 -->
@@ -0,0 +1,20 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: NestJS 项目目录结构规范,描述 src/ 模块组织、目录约定与文件命名规则。当新建模块、文件或理解项目结构时读取此规则。
4
+ ---
5
+
6
+ # 项目结构(NestJS)
7
+
8
+ > 本文件由 `project-init` 技能根据仓库实际情况生成,请勿手动覆盖自动生成的内容。
9
+
10
+ ## 顶层目录
11
+
12
+ <!-- 由 project-init 填写:根目录的主要目录及说明 -->
13
+
14
+ ## src/ 结构
15
+
16
+ <!-- 由 project-init 填写:模块目录、通用目录(common/guards/filters/interceptors等)结构 -->
17
+
18
+ ## 文件命名约定
19
+
20
+ <!-- 由 project-init 根据现有代码归纳:*.module.ts / *.controller.ts / *.service.ts / *.dto.ts 等 -->
@@ -0,0 +1,24 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: NestJS 模块结构规范,约定 Module/Controller/Service/Provider 的职责边界、依赖注入方式与目录布局。当新建或重构模块时读取此规则。
4
+ ---
5
+
6
+ # 模块结构规范(NestJS)
7
+
8
+ > 本文件由 `project-init` 技能根据仓库实际代码生成,请勿手动覆盖自动生成的内容。
9
+
10
+ ## Module 组织原则
11
+
12
+ <!-- 由 project-init 填写:功能模块划分、全局模块、共享模块规范 -->
13
+
14
+ ## Controller 规范
15
+
16
+ <!-- 由 project-init 填写:路由前缀、参数装饰器、响应格式约定 -->
17
+
18
+ ## Service 规范
19
+
20
+ <!-- 由 project-init 填写:业务逻辑层职责、不允许直接操作数据库等约定 -->
21
+
22
+ ## DTO 与 Validation
23
+
24
+ <!-- 由 project-init 填写:class-validator 用法、DTO 命名约定 -->
@@ -0,0 +1,24 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: NestJS 接口与契约规范,约定 HTTP 方法、路由命名、请求/响应结构、版本管理与 Swagger 文档规范。当新建或修改接口时读取此规则。
4
+ ---
5
+
6
+ # 接口与契约规范(NestJS)
7
+
8
+ > 本文件由 `project-init` 技能根据仓库实际代码生成,请勿手动覆盖自动生成的内容。
9
+
10
+ ## 路由命名约定
11
+
12
+ <!-- 由 project-init 填写:RESTful 风格、路由前缀、版本号规范 -->
13
+
14
+ ## 请求/响应结构
15
+
16
+ <!-- 由 project-init 填写:统一响应体格式(code/message/data)、分页结构等 -->
17
+
18
+ ## 错误码规范
19
+
20
+ <!-- 由 project-init 填写:业务错误码、HTTP 状态码映射 -->
21
+
22
+ ## Swagger 文档
23
+
24
+ <!-- 由 project-init 填写:@ApiTags/@ApiOperation 使用约定,是否必须注释 -->
@@ -0,0 +1,24 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: NestJS 数据访问规范,约定 ORM/数据库客户端选型、Repository 层职责、事务处理与查询优化原则。当涉及数据库操作时读取此规则。
4
+ ---
5
+
6
+ # 数据访问规范(NestJS)
7
+
8
+ > 本文件由 `project-init` 技能根据仓库实际代码生成,请勿手动覆盖自动生成的内容。
9
+
10
+ ## ORM/数据库选型
11
+
12
+ <!-- 由 project-init 填写:TypeORM / Prisma / Mongoose 等,版本与配置位置 -->
13
+
14
+ ## Repository 模式
15
+
16
+ <!-- 由 project-init 填写:自定义 Repository、是否使用 @InjectRepository、禁止在 Controller 直接操作 DB -->
17
+
18
+ ## 事务处理
19
+
20
+ <!-- 由 project-init 填写:事务装饰器或手动事务用法 -->
21
+
22
+ ## 查询规范
23
+
24
+ <!-- 由 project-init 填写:禁止 SELECT *、N+1 处理、软删除约定 -->
@@ -0,0 +1,20 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: NestJS 配置与运行时规范,约定环境变量管理、ConfigModule 用法、启动参数与跨环境配置策略。当涉及配置项或环境变量时读取此规则。
4
+ ---
5
+
6
+ # 配置与运行时规范(NestJS)
7
+
8
+ > 本文件由 `project-init` 技能根据仓库实际代码生成,请勿手动覆盖自动生成的内容。
9
+
10
+ ## 环境变量管理
11
+
12
+ <!-- 由 project-init 填写:.env 文件约定、ConfigModule 配置、@nestjs/config 用法 -->
13
+
14
+ ## 运行时端口与启动参数
15
+
16
+ <!-- 由 project-init 填写:端口配置位置、跨环境变量(dev/test/prod)切换方式 -->
17
+
18
+ ## 密钥与敏感配置
19
+
20
+ <!-- 由 project-init 填写:禁止硬编码、密钥注入方式 -->
@@ -0,0 +1,20 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: NestJS 异常与日志规范,约定全局异常过滤器、业务异常类型、日志级别与结构化日志输出方式。当编写错误处理或日志相关代码时读取此规则。
4
+ ---
5
+
6
+ # 异常与日志规范(NestJS)
7
+
8
+ > 本文件由 `project-init` 技能根据仓库实际代码生成,请勿手动覆盖自动生成的内容。
9
+
10
+ ## 全局异常过滤器
11
+
12
+ <!-- 由 project-init 填写:HttpExceptionFilter 实现位置、是否统一包装错误响应 -->
13
+
14
+ ## 业务异常类型
15
+
16
+ <!-- 由 project-init 填写:自定义 BusinessException、错误码枚举 -->
17
+
18
+ ## 日志规范
19
+
20
+ <!-- 由 project-init 填写:Logger 注入方式、日志级别约定、结构化日志字段(traceId 等) -->
@@ -0,0 +1,24 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: NestJS 测试规范,约定单元测试、e2e 测试的组织方式、Mock 策略与覆盖率要求。当编写或审查测试时读取此规则。
4
+ ---
5
+
6
+ # 测试规范(NestJS)
7
+
8
+ > 本文件由 `project-init` 技能根据仓库实际代码生成,请勿手动覆盖自动生成的内容。
9
+
10
+ ## 测试框架
11
+
12
+ <!-- 由 project-init 填写:Jest 配置位置、测试脚本命令 -->
13
+
14
+ ## 单元测试规范
15
+
16
+ <!-- 由 project-init 填写:*.spec.ts 命名约定、TestingModule 初始化、Mock 策略 -->
17
+
18
+ ## e2e 测试规范
19
+
20
+ <!-- 由 project-init 填写:test/ 目录结构、supertest 用法、测试数据库策略 -->
21
+
22
+ ## 覆盖率要求
23
+
24
+ <!-- 由 project-init 填写:覆盖率阈值、需覆盖的核心模块范围 -->
@@ -0,0 +1,20 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: NestJS 代码格式化与检查规范,约定 ESLint/Prettier 配置位置、规则集与提交前检查流程。当配置或运行代码检查时读取此规则。
4
+ ---
5
+
6
+ # 代码格式化与检查(NestJS)
7
+
8
+ > 本文件由 `project-init` 技能根据仓库实际代码生成,请勿手动覆盖自动生成的内容。
9
+
10
+ ## ESLint 配置
11
+
12
+ <!-- 由 project-init 填写:配置文件位置、使用的规则集(@typescript-eslint 等)、关键自定义规则 -->
13
+
14
+ ## Prettier 配置
15
+
16
+ <!-- 由 project-init 填写:配置文件位置、主要格式选项 -->
17
+
18
+ ## 提交前检查
19
+
20
+ <!-- 由 project-init 填写:lint-staged 配置、husky hooks、CI lint 步骤 -->
@@ -0,0 +1,30 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: Node.js 工具仓项目概述,描述项目定位、技术栈、主要模块与运行入口。当了解项目背景或进行整体规划时读取此规则。
4
+ ---
5
+
6
+ # 项目概述(Node.js Tooling)
7
+
8
+ > 本文件由 `project-init` 技能根据仓库实际情况生成,请勿手动覆盖自动生成的内容。
9
+
10
+ ## 项目定位
11
+
12
+ <!-- 描述项目的工具定位:CLI 工具 / Worker / 编排运行时 / Contract 验证工具 等 -->
13
+
14
+ ## 技术栈
15
+
16
+ | 层次 | 技术 |
17
+ |------|------|
18
+ | 运行时 | Node.js(版本见 `.nvmrc` 或 `engines` 字段) |
19
+ | 语言 | TypeScript / JavaScript |
20
+ | 包管理 | npm / pnpm / yarn(项目统一约定) |
21
+ | 测试框架 | Vitest / Jest |
22
+ | Schema 校验 | Zod / Ajv / io-ts(按需) |
23
+
24
+ ## 主要模块
25
+
26
+ <!-- 描述仓库内的主要模块/子包结构 -->
27
+
28
+ ## 运行入口
29
+
30
+ <!-- 描述 CLI 入口、worker 入口、主模块导出等 -->
@@ -0,0 +1,37 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: Node.js 工具仓项目结构规范,包括目录组织、模块边界约定与主要入口文件规则。当新建模块或文件时读取此规则。
4
+ ---
5
+
6
+ # 项目结构(Node.js Tooling)
7
+
8
+ > 本文件由 `project-init` 技能根据仓库实际情况生成,请勿手动覆盖自动生成的内容。
9
+
10
+ ## 典型目录结构
11
+
12
+ ```text
13
+ <root>/
14
+ ├── src/
15
+ │ ├── cli/ # CLI 命令定义与入口
16
+ │ ├── commands/ # 各子命令实现
17
+ │ ├── contracts/ # Contract / Schema 定义
18
+ │ ├── workers/ # Worker 任务实现
19
+ │ ├── runtime/ # 运行时核心逻辑
20
+ │ ├── utils/ # 通用工具函数
21
+ │ └── types/ # TypeScript 类型定义
22
+ ├── tests/ # 测试文件
23
+ ├── scripts/ # 构建、发布等脚本
24
+ ├── package.json
25
+ └── tsconfig.json
26
+ ```
27
+
28
+ ## 模块边界约定
29
+
30
+ - 每个模块(`cli/`、`workers/`、`contracts/` 等)对外只导出必要接口
31
+ - 模块内部实现不应被外部直接引用
32
+ - 禁止循环依赖
33
+
34
+ ## 入口文件规则
35
+
36
+ - CLI 入口在 `src/cli/index.ts`(或 `bin/` 下)
37
+ - 库入口在 `src/index.ts`,并在 `package.json` 中声明 `main` / `exports`
@@ -0,0 +1,42 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: Node.js 工具仓的 CLI 与模块规范,包括命令定义方式、参数约定、模块导出规则。当新增 CLI 命令或模块时读取此规则。
4
+ ---
5
+
6
+ # CLI 与模块规范(Node.js Tooling)
7
+
8
+ ## CLI 命令设计
9
+
10
+ - 使用团队约定的 CLI 框架(如 `commander`、`yargs`、`meow`)
11
+ - 每个子命令对应独立文件,命令描述必须清晰
12
+ - 命令参数使用 `--kebab-case` 风格
13
+ - 所有命令必须提供 `--help` 说明
14
+
15
+ ```typescript
16
+ // 示例:commander 风格
17
+ program
18
+ .command('run <task>')
19
+ .description('执行指定任务')
20
+ .option('--dry-run', '仅预览,不实际执行')
21
+ .action(async (task, options) => {
22
+ await runTask(task, options);
23
+ });
24
+ ```
25
+
26
+ ## 模块导出规则(NON-NEGOTIABLE)
27
+
28
+ - 每个模块在 `index.ts` 中统一导出公共接口
29
+ - 内部实现文件不应从模块外直接引用
30
+ - 导出的函数和类必须有明确的 TypeScript 类型签名
31
+ - 发布到 npm 的包必须在 `package.json` 中声明 `exports` 字段
32
+
33
+ ## 异步处理
34
+
35
+ - 优先使用 `async/await`,避免 callback 嵌套
36
+ - 所有异步操作必须处理错误(try/catch 或 `.catch()`)
37
+ - 长时间运行的操作需提供超时机制
38
+
39
+ ## 进程管理
40
+
41
+ - 正常退出使用 `process.exit(0)`,错误退出使用 `process.exit(1)`
42
+ - 监听 `SIGINT`、`SIGTERM` 信号,进行优雅退出处理
@@ -0,0 +1,42 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: Node.js 工具仓的 Contract 与 Schema 规范,包括 Schema 定义方式、Contract 校验策略与类型导出约定。当新增或修改 Contract / Schema 时读取此规则。
4
+ ---
5
+
6
+ # Contract 与 Schema 规范(Node.js Tooling)
7
+
8
+ ## Schema 定义
9
+
10
+ - 统一使用项目约定的 Schema 库(Zod / Ajv / io-ts)定义数据结构
11
+ - Schema 文件放在 `src/contracts/` 或 `src/schemas/` 目录
12
+ - 每个 Schema 对应独立文件,按业务领域命名
13
+
14
+ ```typescript
15
+ // 示例:Zod Schema
16
+ import { z } from 'zod';
17
+
18
+ export const TaskPayloadSchema = z.object({
19
+ taskId: z.string().uuid(),
20
+ type: z.enum(['build', 'deploy', 'test']),
21
+ params: z.record(z.unknown()),
22
+ });
23
+
24
+ export type TaskPayload = z.infer<typeof TaskPayloadSchema>;
25
+ ```
26
+
27
+ ## Contract 校验策略(NON-NEGOTIABLE)
28
+
29
+ - 所有外部输入(CLI 参数、API 响应、消息队列消息、文件内容)在入口处必须校验
30
+ - 校验失败必须给出明确的错误信息(字段路径 + 错误原因)
31
+ - 禁止使用 `as any` 绕过类型校验
32
+
33
+ ## 类型导出约定
34
+
35
+ - Schema 推导出的 TypeScript 类型必须一并导出(`export type`)
36
+ - 类型名称与 Schema 名称保持对应(`TaskPayloadSchema` → `TaskPayload`)
37
+ - 禁止手动维护与 Schema 重复的类型定义
38
+
39
+ ## 版本兼容性
40
+
41
+ - Contract 发生破坏性变更时,需同步更新版本号并提供迁移说明
42
+ - 向前兼容的变更(新增可选字段)无需升级大版本
@@ -0,0 +1,30 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: Node.js 工具仓的运行时文件规范,包括工作目录管理、临时文件约定、状态文件读写策略。当涉及文件系统操作时读取此规则。
4
+ ---
5
+
6
+ # 运行时文件规范(Node.js Tooling)
7
+
8
+ ## 工作目录管理
9
+
10
+ - 使用 `process.cwd()` 获取当前工作目录,禁止使用 `__dirname` 做运行时路径拼接(ESM 模块下不可用)
11
+ - ESM 环境下使用 `new URL(import.meta.url)` 获取当前文件路径
12
+ - 跨平台路径拼接统一使用 `node:path` 的 `join` / `resolve`
13
+
14
+ ## 临时文件约定
15
+
16
+ - 临时文件写入系统临时目录(`os.tmpdir()`)或项目约定的 `.tmp/` 目录
17
+ - 临时目录加入 `.gitignore`
18
+ - 程序异常退出时,应通过 `process.on('exit')` 或 `finally` 块清理临时文件
19
+
20
+ ## 状态文件读写
21
+
22
+ - 运行时状态文件(锁文件、任务状态、中间产物)统一放在项目约定目录(如 `.run/`、`.state/`)
23
+ - 读写状态文件前检查权限,写失败需给出明确错误提示
24
+ - 状态文件格式统一使用 JSON,禁止使用自定义二进制格式
25
+
26
+ ## 文件监听
27
+
28
+ - 使用 `node:fs/promises` 或 `chokidar` 进行文件监听
29
+ - 监听器必须在程序退出时显式关闭,防止进程无法退出
30
+ - 大量文件监听需评估系统 `inotify` 上限
@@ -0,0 +1,60 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: Node.js 工具仓的日志与错误处理规范,包括日志工具选型、结构化日志约定、错误类型定义与进程崩溃处理。当编写日志或错误处理代码时读取此规则。
4
+ ---
5
+
6
+ # 日志与错误处理规范(Node.js Tooling)
7
+
8
+ ## 日志工具
9
+
10
+ - 统一使用项目约定的日志库(如 `pino`、`winston`、`consola`)
11
+ - 禁止直接使用 `console.log` 在生产逻辑中输出日志
12
+ - 开发模式下允许彩色格式化输出,生产模式使用结构化 JSON 日志
13
+
14
+ ## 日志级别
15
+
16
+ | 级别 | 使用场景 |
17
+ |------|----------|
18
+ | error | 不可恢复错误、进程崩溃 |
19
+ | warn | 可恢复的异常、降级处理 |
20
+ | info | 关键操作节点(任务开始/结束、关键状态变化) |
21
+ | debug | 调试信息,生产关闭 |
22
+
23
+ ## 结构化日志字段
24
+
25
+ 关键操作日志应包含:
26
+
27
+ ```json
28
+ {
29
+ "level": "info",
30
+ "time": "ISO-8601",
31
+ "taskId": "xxx",
32
+ "event": "task.completed",
33
+ "duration": 1234,
34
+ "result": "success"
35
+ }
36
+ ```
37
+
38
+ ## 错误类型定义
39
+
40
+ - 定义统一的错误基类(如 `ToolingError`)
41
+ - 不同场景使用有语义的子类(如 `ValidationError`、`ContractMismatchError`、`TimeoutError`)
42
+ - 禁止直接抛出 `new Error('some message')`,必须使用有类型的错误类
43
+
44
+ ```typescript
45
+ export class ValidationError extends Error {
46
+ constructor(
47
+ message: string,
48
+ public readonly field?: string
49
+ ) {
50
+ super(message);
51
+ this.name = 'ValidationError';
52
+ }
53
+ }
54
+ ```
55
+
56
+ ## 全局错误处理(NON-NEGOTIABLE)
57
+
58
+ - 监听 `process.on('uncaughtException')` 和 `process.on('unhandledRejection')`,记录错误后以非零退出码退出
59
+ - Promise 链中的 rejection 不允许静默忽略
60
+ - async 函数中的错误必须在调用处捕获或向上传递
@@ -0,0 +1,45 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: Node.js 工具仓的脚本与入口规范,包括 package.json scripts 约定、bin 入口配置、构建产物结构与发布规则。当新增脚本入口或准备发布时读取此规则。
4
+ ---
5
+
6
+ # 脚本与入口规范(Node.js Tooling)
7
+
8
+ ## package.json scripts 约定
9
+
10
+ | 脚本 | 职责 |
11
+ |------|------|
12
+ | `start` | 启动主程序(生产模式) |
13
+ | `dev` | 开发模式(watch + ts-node / tsx) |
14
+ | `build` | 编译 TypeScript 到 `dist/` |
15
+ | `test` | 运行所有测试 |
16
+ | `test:watch` | 监听模式运行测试 |
17
+ | `lint` | 执行 ESLint 检查 |
18
+ | `format` | 执行 Prettier 格式化 |
19
+ | `typecheck` | 执行 `tsc --noEmit` 类型检查 |
20
+
21
+ ## bin 入口配置
22
+
23
+ - CLI 工具在 `package.json` 中声明 `bin` 字段
24
+ - 入口文件首行必须包含 shebang:`#!/usr/bin/env node`
25
+ - bin 文件需设置可执行权限(`chmod +x`)
26
+
27
+ ```json
28
+ {
29
+ "bin": {
30
+ "my-tool": "./dist/cli/index.js"
31
+ }
32
+ }
33
+ ```
34
+
35
+ ## 构建产物结构
36
+
37
+ - TypeScript 编译产物输出到 `dist/`,源码不直接发布
38
+ - `package.json` 的 `main` / `exports` 指向 `dist/` 内文件
39
+ - 确保 `.d.ts` 类型文件随产物一同输出(`declaration: true`)
40
+
41
+ ## 发布规则
42
+
43
+ - 发布前必须执行 `typecheck`、`lint` 和 `test`,全部通过才能发布
44
+ - 使用语义化版本(SemVer):破坏性变更升大版本,新功能升小版本,修复升补丁版本
45
+ - 在 `package.json` 的 `files` 字段中明确声明发布内容,禁止发布源码目录(`src/`)
@@ -0,0 +1,41 @@
1
+ ---
2
+ alwaysApply: false
3
+ description: Node.js 工具仓的测试规范,包括测试框架(Vitest / Jest)、测试文件约定、Mock 策略与质量门禁。当编写测试或评审测试代码时读取此规则。
4
+ ---
5
+
6
+ # 测试规范(Node.js Tooling)
7
+
8
+ ## 测试框架
9
+
10
+ - 统一使用 **Vitest**(推荐)或 **Jest** 作为测试运行器
11
+ - 类型检查:测试文件同样经过 TypeScript 编译,禁止 `@ts-ignore` 绕过类型问题
12
+
13
+ ## 测试文件约定
14
+
15
+ | 项目 | 约定 |
16
+ |------|------|
17
+ | 文件位置 | 与源文件同目录 或 `tests/` 目录下 |
18
+ | 文件命名 | `<name>.test.ts` / `<name>.spec.ts` |
19
+ | 集成测试 | `<name>.integration.test.ts` |
20
+ | 测试配置 | 项目根目录 `vitest.config.ts` 或 `jest.config.ts` |
21
+
22
+ ## Mock 策略
23
+
24
+ - 使用 `vi.mock()` / `jest.mock()` Mock 外部模块(文件系统、网络请求、子进程等)
25
+ - 不 Mock 被测模块内部实现
26
+ - 临时文件操作测试中使用 `os.tmpdir()` + 随机子目录,测试后清理
27
+
28
+ ## 测试范围
29
+
30
+ | 层次 | 说明 | 要求 |
31
+ |------|------|------|
32
+ | 必须测试 | 工具函数、Contract 校验、CLI 命令逻辑、Worker 任务处理 | 新增时必须附带测试 |
33
+ | 建议测试 | CLI 参数解析、文件 I/O 流程 | 核心路径推荐覆盖 |
34
+ | 集成测试 | 端到端执行流程 | 按需添加,标记 `integration` |
35
+
36
+ ## 质量门禁(NON-NEGOTIABLE)
37
+
38
+ - 必须通过 **`tsc --noEmit`** 类型检查
39
+ - 所有项目必须通过 **ESLint 检查**(零 error)
40
+ - 新增工具函数、Contract 校验逻辑必须附带测试用例
41
+ - 测试必须能独立运行,不依赖特定环境或执行顺序