soloforge 1.0.0

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 (329) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +203 -0
  3. package/dist/adapters/claude_code/claude_md.d.ts +3 -0
  4. package/dist/adapters/claude_code/claude_md.d.ts.map +1 -0
  5. package/dist/adapters/claude_code/claude_md.js +79 -0
  6. package/dist/adapters/claude_code/claude_md.js.map +1 -0
  7. package/dist/adapters/claude_code/hooks.d.ts +3 -0
  8. package/dist/adapters/claude_code/hooks.d.ts.map +1 -0
  9. package/dist/adapters/claude_code/hooks.js +30 -0
  10. package/dist/adapters/claude_code/hooks.js.map +1 -0
  11. package/dist/adapters/claude_code/server.d.ts +10 -0
  12. package/dist/adapters/claude_code/server.d.ts.map +1 -0
  13. package/dist/adapters/claude_code/server.js +75 -0
  14. package/dist/adapters/claude_code/server.js.map +1 -0
  15. package/dist/adapters/claude_code/tools.d.ts +15 -0
  16. package/dist/adapters/claude_code/tools.d.ts.map +1 -0
  17. package/dist/adapters/claude_code/tools.js +758 -0
  18. package/dist/adapters/claude_code/tools.js.map +1 -0
  19. package/dist/adapters/trae/trae_config.d.ts +2 -0
  20. package/dist/adapters/trae/trae_config.d.ts.map +1 -0
  21. package/dist/adapters/trae/trae_config.js +22 -0
  22. package/dist/adapters/trae/trae_config.js.map +1 -0
  23. package/dist/adapters/trae/trae_rules.d.ts +3 -0
  24. package/dist/adapters/trae/trae_rules.d.ts.map +1 -0
  25. package/dist/adapters/trae/trae_rules.js +85 -0
  26. package/dist/adapters/trae/trae_rules.js.map +1 -0
  27. package/dist/bin/soloforge.d.ts +3 -0
  28. package/dist/bin/soloforge.d.ts.map +1 -0
  29. package/dist/bin/soloforge.js +353 -0
  30. package/dist/bin/soloforge.js.map +1 -0
  31. package/dist/engine/adr_recorder.d.ts +13 -0
  32. package/dist/engine/adr_recorder.d.ts.map +1 -0
  33. package/dist/engine/adr_recorder.js +132 -0
  34. package/dist/engine/adr_recorder.js.map +1 -0
  35. package/dist/engine/change_coordinator.d.ts +17 -0
  36. package/dist/engine/change_coordinator.d.ts.map +1 -0
  37. package/dist/engine/change_coordinator.js +138 -0
  38. package/dist/engine/change_coordinator.js.map +1 -0
  39. package/dist/engine/classifier.d.ts +7 -0
  40. package/dist/engine/classifier.d.ts.map +1 -0
  41. package/dist/engine/classifier.js +135 -0
  42. package/dist/engine/classifier.js.map +1 -0
  43. package/dist/engine/code_reviewer.d.ts +15 -0
  44. package/dist/engine/code_reviewer.d.ts.map +1 -0
  45. package/dist/engine/code_reviewer.js +371 -0
  46. package/dist/engine/code_reviewer.js.map +1 -0
  47. package/dist/engine/confidence_scorer.d.ts +11 -0
  48. package/dist/engine/confidence_scorer.d.ts.map +1 -0
  49. package/dist/engine/confidence_scorer.js +30 -0
  50. package/dist/engine/confidence_scorer.js.map +1 -0
  51. package/dist/engine/contract_guard.d.ts +10 -0
  52. package/dist/engine/contract_guard.d.ts.map +1 -0
  53. package/dist/engine/contract_guard.js +471 -0
  54. package/dist/engine/contract_guard.js.map +1 -0
  55. package/dist/engine/convention_detector.d.ts +7 -0
  56. package/dist/engine/convention_detector.d.ts.map +1 -0
  57. package/dist/engine/convention_detector.js +93 -0
  58. package/dist/engine/convention_detector.js.map +1 -0
  59. package/dist/engine/debt_reporter.d.ts +4 -0
  60. package/dist/engine/debt_reporter.d.ts.map +1 -0
  61. package/dist/engine/debt_reporter.js +67 -0
  62. package/dist/engine/debt_reporter.js.map +1 -0
  63. package/dist/engine/debt_tracker.d.ts +20 -0
  64. package/dist/engine/debt_tracker.d.ts.map +1 -0
  65. package/dist/engine/debt_tracker.js +152 -0
  66. package/dist/engine/debt_tracker.js.map +1 -0
  67. package/dist/engine/debugger.d.ts +3 -0
  68. package/dist/engine/debugger.d.ts.map +1 -0
  69. package/dist/engine/debugger.js +291 -0
  70. package/dist/engine/debugger.js.map +1 -0
  71. package/dist/engine/delivery.d.ts +15 -0
  72. package/dist/engine/delivery.d.ts.map +1 -0
  73. package/dist/engine/delivery.js +182 -0
  74. package/dist/engine/delivery.js.map +1 -0
  75. package/dist/engine/dependency_scanner.d.ts +13 -0
  76. package/dist/engine/dependency_scanner.d.ts.map +1 -0
  77. package/dist/engine/dependency_scanner.js +275 -0
  78. package/dist/engine/dependency_scanner.js.map +1 -0
  79. package/dist/engine/evolver.d.ts +15 -0
  80. package/dist/engine/evolver.d.ts.map +1 -0
  81. package/dist/engine/evolver.js +167 -0
  82. package/dist/engine/evolver.js.map +1 -0
  83. package/dist/engine/failure_classifier.d.ts +11 -0
  84. package/dist/engine/failure_classifier.d.ts.map +1 -0
  85. package/dist/engine/failure_classifier.js +120 -0
  86. package/dist/engine/failure_classifier.js.map +1 -0
  87. package/dist/engine/feasibility_checker.d.ts +6 -0
  88. package/dist/engine/feasibility_checker.d.ts.map +1 -0
  89. package/dist/engine/feasibility_checker.js +88 -0
  90. package/dist/engine/feasibility_checker.js.map +1 -0
  91. package/dist/engine/git_deps.d.ts +37 -0
  92. package/dist/engine/git_deps.d.ts.map +1 -0
  93. package/dist/engine/git_deps.js +3 -0
  94. package/dist/engine/git_deps.js.map +1 -0
  95. package/dist/engine/impact_analyzer.d.ts +10 -0
  96. package/dist/engine/impact_analyzer.d.ts.map +1 -0
  97. package/dist/engine/impact_analyzer.js +171 -0
  98. package/dist/engine/impact_analyzer.js.map +1 -0
  99. package/dist/engine/intent_expander.d.ts +17 -0
  100. package/dist/engine/intent_expander.d.ts.map +1 -0
  101. package/dist/engine/intent_expander.js +447 -0
  102. package/dist/engine/intent_expander.js.map +1 -0
  103. package/dist/engine/knowledge_manager.d.ts +76 -0
  104. package/dist/engine/knowledge_manager.d.ts.map +1 -0
  105. package/dist/engine/knowledge_manager.js +781 -0
  106. package/dist/engine/knowledge_manager.js.map +1 -0
  107. package/dist/engine/migration_guard.d.ts +3 -0
  108. package/dist/engine/migration_guard.d.ts.map +1 -0
  109. package/dist/engine/migration_guard.js +235 -0
  110. package/dist/engine/migration_guard.js.map +1 -0
  111. package/dist/engine/observability.d.ts +33 -0
  112. package/dist/engine/observability.d.ts.map +1 -0
  113. package/dist/engine/observability.js +312 -0
  114. package/dist/engine/observability.js.map +1 -0
  115. package/dist/engine/onboarding.d.ts +27 -0
  116. package/dist/engine/onboarding.d.ts.map +1 -0
  117. package/dist/engine/onboarding.js +362 -0
  118. package/dist/engine/onboarding.js.map +1 -0
  119. package/dist/engine/prompt_experiment.d.ts +18 -0
  120. package/dist/engine/prompt_experiment.d.ts.map +1 -0
  121. package/dist/engine/prompt_experiment.js +127 -0
  122. package/dist/engine/prompt_experiment.js.map +1 -0
  123. package/dist/engine/resilience.d.ts +20 -0
  124. package/dist/engine/resilience.d.ts.map +1 -0
  125. package/dist/engine/resilience.js +210 -0
  126. package/dist/engine/resilience.js.map +1 -0
  127. package/dist/engine/scaffolder.d.ts +9 -0
  128. package/dist/engine/scaffolder.d.ts.map +1 -0
  129. package/dist/engine/scaffolder.js +222 -0
  130. package/dist/engine/scaffolder.js.map +1 -0
  131. package/dist/engine/scope_controller.d.ts +3 -0
  132. package/dist/engine/scope_controller.d.ts.map +1 -0
  133. package/dist/engine/scope_controller.js +121 -0
  134. package/dist/engine/scope_controller.js.map +1 -0
  135. package/dist/engine/task_context.d.ts +34 -0
  136. package/dist/engine/task_context.d.ts.map +1 -0
  137. package/dist/engine/task_context.js +321 -0
  138. package/dist/engine/task_context.js.map +1 -0
  139. package/dist/engine/task_planner.d.ts +11 -0
  140. package/dist/engine/task_planner.d.ts.map +1 -0
  141. package/dist/engine/task_planner.js +267 -0
  142. package/dist/engine/task_planner.js.map +1 -0
  143. package/dist/engine/team_awareness.d.ts +12 -0
  144. package/dist/engine/team_awareness.d.ts.map +1 -0
  145. package/dist/engine/team_awareness.js +121 -0
  146. package/dist/engine/team_awareness.js.map +1 -0
  147. package/dist/engine/test_generator.d.ts +9 -0
  148. package/dist/engine/test_generator.d.ts.map +1 -0
  149. package/dist/engine/test_generator.js +241 -0
  150. package/dist/engine/test_generator.js.map +1 -0
  151. package/dist/engine/test_quality.d.ts +9 -0
  152. package/dist/engine/test_quality.d.ts.map +1 -0
  153. package/dist/engine/test_quality.js +256 -0
  154. package/dist/engine/test_quality.js.map +1 -0
  155. package/dist/engine/traceability.d.ts +3 -0
  156. package/dist/engine/traceability.d.ts.map +1 -0
  157. package/dist/engine/traceability.js +137 -0
  158. package/dist/engine/traceability.js.map +1 -0
  159. package/dist/engine/verifier.d.ts +3 -0
  160. package/dist/engine/verifier.d.ts.map +1 -0
  161. package/dist/engine/verifier.js +202 -0
  162. package/dist/engine/verifier.js.map +1 -0
  163. package/dist/engine/workspace_manager.d.ts +29 -0
  164. package/dist/engine/workspace_manager.d.ts.map +1 -0
  165. package/dist/engine/workspace_manager.js +77 -0
  166. package/dist/engine/workspace_manager.js.map +1 -0
  167. package/dist/git/operations.d.ts +57 -0
  168. package/dist/git/operations.d.ts.map +1 -0
  169. package/dist/git/operations.js +215 -0
  170. package/dist/git/operations.js.map +1 -0
  171. package/dist/index.d.ts +3 -0
  172. package/dist/index.d.ts.map +1 -0
  173. package/dist/index.js +24 -0
  174. package/dist/index.js.map +1 -0
  175. package/dist/knowledge/conflict_detector.d.ts +6 -0
  176. package/dist/knowledge/conflict_detector.d.ts.map +1 -0
  177. package/dist/knowledge/conflict_detector.js +19 -0
  178. package/dist/knowledge/conflict_detector.js.map +1 -0
  179. package/dist/knowledge/health_checker.d.ts +10 -0
  180. package/dist/knowledge/health_checker.d.ts.map +1 -0
  181. package/dist/knowledge/health_checker.js +61 -0
  182. package/dist/knowledge/health_checker.js.map +1 -0
  183. package/dist/knowledge/index_manager.d.ts +35 -0
  184. package/dist/knowledge/index_manager.d.ts.map +1 -0
  185. package/dist/knowledge/index_manager.js +209 -0
  186. package/dist/knowledge/index_manager.js.map +1 -0
  187. package/dist/knowledge/loader.d.ts +13 -0
  188. package/dist/knowledge/loader.d.ts.map +1 -0
  189. package/dist/knowledge/loader.js +161 -0
  190. package/dist/knowledge/loader.js.map +1 -0
  191. package/dist/knowledge/writer.d.ts +15 -0
  192. package/dist/knowledge/writer.d.ts.map +1 -0
  193. package/dist/knowledge/writer.js +98 -0
  194. package/dist/knowledge/writer.js.map +1 -0
  195. package/dist/types.d.ts +724 -0
  196. package/dist/types.d.ts.map +1 -0
  197. package/dist/types.js +3 -0
  198. package/dist/types.js.map +1 -0
  199. package/package.json +54 -0
  200. package/templates/config.yaml +53 -0
  201. package/templates/knowledge/acceptance_templates/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +45 -0
  202. package/templates/knowledge/acceptance_templates/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +39 -0
  203. package/templates/knowledge/acceptance_templates//345/211/215/347/253/257/351/241/265/351/235/242/351/252/214/346/224/266/346/270/205/345/215/225.md +27 -0
  204. package/templates/knowledge/acceptance_templates//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +180 -0
  205. package/templates/knowledge/acceptance_templates//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md +26 -0
  206. package/templates/knowledge/acceptance_templates//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md +51 -0
  207. package/templates/knowledge/acceptance_templates//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md +45 -0
  208. package/templates/knowledge/acceptance_templates//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210/346/250/241/347/211/210.md +45 -0
  209. package/templates/knowledge/acceptance_templates//346/216/245/345/217/243/350/256/276/350/256/241/346/250/241/347/211/210.md +58 -0
  210. package/templates/knowledge/acceptance_templates//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md +53 -0
  211. package/templates/knowledge/acceptance_templates//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/346/226/271/346/241/210/346/250/241/347/211/210.md +45 -0
  212. package/templates/knowledge/acceptance_templates//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/351/252/214/346/224/266/346/270/205/345/215/225.md +24 -0
  213. package/templates/knowledge/acceptance_templates//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +42 -0
  214. package/templates/knowledge/acceptance_templates//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md +39 -0
  215. package/templates/knowledge/acceptance_templates//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md +40 -0
  216. package/templates/knowledge/acceptance_templates//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md +42 -0
  217. package/templates/knowledge/acceptance_templates//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +26 -0
  218. package/templates/knowledge/acceptance_templates//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +47 -0
  219. package/templates/knowledge/acceptance_templates//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md +44 -0
  220. package/templates/knowledge/domain//345/244/232/347/247/237/346/210/267.md +35 -0
  221. package/templates/knowledge/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +34 -0
  222. package/templates/knowledge/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +37 -0
  223. package/templates/knowledge/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +37 -0
  224. package/templates/knowledge/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +36 -0
  225. package/templates/knowledge/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +38 -0
  226. package/templates/knowledge/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +34 -0
  227. package/templates/knowledge/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +24 -0
  228. package/templates/knowledge/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +36 -0
  229. package/templates/knowledge/procedures/Figma/344/272/244/344/273/230/346/265/201/347/250/213.md +35 -0
  230. package/templates/knowledge/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +28 -0
  231. package/templates/knowledge/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +33 -0
  232. package/templates/knowledge/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +31 -0
  233. package/templates/knowledge/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +37 -0
  234. package/templates/knowledge/procedures//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md +43 -0
  235. package/templates/knowledge/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +27 -0
  236. package/templates/knowledge/procedures//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md +46 -0
  237. package/templates/knowledge/procedures//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273/346/265/201/347/250/213.md +38 -0
  238. package/templates/knowledge/procedures//346/236/266/346/236/204/350/256/276/350/256/241/346/265/201/347/250/213.md +30 -0
  239. package/templates/knowledge/procedures//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md +24 -0
  240. package/templates/knowledge/procedures//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md +40 -0
  241. package/templates/knowledge/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +45 -0
  242. package/templates/knowledge/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/347/250/213.md +33 -0
  243. package/templates/knowledge/procedures//347/274/272/351/231/267/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +28 -0
  244. package/templates/knowledge/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +29 -0
  245. package/templates/knowledge/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +43 -0
  246. package/templates/knowledge/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +27 -0
  247. package/templates/knowledge/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +45 -0
  248. package/templates/knowledge/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +27 -0
  249. package/templates/knowledge/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +36 -0
  250. package/templates/knowledge/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +32 -0
  251. package/templates/knowledge/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +40 -0
  252. package/templates/knowledge/procedures//351/252/214/350/257/201/350/256/241/345/210/222/346/265/201/347/250/213.md +32 -0
  253. package/templates/knowledge/product_profiles/b2b-internal.yaml +35 -0
  254. package/templates/knowledge/product_profiles/b2c.yaml +37 -0
  255. package/templates/knowledge/product_profiles/saas.yaml +35 -0
  256. package/templates/knowledge/review_rules//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md +79 -0
  257. package/templates/knowledge/review_rules//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +67 -0
  258. package/templates/knowledge/review_rules//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +61 -0
  259. package/templates/knowledge/review_rules//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245/350/247/204/345/210/231.md +67 -0
  260. package/templates/knowledge/review_rules//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +62 -0
  261. package/templates/knowledge/review_rules//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +80 -0
  262. package/templates/patterns/API/350/256/276/350/256/241/350/247/204/350/214/203.md +31 -0
  263. package/templates/patterns/Docker/351/203/250/347/275/262/350/247/204/350/214/203.md +31 -0
  264. package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +31 -0
  265. package/templates/patterns/N/345/212/2401/346/237/245/350/257/242/350/247/204/350/214/203.md +32 -0
  266. package/templates/patterns/React/345/210/227/350/241/250/350/241/250/346/240/274/350/247/204/350/214/203.md +29 -0
  267. package/templates/patterns/React/346/216/245/345/217/243/351/233/206/346/210/220/350/247/204/350/214/203.md +28 -0
  268. package/templates/patterns/React/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +28 -0
  269. package/templates/patterns/React/347/273/204/344/273/266/350/247/204/350/214/203.md +28 -0
  270. package/templates/patterns/React/350/241/250/345/215/225/350/247/204/350/214/203.md +29 -0
  271. package/templates/patterns/React/350/267/257/347/224/261/350/247/204/350/214/203.md +29 -0
  272. package/templates/patterns/Schema/345/205/274/345/256/271/350/247/204/350/214/203.md +28 -0
  273. package/templates/patterns/Vue/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +28 -0
  274. package/templates/patterns/Vue/347/273/204/344/273/266/350/247/204/350/214/203.md +28 -0
  275. package/templates/patterns/Vue/350/267/257/347/224/261/350/247/204/350/214/203.md +29 -0
  276. package/templates/patterns//344/272/213/344/273/266/351/251/261/345/212/250/350/247/204/350/214/203.md +32 -0
  277. package/templates/patterns//344/272/213/345/212/241/346/250/241/345/274/217/350/247/204/350/214/203.md +28 -0
  278. package/templates/patterns//344/274/230/351/233/205/345/201/234/346/234/272/350/247/204/350/214/203.md +30 -0
  279. package/templates/patterns//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +31 -0
  280. package/templates/patterns//345/210/206/351/241/265/346/237/245/350/257/242/350/247/204/350/214/203.md +27 -0
  281. package/templates/patterns//345/211/215/347/253/257/346/200/247/350/203/275/350/247/204/350/214/203.md +33 -0
  282. package/templates/patterns//345/221/275/345/220/215/350/247/204/350/214/203.md +32 -0
  283. package/templates/patterns//345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +31 -0
  284. package/templates/patterns//345/242/236/345/210/240/346/224/271/346/237/245/350/247/204/350/214/203.md +31 -0
  285. package/templates/patterns//345/244/226/351/203/250/344/276/235/350/265/226/350/247/204/350/214/203.md +29 -0
  286. package/templates/patterns//345/245/221/347/272/246/345/205/274/345/256/271/350/247/204/350/214/203.md +28 -0
  287. package/templates/patterns//345/256/232/346/227/266/344/273/273/345/212/241/350/247/204/350/214/203.md +25 -0
  288. package/templates/patterns//345/256/236/346/227/266/346/216/250/351/200/201/350/247/204/350/214/203.md +33 -0
  289. package/templates/patterns//345/267/245/347/250/213/347/272/252/345/276/213.md +39 -0
  290. package/templates/patterns//345/271/266/345/217/221/346/216/247/345/210/266/350/247/204/350/214/203.md +34 -0
  291. package/templates/patterns//345/274/202/346/255/245/345/257/274/345/207/272/350/247/204/350/214/203.md +27 -0
  292. package/templates/patterns//346/216/245/345/217/243/345/245/221/347/272/246/350/247/204/350/214/203.md +30 -0
  293. package/templates/patterns//346/220/234/347/264/242/346/250/241/345/274/217/350/247/204/350/214/203.md +32 -0
  294. package/templates/patterns//346/225/260/346/215/256/351/232/220/347/247/201/350/247/204/350/214/203.md +31 -0
  295. package/templates/patterns//346/226/207/344/273/266/344/270/212/344/274/240/350/247/204/350/214/203.md +31 -0
  296. package/templates/patterns//346/227/240/351/232/234/347/242/215/350/247/204/350/214/203.md +33 -0
  297. package/templates/patterns//346/227/245/345/277/227/350/247/204/350/214/203.md +31 -0
  298. package/templates/patterns//346/235/203/351/231/220/350/256/244/350/257/201/350/247/204/350/214/203.md +35 -0
  299. package/templates/patterns//346/236/266/346/236/204/347/272/242/347/272/277.md +30 -0
  300. package/templates/patterns//346/265/213/350/257/225/350/264/250/351/207/217/350/247/204/350/214/203.md +30 -0
  301. package/templates/patterns//347/206/224/346/226/255/351/231/215/347/272/247/350/247/204/350/214/203.md +33 -0
  302. package/templates/patterns//347/212/266/346/200/201/346/265/201/350/275/254/350/247/204/350/214/203.md +29 -0
  303. package/templates/patterns//347/272/246/346/235/237/345/256/236/347/216/260/350/247/204/350/214/203.md +32 -0
  304. package/templates/patterns//347/274/223/345/255/230/347/255/226/347/225/245/350/247/204/350/214/203.md +31 -0
  305. package/templates/patterns//347/274/226/347/240/201/350/264/250/351/207/217/350/247/204/350/214/203.md +31 -0
  306. package/templates/patterns//347/274/272/351/231/267/347/256/241/347/220/206/350/247/204/350/214/203.md +30 -0
  307. package/templates/patterns//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +28 -0
  308. package/templates/patterns//350/276/223/345/205/245/346/240/241/351/252/214/350/247/204/350/214/203.md +30 -0
  309. package/templates/patterns//351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +32 -0
  310. package/templates/patterns//351/224/231/350/257/257/350/276/271/347/225/214/350/247/204/350/214/203.md +24 -0
  311. package/templates/patterns//351/242/206/345/237/237/351/251/261/345/212/250/350/256/276/350/256/241/350/247/204/350/214/203.md +29 -0
  312. package/templates/scaffolds/react/Form.tsx.hbs +16 -0
  313. package/templates/scaffolds/react/List.tsx.hbs +28 -0
  314. package/templates/scaffolds/react/Page.test.tsx.hbs +10 -0
  315. package/templates/scaffolds/react/Page.tsx.hbs +14 -0
  316. package/templates/scaffolds/react/README.md.hbs +44 -0
  317. package/templates/scaffolds/react/service.ts.hbs +37 -0
  318. package/templates/scaffolds/react/types.ts.hbs +6 -0
  319. package/templates/scaffolds/react/use{{ModuleName}}.ts.hbs +88 -0
  320. package/templates/scaffolds/spring-boot/ApiContract.md.hbs +110 -0
  321. package/templates/scaffolds/spring-boot/Controller.java.hbs +43 -0
  322. package/templates/scaffolds/spring-boot/DTO.java.hbs +9 -0
  323. package/templates/scaffolds/spring-boot/Entity.java.hbs +12 -0
  324. package/templates/scaffolds/spring-boot/ErrorCode.java.hbs +28 -0
  325. package/templates/scaffolds/spring-boot/Mapper.java.hbs +9 -0
  326. package/templates/scaffolds/spring-boot/PageResponse.java.hbs +29 -0
  327. package/templates/scaffolds/spring-boot/Service.java.hbs +12 -0
  328. package/templates/scaffolds/spring-boot/ServiceImpl.java.hbs +48 -0
  329. package/templates/scaffolds/spring-boot/ServiceTest.java.hbs +22 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ // ── 基础类型 ──
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,aAAa"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "soloforge",
3
+ "version": "1.0.0",
4
+ "description": "AI-driven development workflow system - one person does the work of a five-person team",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "soloforge": "dist/bin/soloforge.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "templates"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "dev": "tsc --watch",
17
+ "test": "vitest run",
18
+ "test:watch": "vitest",
19
+ "lint": "tsc --noEmit",
20
+ "start": "node dist/index.js"
21
+ },
22
+ "keywords": [
23
+ "mcp",
24
+ "ai",
25
+ "development-workflow",
26
+ "claude-code"
27
+ ],
28
+ "author": "SoloForge Team",
29
+ "license": "MIT",
30
+ "engines": {
31
+ "node": ">=18.0.0"
32
+ },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://gitee.com/CharlieLuoBo/SoloForge.git"
36
+ },
37
+ "exports": {
38
+ ".": "./dist/index.js"
39
+ },
40
+ "dependencies": {
41
+ "@modelcontextprotocol/sdk": "^1.12.0",
42
+ "handlebars": "^4.7.8",
43
+ "gray-matter": "^4.0.3",
44
+ "execa": "^9.5.2",
45
+ "yaml": "^2.7.0",
46
+ "chokidar": "^4.0.3",
47
+ "zod": "^3.23.0"
48
+ },
49
+ "devDependencies": {
50
+ "typescript": "^5.7.0",
51
+ "vitest": "^3.1.0",
52
+ "@types/node": "^22.0.0"
53
+ }
54
+ }
@@ -0,0 +1,53 @@
1
+ # .soloforge/config.yaml — 项目配置模板
2
+
3
+ name: my-saas-product
4
+ product_profile: saas # 默认产品 profile
5
+
6
+ tech_stack:
7
+ backend:
8
+ lang: java
9
+ framework: spring-boot
10
+ version: "3.2"
11
+ frontend:
12
+ lang: typescript
13
+ framework: react
14
+ version: "18"
15
+
16
+ repos:
17
+ - name: backend
18
+ path: ./backend
19
+ lang: java
20
+ framework: spring-boot
21
+ scope: [src/main/java, src/test/java]
22
+ - name: frontend
23
+ path: ./frontend
24
+ lang: typescript
25
+ framework: react
26
+ scope: [src/components, src/services, src/pages]
27
+
28
+ # 构建命令(显式声明)
29
+ build_commands:
30
+ backend:
31
+ build: "cd backend && mvn compile -q"
32
+ test: "cd backend && mvn test"
33
+ full: "cd backend && mvn verify"
34
+ frontend:
35
+ build: "cd frontend && npm run build"
36
+ test: "cd frontend && npm test"
37
+ full: "cd frontend && npm run build && npm test"
38
+
39
+ # 默认 scope(expand 降级时使用)
40
+ scope:
41
+ backend: ["backend/src/main/java", "backend/src/test/java"]
42
+ frontend: ["frontend/src"]
43
+
44
+ # 验证超时(秒)
45
+ verify_timeout:
46
+ build: 120
47
+ test: 180
48
+
49
+ # 产品 profile 映射(按项目路径自动推断)
50
+ product_mapping:
51
+ "/projects/saas-*": saas
52
+ "/projects/b2b-*": b2b-internal
53
+ "/projects/b2c-*": b2c
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: Bug分析模版
3
+ type: acceptance_template
4
+ when: Bug分析, 缺陷分析, 问题定位, 根因分析
5
+ scope: [backend, frontend]
6
+ products: ["*"]
7
+ ---
8
+
9
+ # Bug 分析报告
10
+
11
+ ## 1. 问题概述
12
+ - **现象描述**:
13
+ - **影响范围**:全部用户 / 特定条件 / 偶发 / 必现
14
+ - **严重程度**:P0(致命) / P1(严重) / P2(一般) / P3(轻微)
15
+ - **发现时间**:
16
+ - **发现渠道**:用户反馈 / 自动告警 / 测试发现
17
+
18
+ ## 2. 复现步骤
19
+ 1.
20
+ 2.
21
+ 3.
22
+ - **前置条件**:
23
+ - **输入数据**:
24
+ - **环境信息**:
25
+
26
+ ## 3. 根因分析
27
+ - **直接原因**:
28
+ - **深层原因**(设计/实现/测试/流程):
29
+ - **归因阶段**:需求 / 设计 / 任务拆解 / 实现 / 测试 / 门禁
30
+ - **假设-验证记录**:
31
+
32
+ | 假设 | 验证方式 | 结果 | 结论 |
33
+ |------|---------|------|------|
34
+ | | | | |
35
+
36
+ ## 4. 修复方案
37
+ - **修复范围**(仅限根因相关文件):
38
+ - **修复方式**:
39
+ - **回归风险评估**:
40
+
41
+ ## 5. 预防措施
42
+ - [ ] 是否需要补充测试用例
43
+ - [ ] 是否需要补充审查规则
44
+ - [ ] 是否需要更新知识条目
45
+ - [ ] 是否存在同类问题需排查
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: POC结论模版
3
+ type: acceptance_template
4
+ when: POC结论, 技术验证结论, 技术选型结论, 可行性报告
5
+ scope: [backend, frontend]
6
+ products: ["*"]
7
+ ---
8
+
9
+ # POC 结论报告
10
+
11
+ ## 1. 验证目标
12
+ - 核心验证问题:
13
+ - 成功标准:
14
+
15
+ ## 2. 候选方案
16
+ | 方案 | 版本 | 许可证 | 社区活跃度 |
17
+ |------|------|--------|-----------|
18
+ | A | | | |
19
+ | B | | | |
20
+
21
+ ## 3. 评估维度
22
+ | 维度 | 权重 | 方案A评分 | 方案B评分 | 说明 |
23
+ |------|------|----------|----------|------|
24
+ | 性能 | | | | |
25
+ | 易用性 | | | | |
26
+ | 生态兼容 | | | | |
27
+ | 学习成本 | | | | |
28
+ | 维护成本 | | | | |
29
+
30
+ ## 4. 关键发现
31
+ - 发现的技术限制:
32
+ - 遇到的坑和解决方案:
33
+ - 性能基准数据:
34
+
35
+ ## 5. 结论
36
+ - **推荐方案**:
37
+ - **推荐理由**:
38
+ - **遗留风险**:
39
+ - **后续关注点**:
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: frontend-page
3
+ type: acceptance_template
4
+ when: 新建页面, 前端页面, 新增组件, React组件, 页面开发, 前端模块, 表单页面, 列表页面
5
+ scope: [frontend]
6
+ products: ["*"]
7
+ ---
8
+
9
+ ## 验收项
10
+ - [AC-01] 组件有明确的 Props 类型定义,无 any 类型 (check: grep -c 'any\b' {file})
11
+ - [AC-02] API 调用封装在 service 层,不直接在组件中 fetch (check: grep -c 'fetch\|axios\.\|httpClient\.' {file})
12
+ - [AC-03] 表单有校验规则(必填/长度/格式) (check: grep -c 'required\|validator\|rules' {file})
13
+ - [AC-04] 列表页面有 loading 状态和空数据提示 (check: grep -c 'loading\|empty\|暂无数据\|skeleton' {file})
14
+ - [AC-05] 错误状态有用户友好提示,不直接展示技术错误信息 (check: grep -c 'message\.error\|notification\|Toast\|错误提示' {file})
15
+ - [AC-06] 分页列表使用服务端分页,无全量加载 (check: grep -c 'pagination\|pageSize\|current\|pageNum' {file})
16
+ - [AC-07] 无硬编码的 URL 或魔法字符串,API 路径使用常量管理 (check: grep -c "'/api/" {file})
17
+ - [AC-08] useEffect 依赖数组完整,无遗漏依赖警告 (check: grep -A1 'useEffect' {file} | grep -c '\[\]')
18
+ - [AC-09] 事件处理函数有类型注解 (check: grep -c 'React.MouseEvent\|React.ChangeEvent\|event:' {file})
19
+ - [AC-10] 生产代码无 console.log 调试输出 (check: grep -c 'console\.log' {file})
20
+ - [AC-11] 页面是否处理 loading/empty/error 三态 (check: grep -c 'loading\|empty\|error\|Spin\|Empty\|ErrorBoundary' {file})
21
+ - [AC-12] 接口调用是否有错误提示(toast/notification) (check: grep -c 'message\.error\|notification\.error\|Toast\|showError' {file})
22
+ - [AC-13] 表单是否有输入校验和错误提示 (check: grep -c 'form\.validate\|getFieldError\|validateFields\|help\|validateStatus' {file})
23
+ - [AC-14] 危险操作(删除/清空)是否有二次确认弹窗 (check: grep -c 'confirm\|Modal\.confirm\|popconfirm\|二次确认' {file})
24
+ - [AC-15] 列表页是否有分页(非一次性全量加载) (check: grep -c 'Pagination\|pagination\|onChange.*page\|onPageChange' {file})
25
+ - [AC-16] 是否支持响应式布局(移动端适配) (check: grep -c 'media\|responsive\|@media\|flex-wrap\|grid' {file})
26
+ - [AC-17] 图片是否有懒加载(大量图片场景) (check: grep -c 'lazy\|LazyLoad\|loading="lazy"\|IntersectionObserver' {file})
27
+ - [AC-18] 是否有无障碍支持(键盘导航、颜色对比度) (check: grep -c 'aria-\|role=\|tabIndex\|alt=\|htmlFor' {file})
@@ -0,0 +1,180 @@
1
+ ---
2
+ name: prototype-specification
3
+ type: acceptance_template
4
+ when: "原型, 设计稿, UI规范, 前端实现, 页面交互, 交互规约"
5
+ scope: [frontend]
6
+ products: ["*"]
7
+ ---
8
+
9
+ # [页面名称] 原型与交互规约
10
+
11
+ ## 1. 页面元数据
12
+ - **所属模块/端**:[如:家属端小程序 / 机构端 Web / 运营端后台]
13
+ - **关联 PRD 节点**:[如:3.2.1 价值交换流程 - A.2 比较方案]
14
+ - **页面核心目标**:[一句话描述]
15
+ - **页面路由路径**:[如:/institution/compare]
16
+ - **入口来源**:[如:首页推荐卡片点击 / 侧边栏菜单]
17
+
18
+ ---
19
+
20
+ ## 2. 设计令牌 (Design Tokens)
21
+ > **说明:** 以下是从原型提取的全局设计变量,AI 实现时必须引用这些令牌而非硬编码数值。
22
+
23
+ ### 2.1 色彩
24
+ | 令牌名 | 色值 | 用途 |
25
+ |--------|------|------|
26
+ | --color-primary | #1890FF | 主色/主按钮/链接 |
27
+ | --color-danger | #FF4D4F | 错误/删除/警告 |
28
+ | --color-success | #52C41A | 成功/已通过 |
29
+ | --color-warning | #FAAD14 | 提醒/待处理 |
30
+ | --color-text-primary | #262626 | 主文本 |
31
+ | --color-text-secondary | #8C8C8C | 次要文本/标签 |
32
+ | --color-bg-page | #F5F5F5 | 页面背景 |
33
+ | --color-bg-card | #FFFFFF | 卡片背景 |
34
+ | --color-border | #E8E8E8 | 分割线/边框 |
35
+
36
+ ### 2.2 间距与圆角
37
+ | 令牌名 | 值 | 用途 |
38
+ |--------|------|------|
39
+ | --spacing-xs | 4px | 紧凑间距 |
40
+ | --spacing-sm | 8px | 元素内间距 |
41
+ | --spacing-md | 16px | 卡片内边距 |
42
+ | --spacing-lg | 24px | 区块间距 |
43
+ | --spacing-xl | 32px | 页面边距 |
44
+ | --radius-sm | 4px | 小圆角(标签) |
45
+ | --radius-md | 8px | 中圆角(卡片) |
46
+ | --radius-lg | 12px | 大圆角(弹窗) |
47
+
48
+ ### 2.3 字体
49
+ | 令牌名 | 值 | 用途 |
50
+ |--------|------|------|
51
+ | --font-size-xs | 12px | 辅助文字/标签 |
52
+ | --font-size-sm | 14px | 正文 |
53
+ | --font-size-md | 16px | 小标题 |
54
+ | --font-size-lg | 20px | 区块标题 |
55
+ | --font-size-xl | 24px | 页面标题 |
56
+ | --font-weight-normal | 400 | 正文 |
57
+ | --font-weight-medium | 500 | 标签/强调 |
58
+ | --font-weight-bold | 700 | 标题/金额 |
59
+
60
+ ---
61
+
62
+ ## 3. 页面布局树
63
+ > **说明:** 请严格按此层级结构和 Flex/Grid 布局参数构建 DOM 树。
64
+
65
+ ### 3.1 整体布局
66
+ - **布局方式**:Flex Column,height: 100vh
67
+ - **[Header]** 顶部导航栏:高度 48px,position: sticky top: 0,z-index: 100
68
+ - 内部布局:Flex Row,align-items: center,padding: 0 16px
69
+ - 返回按钮:左侧,width: 24px
70
+ - 页面标题:居中,font-size: var(--font-size-md)
71
+ - **[FilterBar]** 筛选区:高度 auto,padding: 12px 16px,background: var(--color-bg-card)
72
+ - 内部布局:Flex Row,gap: 12px,flex-wrap: wrap
73
+ - 每个筛选器:width: calc(33.3% - 8px)
74
+ - **[ContentArea]** 主体内容区:flex: 1,overflow-y: auto,padding: 16px
75
+ - 内部布局:Flex Column,gap: 12px
76
+ - **[CardItem]** 卡片组件:循环渲染,见 3.2
77
+ - **[Footer]** 底部操作区:高度 64px,position: sticky bottom: 0,padding: 12px 16px
78
+ - 内部布局:Flex Row,justify-content: center
79
+ - 主按钮:width: 100%,max-width: 375px
80
+
81
+ ### 3.2 [CardItem] 卡片组件布局
82
+ - 外层:border: 1px solid var(--color-border),border-radius: var(--radius-md),padding: var(--spacing-md)
83
+ - 内部:Flex Column,gap: 12px
84
+ - **头部行**:Flex Row,justify-content: space-between
85
+ - 标题:font-size: var(--font-size-md),font-weight: var(--font-weight-bold)
86
+ - 价格:color: var(--color-danger),font-weight: var(--font-weight-bold)
87
+ - **标签行**:Flex Row,gap: 8px,flex-wrap: wrap
88
+ - 每个标签:padding: 2px 8px,border-radius: var(--radius-sm),font-size: var(--font-size-xs)
89
+ - **操作行**:Flex Row,justify-content: flex-end
90
+
91
+ ---
92
+
93
+ ## 4. 组件数据绑定与渲染逻辑
94
+
95
+ ### 4.1 [CardItem] 字段映射
96
+ | UI 元素 | 绑定字段 | 格式化规则 | 动态行为 |
97
+ |---------|---------|-----------|---------|
98
+ | 卡片标题 | 机构资料.机构名称 | 单行,超出 text-overflow: ellipsis | 无 |
99
+ | 价格标签 | 服务资料.收费标准 | 红色加粗 + "元/月" | 无 |
100
+ | 特色标签 | 机构资料.特色标签数组 | 最多显示前 3 个 | 数组为空则隐藏整行 |
101
+ | 满员徽标 | 床位底数.当前可用 | 右上角绝对定位 | 值=0 时显示 |
102
+
103
+ ### 4.2 动态渲染规则
104
+ - **售罄/满员**:`当前可用 == 0` → 卡片整体 opacity: 0.6,右上角叠加"满员"徽标
105
+ - **选中状态**:选中时 border-color: var(--color-primary),左侧显示蓝色竖条 3px
106
+ - **加载中**:显示 Skeleton 占位,3 行高度分别为 24px/16px/16px,间距 12px
107
+
108
+ ---
109
+
110
+ ## 5. 交互流转与状态机
111
+
112
+ ### 5.1 事件:点击底部 [发起协调] 按钮
113
+
114
+ ```
115
+ [初始状态] → 点击 → [前置校验]
116
+ ├─ 未选中 → Toast "请先选择目标机构" → [初始状态]
117
+ └─ 已选中 → [执行动作]
118
+ ├─ 按钮: "提交中..." + disabled
119
+ ├─ 调用 POST /api/v1/coordination/init
120
+ └─ 等待响应
121
+ ├─ 200 成功 → Toast "发起成功" → 跳转 /payment?coordId={id}
122
+ ├─ 400 参数错误 → Modal 展示错误详情
123
+ ├─ 409 冲突 → Toast "该机构已有进行中的协调"
124
+ └─ 5xx 服务异常 → Modal "服务繁忙,请稍后重试"
125
+ ```
126
+
127
+ ### 5.2 事件:筛选器变更
128
+ - 触发方式:下拉选择器 onChange
129
+ - 行为:重置分页到第 1 页,调用列表查询接口,ContentArea 显示 Loading
130
+ - 防抖:300ms
131
+
132
+ ---
133
+
134
+ ## 6. 组件视觉状态
135
+
136
+ | 组件 | 状态 | 视觉变化 |
137
+ |------|------|---------|
138
+ | [CardItem] | 默认 | 白底,1px 灰色边框 |
139
+ | [CardItem] | 悬停 | 轻微阴影 elevation +2 |
140
+ | [CardItem] | 选中 | 左侧蓝色竖条 + 蓝色边框 |
141
+ | [CardItem] | 满员 | 整体 opacity: 0.6 + 右上角"满员"标 |
142
+ | 主按钮 | 默认 | 蓝色背景,白色文字 |
143
+ | 主按钮 | 悬停 | 背景色加深 10% |
144
+ | 主按钮 | 加载中 | 禁用 + 旋转图标 + "提交中..." |
145
+ | 主按钮 | 禁用 | 灰色背景,cursor: not-allowed |
146
+ | 筛选器 | 展开 | 蓝色边框 + 下拉面板 |
147
+ | 筛选器 | 已选 | 文字变蓝色 + 右侧清除图标 |
148
+
149
+ ---
150
+
151
+ ## 7. 响应式断点
152
+
153
+ | 断点 | 宽度范围 | 布局变化 |
154
+ |------|---------|---------|
155
+ | Mobile | < 768px | 卡片全宽,筛选器纵向堆叠,底部固定 |
156
+ | Tablet | 768px - 1024px | 卡片双列,筛选器横向,底部固定 |
157
+ | Desktop | > 1024px | 卡片三列,ContentArea max-width: 1200px 居中 |
158
+
159
+ ---
160
+
161
+ ## 8. 动效规范
162
+
163
+ | 交互 | 动效 | 时长 | 缓动函数 |
164
+ |------|------|------|---------|
165
+ | 卡片选中/取消 | 边框颜色 + 阴影变化 | 200ms | ease-out |
166
+ | 页面路由切换 | 右滑入/左滑出 | 300ms | ease-in-out |
167
+ | Toast 显示/隐藏 | 从顶部滑入,自动消失 | 300ms / 2000ms | ease-out |
168
+ | Modal 弹出 | 淡入 + 轻微缩放(0.95→1) | 200ms | ease-out |
169
+ | Skeleton 消失 | 淡出 | 150ms | ease-in |
170
+
171
+ ---
172
+
173
+ ## 9. 边界与异常分支
174
+
175
+ - **空状态**:列表接口返回空数组 → ContentArea 渲染缺省组件:插画 + "暂无符合条件的机构" + "重置筛选条件"按钮
176
+ - **网络异常**:接口超时或 50x → 展示错误占位页:图标 + "加载失败" + 重试按钮
177
+ - **数据截断**:机构名称超一行 → text-overflow: ellipsis,鼠标悬停显示完整名称(Tooltip)
178
+ - **数据加载**:首次加载 → Skeleton 占位(3 张卡片形状);下拉刷新 → 顶部 Loading 条
179
+ - **无权限**:接口返回 403 → 全屏提示 "无访问权限" + 返回按钮
180
+ - **并发操作**:卡片被其他用户选满 → 接口返回 409 → 自动刷新列表 + Toast 提示
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: backend-api
3
+ type: acceptance_template
4
+ when: 新建接口, API开发, 后端接口, REST API, 新增CRUD, 添加接口, 接口实现
5
+ scope: [backend]
6
+ products: ["*"]
7
+ ---
8
+
9
+ ## 验收项
10
+ - [AC-01] Controller 层无业务逻辑(无 if/else 分支、计算、状态机) (check: grep -rn 'if\s*(.*>.*)\|if\s*(.*< .*)' {file} --include='*Controller.java')
11
+ - [AC-02] DTO 与 Entity 分离,请求/响应使用 DTO,不直接暴露 Entity (check: grep -c 'Entity\|@Table' {file} && grep -c 'class.*DTO\|class.*Request\|class.*Response' {file})
12
+ - [AC-03] 写操作 Service 方法有 @Transactional 注解 (check: grep -B2 'public.*save\|public.*update\|public.*delete\|public.*create' {file} | grep -c '@Transactional')
13
+ - [AC-04] 批量操作使用 batch SQL,无循环内逐条调用 (check: grep -A5 'for\s*(' {file} | grep -c 'mapper\.\|repository\.\|dao\.')
14
+ - [AC-05] 删除操作记录操作人和原因 (check: grep -A5 'delete\|remove' {file} | grep -c 'operator\|reason\|操作人')
15
+ - [AC-06] 所有异常经全局异常处理器返回,无散落 try-catch 吞异常 (check: grep -c 'catch\s*(.*Exception\s*\w*)\s*\{\s*\}' {file})
16
+ - [AC-07] 接口有 @Valid 或手动参数校验,不信任外部输入 (check: grep -c '@Valid\|@NotNull\|@NotBlank\|@Size\|validate' {file})
17
+ - [AC-08] 关键写操作有 INFO 级别审计日志(操作者/时间/对象) (check: grep -c 'log\.info\|auditLog\|操作日志' {file})
18
+ - [AC-09] 日志中无敏感信息(密码/token/身份证号) (check: grep -ic 'password\|token\|secret\|idcard\|身份证' {file})
19
+ - [AC-10] 权限检查注解到位(@PreAuthorize 或自定义鉴权) (check: grep -c '@PreAuthorize\|@RequiresPermissions\|checkPermission' {file})
20
+ - [AC-11] API 是否有版本号路径前缀(/api/v1/) (check: grep -c '@RequestMapping.*"/api/v[0-9]' {file})
21
+ - [AC-12] 写接口是否有幂等设计(幂等键或唯一约束) (check: grep -c 'Idempotent\|幂等\|idempotent' {file})
22
+ - [AC-13] 分页接口是否返回标准分页结构(total、list、pageNum、pageSize) (check: grep -c 'PageResult\|PageInfo\|PageResponse\|total.*list' {file})
23
+ - [AC-14] 是否有全局统一错误码体系 (check: grep -c 'ErrorCode\|BizCode\|ResultCode\|错误码' {file})
24
+ - [AC-15] 接口文档是否与实现同步(Swagger/OpenAPI 注解完整) (check: grep -c '@ApiOperation\|@Schema\|summary' {file})
25
+ - [AC-16] 是否有速率限制保护 (check: grep -c '@RateLimit\|RateLimiter\|限流\|rate' {file})
26
+ - [AC-17] 批量操作是否有数量上限(≤ 500 条) (check: grep -c '@Size.*max\|MAX_BATCH\|batchSize\|批量上限' {file})
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: 安全审计模版
3
+ type: acceptance_template
4
+ when: 安全审计, 安全扫描, 漏洞检查, 安全评估
5
+ scope: [backend, frontend]
6
+ products: ["*"]
7
+ ---
8
+
9
+ # 安全审计报告
10
+
11
+ ## 1. 审计范围
12
+ - 审计对象:
13
+ - 审计时间:
14
+ - 审计方法(静态扫描/动态测试/人工审查):
15
+
16
+ ## 2. 漏洞清单
17
+ | 编号 | 漏洞类型(OWASP) | 风险等级 | 影响范围 | 所在文件/接口 | 描述 |
18
+ |------|----------------|---------|---------|-------------|------|
19
+ | SEC-01 | SQL注入 | Critical | | | |
20
+ | SEC-02 | XSS | Critical | | | |
21
+ | SEC-03 | 越权访问 | High | | | |
22
+ | SEC-04 | 敏感信息泄露 | High | | | |
23
+ | SEC-05 | CSRF | Medium | | | |
24
+
25
+ ## 3. 认证授权检查
26
+ - [ ] 所有写接口有权限校验
27
+ - [ ] Token 有过期机制
28
+ - [ ] 密码加密存储(BCrypt)
29
+ - [ ] 无硬编码密钥/密码
30
+ - [ ] 敏感操作有二次验证
31
+ - [ ] API 接口是否有认证和授权保护
32
+ - [ ] 是否有速率限制防暴力攻击
33
+
34
+ ## 4. 数据安全检查
35
+ - [ ] PII 数据脱敏展示
36
+ - [ ] 敏感字段加密存储
37
+ - [ ] 日志不含敏感信息
38
+ - [ ] 数据导出有权限控制
39
+ - [ ] 敏感数据传输是否使用 HTTPS 加密
40
+ - [ ] 敏感数据存储是否加密(密码 BCrypt、身份证 AES)
41
+ - [ ] 错误信息是否屏蔽技术细节
42
+ - [ ] 是否有操作审计日志
43
+
44
+ ## 5. 依赖安全检查
45
+ - [ ] 第三方依赖是否有已知漏洞扫描
46
+ - [ ] 是否有 SQL 注入/XSS/SSRF 防护措施
47
+
48
+ ## 6. 修复计划
49
+ | 编号 | 修复方案 | 计划完成时间 | 责任人 |
50
+ |------|---------|------------|--------|
51
+ | | | | |
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: 性能分析模版
3
+ type: acceptance_template
4
+ when: 性能分析, 性能定位, 性能瓶颈, 慢查询分析
5
+ scope: [backend, frontend]
6
+ products: ["*"]
7
+ ---
8
+
9
+ # 性能分析报告
10
+
11
+ ## 1. 性能概况
12
+ | 指标 | 当前值 | 目标值 | 差距 |
13
+ |------|--------|--------|------|
14
+ | 接口响应时间(P99) | | | |
15
+ | 页面首屏时间(FCP) | | | |
16
+ | 数据库慢查询数 | | | |
17
+ | 内存使用峰值 | | | |
18
+ | CPU 使用峰值 | | | |
19
+
20
+ ## 2. 瓶颈定位
21
+ ### 2.1 数据库瓶颈
22
+ - 慢查询 TOP 5(SQL、执行时间、扫描行数)
23
+ - 缺失索引分析
24
+ - 锁等待情况
25
+
26
+ ### 2.2 应用瓶颈
27
+ - 热点方法(耗时 TOP 10)
28
+ - 内存泄漏嫌疑
29
+ - 线程池使用率
30
+
31
+ ### 2.3 前端瓶颈
32
+ - 关键资源加载瀑布图
33
+ - JavaScript 执行耗时
34
+ - 渲染阻塞资源
35
+
36
+ ## 3. 优化方案
37
+ | 优先级 | 瓶颈点 | 优化方案 | 预期收益 | 实施风险 |
38
+ |--------|--------|---------|---------|---------|
39
+ | P0 | | | | |
40
+ | P1 | | | | |
41
+
42
+ ## 4. 测量方式
43
+ - 基准测试方法:
44
+ - 对比指标:
45
+ - 验证环境:
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: 接口对接方案模版
3
+ type: acceptance_template
4
+ when: 接口对接方案, 第三方对接, API集成方案
5
+ scope: [backend, frontend]
6
+ products: ["*"]
7
+ ---
8
+
9
+ # 接口对接方案
10
+
11
+ ## 1. 第三方服务概况
12
+ - 服务名称:
13
+ - 服务类型(支付/通知/数据/认证):
14
+ - SLA 可用性:
15
+ - 沙箱环境地址:
16
+
17
+ ## 2. 认证方式
18
+ - 认证类型(API Key / OAuth / Token / 签名):
19
+ - 密钥管理方案(加密存储/环境变量/密钥轮换):
20
+
21
+ ## 3. 接口清单
22
+ | 接口 | 方法 | 路径 | 用途 | 调用频率 |
23
+ |------|------|------|------|---------|
24
+ | | | | | |
25
+
26
+ ## 4. 数据映射
27
+ | 我方字段 | 我方类型 | 对方字段 | 对方类型 | 转换规则 |
28
+ |---------|---------|---------|---------|---------|
29
+ | | | | | |
30
+
31
+ ## 5. 错误码映射
32
+ | 对方错误码 | 含义 | 我方错误码 | 用户提示 | 处理策略 |
33
+ |-----------|------|-----------|---------|---------|
34
+ | | | | | |
35
+
36
+ ## 6. 容错策略
37
+ - 超时时间:
38
+ - 重试次数 + 退避策略:
39
+ - 熔断阈值:
40
+ - 降级方案:
41
+ - 限流/配额:
42
+
43
+ ## 7. Mock 方案
44
+ - 本地 Mock 方式:
45
+ - 沙箱对接计划: