soloforge 1.1.33 → 1.1.34

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 (469) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/adapters/shared/workflow_template.js +1 -1
  3. package/dist/bin/commands/check_bash.d.ts +6 -0
  4. package/dist/bin/commands/check_bash.d.ts.map +1 -1
  5. package/dist/bin/commands/check_bash.js +68 -1
  6. package/dist/bin/commands/check_bash.js.map +1 -1
  7. package/dist/bin/commands/check_write.d.ts +23 -0
  8. package/dist/bin/commands/check_write.d.ts.map +1 -1
  9. package/dist/bin/commands/check_write.js +110 -0
  10. package/dist/bin/commands/check_write.js.map +1 -1
  11. package/dist/bin/commands/init.d.ts.map +1 -1
  12. package/dist/bin/commands/init.js +7 -1
  13. package/dist/bin/commands/init.js.map +1 -1
  14. package/dist/engine/audit/code_reviewer.d.ts +2 -0
  15. package/dist/engine/audit/code_reviewer.d.ts.map +1 -1
  16. package/dist/engine/audit/code_reviewer.js +4 -3
  17. package/dist/engine/audit/code_reviewer.js.map +1 -1
  18. package/dist/engine/audit/mutation_audit.d.ts +5 -1
  19. package/dist/engine/audit/mutation_audit.d.ts.map +1 -1
  20. package/dist/engine/audit/mutation_audit.js +18 -1
  21. package/dist/engine/audit/mutation_audit.js.map +1 -1
  22. package/dist/engine/audit/test_quality.d.ts.map +1 -1
  23. package/dist/engine/audit/test_quality.js +9 -0
  24. package/dist/engine/audit/test_quality.js.map +1 -1
  25. package/dist/engine/contracts/artifact_process_rules.d.ts +46 -0
  26. package/dist/engine/contracts/artifact_process_rules.d.ts.map +1 -0
  27. package/dist/engine/contracts/artifact_process_rules.js +396 -0
  28. package/dist/engine/contracts/artifact_process_rules.js.map +1 -0
  29. package/dist/engine/contracts/artifact_schema_registry.d.ts +137 -0
  30. package/dist/engine/contracts/artifact_schema_registry.d.ts.map +1 -0
  31. package/dist/engine/contracts/artifact_schema_registry.js +773 -0
  32. package/dist/engine/contracts/artifact_schema_registry.js.map +1 -0
  33. package/dist/engine/contracts/behavior_coverage_verifier.d.ts +35 -0
  34. package/dist/engine/contracts/behavior_coverage_verifier.d.ts.map +1 -0
  35. package/dist/engine/contracts/behavior_coverage_verifier.js +220 -0
  36. package/dist/engine/contracts/behavior_coverage_verifier.js.map +1 -0
  37. package/dist/engine/contracts/capability_registry.d.ts.map +1 -1
  38. package/dist/engine/contracts/capability_registry.js +74 -0
  39. package/dist/engine/contracts/capability_registry.js.map +1 -1
  40. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js +2 -2
  41. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.d.ts.map +1 -1
  42. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js +61 -2
  43. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js.map +1 -1
  44. package/dist/engine/contracts/error_path_verifier.d.ts +36 -0
  45. package/dist/engine/contracts/error_path_verifier.d.ts.map +1 -0
  46. package/dist/engine/contracts/error_path_verifier.js +131 -0
  47. package/dist/engine/contracts/error_path_verifier.js.map +1 -0
  48. package/dist/engine/contracts/lazy_pattern_detector.d.ts +43 -0
  49. package/dist/engine/contracts/lazy_pattern_detector.d.ts.map +1 -0
  50. package/dist/engine/contracts/lazy_pattern_detector.js +164 -0
  51. package/dist/engine/contracts/lazy_pattern_detector.js.map +1 -0
  52. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.d.ts.map +1 -1
  53. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js +29 -0
  54. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js.map +1 -1
  55. package/dist/engine/contracts/omission_scanner.d.ts +83 -0
  56. package/dist/engine/contracts/omission_scanner.d.ts.map +1 -0
  57. package/dist/engine/contracts/omission_scanner.js +191 -0
  58. package/dist/engine/contracts/omission_scanner.js.map +1 -0
  59. package/dist/engine/contracts/template_schema_loader.d.ts +79 -0
  60. package/dist/engine/contracts/template_schema_loader.d.ts.map +1 -0
  61. package/dist/engine/contracts/template_schema_loader.js +301 -0
  62. package/dist/engine/contracts/template_schema_loader.js.map +1 -0
  63. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts +21 -4
  64. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts.map +1 -1
  65. package/dist/engine/knowledge/knowledge_injection_boundary.js +96 -22
  66. package/dist/engine/knowledge/knowledge_injection_boundary.js.map +1 -1
  67. package/dist/engine/pipeline/intent_expander/expand.d.ts.map +1 -1
  68. package/dist/engine/pipeline/intent_expander/expand.js +2 -2
  69. package/dist/engine/pipeline/intent_expander/expand.js.map +1 -1
  70. package/dist/engine/pipeline/intent_expander/knowledge.d.ts +2 -1
  71. package/dist/engine/pipeline/intent_expander/knowledge.d.ts.map +1 -1
  72. package/dist/engine/pipeline/intent_expander/knowledge.js +34 -1
  73. package/dist/engine/pipeline/intent_expander/knowledge.js.map +1 -1
  74. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts +2 -1
  75. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts.map +1 -1
  76. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js +16 -5
  77. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js.map +1 -1
  78. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts +6 -2
  79. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts.map +1 -1
  80. package/dist/engine/pipeline/intent_expander/scope_acceptance.js +6 -1
  81. package/dist/engine/pipeline/intent_expander/scope_acceptance.js.map +1 -1
  82. package/dist/engine/pipeline/intent_expander/templates.d.ts.map +1 -1
  83. package/dist/engine/pipeline/intent_expander/templates.js +99 -0
  84. package/dist/engine/pipeline/intent_expander/templates.js.map +1 -1
  85. package/dist/engine/pipeline/intent_expander/types.d.ts +3 -0
  86. package/dist/engine/pipeline/intent_expander/types.d.ts.map +1 -1
  87. package/dist/engine/pipeline/intent_router.d.ts +3 -0
  88. package/dist/engine/pipeline/intent_router.d.ts.map +1 -1
  89. package/dist/engine/pipeline/intent_router.js +34 -6
  90. package/dist/engine/pipeline/intent_router.js.map +1 -1
  91. package/dist/engine/pipeline/intent_signal_extractor.js +11 -11
  92. package/dist/engine/pipeline/intent_signal_extractor.js.map +1 -1
  93. package/dist/engine/pipeline/stage_prechecks.d.ts +83 -0
  94. package/dist/engine/pipeline/stage_prechecks.d.ts.map +1 -0
  95. package/dist/engine/pipeline/stage_prechecks.js +199 -0
  96. package/dist/engine/pipeline/stage_prechecks.js.map +1 -0
  97. package/dist/engine/pipeline/task_planner.d.ts +2 -0
  98. package/dist/engine/pipeline/task_planner.d.ts.map +1 -1
  99. package/dist/engine/pipeline/task_planner.js +4 -0
  100. package/dist/engine/pipeline/task_planner.js.map +1 -1
  101. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js +3 -3
  102. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js.map +1 -1
  103. package/dist/engine/release/release_readiness_gate.d.ts +4 -1
  104. package/dist/engine/release/release_readiness_gate.d.ts.map +1 -1
  105. package/dist/engine/release/release_readiness_gate.js +57 -1
  106. package/dist/engine/release/release_readiness_gate.js.map +1 -1
  107. package/dist/engine/templates/asset_manifest.d.ts.map +1 -1
  108. package/dist/engine/templates/asset_manifest.js +107 -91
  109. package/dist/engine/templates/asset_manifest.js.map +1 -1
  110. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.d.ts.map +1 -1
  111. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js +30 -14
  112. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js.map +1 -1
  113. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js +21 -21
  114. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js.map +1 -1
  115. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js +20 -20
  116. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js.map +1 -1
  117. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.d.ts.map +1 -1
  118. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js +22 -21
  119. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js.map +1 -1
  120. package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.d.ts.map +1 -1
  121. package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.js +10 -1
  122. package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.js.map +1 -1
  123. package/dist/engine/templates/consumable_asset_registry/types.d.ts +3 -1
  124. package/dist/engine/templates/consumable_asset_registry/types.d.ts.map +1 -1
  125. package/dist/engine/templates/consumable_asset_registry/types.js +1 -1
  126. package/dist/engine/templates/consumable_asset_registry/types.js.map +1 -1
  127. package/dist/engine/templates/explicit_asset_registry/adapters.js +1 -1
  128. package/dist/engine/templates/explicit_asset_registry/adapters.js.map +1 -1
  129. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js +29 -29
  130. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js.map +1 -1
  131. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js +47 -47
  132. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js.map +1 -1
  133. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js +9 -9
  134. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js.map +1 -1
  135. package/dist/engine/templates/explicit_asset_registry/checklists.js +13 -13
  136. package/dist/engine/templates/explicit_asset_registry/checklists.js.map +1 -1
  137. package/dist/engine/templates/explicit_asset_registry/contributing.d.ts +3 -0
  138. package/dist/engine/templates/explicit_asset_registry/contributing.d.ts.map +1 -0
  139. package/dist/engine/templates/explicit_asset_registry/contributing.js +19 -0
  140. package/dist/engine/templates/explicit_asset_registry/contributing.js.map +1 -0
  141. package/dist/engine/templates/explicit_asset_registry/domain.js +18 -18
  142. package/dist/engine/templates/explicit_asset_registry/domain.js.map +1 -1
  143. package/dist/engine/templates/explicit_asset_registry/gates.d.ts.map +1 -1
  144. package/dist/engine/templates/explicit_asset_registry/gates.js +140 -11
  145. package/dist/engine/templates/explicit_asset_registry/gates.js.map +1 -1
  146. package/dist/engine/templates/explicit_asset_registry/index.d.ts.map +1 -1
  147. package/dist/engine/templates/explicit_asset_registry/index.js +3 -0
  148. package/dist/engine/templates/explicit_asset_registry/index.js.map +1 -1
  149. package/dist/engine/templates/explicit_asset_registry/internal_patterns.d.ts.map +1 -1
  150. package/dist/engine/templates/explicit_asset_registry/internal_patterns.js +110 -46
  151. package/dist/engine/templates/explicit_asset_registry/internal_patterns.js.map +1 -1
  152. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js +52 -52
  153. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js.map +1 -1
  154. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.d.ts.map +1 -1
  155. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js +55 -39
  156. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js.map +1 -1
  157. package/dist/engine/templates/explicit_asset_registry/patterns_part1.js +50 -50
  158. package/dist/engine/templates/explicit_asset_registry/patterns_part1.js.map +1 -1
  159. package/dist/engine/templates/explicit_asset_registry/patterns_part2.js +50 -50
  160. package/dist/engine/templates/explicit_asset_registry/patterns_part2.js.map +1 -1
  161. package/dist/engine/templates/explicit_asset_registry/patterns_part3.js +2 -2
  162. package/dist/engine/templates/explicit_asset_registry/patterns_part3.js.map +1 -1
  163. package/dist/engine/templates/explicit_asset_registry/procedures_part1.js +66 -66
  164. package/dist/engine/templates/explicit_asset_registry/procedures_part1.js.map +1 -1
  165. package/dist/engine/templates/explicit_asset_registry/procedures_part2.d.ts.map +1 -1
  166. package/dist/engine/templates/explicit_asset_registry/procedures_part2.js +43 -26
  167. package/dist/engine/templates/explicit_asset_registry/procedures_part2.js.map +1 -1
  168. package/dist/engine/templates/explicit_asset_registry/profiles.js +3 -3
  169. package/dist/engine/templates/explicit_asset_registry/profiles.js.map +1 -1
  170. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js +18 -18
  171. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js.map +1 -1
  172. package/dist/engine/templates/explicit_asset_registry/rules_shared.d.ts.map +1 -1
  173. package/dist/engine/templates/explicit_asset_registry/rules_shared.js +128 -17
  174. package/dist/engine/templates/explicit_asset_registry/rules_shared.js.map +1 -1
  175. package/dist/engine/templates/explicit_asset_registry/scaffolds.d.ts.map +1 -1
  176. package/dist/engine/templates/explicit_asset_registry/scaffolds.js +87 -18
  177. package/dist/engine/templates/explicit_asset_registry/scaffolds.js.map +1 -1
  178. package/dist/engine/templates/standard_asset_contract.d.ts +30 -0
  179. package/dist/engine/templates/standard_asset_contract.d.ts.map +1 -1
  180. package/dist/engine/templates/standard_asset_contract.js +152 -0
  181. package/dist/engine/templates/standard_asset_contract.js.map +1 -1
  182. package/dist/engine/templates/template_asset_contract_registry.d.ts +1 -1
  183. package/dist/engine/templates/template_asset_contract_registry.d.ts.map +1 -1
  184. package/dist/engine/templates/template_asset_contract_registry.js +44 -7
  185. package/dist/engine/templates/template_asset_contract_registry.js.map +1 -1
  186. package/dist/engine/templates/template_init_sync.d.ts +7 -1
  187. package/dist/engine/templates/template_init_sync.d.ts.map +1 -1
  188. package/dist/engine/templates/template_init_sync.js +72 -19
  189. package/dist/engine/templates/template_init_sync.js.map +1 -1
  190. package/dist/engine/templates/workflow_rule_generator.d.ts +1 -1
  191. package/dist/engine/templates/workflow_rule_generator.js +2 -2
  192. package/dist/engine/templates/workflow_rule_generator.js.map +1 -1
  193. package/dist/knowledge/index_manager.d.ts +1 -0
  194. package/dist/knowledge/index_manager.d.ts.map +1 -1
  195. package/dist/knowledge/index_manager.js +23 -1
  196. package/dist/knowledge/index_manager.js.map +1 -1
  197. package/dist/server/tools/tool_groups/expand_handler.d.ts.map +1 -1
  198. package/dist/server/tools/tool_groups/expand_handler.js +4 -0
  199. package/dist/server/tools/tool_groups/expand_handler.js.map +1 -1
  200. package/dist/server/tools/tool_groups/verify_learn.d.ts.map +1 -1
  201. package/dist/server/tools/tool_groups/verify_learn.js +209 -58
  202. package/dist/server/tools/tool_groups/verify_learn.js.map +1 -1
  203. package/dist/types/analysis.d.ts +5 -0
  204. package/dist/types/analysis.d.ts.map +1 -1
  205. package/dist/types/knowledge.d.ts +13 -2
  206. package/dist/types/knowledge.d.ts.map +1 -1
  207. package/dist/types/knowledge.js.map +1 -1
  208. package/dist/types/pipeline.d.ts +35 -0
  209. package/dist/types/pipeline.d.ts.map +1 -1
  210. package/dist/types/task.d.ts +19 -0
  211. package/dist/types/task.d.ts.map +1 -1
  212. package/package.json +4 -2
  213. package/templates/artifacts/existing-system//345/216/206/345/217/262/346/225/260/346/215/256/346/270/205/346/264/227/350/204/232/346/234/254/346/250/241/347/211/210.md +8 -4
  214. package/templates/artifacts/existing-system//345/216/206/345/217/262/351/201/227/347/225/231/351/233/267/345/214/272/346/270/205/345/215/225/346/250/241/347/211/210.md +8 -4
  215. package/templates/artifacts/existing-system//345/220/221/345/220/216/345/205/274/345/256/271/346/200/247/345/220/210/350/247/204/346/212/245/345/221/212/346/250/241/347/211/210.md +8 -4
  216. package/templates/artifacts/existing-system//345/242/236/351/207/217/350/276/271/347/225/214/347/225/214/345/256/232/346/226/207/346/241/243/346/250/241/347/211/210.md +8 -4
  217. package/templates/artifacts/existing-system//346/224/271/351/200/240/345/275/261/345/223/215/350/214/203/345/233/264/350/257/204/344/274/260/346/250/241/347/211/210.md +8 -4
  218. package/templates/artifacts/existing-system//346/225/260/346/215/256/350/241/200/347/274/230/345/233/276/346/250/241/347/211/210.md +8 -4
  219. package/templates/artifacts/existing-system//346/226/260/350/200/201/351/200/273/350/276/221/346/257/224/345/257/271/346/227/245/345/277/227/346/250/241/347/211/210.md +8 -4
  220. package/templates/artifacts/existing-system//347/264/247/346/200/245/345/233/236/346/273/232/346/211/213/345/206/214/346/250/241/347/211/210.md +8 -4
  221. package/templates/artifacts/existing-system//351/232/224/347/246/273/351/200/202/351/205/215/345/231/250/346/226/271/346/241/210/346/250/241/347/211/210.md +8 -4
  222. package/templates/artifacts/shared/ADR/346/250/241/347/211/210.md +5 -2
  223. package/templates/artifacts/shared/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243/346/250/241/347/211/210.md +52 -5
  224. package/templates/artifacts/shared/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +6 -5
  225. package/templates/artifacts/shared/OOD/350/256/276/350/256/241/346/221/230/350/246/201/346/250/241/347/211/210.md +5 -5
  226. package/templates/artifacts/shared/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +6 -5
  227. package/templates/artifacts/shared//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212/346/250/241/347/211/210.md +6 -3
  228. package/templates/artifacts/shared//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/351/252/214/346/224/266/346/250/241/{346/235/277.md → 347/211/210.md} +11 -14
  229. package/templates/artifacts/shared//345/210/207/347/211/207/350/256/241/345/210/222/346/250/241/347/211/210.md +5 -2
  230. package/templates/artifacts/shared//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 +5 -4
  231. package/templates/artifacts/shared//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +81 -4
  232. package/templates/artifacts/shared//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md +5 -4
  233. package/templates/artifacts/shared//345/220/216/347/253/257/345/256/236/347/216/260/351/252/214/346/224/266/346/270/205/345/215/225.md +6 -8
  234. package/templates/artifacts/shared//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md +6 -5
  235. package/templates/artifacts/shared//345/256/241/346/237/245/346/221/230/350/246/201.md +7 -7
  236. package/templates/artifacts/shared//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md +6 -5
  237. package/templates/artifacts/shared//346/212/200/346/234/257/351/200/211/345/236/213/351/252/214/346/224/266/346/270/205/345/215/225.md +5 -4
  238. package/templates/artifacts/shared//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 +6 -5
  239. package/templates/artifacts/shared//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md +6 -5
  240. package/templates/artifacts/shared//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 +6 -5
  241. package/templates/artifacts/shared//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 +5 -4
  242. package/templates/artifacts/shared//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243/346/250/241/347/211/210.md +33 -5
  243. package/templates/artifacts/shared//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +57 -5
  244. package/templates/artifacts/shared//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md +6 -5
  245. package/templates/artifacts/shared//350/256/276/350/256/241/344/270/200/350/207/264/346/200/247/351/252/214/346/224/266/346/212/245/345/221/212/346/250/241/347/211/210.md +27 -9
  246. package/templates/artifacts/shared//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md +6 -5
  247. package/templates/artifacts/shared//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md +6 -5
  248. package/templates/artifacts/shared//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 +5 -4
  249. package/templates/artifacts/shared//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +6 -5
  250. package/templates/artifacts/shared//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md +6 -5
  251. package/templates/artifacts/shared//351/234/200/346/261/202/345/216/237/345/236/213/350/256/276/350/256/241/345/256/236/347/216/260/350/277/275/350/270/252/347/237/251/351/230/265/346/250/241/347/211/210.md +7 -10
  252. package/templates/checklists//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +6 -9
  253. package/templates/checklists//344/274/232/350/257/235/346/201/242/345/244/215.md +8 -14
  254. package/templates/checklists//345/267/245/344/275/234/346/265/201/351/252/214/346/224/266/346/270/205/345/215/225.md +6 -10
  255. package/templates/checklists//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/351/252/214/346/224/266/346/270/205/345/215/225.md +6 -9
  256. package/templates/checklists//347/237/245/350/257/206/346/263/250/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md +7 -11
  257. package/templates/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +6 -9
  258. package/templates/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +6 -9
  259. package/templates/domain//345/244/232/347/247/237/346/210/267.md +5 -4
  260. package/templates/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +5 -4
  261. package/templates/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +10 -9
  262. package/templates/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +5 -4
  263. package/templates/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +5 -4
  264. package/templates/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +5 -4
  265. package/templates/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +5 -4
  266. package/templates/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +5 -4
  267. package/templates/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +10 -9
  268. package/templates/gates/existing-system/gate-/346/236/266/346/236/204/350/256/276/350/256/241.yaml +1 -0
  269. package/templates/gates/existing-system/gate-/347/216/260/346/234/211/347/263/273/347/273/237/345/210/206/346/236/220.yaml +2 -2
  270. package/templates/gates/existing-system/gate-/347/274/226/347/240/201/344/270/216/345/215/225/345/205/203/346/265/213/350/257/225.yaml +2 -1
  271. package/templates/gates/existing-system/gate-/350/257/246/347/273/206/350/256/276/350/256/241.yaml +1 -0
  272. package/templates/gates/shared/gate-/344/272/244/344/273/230.yaml +14 -0
  273. package/templates/gates/shared/gate-/344/273/273/345/212/241/350/247/204/345/210/222.yaml +3 -3
  274. package/templates/gates/shared/gate-/344/274/232/350/257/235/345/220/257/345/212/250.yaml +14 -0
  275. package/templates/gates/shared/gate-/345/206/263/347/255/226/347/240/224/350/256/250.yaml +14 -0
  276. package/templates/gates/shared/gate-/345/217/221/345/270/203/345/220/216/350/247/202/345/257/237.yaml +14 -0
  277. package/templates/gates/shared/gate-/346/234/254/345/234/260/351/252/214/346/224/266.yaml +14 -0
  278. package/templates/gates/shared/gate-/347/274/226/347/240/201/345/207/206/345/244/207.yaml +14 -0
  279. package/templates/gates/shared/gate-/347/274/226/347/240/201/345/256/236/347/216/260.yaml +14 -0
  280. package/templates/gates/shared/gate-/347/274/226/347/240/201/351/252/214/350/257/201.yaml +18 -0
  281. package/templates/internal/patterns/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +5 -5
  282. package/templates/internal/patterns/Hook/345/261/202/344/272/247/347/211/251/347/273/223/346/236/204/346/240/241/351/252/214.md +61 -0
  283. package/templates/internal/patterns/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +5 -5
  284. package/templates/internal/patterns/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +5 -5
  285. package/templates/internal/patterns//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +61 -0
  286. package/templates/internal/patterns//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237.md +5 -5
  287. package/templates/internal/patterns//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +5 -5
  288. package/templates/internal/patterns//344/275/234/347/224/250/345/237/237/344/270/216/345/257/206/351/222/245/346/213/246/346/210/252.md +5 -5
  289. package/templates/internal/patterns//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +5 -5
  290. package/templates/internal/patterns//345/206/262/347/252/201/351/227/250/347/246/201.md +5 -5
  291. package/templates/internal/patterns//345/206/263/347/255/226/347/275/221/345/205/263.md +5 -5
  292. package/templates/internal/patterns//345/210/206/345/234/272/346/231/257/350/277/207/347/250/213/350/247/204/345/210/231.md +61 -0
  293. package/templates/internal/patterns//345/217/230/345/274/202/345/256/241/350/256/241.md +5 -5
  294. package/templates/internal/patterns//345/233/236/345/275/222/347/237/251/351/230/265.md +6 -6
  295. package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +5 -5
  296. package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +5 -5
  297. package/templates/internal/patterns//345/271/266/345/217/221/351/224/201.md +5 -5
  298. package/templates/internal/patterns//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +5 -5
  299. package/templates/internal/patterns//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +5 -5
  300. package/templates/internal/patterns//346/250/241/347/211/210Frontmatter/350/247/243/346/236/220.md +61 -0
  301. package/templates/internal/patterns//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +5 -5
  302. package/templates/internal/patterns//346/265/201/345/274/217/345/277/203/350/267/263.md +5 -5
  303. package/templates/internal/patterns//347/237/245/350/257/206/344/270/273/346/235/203.md +6 -6
  304. package/templates/internal/patterns//350/257/255/344/271/211/350/257/201/346/215/256.md +5 -5
  305. package/templates/internal/patterns//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +5 -5
  306. package/templates/internal/patterns//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +5 -5
  307. package/templates/internal/patterns//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +6 -6
  308. package/templates/internal/rules/OOD/344/270/216SOLID/350/256/276/350/256/241/350/247/204/345/210/231.md +7 -9
  309. package/templates/internal/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +7 -9
  310. package/templates/internal/rules//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/345/245/221/347/272/246/350/247/204/345/210/231.md +7 -9
  311. package/templates/internal/rules//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +7 -6
  312. package/templates/internal/rules//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/245/221/347/272/246/350/247/204/345/210/231.md +7 -9
  313. package/templates/internal/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +7 -9
  314. package/templates/internal/rules//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246/350/247/204/345/210/231.md +8 -10
  315. package/templates/internal/rules//345/267/245/344/275/234/346/265/201/345/257/274/350/210/252/345/245/221/347/272/246/350/247/204/345/210/231.md +8 -10
  316. package/templates/internal/rules//345/267/245/344/275/234/346/265/201/346/250/241/{346/235/277 → 347/211/210}/345/214/205/350/247/204/345/210/231.md +15 -15
  317. package/templates/internal/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +7 -9
  318. package/templates/internal/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +7 -9
  319. package/templates/internal/rules//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260/350/247/204/345/210/231.md +7 -9
  320. package/templates/internal/rules//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +7 -7
  321. package/templates/internal/rules//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203/350/247/204/345/210/231.md +7 -6
  322. package/templates/internal/rules//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206/350/247/204/345/210/231.md +8 -10
  323. package/templates/internal/rules//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246/350/247/204/345/210/231.md +7 -7
  324. package/templates/internal/rules//346/227/245/345/277/227/346/262/273/347/220/206/350/247/204/345/210/231.md +7 -8
  325. package/templates/internal/rules//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206/350/247/204/345/210/231.md +7 -8
  326. package/templates/internal/rules//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +7 -8
  327. package/templates/internal/rules//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226/350/247/204/345/210/231.md +8 -7
  328. package/templates/internal/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +9 -13
  329. package/templates/internal/rules//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/345/216/237/345/210/231.md +7 -9
  330. package/templates/internal/rules//346/250/241/347/211/210Frontmatter/350/247/204/350/214/203.md +281 -0
  331. package/templates/internal/rules//346/250/241/{346/235/277 → 347/211/210}/350/265/204/344/272/247/345/217/257/350/247/201/346/200/247/350/247/204/345/210/231.md +10 -9
  332. package/templates/internal/rules//346/263/250/345/206/214/350/241/250/345/237/272/347/241/200/350/256/276/346/226/275/350/247/204/345/210/231.md +10 -12
  333. package/templates/internal/rules//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247/350/247/204/345/210/231.md +14 -13
  334. package/templates/internal/rules//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246/350/247/204/345/210/231.md +12 -14
  335. package/templates/internal/rules//347/237/245/350/257/206/346/262/273/347/220/206/350/247/204/345/210/231.md +8 -10
  336. package/templates/internal/rules//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214/350/247/204/345/210/231.md +9 -11
  337. package/templates/internal/rules//347/237/245/350/257/206/350/265/204/344/272/247/346/262/273/347/220/206/350/247/204/345/210/231.md +10 -17
  338. package/templates/internal/rules//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206/350/247/204/345/210/231.md +10 -9
  339. package/templates/internal/rules//347/273/206/350/212/202/347/272/252/345/276/213/350/247/204/345/210/231.md +7 -6
  340. package/templates/internal/rules//350/204/221/346/232/264/344/270/216/346/226/271/346/241/210/346/216/242/347/264/242/350/247/204/345/210/231.md +7 -6
  341. package/templates/internal/rules//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250/350/247/204/345/210/231.md +8 -11
  342. package/templates/internal/rules//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205/350/247/204/345/210/231.md +7 -8
  343. package/templates/internal/rules//350/257/201/346/215/256/351/251/261/345/212/250/344/270/216/345/217/215/345/271/273/350/247/211/350/247/204/345/210/231.md +7 -7
  344. package/templates/internal/rules//350/267/250/345/271/263/345/217/260/350/267/257/345/276/204/345/256/211/345/205/250/350/247/204/345/210/231.md +7 -7
  345. package/templates/internal/rules//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246/350/247/204/345/210/231.md +8 -10
  346. package/templates/internal/rules//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +6 -5
  347. package/templates/internal/rules//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247/350/247/204/345/210/231.md +8 -10
  348. package/templates/internal/rules//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214/350/247/204/345/210/231.md +7 -6
  349. package/templates/internal/rules//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260/350/247/204/345/210/231.md +7 -9
  350. package/templates/internal/rules//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226/350/247/204/345/210/231.md +9 -11
  351. package/templates/internal/rules//351/252/214/346/224/266/346/250/241/{346/235/277 → 347/211/210}/350/276/223/345/207/272/345/245/221/347/272/246/350/247/204/345/210/231.md +14 -16
  352. package/templates/internal/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +7 -9
  353. package/templates/patterns/API/350/256/276/350/256/241/350/247/204/350/214/203.md +4 -3
  354. package/templates/patterns/Docker/351/203/250/347/275/262/350/247/204/350/214/203.md +4 -3
  355. package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +4 -3
  356. package/templates/patterns/N/345/212/2401/346/237/245/350/257/242/350/247/204/350/214/203.md +4 -3
  357. package/templates/patterns/React/345/210/227/350/241/250/350/241/250/346/240/274/350/247/204/350/214/203.md +5 -4
  358. package/templates/patterns/React/346/216/245/345/217/243/351/233/206/346/210/220/350/247/204/350/214/203.md +4 -3
  359. package/templates/patterns/React/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +4 -3
  360. package/templates/patterns/React/347/273/204/344/273/266/350/247/204/350/214/203.md +4 -3
  361. package/templates/patterns/React/350/241/250/345/215/225/350/247/204/350/214/203.md +4 -3
  362. package/templates/patterns/React/350/267/257/347/224/261/350/247/204/350/214/203.md +4 -3
  363. package/templates/patterns/SOLID/350/256/276/350/256/241/350/247/204/350/214/203.md +3 -3
  364. package/templates/patterns/Schema/345/205/274/345/256/271/350/247/204/350/214/203.md +4 -3
  365. package/templates/patterns/Vue/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +4 -3
  366. package/templates/patterns/Vue/347/273/204/344/273/266/350/247/204/350/214/203.md +4 -3
  367. package/templates/patterns/Vue/350/267/257/347/224/261/350/247/204/350/214/203.md +4 -3
  368. package/templates/patterns//344/272/213/344/273/266/351/251/261/345/212/250/350/247/204/350/214/203.md +4 -3
  369. package/templates/patterns//344/272/213/345/212/241/346/250/241/345/274/217/350/247/204/350/214/203.md +4 -3
  370. package/templates/patterns//344/274/230/351/233/205/345/201/234/346/234/272/350/247/204/350/214/203.md +4 -3
  371. package/templates/patterns//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +4 -3
  372. package/templates/patterns//345/210/206/351/241/265/346/237/245/350/257/242/350/247/204/350/214/203.md +4 -3
  373. package/templates/patterns//345/211/215/347/253/257/346/200/247/350/203/275/350/247/204/350/214/203.md +4 -3
  374. package/templates/patterns//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/350/247/204/350/214/203.md +3 -3
  375. package/templates/patterns//345/221/275/345/220/215/350/247/204/350/214/203.md +4 -3
  376. package/templates/patterns//345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +5 -4
  377. package/templates/patterns//345/242/236/345/210/240/346/224/271/346/237/245/350/247/204/350/214/203.md +4 -3
  378. package/templates/patterns//345/244/226/351/203/250/344/276/235/350/265/226/350/247/204/350/214/203.md +4 -3
  379. package/templates/patterns//345/245/221/347/272/246/345/205/274/345/256/271/350/247/204/350/214/203.md +4 -3
  380. package/templates/patterns//345/256/232/346/227/266/344/273/273/345/212/241/350/247/204/350/214/203.md +4 -3
  381. package/templates/patterns//345/256/236/346/227/266/346/216/250/351/200/201/350/247/204/350/214/203.md +4 -3
  382. package/templates/patterns//345/267/245/347/250/213/347/272/252/345/276/213.md +4 -3
  383. package/templates/patterns//345/271/266/345/217/221/346/216/247/345/210/266/350/247/204/350/214/203.md +4 -3
  384. package/templates/patterns//345/274/202/346/255/245/345/257/274/345/207/272/350/247/204/350/214/203.md +4 -3
  385. package/templates/patterns//346/216/245/345/217/243/345/245/221/347/272/246/350/247/204/350/214/203.md +4 -3
  386. package/templates/patterns//346/220/234/347/264/242/346/250/241/345/274/217/350/247/204/350/214/203.md +4 -3
  387. package/templates/patterns//346/225/260/346/215/256/351/232/220/347/247/201/350/247/204/350/214/203.md +4 -3
  388. package/templates/patterns//346/226/207/344/273/266/344/270/212/344/274/240/350/247/204/350/214/203.md +4 -3
  389. package/templates/patterns//346/227/240/351/232/234/347/242/215/350/247/204/350/214/203.md +4 -3
  390. package/templates/patterns//346/227/245/345/277/227/350/247/204/350/214/203.md +4 -3
  391. package/templates/patterns//346/235/203/351/231/220/350/256/244/350/257/201/350/247/204/350/214/203.md +4 -3
  392. package/templates/patterns//346/236/266/346/236/204/347/272/242/347/272/277.md +4 -3
  393. package/templates/patterns//346/265/213/350/257/225/350/264/250/351/207/217/350/247/204/350/214/203.md +4 -3
  394. package/templates/patterns//347/206/224/346/226/255/351/231/215/347/272/247/350/247/204/350/214/203.md +4 -3
  395. package/templates/patterns//347/212/266/346/200/201/346/265/201/350/275/254/350/247/204/350/214/203.md +4 -3
  396. package/templates/patterns//347/272/246/346/235/237/345/256/236/347/216/260/350/247/204/350/214/203.md +4 -3
  397. package/templates/patterns//347/274/223/345/255/230/347/255/226/347/225/245/350/247/204/350/214/203.md +4 -3
  398. package/templates/patterns//347/274/226/347/240/201/350/264/250/351/207/217/350/247/204/350/214/203.md +4 -3
  399. package/templates/patterns//347/274/272/351/231/267/347/256/241/347/220/206/350/247/204/350/214/203.md +5 -4
  400. package/templates/patterns//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +4 -3
  401. package/templates/patterns//350/276/223/345/205/245/346/240/241/351/252/214/350/247/204/350/214/203.md +4 -3
  402. package/templates/patterns//351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +4 -3
  403. package/templates/patterns//351/224/231/350/257/257/350/276/271/347/225/214/350/247/204/350/214/203.md +4 -3
  404. 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 +4 -3
  405. package/templates/procedures/OOD/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +7 -4
  406. package/templates/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +9 -9
  407. package/templates/procedures//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/350/257/201/346/265/201/347/250/213.md +8 -9
  408. package/templates/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +6 -7
  409. package/templates/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +6 -7
  410. package/templates/procedures//344/274/232/350/257/235/346/201/242/345/244/215/346/265/201/347/250/213.md +85 -0
  411. package/templates/procedures//345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201/345/257/274/350/210/252.md +6 -9
  412. package/templates/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +6 -7
  413. package/templates/procedures//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260/345/267/245/344/275/234/346/265/201.md +4 -4
  414. package/templates/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +7 -8
  415. package/templates/procedures//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md +9 -9
  416. package/templates/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +7 -8
  417. package/templates/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +9 -9
  418. package/templates/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +6 -8
  419. package/templates/procedures//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md +10 -10
  420. package/templates/procedures//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273/346/265/201/347/250/213.md +7 -7
  421. package/templates/procedures//346/234/254/345/234/260/346/265/217/350/247/210/345/231/250/351/252/214/346/224/266/345/267/245/344/275/234/346/265/201.md +6 -7
  422. package/templates/procedures//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/345/267/245/344/275/234/346/265/201.md +5 -5
  423. package/templates/procedures//346/236/266/346/236/204/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +8 -8
  424. package/templates/procedures//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md +9 -9
  425. package/templates/procedures//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201/345/267/245/344/275/234/346/265/201.md +6 -7
  426. package/templates/procedures//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230/346/265/201/347/250/213.md +8 -9
  427. package/templates/procedures//347/216/260/346/234/211/347/263/273/347/273/237/345/267/256/350/267/235/345/210/206/346/236/220/345/267/245/344/275/234/346/265/201.md +8 -7
  428. package/templates/procedures//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md +7 -8
  429. package/templates/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +9 -9
  430. package/templates/procedures//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205/346/265/201/347/250/213.md +9 -10
  431. package/templates/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +7 -7
  432. package/templates/procedures//350/256/276/350/256/241/344/272/247/347/211/251/347/224/237/346/210/220/344/270/216/345/244/215/351/252/214/345/267/245/344/275/234/346/265/201.md +4 -4
  433. package/templates/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +8 -7
  434. package/templates/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +7 -7
  435. package/templates/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +9 -9
  436. package/templates/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +6 -7
  437. package/templates/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +9 -9
  438. package/templates/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +6 -7
  439. package/templates/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +5 -6
  440. package/templates/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +7 -8
  441. package/templates/rules/existing-system//345/205/274/345/256/271/346/200/247/346/243/200/346/237/245/350/247/204/345/210/231.md +7 -3
  442. package/templates/rules/existing-system//350/200/246/345/220/210/346/243/200/346/265/213/350/247/204/345/210/231.md +7 -3
  443. package/templates/rules/existing-system//350/257/225/350/277/220/350/241/214/347/206/224/346/226/255/350/247/204/345/210/231.md +7 -3
  444. package/templates/rules/existing-system//351/230/262/345/276/241/346/200/247/347/274/226/347/240/201/350/247/204/345/210/231.md +7 -3
  445. package/templates/rules/existing-system//351/233/267/345/214/272/345/217/215/346/250/241/345/274/217/346/270/205/345/215/225.md +7 -3
  446. package/templates/rules/new-system//350/201/224/350/260/203/350/256/276/350/256/241/347/274/272/351/231/267/345/210/244/345/256/232/350/247/204/345/210/231.md +7 -3
  447. package/templates/rules/shared/SOLID/344/273/243/347/240/201/345/256/241/346/237/245/350/247/204/345/210/231.md +6 -4
  448. package/templates/rules/shared//344/270/200/350/207/264/346/200/247/346/240/241/351/252/214/350/247/204/345/210/231.md +6 -3
  449. package/templates/rules/shared//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +4 -6
  450. package/templates/rules/shared//344/273/243/347/240/201/345/217/257/347/273/264/346/212/244/346/200/247/344/270/216/345/217/257/350/247/202/346/265/213/346/200/247/345/256/241/346/237/245.md +5 -5
  451. package/templates/rules/shared//345/206/263/347/255/226/345/256/214/346/225/264/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +57 -0
  452. package/templates/rules/shared//345/217/221/345/270/203/345/220/216/345/256/241/346/237/245/350/247/204/345/210/231.md +58 -0
  453. package/templates/rules/shared//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/256/241/346/237/245/350/247/204/345/210/231.md +6 -4
  454. package/templates/rules/shared//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md +4 -6
  455. package/templates/rules/shared//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +4 -6
  456. package/templates/rules/shared//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +4 -6
  457. package/templates/rules/shared//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 +4 -6
  458. package/templates/rules/shared//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +4 -6
  459. package/templates/rules/shared//347/274/226/347/240/201/345/260/261/347/273/252/345/256/241/346/237/245/350/247/204/345/210/231.md +58 -0
  460. package/templates/rules/shared//350/201/224/350/260/203/351/252/214/350/257/201/346/270/205/345/215/225.md +6 -3
  461. package/templates/rules/shared//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +7 -4
  462. package/templates/rules/shared//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +4 -6
  463. package/templates/rules/shared//351/234/200/346/261/202/350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +64 -0
  464. package/templates/rules/shared//351/252/214/346/224/266/346/240/207/345/207/206/345/256/241/346/237/245/350/247/204/345/210/231.md +58 -0
  465. package/templates/scaffolds/react/ErrorBoundary.tsx.hbs +49 -0
  466. package/templates/scaffolds/react/Layout.tsx.hbs +20 -0
  467. package/templates/scaffolds/spring-boot/ControllerTest.java.hbs +36 -0
  468. package/templates/scaffolds/spring-boot/Mapper.xml.hbs +29 -0
  469. package/templates//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +147 -0
@@ -5,8 +5,14 @@ import { promises as fsp } from "node:fs";
5
5
  import crypto from "node:crypto";
6
6
  import { internalWarn } from "../../../engine/core/logger.js";
7
7
  import { isSameOrDescendantPath } from "../../../engine/core/path_scope_utils.js";
8
+ import { detectTaskStage } from "../../../engine/pipeline/task_stage_detector.js";
8
9
  import { verifyArtifact } from "../../../engine/contracts/artifact_contract_registry.js";
9
10
  import { verifyRouteDecisionContract } from "../../../engine/contracts/route_decision_contract_verifier.js";
11
+ import { scanArtifactForOmissions } from "../../../engine/contracts/omission_scanner.js";
12
+ import { detectLazyPatterns } from "../../../engine/contracts/lazy_pattern_detector.js";
13
+ import { verifyErrorHandlingPaths } from "../../../engine/contracts/error_path_verifier.js";
14
+ import { verifyBehaviorCoverage } from "../../../engine/contracts/behavior_coverage_verifier.js";
15
+ import { inferArtifactKindFromPath } from "../../../bin/commands/check_write.js";
10
16
  import { TOOL_DIAGNOSTIC_CODES } from "../../../engine/audit/diagnostic_registry.js";
11
17
  import { createToolRegistrar } from "../middleware.js";
12
18
  import { VerifySchema, RecordVerificationExecutionSchema, LearnSchema } from "../schemas.js";
@@ -14,15 +20,37 @@ import { lazyVerifier, lazyEvolver, lazyTraceability, lazyOodSolid, lazyBackendI
14
20
  import { errorMessage } from "../../../engine/core/helpers.js";
15
21
  export async function registerVerifyLearnTools(ctx) {
16
22
  const { registerSafeTool, loadRelevantAnchors } = createToolRegistrar(ctx);
17
- const { taskContext, config, projectPath, ioController } = ctx;
23
+ const { taskContext, config, projectPath, ioController, knowledgeIndex } = ctx;
18
24
  // ── sf_verify: 生成验证命令(构建、测试、验收检查) ──
19
25
  registerSafeTool("sf_verify", "根据变更文件生成验证命令(构建、测试、验收检查),由 Claude Code Bash 执行", VerifySchema, async (args) => {
20
- const ctx = await taskContext.load(args.task_id);
21
- if (!ctx) {
26
+ const loadedCtx = await taskContext.load(args.task_id);
27
+ if (!loadedCtx) {
22
28
  return {
23
29
  result: { error: "任务不存在" },
24
30
  };
25
31
  }
32
+ // Phase 9a: 知识感知 — 加载阶段匹配的审查规则、代码模式和检查清单
33
+ if (knowledgeIndex) {
34
+ const stage = detectTaskStage(loadedCtx);
35
+ const reviewRules = knowledgeIndex.query({
36
+ type: "review_rule",
37
+ stages: stage ? [stage] : undefined,
38
+ limit: 5,
39
+ });
40
+ const codePatterns = knowledgeIndex.query({
41
+ type: "pattern",
42
+ stages: stage ? [stage] : undefined,
43
+ limit: 3,
44
+ });
45
+ const checklists = knowledgeIndex.query({
46
+ type: "checklist",
47
+ stages: stage ? [stage] : undefined,
48
+ limit: 2,
49
+ });
50
+ loadedCtx.review_knowledge_hints = [...reviewRules, ...codePatterns, ...checklists]
51
+ .map(e => e.body ?? e.when).filter(Boolean);
52
+ await taskContext.save(loadedCtx);
53
+ }
26
54
  const implementationFiles = args.changed_files.filter((file) => /\.(?:ts|tsx|js|jsx|java|kt|cs|go|py)$/.test(file)
27
55
  && !/(?:^|\/)tests?\//.test(file));
28
56
  if (implementationFiles.length > 0) {
@@ -39,9 +67,9 @@ export async function registerVerifyLearnTools(ctx) {
39
67
  }
40
68
  }
41
69
  const traceabilityModule = await lazyTraceability();
42
- const traceVerification = traceabilityModule.verifyChangedFilesAgainstDesignTraceability(projectPath, implementationFiles, ctx);
70
+ const traceVerification = traceabilityModule.verifyChangedFilesAgainstDesignTraceability(projectPath, implementationFiles, loadedCtx);
43
71
  if (!traceVerification.passed) {
44
- ctx.traceability_binding = {
72
+ loadedCtx.traceability_binding = {
45
73
  requirement_ids: traceVerification.binding_ids.filter((id) => id.startsWith("REQ-")),
46
74
  prototype_ids: traceVerification.binding_ids.filter((id) => id.startsWith("PROTO-")),
47
75
  architecture_ids: traceVerification.binding_ids.filter((id) => id.startsWith("ARCH-")),
@@ -52,7 +80,7 @@ export async function registerVerifyLearnTools(ctx) {
52
80
  status: "missing",
53
81
  findings: traceVerification.findings.map((finding) => `${finding.code}: ${finding.message_zh}`),
54
82
  };
55
- await taskContext.save(ctx);
83
+ await taskContext.save(loadedCtx);
56
84
  return {
57
85
  result: {
58
86
  error: "编码变更未绑定需求/原型/设计/切片/验收追踪链路,需修复后重验",
@@ -66,10 +94,10 @@ export async function registerVerifyLearnTools(ctx) {
66
94
  const oodModule = await lazyOodSolid();
67
95
  const oodGate = oodModule.evaluateOodDesignGate({
68
96
  task_id: args.task_id,
69
- intent: ctx.intent,
70
- route: ctx.expansion?.workflow_trace?.route,
97
+ intent: loadedCtx.intent,
98
+ route: loadedCtx.expansion?.workflow_trace?.route,
71
99
  changed_files: implementationFiles,
72
- summary: ctx.ood_solid_summary,
100
+ summary: loadedCtx.ood_solid_summary,
73
101
  });
74
102
  if (!oodGate.allowed) {
75
103
  return {
@@ -85,10 +113,10 @@ export async function registerVerifyLearnTools(ctx) {
85
113
  const backendModule = await lazyBackendImplementation();
86
114
  const backendGate = backendModule.evaluateBackendImplementationGate({
87
115
  task_id: args.task_id,
88
- intent: ctx.intent,
89
- route: ctx.expansion?.workflow_trace?.route,
116
+ intent: loadedCtx.intent,
117
+ route: loadedCtx.expansion?.workflow_trace?.route,
90
118
  changed_files: implementationFiles,
91
- work_package: ctx.backend_implementation_work_package,
119
+ work_package: loadedCtx.backend_implementation_work_package,
92
120
  });
93
121
  if (!backendGate.allowed) {
94
122
  return {
@@ -122,9 +150,9 @@ export async function registerVerifyLearnTools(ctx) {
122
150
  sourceFiles: implementationContents,
123
151
  }));
124
152
  }
125
- ctx.ood_solid_findings = solidFindings;
126
- ctx.backend_implementation_findings = backendFindings;
127
- await taskContext.save(ctx);
153
+ loadedCtx.ood_solid_findings = solidFindings;
154
+ loadedCtx.backend_implementation_findings = backendFindings;
155
+ await taskContext.save(loadedCtx);
128
156
  if (oodModule.hasBlockingSolidFindings(solidFindings)) {
129
157
  return {
130
158
  result: {
@@ -150,10 +178,10 @@ export async function registerVerifyLearnTools(ctx) {
150
178
  const obsFindings = codeObsModule.verifyChangedFilesObservability({
151
179
  changed_files: implementationFiles,
152
180
  file_contents: implementationContents,
153
- intent: ctx.intent,
181
+ intent: loadedCtx.intent,
154
182
  });
155
- ctx.code_observability_findings = obsFindings;
156
- await taskContext.save(ctx);
183
+ loadedCtx.code_observability_findings = obsFindings;
184
+ await taskContext.save(loadedCtx);
157
185
  if (codeObsModule.hasBlockingObservabilityFindings(obsFindings)) {
158
186
  return {
159
187
  result: {
@@ -166,20 +194,20 @@ export async function registerVerifyLearnTools(ctx) {
166
194
  }
167
195
  }
168
196
  // 问题六十二: 设计产物验证必须读取用户项目真实文件,不接受占位合同自证通过。
169
- const verifyWorkflowIntent = ctx.route_decision?.workflow_intent ?? ctx.classification?.route_decision?.workflow_intent;
197
+ const verifyWorkflowIntent = loadedCtx.route_decision?.workflow_intent ?? loadedCtx.classification?.route_decision?.workflow_intent;
170
198
  const touchesDesignArtifacts = args.changed_files.some((file) => /docs\/architecture\/|docs\/api\/|openapi|db\/(?:migrations|schema)|架构设计|数据库设计|API接口规格/i.test(file));
171
199
  if (verifyWorkflowIntent === "architecture_design" || touchesDesignArtifacts) {
172
200
  const designModule = await lazyDesignArtifactPack();
173
- const designPack = ctx.design_artifact_pack ?? designModule.createDesignArtifactPack(args.task_id);
201
+ const designPack = loadedCtx.design_artifact_pack ?? designModule.createDesignArtifactPack(args.task_id);
174
202
  const designVerification = designModule.verifyDesignArtifactPack(projectPath, designPack);
175
- ctx.design_artifact_pack = {
203
+ loadedCtx.design_artifact_pack = {
176
204
  ...designPack,
177
205
  status: designVerification.status,
178
206
  findings: designVerification.findings,
179
207
  baseline_hashes: designVerification.hashes,
180
208
  verified_at: new Date().toISOString(),
181
209
  };
182
- await taskContext.save(ctx);
210
+ await taskContext.save(loadedCtx);
183
211
  if (!designVerification.passed) {
184
212
  return {
185
213
  result: {
@@ -196,12 +224,12 @@ export async function registerVerifyLearnTools(ctx) {
196
224
  // 问题六十三: 模板契约验证 — 按文件逐一匹配契约并校验
197
225
  const sacModule = await lazyStandardAssetContract();
198
226
  const formalArtifactContract = sacModule.matchTemplateContract({
199
- output_artifact_kind: ctx.artifact_output?.kind,
227
+ output_artifact_kind: loadedCtx.artifact_output?.kind,
200
228
  workflow_intent: verifyWorkflowIntent,
201
- route_decision: ctx.route_decision?.workflow_intent,
229
+ route_decision: loadedCtx.route_decision?.workflow_intent,
202
230
  });
203
231
  if (formalArtifactContract || !sacModule.isLowRiskTask({
204
- route_decision: verifyWorkflowIntent ?? ctx.classification?.route_decision?.workflow_intent,
232
+ route_decision: verifyWorkflowIntent ?? loadedCtx.classification?.route_decision?.workflow_intent,
205
233
  workflow_intent: verifyWorkflowIntent,
206
234
  changed_files: args.changed_files,
207
235
  })) {
@@ -211,9 +239,9 @@ export async function registerVerifyLearnTools(ctx) {
211
239
  continue;
212
240
  // 按实际文件路径匹配契约(不再使用 changed_files[0] 的契约校验全部文件)
213
241
  const perFileContract = sacModule.matchTemplateContract({
214
- output_artifact_kind: ctx.artifact_output?.kind,
242
+ output_artifact_kind: loadedCtx.artifact_output?.kind,
215
243
  workflow_intent: verifyWorkflowIntent,
216
- route_decision: ctx.route_decision?.workflow_intent,
244
+ route_decision: loadedCtx.route_decision?.workflow_intent,
217
245
  file_path: changedFile,
218
246
  });
219
247
  if (!perFileContract)
@@ -221,14 +249,14 @@ export async function registerVerifyLearnTools(ctx) {
221
249
  const content = await fsp.readFile(absFile, "utf-8");
222
250
  // 草稿阻断下游消费 — 不再静默跳过
223
251
  if (sacModule.isDraftDocument(content)) {
224
- ctx.repair_reverify_directive = {
252
+ loadedCtx.repair_reverify_directive = {
225
253
  contract_id: perFileContract.asset_id,
226
254
  file_path: changedFile,
227
255
  status: "draft_blocked",
228
256
  repair_suggestion: `文件 ${changedFile} 仍为草稿状态,草稿不可用于实现。请完善内容后重新验证。`,
229
257
  blocked: true,
230
258
  };
231
- await taskContext.save(ctx);
259
+ await taskContext.save(loadedCtx);
232
260
  return {
233
261
  result: {
234
262
  error: `草稿文件 ${changedFile} 不可用于实现,需完善后重新验证`,
@@ -242,14 +270,14 @@ export async function registerVerifyLearnTools(ctx) {
242
270
  const contractResult = sacModule.verifyOutputAgainstContract(perFileContract, content, projectPath);
243
271
  if (!contractResult.passed) {
244
272
  const repairDirective = sacModule.createRepairReverifyDirective(perFileContract, contractResult);
245
- ctx.repair_reverify_directive = {
273
+ loadedCtx.repair_reverify_directive = {
246
274
  contract_id: perFileContract.asset_id,
247
275
  file_path: changedFile,
248
276
  status: "repair_required",
249
277
  repair_suggestion: repairDirective.repair_suggestion,
250
278
  blocked: true,
251
279
  };
252
- await taskContext.save(ctx);
280
+ await taskContext.save(loadedCtx);
253
281
  return {
254
282
  result: {
255
283
  error: `文件 ${changedFile} 模板契约验证未通过,进入修复重验闭环`,
@@ -265,20 +293,143 @@ export async function registerVerifyLearnTools(ctx) {
265
293
  }
266
294
  }
267
295
  // 全部契约验证通过 — 清零修复重验指令
268
- if (ctx.repair_reverify_directive) {
269
- delete ctx.repair_reverify_directive;
270
- await taskContext.save(ctx);
296
+ if (loadedCtx.repair_reverify_directive) {
297
+ delete loadedCtx.repair_reverify_directive;
298
+ await taskContext.save(loadedCtx);
299
+ }
300
+ }
301
+ // ── 遗漏扫描:检测空洞章节、占位符、空表格(防 AI 偷懒) ──
302
+ const omissionScannedFiles = [];
303
+ const allOmissionFindings = [];
304
+ for (const changedFile of args.changed_files) {
305
+ if (!/\.md$/.test(changedFile))
306
+ continue;
307
+ const kind = inferArtifactKindFromPath(changedFile);
308
+ if (!kind)
309
+ continue;
310
+ const absFile = path.join(projectPath, changedFile);
311
+ if (!await fsp.access(absFile).then(() => true, () => false))
312
+ continue;
313
+ const content = await fsp.readFile(absFile, "utf-8");
314
+ if (content.length < 100)
315
+ continue; // 初始写入跳过
316
+ const omissionResult = scanArtifactForOmissions(kind, content, {
317
+ generate_adversarial_prompt: true,
318
+ });
319
+ if (omissionResult.findings.length > 0) {
320
+ omissionScannedFiles.push(changedFile);
321
+ allOmissionFindings.push({ file: changedFile, findings: omissionResult.findings });
271
322
  }
323
+ if (!omissionResult.passed) {
324
+ const hardFails = omissionResult.findings.filter((f) => f.severity === "hard_fail");
325
+ const reasons = hardFails.map((f) => f.message).join(";");
326
+ await taskContext.save(loadedCtx);
327
+ return {
328
+ result: {
329
+ error: `产物遗漏扫描失败(${changedFile}):${reasons}`,
330
+ status: "blocked",
331
+ diagnostic_code: "SF-OMISSION-SCAN-FAILED",
332
+ recovery: `补齐以下缺失内容后重新执行 sf_verify:${reasons}`,
333
+ },
334
+ };
335
+ }
336
+ }
337
+ // 将遗漏扫描结果写入 VerifyResult(通过 loadedCtx 传递到最终结果组装)
338
+ if (omissionScannedFiles.length > 0) {
339
+ const totalFindings = allOmissionFindings.reduce((s, o) => s + o.findings.length, 0);
340
+ const hardFailCount = allOmissionFindings.reduce((s, o) => s + o.findings.filter((f) => f.severity === "hard_fail").length, 0);
341
+ // 生成对抗性 prompt(取第一个有 findings 的文件的 prompt)
342
+ const firstResultWithPrompt = allOmissionFindings[0];
343
+ loadedCtx.omission_scan_result = {
344
+ scanned_files: omissionScannedFiles,
345
+ total_findings: totalFindings,
346
+ hard_fail_count: hardFailCount,
347
+ summary: hardFailCount > 0
348
+ ? `❌ 遗漏扫描发现 ${totalFindings} 项问题(${hardFailCount} 个阻塞)`
349
+ : `⚠️ 遗漏扫描发现 ${totalFindings} 个警告`,
350
+ adversarial_prompt: firstResultWithPrompt?.findings.length
351
+ ? `对文件 ${firstResultWithPrompt.file} 执行深度遗漏审计`
352
+ : undefined,
353
+ };
354
+ await taskContext.save(loadedCtx);
355
+ }
356
+ // ── 步骤 7a: 偷懒模式检测(.ts 文件) ──
357
+ let lazyPatternHardFails = 0;
358
+ let lazyPatternWarnings = 0;
359
+ for (const changedFile of args.changed_files) {
360
+ if (!/\.ts$/.test(changedFile) || /\.d\.ts$/.test(changedFile))
361
+ continue;
362
+ const absFile = path.join(projectPath, changedFile);
363
+ if (!await fsp.access(absFile).then(() => true, () => false))
364
+ continue;
365
+ const content = await fsp.readFile(absFile, "utf-8");
366
+ const findings = detectLazyPatterns(content, changedFile);
367
+ const hfs = findings.filter((f) => f.severity === "hard_fail");
368
+ const wfs = findings.filter((f) => f.severity === "warning");
369
+ lazyPatternHardFails += hfs.length;
370
+ lazyPatternWarnings += wfs.length;
371
+ if (hfs.length > 0) {
372
+ const reasons = hfs.map((f) => f.message).join(";");
373
+ await taskContext.save(loadedCtx);
374
+ return {
375
+ result: {
376
+ error: `代码偷懒模式检测失败(${changedFile}):${reasons}`,
377
+ status: "blocked",
378
+ diagnostic_code: "SF-LAZY-PATTERN-DETECTED",
379
+ recovery: `修复以下代码质量问题后重新执行 sf_verify:${reasons}`,
380
+ },
381
+ };
382
+ }
383
+ }
384
+ // ── 步骤 7b: 错误处理路径验证(.ts 文件) ──
385
+ let errorPathHardFails = 0;
386
+ for (const changedFile of args.changed_files) {
387
+ if (!/\.ts$/.test(changedFile) || /\.d\.ts$/.test(changedFile))
388
+ continue;
389
+ const absFile = path.join(projectPath, changedFile);
390
+ if (!await fsp.access(absFile).then(() => true, () => false))
391
+ continue;
392
+ const content = await fsp.readFile(absFile, "utf-8");
393
+ const findings = verifyErrorHandlingPaths(content, changedFile);
394
+ const hfs = findings.filter((f) => f.severity === "hard_fail");
395
+ errorPathHardFails += hfs.length;
396
+ if (hfs.length > 0) {
397
+ const reasons = hfs.map((f) => f.message).join(";");
398
+ await taskContext.save(loadedCtx);
399
+ return {
400
+ result: {
401
+ error: `错误处理路径验证失败(${changedFile}):${reasons}`,
402
+ status: "blocked",
403
+ diagnostic_code: "SF-ERROR-PATH-VERIFICATION-FAILED",
404
+ recovery: `修复以下错误处理问题后重新执行 sf_verify:${reasons}`,
405
+ },
406
+ };
407
+ }
408
+ }
409
+ // ── 步骤 7c: 行为覆盖率检查 ──
410
+ const coverageFindings = verifyBehaviorCoverage(args.changed_files, projectPath);
411
+ const coverageWarnings = coverageFindings.length;
412
+ // ── 汇总 code_quality 结果到 loadedCtx ──
413
+ if (lazyPatternHardFails > 0 || lazyPatternWarnings > 0 || errorPathHardFails > 0 || coverageWarnings > 0) {
414
+ loadedCtx.code_quality_result = {
415
+ lazy_pattern_findings: lazyPatternHardFails + lazyPatternWarnings,
416
+ error_path_findings: errorPathHardFails,
417
+ test_quality_hard_fails: 0,
418
+ mutation_hard_fails: 0,
419
+ behavior_coverage_warnings: coverageWarnings,
420
+ summary: `偷懒模式: ${lazyPatternHardFails} 阻塞/${lazyPatternWarnings} 警告;错误路径: ${errorPathHardFails};行为覆盖: ${coverageWarnings} 警告`,
421
+ };
422
+ await taskContext.save(loadedCtx);
272
423
  }
273
424
  // RouteDecision 合同验证 — 无条件,在状态预检之前
274
- const rdFromCtx = ctx.route_decision ?? ctx.classification?.route_decision ?? null;
275
- const wtFromCtx = ctx.workflow_trace ?? ctx.expansion?.workflow_trace ?? null;
425
+ const rdFromCtx = loadedCtx.route_decision ?? loadedCtx.classification?.route_decision ?? null;
426
+ const wtFromCtx = loadedCtx.workflow_trace ?? loadedCtx.expansion?.workflow_trace ?? null;
276
427
  const rdContractInput = {
277
428
  route_decision: rdFromCtx,
278
429
  workflow_trace: wtFromCtx,
279
- expansion_input_materials: ctx.expansion?.input_materials?.map((m) => ({ path_or_ref: m.path_or_ref })),
280
- expansion_output_artifact: ctx.artifact_output ? { kind: ctx.artifact_output.kind, path: ctx.artifact_output.path } : null,
281
- expansion_constraints: ctx.expansion?.contract?.constraints,
430
+ expansion_input_materials: loadedCtx.expansion?.input_materials?.map((m) => ({ path_or_ref: m.path_or_ref })),
431
+ expansion_output_artifact: loadedCtx.artifact_output ? { kind: loadedCtx.artifact_output.kind, path: loadedCtx.artifact_output.path } : null,
432
+ expansion_constraints: loadedCtx.expansion?.contract?.constraints,
282
433
  };
283
434
  const rdFindings = verifyRouteDecisionContract(rdContractInput);
284
435
  const hasHardFail = rdFindings.some(f => f.severity === "hard_fail" || f.severity === "blocked");
@@ -292,20 +443,20 @@ export async function registerVerifyLearnTools(ctx) {
292
443
  };
293
444
  }
294
445
  const VALID_VERIFY_STATES = ["executing", "retrying"];
295
- if (!VALID_VERIFY_STATES.includes(ctx.status)) {
446
+ if (!VALID_VERIFY_STATES.includes(loadedCtx.status)) {
296
447
  return {
297
- result: { error: `任务状态 ${ctx.status} 不可验证,需要 executing 或 retrying`, status: ctx.status },
448
+ result: { error: `任务状态 ${loadedCtx.status} 不可验证,需要 executing 或 retrying`, status: loadedCtx.status },
298
449
  };
299
450
  }
300
- const acceptanceItems = ctx.expansion
301
- ? [...ctx.expansion.acceptance.automated, ...ctx.expansion.acceptance.manual]
451
+ const acceptanceItems = loadedCtx.expansion
452
+ ? [...loadedCtx.expansion.acceptance.automated, ...loadedCtx.expansion.acceptance.manual]
302
453
  : [];
303
454
  // H4: 工作区完整性检查 — advisory 模式,仅警告不阻断
304
455
  const integrity = await ioController.verify();
305
456
  const h4Warning = !integrity.clean
306
457
  ? { warning: `H4 advisory: ${integrity.message}`, dirty_files: integrity.dirty_files }
307
458
  : undefined;
308
- const verifyResult = (await lazyVerifier()).generateVerifyCommands(config, args.changed_files, acceptanceItems, ctx?.expansion?.workflow_trace?.route);
459
+ const verifyResult = (await lazyVerifier()).generateVerifyCommands(config, args.changed_files, acceptanceItems, loadedCtx?.expansion?.workflow_trace?.route);
309
460
  verifyResult.task_id = args.task_id;
310
461
  // 创建 VerificationPlan(plan_only,非执行结果)
311
462
  const vcModule = await lazyVerificationContract();
@@ -327,9 +478,9 @@ export async function registerVerifyLearnTools(ctx) {
327
478
  // 产物生命周期检查: draft → verified 需要 ArtifactVerificationResult.passed
328
479
  let artifactVerificationResult;
329
480
  let artifactFileMissing = false;
330
- if (ctx.artifact_output && ctx.artifact_output.status === "draft") {
481
+ if (loadedCtx.artifact_output && loadedCtx.artifact_output.status === "draft") {
331
482
  // 验证前解析产物文件并计算 hash
332
- const artifact = ctx.artifact_output;
483
+ const artifact = loadedCtx.artifact_output;
333
484
  const fullPath = path.join(projectPath, artifact.path);
334
485
  if (await fsp.access(fullPath).then(() => true, () => false)) {
335
486
  const fileContent = await fsp.readFile(fullPath);
@@ -357,9 +508,9 @@ export async function registerVerifyLearnTools(ctx) {
357
508
  // 写入护栏 — 检查变更文件是否在允许范围
358
509
  if (args.changed_files.length > 0) {
359
510
  const guardModule = await lazyEnforcementGuard();
360
- const scopePaths = ctx.expansion?.scope?.allowed_paths ?? [];
511
+ const scopePaths = loadedCtx.expansion?.scope?.allowed_paths ?? [];
361
512
  for (const cf of args.changed_files) {
362
- const writeFindings = guardModule.evaluateWriteGuard(ctx.classification?.route_decision?.route ?? "code_execution", cf, scopePaths, "command_execution_contract");
513
+ const writeFindings = guardModule.evaluateWriteGuard(loadedCtx.classification?.route_decision?.route ?? "code_execution", cf, scopePaths, "command_execution_contract");
363
514
  if (writeFindings.some((f) => f.blocked)) {
364
515
  return {
365
516
  result: {
@@ -373,7 +524,7 @@ export async function registerVerifyLearnTools(ctx) {
373
524
  }
374
525
  await taskContext.setExecution(args.task_id, args.changed_files);
375
526
  // 无实际文件变更但存在产物时标记 no_change_artifact
376
- if (args.changed_files.length === 0 && ctx.artifact_output) {
527
+ if (args.changed_files.length === 0 && loadedCtx.artifact_output) {
377
528
  const execCtx = await taskContext.load(args.task_id);
378
529
  if (execCtx?.execution) {
379
530
  execCtx.execution.no_change_artifact = true;
@@ -381,15 +532,15 @@ export async function registerVerifyLearnTools(ctx) {
381
532
  }
382
533
  }
383
534
  // 生成验证命令成功后再转换状态,避免操作失败导致任务卡在 verifying
384
- if (ctx.status === "retrying") {
535
+ if (loadedCtx.status === "retrying") {
385
536
  await taskContext.updateStatus(args.task_id, "executing");
386
537
  }
387
538
  await taskContext.updateStatus(args.task_id, "verifying");
388
539
  // 存储验证结果
389
540
  await taskContext.setVerification(args.task_id, verifyResult);
390
541
  // 产物生命周期转换: draft → verified 仅在 ArtifactVerificationResult.passed 时
391
- if (ctx.artifact_output && ctx.artifact_output.status === "draft" && artifactVerificationResult?.passed) {
392
- const evidenceRef = `verification:${ctx.task_id}:checks=${artifactVerificationResult.checks.length}:summary=${artifactVerificationResult.summary.slice(0, 60)}`;
542
+ if (loadedCtx.artifact_output && loadedCtx.artifact_output.status === "draft" && artifactVerificationResult?.passed) {
543
+ const evidenceRef = `verification:${loadedCtx.task_id}:checks=${artifactVerificationResult.checks.length}:summary=${artifactVerificationResult.summary.slice(0, 60)}`;
393
544
  try {
394
545
  await taskContext.updateArtifactStatus(args.task_id, {
395
546
  status: "verified",
@@ -408,9 +559,9 @@ export async function registerVerifyLearnTools(ctx) {
408
559
  verifyExtras.h4_advisory = h4Warning;
409
560
  if (verifyAnchors && verifyAnchors.length > 0)
410
561
  verifyExtras.cognitive_anchors = verifyAnchors;
411
- if (ctx.artifact_output && ctx.artifact_output.status === "draft" && artifactVerificationResult && !artifactVerificationResult.passed) {
562
+ if (loadedCtx.artifact_output && loadedCtx.artifact_output.status === "draft" && artifactVerificationResult && !artifactVerificationResult.passed) {
412
563
  const reason = artifactFileMissing
413
- ? `产物文件不存在 (${ctx.artifact_output.path}),无法计算 hash`
564
+ ? `产物文件不存在 (${loadedCtx.artifact_output.path}),无法计算 hash`
414
565
  : artifactVerificationResult.summary;
415
566
  verifyExtras.artifact_warning = `产物验收检查未通过: ${reason}`;
416
567
  verifyExtras.artifact_verification = artifactVerificationResult;
@@ -424,12 +575,12 @@ export async function registerVerifyLearnTools(ctx) {
424
575
  // 问题六十:验证结论必须经过 FactClaimVerifier,不得把计划当结果
425
576
  {
426
577
  const { createEvidenceGroundingSystem, assessTaskRisk } = await import("../../../engine/contracts/evidence_grounding_contract.js");
427
- const _vRoute = ctx.route_decision?.route ?? ctx.classification?.route_decision?.route;
428
- const _vRisk = assessTaskRisk(ctx.classification?.task_type, _vRoute, ctx.intent);
578
+ const _vRoute = loadedCtx.route_decision?.route ?? loadedCtx.classification?.route_decision?.route;
579
+ const _vRisk = assessTaskRisk(loadedCtx.classification?.task_type, _vRoute, loadedCtx.intent);
429
580
  if (_vRisk !== "low") {
430
581
  const _veg = createEvidenceGroundingSystem();
431
582
  // 只有真实执行结果才能作为 validation_result 证据
432
- const _hasRealPassed = ctx.verification_result && ctx.verification_result.status === "passed";
583
+ const _hasRealPassed = loadedCtx.verification_result && loadedCtx.verification_result.status === "passed";
433
584
  if (_hasRealPassed) {
434
585
  _veg.registry.register({
435
586
  source_type: "validation_result",
@@ -437,7 +588,7 @@ export async function registerVerifyLearnTools(ctx) {
437
588
  freshness: "current",
438
589
  permission: "allowed",
439
590
  scope: "verification",
440
- description: `验证状态: ${ctx.verification_result?.status ?? "unknown"}`,
591
+ description: `验证状态: ${loadedCtx.verification_result?.status ?? "unknown"}`,
441
592
  source_ref: `verification:${args.task_id}`,
442
593
  });
443
594
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verify_learn.js","sourceRoot":"","sources":["../../../../src/server/tools/tool_groups/verify_learn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify_learn.js","sourceRoot":"","sources":["../../../../src/server/tools/tool_groups/verify_learn.ts"],"names":[],"mappings":"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"}
@@ -290,6 +290,8 @@ export interface TestQualityCheck {
290
290
  passed: boolean;
291
291
  /** 详细说明 */
292
292
  detail: string;
293
+ /** 严重级别(防 AI 偷懒门禁硬化):passed 时无 severity,未通过时为 warning */
294
+ severity?: "warning";
293
295
  }
294
296
  /** 测试质量报告 */
295
297
  export interface TestQualityReport {
@@ -301,6 +303,9 @@ export interface TestQualityReport {
301
303
  checks: TestQualityCheck[];
302
304
  /** 改进建议 */
303
305
  suggestions: string[];
306
+ /** 代码质量门禁汇总(防 AI 偷懒):warning 级别的未通过检查数 */
307
+ hard_fail_count?: number;
308
+ warning_count?: number;
304
309
  }
305
310
  /** 漏洞条目 */
306
311
  export interface VulnerabilityItem {