soloforge 1.1.33 → 1.1.35

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 (484) 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/config/config_auto_repair.d.ts.map +1 -1
  26. package/dist/engine/config/config_auto_repair.js +3 -1
  27. package/dist/engine/config/config_auto_repair.js.map +1 -1
  28. package/dist/engine/config/zero_config_init.d.ts.map +1 -1
  29. package/dist/engine/config/zero_config_init.js +42 -2
  30. package/dist/engine/config/zero_config_init.js.map +1 -1
  31. package/dist/engine/contracts/artifact_process_rules.d.ts +46 -0
  32. package/dist/engine/contracts/artifact_process_rules.d.ts.map +1 -0
  33. package/dist/engine/contracts/artifact_process_rules.js +396 -0
  34. package/dist/engine/contracts/artifact_process_rules.js.map +1 -0
  35. package/dist/engine/contracts/artifact_schema_registry.d.ts +137 -0
  36. package/dist/engine/contracts/artifact_schema_registry.d.ts.map +1 -0
  37. package/dist/engine/contracts/artifact_schema_registry.js +773 -0
  38. package/dist/engine/contracts/artifact_schema_registry.js.map +1 -0
  39. package/dist/engine/contracts/behavior_coverage_verifier.d.ts +35 -0
  40. package/dist/engine/contracts/behavior_coverage_verifier.d.ts.map +1 -0
  41. package/dist/engine/contracts/behavior_coverage_verifier.js +220 -0
  42. package/dist/engine/contracts/behavior_coverage_verifier.js.map +1 -0
  43. package/dist/engine/contracts/capability_registry.d.ts.map +1 -1
  44. package/dist/engine/contracts/capability_registry.js +74 -0
  45. package/dist/engine/contracts/capability_registry.js.map +1 -1
  46. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js +2 -2
  47. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.d.ts.map +1 -1
  48. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js +61 -2
  49. package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js.map +1 -1
  50. package/dist/engine/contracts/error_path_verifier.d.ts +36 -0
  51. package/dist/engine/contracts/error_path_verifier.d.ts.map +1 -0
  52. package/dist/engine/contracts/error_path_verifier.js +131 -0
  53. package/dist/engine/contracts/error_path_verifier.js.map +1 -0
  54. package/dist/engine/contracts/lazy_pattern_detector.d.ts +43 -0
  55. package/dist/engine/contracts/lazy_pattern_detector.d.ts.map +1 -0
  56. package/dist/engine/contracts/lazy_pattern_detector.js +164 -0
  57. package/dist/engine/contracts/lazy_pattern_detector.js.map +1 -0
  58. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.d.ts.map +1 -1
  59. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js +29 -0
  60. package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js.map +1 -1
  61. package/dist/engine/contracts/omission_scanner.d.ts +83 -0
  62. package/dist/engine/contracts/omission_scanner.d.ts.map +1 -0
  63. package/dist/engine/contracts/omission_scanner.js +191 -0
  64. package/dist/engine/contracts/omission_scanner.js.map +1 -0
  65. package/dist/engine/contracts/template_schema_loader.d.ts +79 -0
  66. package/dist/engine/contracts/template_schema_loader.d.ts.map +1 -0
  67. package/dist/engine/contracts/template_schema_loader.js +301 -0
  68. package/dist/engine/contracts/template_schema_loader.js.map +1 -0
  69. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts +21 -4
  70. package/dist/engine/knowledge/knowledge_injection_boundary.d.ts.map +1 -1
  71. package/dist/engine/knowledge/knowledge_injection_boundary.js +96 -22
  72. package/dist/engine/knowledge/knowledge_injection_boundary.js.map +1 -1
  73. package/dist/engine/pipeline/intent_expander/expand.d.ts.map +1 -1
  74. package/dist/engine/pipeline/intent_expander/expand.js +2 -2
  75. package/dist/engine/pipeline/intent_expander/expand.js.map +1 -1
  76. package/dist/engine/pipeline/intent_expander/knowledge.d.ts +2 -1
  77. package/dist/engine/pipeline/intent_expander/knowledge.d.ts.map +1 -1
  78. package/dist/engine/pipeline/intent_expander/knowledge.js +34 -1
  79. package/dist/engine/pipeline/intent_expander/knowledge.js.map +1 -1
  80. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts +2 -1
  81. package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts.map +1 -1
  82. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js +16 -5
  83. package/dist/engine/pipeline/intent_expander/knowledge_resolution.js.map +1 -1
  84. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts +6 -2
  85. package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts.map +1 -1
  86. package/dist/engine/pipeline/intent_expander/scope_acceptance.js +6 -1
  87. package/dist/engine/pipeline/intent_expander/scope_acceptance.js.map +1 -1
  88. package/dist/engine/pipeline/intent_expander/templates.d.ts.map +1 -1
  89. package/dist/engine/pipeline/intent_expander/templates.js +99 -0
  90. package/dist/engine/pipeline/intent_expander/templates.js.map +1 -1
  91. package/dist/engine/pipeline/intent_expander/types.d.ts +3 -0
  92. package/dist/engine/pipeline/intent_expander/types.d.ts.map +1 -1
  93. package/dist/engine/pipeline/intent_router.d.ts +3 -0
  94. package/dist/engine/pipeline/intent_router.d.ts.map +1 -1
  95. package/dist/engine/pipeline/intent_router.js +34 -6
  96. package/dist/engine/pipeline/intent_router.js.map +1 -1
  97. package/dist/engine/pipeline/intent_signal_extractor.js +11 -11
  98. package/dist/engine/pipeline/intent_signal_extractor.js.map +1 -1
  99. package/dist/engine/pipeline/stage_prechecks.d.ts +83 -0
  100. package/dist/engine/pipeline/stage_prechecks.d.ts.map +1 -0
  101. package/dist/engine/pipeline/stage_prechecks.js +199 -0
  102. package/dist/engine/pipeline/stage_prechecks.js.map +1 -0
  103. package/dist/engine/pipeline/task_context/manager_setters.d.ts.map +1 -1
  104. package/dist/engine/pipeline/task_context/manager_setters.js +5 -2
  105. package/dist/engine/pipeline/task_context/manager_setters.js.map +1 -1
  106. package/dist/engine/pipeline/task_planner.d.ts +2 -0
  107. package/dist/engine/pipeline/task_planner.d.ts.map +1 -1
  108. package/dist/engine/pipeline/task_planner.js +4 -0
  109. package/dist/engine/pipeline/task_planner.js.map +1 -1
  110. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js +3 -3
  111. package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js.map +1 -1
  112. package/dist/engine/release/release_readiness_gate.d.ts +4 -1
  113. package/dist/engine/release/release_readiness_gate.d.ts.map +1 -1
  114. package/dist/engine/release/release_readiness_gate.js +57 -1
  115. package/dist/engine/release/release_readiness_gate.js.map +1 -1
  116. package/dist/engine/templates/asset_manifest.d.ts.map +1 -1
  117. package/dist/engine/templates/asset_manifest.js +107 -91
  118. package/dist/engine/templates/asset_manifest.js.map +1 -1
  119. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.d.ts.map +1 -1
  120. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js +30 -14
  121. package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js.map +1 -1
  122. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js +21 -21
  123. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js.map +1 -1
  124. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js +20 -20
  125. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js.map +1 -1
  126. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.d.ts.map +1 -1
  127. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js +22 -21
  128. package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js.map +1 -1
  129. package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.d.ts.map +1 -1
  130. package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.js +10 -1
  131. package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.js.map +1 -1
  132. package/dist/engine/templates/consumable_asset_registry/types.d.ts +3 -1
  133. package/dist/engine/templates/consumable_asset_registry/types.d.ts.map +1 -1
  134. package/dist/engine/templates/consumable_asset_registry/types.js +1 -1
  135. package/dist/engine/templates/consumable_asset_registry/types.js.map +1 -1
  136. package/dist/engine/templates/explicit_asset_registry/adapters.js +1 -1
  137. package/dist/engine/templates/explicit_asset_registry/adapters.js.map +1 -1
  138. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js +29 -29
  139. package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js.map +1 -1
  140. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js +47 -47
  141. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js.map +1 -1
  142. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js +9 -9
  143. package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js.map +1 -1
  144. package/dist/engine/templates/explicit_asset_registry/checklists.js +13 -13
  145. package/dist/engine/templates/explicit_asset_registry/checklists.js.map +1 -1
  146. package/dist/engine/templates/explicit_asset_registry/contributing.d.ts +3 -0
  147. package/dist/engine/templates/explicit_asset_registry/contributing.d.ts.map +1 -0
  148. package/dist/engine/templates/explicit_asset_registry/contributing.js +19 -0
  149. package/dist/engine/templates/explicit_asset_registry/contributing.js.map +1 -0
  150. package/dist/engine/templates/explicit_asset_registry/domain.js +18 -18
  151. package/dist/engine/templates/explicit_asset_registry/domain.js.map +1 -1
  152. package/dist/engine/templates/explicit_asset_registry/gates.d.ts.map +1 -1
  153. package/dist/engine/templates/explicit_asset_registry/gates.js +140 -11
  154. package/dist/engine/templates/explicit_asset_registry/gates.js.map +1 -1
  155. package/dist/engine/templates/explicit_asset_registry/index.d.ts.map +1 -1
  156. package/dist/engine/templates/explicit_asset_registry/index.js +3 -0
  157. package/dist/engine/templates/explicit_asset_registry/index.js.map +1 -1
  158. package/dist/engine/templates/explicit_asset_registry/internal_patterns.d.ts.map +1 -1
  159. package/dist/engine/templates/explicit_asset_registry/internal_patterns.js +110 -46
  160. package/dist/engine/templates/explicit_asset_registry/internal_patterns.js.map +1 -1
  161. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js +52 -52
  162. package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js.map +1 -1
  163. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.d.ts.map +1 -1
  164. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js +55 -39
  165. package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js.map +1 -1
  166. package/dist/engine/templates/explicit_asset_registry/patterns_part1.js +50 -50
  167. package/dist/engine/templates/explicit_asset_registry/patterns_part1.js.map +1 -1
  168. package/dist/engine/templates/explicit_asset_registry/patterns_part2.js +50 -50
  169. package/dist/engine/templates/explicit_asset_registry/patterns_part2.js.map +1 -1
  170. package/dist/engine/templates/explicit_asset_registry/patterns_part3.js +2 -2
  171. package/dist/engine/templates/explicit_asset_registry/patterns_part3.js.map +1 -1
  172. package/dist/engine/templates/explicit_asset_registry/procedures_part1.js +66 -66
  173. package/dist/engine/templates/explicit_asset_registry/procedures_part1.js.map +1 -1
  174. package/dist/engine/templates/explicit_asset_registry/procedures_part2.d.ts.map +1 -1
  175. package/dist/engine/templates/explicit_asset_registry/procedures_part2.js +43 -26
  176. package/dist/engine/templates/explicit_asset_registry/procedures_part2.js.map +1 -1
  177. package/dist/engine/templates/explicit_asset_registry/profiles.js +3 -3
  178. package/dist/engine/templates/explicit_asset_registry/profiles.js.map +1 -1
  179. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js +18 -18
  180. package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js.map +1 -1
  181. package/dist/engine/templates/explicit_asset_registry/rules_shared.d.ts.map +1 -1
  182. package/dist/engine/templates/explicit_asset_registry/rules_shared.js +128 -17
  183. package/dist/engine/templates/explicit_asset_registry/rules_shared.js.map +1 -1
  184. package/dist/engine/templates/explicit_asset_registry/scaffolds.d.ts.map +1 -1
  185. package/dist/engine/templates/explicit_asset_registry/scaffolds.js +87 -18
  186. package/dist/engine/templates/explicit_asset_registry/scaffolds.js.map +1 -1
  187. package/dist/engine/templates/standard_asset_contract.d.ts +30 -0
  188. package/dist/engine/templates/standard_asset_contract.d.ts.map +1 -1
  189. package/dist/engine/templates/standard_asset_contract.js +152 -0
  190. package/dist/engine/templates/standard_asset_contract.js.map +1 -1
  191. package/dist/engine/templates/template_asset_contract_registry.d.ts +1 -1
  192. package/dist/engine/templates/template_asset_contract_registry.d.ts.map +1 -1
  193. package/dist/engine/templates/template_asset_contract_registry.js +44 -7
  194. package/dist/engine/templates/template_asset_contract_registry.js.map +1 -1
  195. package/dist/engine/templates/template_init_sync.d.ts +7 -1
  196. package/dist/engine/templates/template_init_sync.d.ts.map +1 -1
  197. package/dist/engine/templates/template_init_sync.js +72 -19
  198. package/dist/engine/templates/template_init_sync.js.map +1 -1
  199. package/dist/engine/templates/workflow_rule_generator.d.ts +1 -1
  200. package/dist/engine/templates/workflow_rule_generator.js +2 -2
  201. package/dist/engine/templates/workflow_rule_generator.js.map +1 -1
  202. package/dist/engine/workflow/project_stage_detector.d.ts.map +1 -1
  203. package/dist/engine/workflow/project_stage_detector.js +50 -1
  204. package/dist/engine/workflow/project_stage_detector.js.map +1 -1
  205. package/dist/knowledge/index_manager.d.ts +1 -0
  206. package/dist/knowledge/index_manager.d.ts.map +1 -1
  207. package/dist/knowledge/index_manager.js +23 -1
  208. package/dist/knowledge/index_manager.js.map +1 -1
  209. package/dist/server/tools/middleware.d.ts.map +1 -1
  210. package/dist/server/tools/middleware.js +27 -11
  211. package/dist/server/tools/middleware.js.map +1 -1
  212. package/dist/server/tools/tool_groups/expand_handler.d.ts.map +1 -1
  213. package/dist/server/tools/tool_groups/expand_handler.js +4 -0
  214. package/dist/server/tools/tool_groups/expand_handler.js.map +1 -1
  215. package/dist/server/tools/tool_groups/verify_learn.d.ts.map +1 -1
  216. package/dist/server/tools/tool_groups/verify_learn.js +209 -58
  217. package/dist/server/tools/tool_groups/verify_learn.js.map +1 -1
  218. package/dist/types/analysis.d.ts +5 -0
  219. package/dist/types/analysis.d.ts.map +1 -1
  220. package/dist/types/knowledge.d.ts +13 -2
  221. package/dist/types/knowledge.d.ts.map +1 -1
  222. package/dist/types/knowledge.js.map +1 -1
  223. package/dist/types/pipeline.d.ts +35 -0
  224. package/dist/types/pipeline.d.ts.map +1 -1
  225. package/dist/types/task.d.ts +19 -0
  226. package/dist/types/task.d.ts.map +1 -1
  227. package/package.json +4 -2
  228. 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
  229. 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
  230. 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
  231. 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
  232. 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
  233. 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
  234. 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
  235. 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
  236. 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
  237. package/templates/artifacts/shared/ADR/346/250/241/347/211/210.md +5 -2
  238. 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
  239. package/templates/artifacts/shared/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +6 -5
  240. 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
  241. package/templates/artifacts/shared/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +6 -5
  242. 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
  243. 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
  244. 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
  245. 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
  246. 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
  247. 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
  248. 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
  249. 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
  250. package/templates/artifacts/shared//345/256/241/346/237/245/346/221/230/350/246/201.md +7 -7
  251. 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
  252. 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
  253. 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
  254. 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
  255. 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
  256. 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
  257. 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
  258. 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
  259. 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
  260. 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
  261. 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
  262. 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
  263. 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
  264. 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
  265. 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
  266. 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
  267. 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
  268. package/templates/checklists//344/274/232/350/257/235/346/201/242/345/244/215.md +8 -14
  269. 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
  270. 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
  271. 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
  272. package/templates/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +6 -9
  273. package/templates/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +6 -9
  274. package/templates/domain//345/244/232/347/247/237/346/210/267.md +5 -4
  275. package/templates/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +5 -4
  276. package/templates/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +10 -9
  277. package/templates/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +5 -4
  278. package/templates/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +5 -4
  279. package/templates/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +5 -4
  280. package/templates/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +5 -4
  281. package/templates/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +5 -4
  282. package/templates/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +10 -9
  283. package/templates/gates/existing-system/gate-/346/236/266/346/236/204/350/256/276/350/256/241.yaml +1 -0
  284. 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
  285. 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
  286. package/templates/gates/existing-system/gate-/350/257/246/347/273/206/350/256/276/350/256/241.yaml +1 -0
  287. package/templates/gates/shared/gate-/344/272/244/344/273/230.yaml +14 -0
  288. package/templates/gates/shared/gate-/344/273/273/345/212/241/350/247/204/345/210/222.yaml +3 -3
  289. package/templates/gates/shared/gate-/344/274/232/350/257/235/345/220/257/345/212/250.yaml +14 -0
  290. package/templates/gates/shared/gate-/345/206/263/347/255/226/347/240/224/350/256/250.yaml +14 -0
  291. package/templates/gates/shared/gate-/345/217/221/345/270/203/345/220/216/350/247/202/345/257/237.yaml +14 -0
  292. package/templates/gates/shared/gate-/346/234/254/345/234/260/351/252/214/346/224/266.yaml +14 -0
  293. package/templates/gates/shared/gate-/347/274/226/347/240/201/345/207/206/345/244/207.yaml +14 -0
  294. package/templates/gates/shared/gate-/347/274/226/347/240/201/345/256/236/347/216/260.yaml +14 -0
  295. package/templates/gates/shared/gate-/347/274/226/347/240/201/351/252/214/350/257/201.yaml +18 -0
  296. package/templates/internal/patterns/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +5 -5
  297. 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
  298. package/templates/internal/patterns/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +5 -5
  299. package/templates/internal/patterns/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +5 -5
  300. 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
  301. 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
  302. package/templates/internal/patterns//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +5 -5
  303. 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
  304. package/templates/internal/patterns//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +5 -5
  305. package/templates/internal/patterns//345/206/262/347/252/201/351/227/250/347/246/201.md +5 -5
  306. package/templates/internal/patterns//345/206/263/347/255/226/347/275/221/345/205/263.md +5 -5
  307. 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
  308. package/templates/internal/patterns//345/217/230/345/274/202/345/256/241/350/256/241.md +5 -5
  309. package/templates/internal/patterns//345/233/236/345/275/222/347/237/251/351/230/265.md +6 -6
  310. 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
  311. package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +5 -5
  312. package/templates/internal/patterns//345/271/266/345/217/221/351/224/201.md +5 -5
  313. package/templates/internal/patterns//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +5 -5
  314. 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
  315. package/templates/internal/patterns//346/250/241/347/211/210Frontmatter/350/247/243/346/236/220.md +61 -0
  316. 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
  317. package/templates/internal/patterns//346/265/201/345/274/217/345/277/203/350/267/263.md +5 -5
  318. package/templates/internal/patterns//347/237/245/350/257/206/344/270/273/346/235/203.md +6 -6
  319. package/templates/internal/patterns//350/257/255/344/271/211/350/257/201/346/215/256.md +5 -5
  320. package/templates/internal/patterns//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +5 -5
  321. 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
  322. 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
  323. package/templates/internal/rules/OOD/344/270/216SOLID/350/256/276/350/256/241/350/247/204/345/210/231.md +7 -9
  324. 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
  325. 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
  326. 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
  327. 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
  328. 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
  329. 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
  330. 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
  331. 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
  332. 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
  333. 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
  334. 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
  335. 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
  336. 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
  337. 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
  338. 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
  339. 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
  340. 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
  341. 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
  342. 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
  343. 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
  344. 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
  345. package/templates/internal/rules//346/250/241/347/211/210Frontmatter/350/247/204/350/214/203.md +281 -0
  346. 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
  347. 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
  348. 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
  349. 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
  350. 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
  351. 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
  352. 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
  353. 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
  354. 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
  355. 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
  356. 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
  357. 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
  358. 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
  359. 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
  360. 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
  361. 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
  362. 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
  363. 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
  364. 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
  365. 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
  366. 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
  367. 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
  368. package/templates/patterns/API/350/256/276/350/256/241/350/247/204/350/214/203.md +4 -3
  369. package/templates/patterns/Docker/351/203/250/347/275/262/350/247/204/350/214/203.md +4 -3
  370. package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +4 -3
  371. package/templates/patterns/N/345/212/2401/346/237/245/350/257/242/350/247/204/350/214/203.md +4 -3
  372. 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
  373. 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
  374. 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
  375. package/templates/patterns/React/347/273/204/344/273/266/350/247/204/350/214/203.md +4 -3
  376. package/templates/patterns/React/350/241/250/345/215/225/350/247/204/350/214/203.md +4 -3
  377. package/templates/patterns/React/350/267/257/347/224/261/350/247/204/350/214/203.md +4 -3
  378. package/templates/patterns/SOLID/350/256/276/350/256/241/350/247/204/350/214/203.md +3 -3
  379. package/templates/patterns/Schema/345/205/274/345/256/271/350/247/204/350/214/203.md +4 -3
  380. 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
  381. package/templates/patterns/Vue/347/273/204/344/273/266/350/247/204/350/214/203.md +4 -3
  382. package/templates/patterns/Vue/350/267/257/347/224/261/350/247/204/350/214/203.md +4 -3
  383. package/templates/patterns//344/272/213/344/273/266/351/251/261/345/212/250/350/247/204/350/214/203.md +4 -3
  384. package/templates/patterns//344/272/213/345/212/241/346/250/241/345/274/217/350/247/204/350/214/203.md +4 -3
  385. package/templates/patterns//344/274/230/351/233/205/345/201/234/346/234/272/350/247/204/350/214/203.md +4 -3
  386. package/templates/patterns//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +4 -3
  387. package/templates/patterns//345/210/206/351/241/265/346/237/245/350/257/242/350/247/204/350/214/203.md +4 -3
  388. package/templates/patterns//345/211/215/347/253/257/346/200/247/350/203/275/350/247/204/350/214/203.md +4 -3
  389. 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
  390. package/templates/patterns//345/221/275/345/220/215/350/247/204/350/214/203.md +4 -3
  391. package/templates/patterns//345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +5 -4
  392. package/templates/patterns//345/242/236/345/210/240/346/224/271/346/237/245/350/247/204/350/214/203.md +4 -3
  393. package/templates/patterns//345/244/226/351/203/250/344/276/235/350/265/226/350/247/204/350/214/203.md +4 -3
  394. package/templates/patterns//345/245/221/347/272/246/345/205/274/345/256/271/350/247/204/350/214/203.md +4 -3
  395. package/templates/patterns//345/256/232/346/227/266/344/273/273/345/212/241/350/247/204/350/214/203.md +4 -3
  396. package/templates/patterns//345/256/236/346/227/266/346/216/250/351/200/201/350/247/204/350/214/203.md +4 -3
  397. package/templates/patterns//345/267/245/347/250/213/347/272/252/345/276/213.md +4 -3
  398. package/templates/patterns//345/271/266/345/217/221/346/216/247/345/210/266/350/247/204/350/214/203.md +4 -3
  399. package/templates/patterns//345/274/202/346/255/245/345/257/274/345/207/272/350/247/204/350/214/203.md +4 -3
  400. package/templates/patterns//346/216/245/345/217/243/345/245/221/347/272/246/350/247/204/350/214/203.md +4 -3
  401. package/templates/patterns//346/220/234/347/264/242/346/250/241/345/274/217/350/247/204/350/214/203.md +4 -3
  402. package/templates/patterns//346/225/260/346/215/256/351/232/220/347/247/201/350/247/204/350/214/203.md +4 -3
  403. package/templates/patterns//346/226/207/344/273/266/344/270/212/344/274/240/350/247/204/350/214/203.md +4 -3
  404. package/templates/patterns//346/227/240/351/232/234/347/242/215/350/247/204/350/214/203.md +4 -3
  405. package/templates/patterns//346/227/245/345/277/227/350/247/204/350/214/203.md +4 -3
  406. package/templates/patterns//346/235/203/351/231/220/350/256/244/350/257/201/350/247/204/350/214/203.md +4 -3
  407. package/templates/patterns//346/236/266/346/236/204/347/272/242/347/272/277.md +4 -3
  408. package/templates/patterns//346/265/213/350/257/225/350/264/250/351/207/217/350/247/204/350/214/203.md +4 -3
  409. package/templates/patterns//347/206/224/346/226/255/351/231/215/347/272/247/350/247/204/350/214/203.md +4 -3
  410. package/templates/patterns//347/212/266/346/200/201/346/265/201/350/275/254/350/247/204/350/214/203.md +4 -3
  411. package/templates/patterns//347/272/246/346/235/237/345/256/236/347/216/260/350/247/204/350/214/203.md +4 -3
  412. package/templates/patterns//347/274/223/345/255/230/347/255/226/347/225/245/350/247/204/350/214/203.md +4 -3
  413. package/templates/patterns//347/274/226/347/240/201/350/264/250/351/207/217/350/247/204/350/214/203.md +4 -3
  414. package/templates/patterns//347/274/272/351/231/267/347/256/241/347/220/206/350/247/204/350/214/203.md +5 -4
  415. package/templates/patterns//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +4 -3
  416. package/templates/patterns//350/276/223/345/205/245/346/240/241/351/252/214/350/247/204/350/214/203.md +4 -3
  417. package/templates/patterns//351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +4 -3
  418. package/templates/patterns//351/224/231/350/257/257/350/276/271/347/225/214/350/247/204/350/214/203.md +4 -3
  419. 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
  420. package/templates/procedures/OOD/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +7 -4
  421. package/templates/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +9 -9
  422. 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
  423. package/templates/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +6 -7
  424. package/templates/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +6 -7
  425. package/templates/procedures//344/274/232/350/257/235/346/201/242/345/244/215/346/265/201/347/250/213.md +85 -0
  426. 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
  427. package/templates/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +6 -7
  428. 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
  429. package/templates/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +7 -8
  430. 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
  431. package/templates/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +7 -8
  432. package/templates/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +9 -9
  433. package/templates/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +6 -8
  434. 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
  435. 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
  436. 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
  437. 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
  438. 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
  439. 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
  440. 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
  441. 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
  442. 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
  443. 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
  444. 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
  445. 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
  446. package/templates/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +7 -7
  447. 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
  448. package/templates/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +8 -7
  449. package/templates/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +7 -7
  450. package/templates/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +9 -9
  451. package/templates/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +6 -7
  452. package/templates/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +9 -9
  453. package/templates/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +6 -7
  454. package/templates/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +5 -6
  455. package/templates/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +7 -8
  456. 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
  457. 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
  458. 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
  459. 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
  460. 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
  461. 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
  462. 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
  463. 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
  464. 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
  465. 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
  466. 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
  467. 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
  468. 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
  469. 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
  470. 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
  471. 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
  472. 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
  473. 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
  474. 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
  475. 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
  476. package/templates/rules/shared//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +7 -4
  477. 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
  478. 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
  479. 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
  480. package/templates/scaffolds/react/ErrorBoundary.tsx.hbs +49 -0
  481. package/templates/scaffolds/react/Layout.tsx.hbs +20 -0
  482. package/templates/scaffolds/spring-boot/ControllerTest.java.hbs +36 -0
  483. package/templates/scaffolds/spring-boot/Mapper.xml.hbs +29 -0
  484. package/templates//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +147 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omission_scanner.d.ts","sourceRoot":"","sources":["../../../src/engine/contracts/omission_scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAC;AAKvC,YAAY;AACZ,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,IAAI,EACA,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,aAAa,GACb,eAAe,CAAC;IACpB,uCAAuC;IACvC,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC;IAClC,aAAa;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,WAAW;AACX,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY;IACZ,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,WAAW;AACX,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,+BAA+B;IAC/B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iCAAiC;IACjC,2BAA2B,EAAE,OAAO,CAAC;IACrC,4BAA4B;IAC5B,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAYD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAC5C,kBAAkB,CAkGpB;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,eAAe,EAAE,EAC3B,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAU,GACtB,MAAM,CA6DR"}
@@ -0,0 +1,191 @@
1
+ /**
2
+ * 遗漏扫描引擎 — 聚合扫描 + 对抗性 AI prompt 生成。
3
+ *
4
+ * 职责:
5
+ * 1. 聚合三种确定性检测(空洞章节、占位符、空表格)+ 现有缺失检测
6
+ * 2. 生成 OmissionScanResult(passed / findings / summary)
7
+ * 3. 生成对抗性 AI prompt,用于 sf_verify 的二次 AI 审计
8
+ *
9
+ * 设计决策:
10
+ * - 确定性扫描做第一道(快速、无 IO),对抗性 prompt 做第二道(AI 深度审计)
11
+ * - 对抗性 prompt 基于 findings 生成,聚焦已确认遗漏 + 潜在遗漏
12
+ * - 扫描配置可外部注入,默认值适合大多数场景
13
+ */
14
+ import { findHollowSections, findPlaceholders, findEmptyTables, findMissingSections, findMissingTables, getArtifactSchema, } from "./artifact_schema_registry.js";
15
+ /** 默认扫描配置 */
16
+ const DEFAULT_CONFIG = {
17
+ hollow_threshold_chars: 50,
18
+ placeholder_patterns: [],
19
+ generate_adversarial_prompt: false,
20
+ adversarial_max_findings: 5,
21
+ };
22
+ // ── 核心扫描函数 ──
23
+ /**
24
+ * 聚合扫描 — 对产物内容执行全面的遗漏检测。
25
+ *
26
+ * 检测维度(按顺序):
27
+ * 1. 缺失章节(findMissingSections)
28
+ * 2. 缺失表格(findMissingTables)
29
+ * 3. 空洞章节(findHollowSections)
30
+ * 4. 占位符(findPlaceholders)
31
+ * 5. 空表格(findEmptyTables)
32
+ *
33
+ * @param kind 产物类型(ArtifactKind)
34
+ * @param content 产物 markdown 内容
35
+ * @param configOverrides 可选配置覆盖
36
+ * @returns 扫描结果
37
+ */
38
+ export function scanArtifactForOmissions(kind, content, configOverrides) {
39
+ const config = { ...DEFAULT_CONFIG, ...configOverrides };
40
+ const schema = getArtifactSchema(kind);
41
+ const findings = [];
42
+ // 维度 1: 缺失章节(基于 registry schema 或空 schema 兜底)
43
+ if (schema) {
44
+ const missingSections = findMissingSections(content, schema);
45
+ for (const section of missingSections) {
46
+ findings.push({
47
+ type: "missing_section",
48
+ severity: "hard_fail",
49
+ section_name: section,
50
+ message: `缺少必填章节: ${section}`,
51
+ evidence: `章节 "${section}" 在文档中未找到匹配标题`,
52
+ });
53
+ }
54
+ // 维度 2: 缺失表格
55
+ const missingTables = findMissingTables(content, schema);
56
+ for (const table of missingTables) {
57
+ findings.push({
58
+ type: "missing_table",
59
+ severity: "hard_fail",
60
+ section_name: "",
61
+ message: `缺少必填表格: ${table}`,
62
+ evidence: `表格关键词 "${table}" 在文档中未找到匹配`,
63
+ });
64
+ }
65
+ // 维度 3: 空洞章节
66
+ const hollowSections = findHollowSections(content, schema, config.hollow_threshold_chars);
67
+ for (const hollow of hollowSections) {
68
+ findings.push({
69
+ type: "hollow_section",
70
+ severity: "hard_fail",
71
+ section_name: hollow.section_name,
72
+ line_number: hollow.line_number,
73
+ message: `章节 "${hollow.section_name}" 正文不足 ${config.hollow_threshold_chars} 字符(实际 ${hollow.body_chars} 字符)`,
74
+ evidence: `第 ${hollow.line_number} 行,正文长度=${hollow.body_chars}`,
75
+ });
76
+ }
77
+ // 维度 5: 空表格
78
+ const emptyTables = findEmptyTables(content, schema);
79
+ for (const empty of emptyTables) {
80
+ findings.push({
81
+ type: "empty_table",
82
+ severity: empty.is_required ? "hard_fail" : "warning",
83
+ section_name: "",
84
+ line_number: empty.line_number,
85
+ message: `${empty.is_required ? "必填" : "非必填"}表格 "${empty.table_keyword}" 有标题但无数据行`,
86
+ evidence: `第 ${empty.line_number} 行,表格 "${empty.table_keyword}" 为空`,
87
+ });
88
+ }
89
+ }
90
+ // 维度 4: 占位符(不需要 schema)
91
+ const extraPatterns = config.placeholder_patterns.map((p) => new RegExp(p));
92
+ const placeholders = findPlaceholders(content, extraPatterns);
93
+ for (const ph of placeholders) {
94
+ findings.push({
95
+ type: "placeholder",
96
+ severity: "warning",
97
+ section_name: "",
98
+ line_number: ph.line_number,
99
+ message: `发现占位符文本: ${ph.placeholder}`,
100
+ evidence: ph.context,
101
+ });
102
+ }
103
+ // 汇总
104
+ const hardFailCount = findings.filter((f) => f.severity === "hard_fail").length;
105
+ const warningCount = findings.filter((f) => f.severity === "warning").length;
106
+ const passed = hardFailCount === 0;
107
+ const summary = passed
108
+ ? `✅ 遗漏扫描通过(${warningCount} 个警告)`
109
+ : `❌ 遗漏扫描未通过(${hardFailCount} 个阻塞项,${warningCount} 个警告)`;
110
+ const result = {
111
+ passed,
112
+ findings,
113
+ summary,
114
+ };
115
+ // 对抗性 prompt 生成(可选)
116
+ if (config.generate_adversarial_prompt) {
117
+ result.adversarial_prompt = generateAdversarialPrompt(findings, schema, content, config.adversarial_max_findings);
118
+ }
119
+ return result;
120
+ }
121
+ // ── 对抗性 Prompt 生成 ──
122
+ /**
123
+ * 生成对抗性 AI prompt — 基于确定性扫描结果,引导 AI 进行深度审计。
124
+ *
125
+ * 框架设计:
126
+ * - 已确认遗漏 → 要求 AI 验证并量化影响
127
+ * - 潜在遗漏 → 要求 AI 基于模板/行业经验推断可能遗漏
128
+ * - 聚焦策略 → 限制 max_findings 避免信息过载
129
+ *
130
+ * @param findings 确定性扫描的发现项
131
+ * @param schema 产物 Schema(可能为 null)
132
+ * @param content 产物内容
133
+ * @param maxFindings 最大发现数
134
+ * @returns 对抗性 prompt 文本
135
+ */
136
+ export function generateAdversarialPrompt(findings, schema, content, maxFindings = 5) {
137
+ const kind = schema?.kind ?? "未知";
138
+ const lines = content.split("\n");
139
+ // 已确认遗漏列表
140
+ const confirmedFindings = findings
141
+ .slice(0, maxFindings)
142
+ .map((f, i) => `${i + 1}. [${f.severity === "hard_fail" ? "阻塞" : "警告"}] ${f.message}` +
143
+ (f.line_number ? `(第 ${f.line_number} 行)` : "") +
144
+ ` — 证据: ${f.evidence}`)
145
+ .join("\n");
146
+ // Schema 约束摘要
147
+ const schemaSummary = schema
148
+ ? [
149
+ `必填章节: ${schema.required_sections.join("、")}`,
150
+ schema.required_tables.length > 0
151
+ ? `必填表格: ${schema.required_tables.join("、")}`
152
+ : null,
153
+ schema.required_fields
154
+ ? Object.entries(schema.required_fields)
155
+ .map(([t, fs]) => ` ${t} → ${fs.join("、")}`)
156
+ .join("\n")
157
+ : null,
158
+ ]
159
+ .filter(Boolean)
160
+ .join("\n")
161
+ : "无 Schema 定义";
162
+ // 内容统计
163
+ const contentStats = `总行数: ${lines.length},总字符: ${content.length}`;
164
+ return [
165
+ `你是一个严格的产物审计员。以下是产物「${kind}」的结构约束和实际内容统计。`,
166
+ "",
167
+ "## 已确认的遗漏(确定性扫描发现)",
168
+ confirmedFindings || "(无确定性发现)",
169
+ "",
170
+ "## Schema 结构约束",
171
+ schemaSummary,
172
+ "",
173
+ "## 内容统计",
174
+ contentStats,
175
+ "",
176
+ "## 你的任务",
177
+ "假设这份产物一定还有未发现的遗漏。基于 Schema 定义,逐项检查每个章节的内容质量:",
178
+ "1. 章节内容是否与 Schema 要求匹配?是否有空洞章节(标题存在但正文不足)?",
179
+ "2. 表格数据是否完整(有无空单元格、缺失行)?",
180
+ "3. 附属产物(Mermaid 图、SQL DDL、OpenAPI schema)是否真实存在且非空?",
181
+ "4. 跨章节引用是否一致(如交互流转引用的页面在布局树中是否存在)?",
182
+ `5. 是否有隐藏的占位符(非标准表达但语义等同于"待补充"的文本)?`,
183
+ "",
184
+ "对每个发现附上:行号(如果可定位)+ 证据片段 + 缺失描述。",
185
+ `最多报告 ${maxFindings} 项最严重的遗漏。`,
186
+ "",
187
+ "格式要求:每项一行,格式为",
188
+ " [遗漏类型] 行号:行号 — 描述 — 证据:前80字符",
189
+ ].join("\n");
190
+ }
191
+ //# sourceMappingURL=omission_scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omission_scanner.js","sourceRoot":"","sources":["../../../src/engine/contracts/omission_scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * 模板 Schema 加载器 — 从模板 frontmatter 中解析 artifact_schema 和 process_rules。
3
+ *
4
+ * 职责:
5
+ * 1. 解析模板文件 YAML frontmatter 中的 artifact_schema 字段
6
+ * 2. 解析模板文件 YAML frontmatter 中的 process_rules 字段
7
+ * 3. 提供运行时重载能力(开发时修改模板立即生效)
8
+ *
9
+ * 设计决策:
10
+ * - 模板 frontmatter 中的 schema 定义会覆盖 registry 中的硬编码数据
11
+ * - 无 frontmatter 的模板不报错,使用 registry 默认值
12
+ * - 解析失败时 fallback 到 registry,不阻断流程
13
+ */
14
+ import type { ArtifactKind } from "./artifact_contract_registry.js";
15
+ import type { ArtifactSchema } from "./artifact_schema_registry.js";
16
+ /** 模板 frontmatter 中的 artifact_schema 结构 */
17
+ export interface TemplateArtifactSchema {
18
+ kind: string;
19
+ required_sections?: string[];
20
+ required_tables?: string[];
21
+ required_fields?: Record<string, string[]>;
22
+ required_artifacts?: string[];
23
+ forbidden_gaps?: string[];
24
+ }
25
+ /** 模板 frontmatter 中的单操作类型规则 */
26
+ export interface TemplateProcessRules {
27
+ instructions?: string[];
28
+ constraints?: string[];
29
+ input_materials?: string[];
30
+ }
31
+ /** 模板 frontmatter 中的完整 process_rules 结构 */
32
+ export interface TemplateProcessRuleSet {
33
+ extract?: TemplateProcessRules;
34
+ review?: TemplateProcessRules;
35
+ fix?: TemplateProcessRules;
36
+ iterate?: TemplateProcessRules;
37
+ }
38
+ /** 解析结果 */
39
+ export interface ParsedTemplateSchema {
40
+ /** 模板文件名 */
41
+ template_file: string;
42
+ /** 产物类型 */
43
+ kind: ArtifactKind;
44
+ /** 从 frontmatter 解析的 artifact_schema(无则为 null) */
45
+ artifact_schema: TemplateArtifactSchema | null;
46
+ /** 从 frontmatter 解析的 process_rules(无则为 null) */
47
+ process_rules: TemplateProcessRuleSet | null;
48
+ /** 解析错误 */
49
+ error?: string;
50
+ }
51
+ /**
52
+ * 解析模板文件的 YAML frontmatter。
53
+ *
54
+ * @returns frontmatter 文本(不含 --- 分隔符),无 frontmatter 时返回 null
55
+ */
56
+ export declare function extractFrontmatter(content: string): string | null;
57
+ /**
58
+ * 从 YAML frontmatter 中解析 artifact_schema 字段。
59
+ *
60
+ * 使用简单的行解析(不依赖 yaml 库),适用于我们控制的结构化格式。
61
+ */
62
+ export declare function parseArtifactSchemaFromFrontmatter(frontmatter: string): TemplateArtifactSchema | null;
63
+ /**
64
+ * 从 YAML frontmatter 中解析 process_rules 字段。
65
+ */
66
+ export declare function parseProcessRulesFromFrontmatter(frontmatter: string): TemplateProcessRuleSet | null;
67
+ /**
68
+ * 解析单个模板文件的 schema 和 process_rules。
69
+ */
70
+ export declare function parseTemplateFile(templatePath: string): ParsedTemplateSchema | null;
71
+ /**
72
+ * 批量加载目录下所有模板的 schema。
73
+ */
74
+ export declare function loadTemplateSchemas(templatesDir: string): ParsedTemplateSchema[];
75
+ /**
76
+ * 将 ArtifactSchema 转换为可注册到 registry 的格式。
77
+ */
78
+ export declare function toArtifactSchema(parsed: ParsedTemplateSchema): ArtifactSchema | null;
79
+ //# sourceMappingURL=template_schema_loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template_schema_loader.d.ts","sourceRoot":"","sources":["../../../src/engine/contracts/template_schema_loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAKpE,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,+BAA+B;AAC/B,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,GAAG,CAAC,EAAE,oBAAoB,CAAC;IAC3B,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,WAAW;AACX,MAAM,WAAW,oBAAoB;IACnC,YAAY;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,kDAAkD;IAClD,eAAe,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC/C,gDAAgD;IAChD,aAAa,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC7C,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGjE;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,MAAM,GAClB,sBAAsB,GAAG,IAAI,CA0B/B;AA2GD;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,MAAM,GAClB,sBAAsB,GAAG,IAAI,CAqD/B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,GACnB,oBAAoB,GAAG,IAAI,CAmC7B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,GACnB,oBAAoB,EAAE,CAexB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,GAAG,IAAI,CAapF"}
@@ -0,0 +1,301 @@
1
+ /**
2
+ * 模板 Schema 加载器 — 从模板 frontmatter 中解析 artifact_schema 和 process_rules。
3
+ *
4
+ * 职责:
5
+ * 1. 解析模板文件 YAML frontmatter 中的 artifact_schema 字段
6
+ * 2. 解析模板文件 YAML frontmatter 中的 process_rules 字段
7
+ * 3. 提供运行时重载能力(开发时修改模板立即生效)
8
+ *
9
+ * 设计决策:
10
+ * - 模板 frontmatter 中的 schema 定义会覆盖 registry 中的硬编码数据
11
+ * - 无 frontmatter 的模板不报错,使用 registry 默认值
12
+ * - 解析失败时 fallback 到 registry,不阻断流程
13
+ */
14
+ import fs from "node:fs";
15
+ import path from "node:path";
16
+ import { debug } from "../core/logger.js";
17
+ // ── 解析函数 ──
18
+ /**
19
+ * 解析模板文件的 YAML frontmatter。
20
+ *
21
+ * @returns frontmatter 文本(不含 --- 分隔符),无 frontmatter 时返回 null
22
+ */
23
+ export function extractFrontmatter(content) {
24
+ const match = content.match(/^---\n([\s\S]*?)\n---/);
25
+ return match ? match[1] : null;
26
+ }
27
+ /**
28
+ * 从 YAML frontmatter 中解析 artifact_schema 字段。
29
+ *
30
+ * 使用简单的行解析(不依赖 yaml 库),适用于我们控制的结构化格式。
31
+ */
32
+ export function parseArtifactSchemaFromFrontmatter(frontmatter) {
33
+ // 查找 artifact_schema: 块
34
+ const schemaStart = frontmatter.indexOf("artifact_schema:");
35
+ if (schemaStart === -1)
36
+ return null;
37
+ // 提取 artifact_schema 块(到下一个顶层 key 或末尾)
38
+ const afterSchema = frontmatter.slice(schemaStart);
39
+ const lines = afterSchema.split("\n");
40
+ const schemaLines = [];
41
+ let inSchema = false;
42
+ for (const line of lines) {
43
+ // 顶层 key(非缩进)且不是 artifact_schema 本身 → 结束
44
+ if (inSchema && line.length > 0 && line[0] !== " " && line[0] !== "\t" && !line.startsWith("#")) {
45
+ break;
46
+ }
47
+ if (line.startsWith("artifact_schema:")) {
48
+ inSchema = true;
49
+ schemaLines.push(line);
50
+ }
51
+ else if (inSchema) {
52
+ schemaLines.push(line);
53
+ }
54
+ }
55
+ const schemaText = schemaLines.join("\n");
56
+ return parseSchemaBlock(schemaText);
57
+ }
58
+ /**
59
+ * 解析 artifact_schema 块的内部结构。
60
+ */
61
+ function parseSchemaBlock(text) {
62
+ let kind = "";
63
+ const sections = [];
64
+ const tables = [];
65
+ const fields = {};
66
+ const artifacts = [];
67
+ const gaps = [];
68
+ const lines = text.split("\n");
69
+ let currentListTarget = null;
70
+ let currentFieldsTable = null;
71
+ let currentFieldNames = [];
72
+ for (const rawLine of lines) {
73
+ const line = rawLine.trim();
74
+ // kind 字段值
75
+ if (line.startsWith("kind:")) {
76
+ kind = line.replace("kind:", "").trim().replace(/['"]/g, "");
77
+ currentListTarget = null;
78
+ continue;
79
+ }
80
+ // 必填章节
81
+ if (line.startsWith("required_sections:")) {
82
+ currentListTarget = sections;
83
+ currentFieldsTable = null;
84
+ continue;
85
+ }
86
+ // 必填表格
87
+ if (line.startsWith("required_tables:")) {
88
+ currentListTarget = tables;
89
+ currentFieldsTable = null;
90
+ continue;
91
+ }
92
+ // 必填附属产物
93
+ if (line.startsWith("required_artifacts:")) {
94
+ currentListTarget = artifacts;
95
+ currentFieldsTable = null;
96
+ continue;
97
+ }
98
+ // 禁止空白
99
+ if (line.startsWith("forbidden_gaps:")) {
100
+ currentListTarget = gaps;
101
+ currentFieldsTable = null;
102
+ continue;
103
+ }
104
+ // 必填字段块
105
+ if (line.startsWith("required_fields:")) {
106
+ currentListTarget = null;
107
+ currentFieldsTable = null;
108
+ continue;
109
+ }
110
+ // 列表项(- value)
111
+ if (line.startsWith("- ") && currentListTarget !== null) {
112
+ const value = line.slice(2).trim().replace(/['"]/g, "");
113
+ currentListTarget.push(value);
114
+ continue;
115
+ }
116
+ // required_fields 子项:tableName:
117
+ // 缩进的 key → 字段表名
118
+ if (rawLine.match(/^\s{4,6}\S+:\s*$/) && !line.startsWith("-")) {
119
+ // 先保存上一个字段表
120
+ if (currentFieldsTable && currentFieldNames.length > 0) {
121
+ fields[currentFieldsTable] = currentFieldNames;
122
+ }
123
+ currentFieldsTable = line.replace(":", "").trim();
124
+ currentFieldNames = [];
125
+ continue;
126
+ }
127
+ // 字段表的列表项
128
+ if (line.startsWith("- ") && currentFieldsTable !== null) {
129
+ const value = line.slice(2).trim().replace(/['"]/g, "");
130
+ currentFieldNames.push(value);
131
+ continue;
132
+ }
133
+ }
134
+ // 保存最后一个字段表
135
+ if (currentFieldsTable && currentFieldNames.length > 0) {
136
+ fields[currentFieldsTable] = currentFieldNames;
137
+ }
138
+ if (!kind)
139
+ return null;
140
+ const result = { kind };
141
+ if (sections.length > 0)
142
+ result.required_sections = sections;
143
+ if (tables.length > 0)
144
+ result.required_tables = tables;
145
+ if (Object.keys(fields).length > 0)
146
+ result.required_fields = fields;
147
+ if (artifacts.length > 0)
148
+ result.required_artifacts = artifacts;
149
+ if (gaps.length > 0)
150
+ result.forbidden_gaps = gaps;
151
+ return result;
152
+ }
153
+ /**
154
+ * 从 YAML frontmatter 中解析 process_rules 字段。
155
+ */
156
+ export function parseProcessRulesFromFrontmatter(frontmatter) {
157
+ const rulesStart = frontmatter.indexOf("process_rules:");
158
+ if (rulesStart === -1)
159
+ return null;
160
+ const afterRules = frontmatter.slice(rulesStart);
161
+ const lines = afterRules.split("\n");
162
+ const result = {};
163
+ let currentOp = null;
164
+ let currentField = null;
165
+ for (const rawLine of lines) {
166
+ const line = rawLine.trim();
167
+ // 新顶层 key → 结束
168
+ if (line.length > 0 && rawLine.match(/^\S/) && !line.startsWith("process_rules:")) {
169
+ break;
170
+ }
171
+ // 操作类型(extract/review/fix/iterate:)
172
+ const opMatch = line.match(/^(extract|review|fix|iterate):$/);
173
+ if (opMatch) {
174
+ currentOp = opMatch[1];
175
+ result[currentOp] = { instructions: [], constraints: [], input_materials: [] };
176
+ currentField = null;
177
+ continue;
178
+ }
179
+ // 执行指令字段
180
+ if (line === "instructions:" && currentOp) {
181
+ currentField = "instructions";
182
+ continue;
183
+ }
184
+ // 约束字段
185
+ if (line === "constraints:" && currentOp) {
186
+ currentField = "constraints";
187
+ continue;
188
+ }
189
+ // 输入材料字段
190
+ if (line === "input_materials:" && currentOp) {
191
+ currentField = "input_materials";
192
+ continue;
193
+ }
194
+ // 列表项
195
+ if (line.startsWith("- ") && currentOp && currentField) {
196
+ const value = line.slice(2).trim().replace(/^['"]|['"]$/g, "");
197
+ result[currentOp][currentField].push(value);
198
+ }
199
+ }
200
+ return Object.keys(result).length > 0 ? result : null;
201
+ }
202
+ /**
203
+ * 解析单个模板文件的 schema 和 process_rules。
204
+ */
205
+ export function parseTemplateFile(templatePath) {
206
+ if (!fs.existsSync(templatePath))
207
+ return null;
208
+ try {
209
+ const content = fs.readFileSync(templatePath, "utf-8");
210
+ const frontmatter = extractFrontmatter(content);
211
+ const fileName = path.basename(templatePath);
212
+ // 从现有 frontmatter 提取 kind
213
+ const kindMatch = frontmatter?.match(/name:\s*(\S+)/);
214
+ if (!kindMatch)
215
+ return null;
216
+ const kindName = kindMatch[1];
217
+ // 尝试映射到 ArtifactKind(需要从模板 id 或 name 推断)
218
+ const mappedKind = mapTemplateNameToKind(kindName, fileName);
219
+ if (!mappedKind)
220
+ return null;
221
+ let artifactSchema = null;
222
+ let processRules = null;
223
+ if (frontmatter) {
224
+ artifactSchema = parseArtifactSchemaFromFrontmatter(frontmatter);
225
+ processRules = parseProcessRulesFromFrontmatter(frontmatter);
226
+ }
227
+ return {
228
+ template_file: fileName,
229
+ kind: mappedKind,
230
+ artifact_schema: artifactSchema,
231
+ process_rules: processRules,
232
+ };
233
+ }
234
+ catch (e) {
235
+ debug(`template_schema_loader: 解析模板失败 ${templatePath}: ${e}`);
236
+ return null;
237
+ }
238
+ }
239
+ /**
240
+ * 批量加载目录下所有模板的 schema。
241
+ */
242
+ export function loadTemplateSchemas(templatesDir) {
243
+ if (!fs.existsSync(templatesDir))
244
+ return [];
245
+ const results = [];
246
+ const entries = fs.readdirSync(templatesDir);
247
+ for (const entry of entries) {
248
+ if (!entry.endsWith(".md"))
249
+ continue;
250
+ const fullPath = path.join(templatesDir, entry);
251
+ const parsed = parseTemplateFile(fullPath);
252
+ if (parsed)
253
+ results.push(parsed);
254
+ }
255
+ debug(`template_schema_loader: 从 ${templatesDir} 加载 ${results.length} 个模板 schema`);
256
+ return results;
257
+ }
258
+ /**
259
+ * 将 ArtifactSchema 转换为可注册到 registry 的格式。
260
+ */
261
+ export function toArtifactSchema(parsed) {
262
+ if (!parsed.artifact_schema)
263
+ return null;
264
+ const schema = parsed.artifact_schema;
265
+ return {
266
+ kind: parsed.kind,
267
+ required_sections: schema.required_sections ?? [],
268
+ required_tables: schema.required_tables ?? [],
269
+ required_fields: schema.required_fields,
270
+ required_artifacts: schema.required_artifacts,
271
+ forbidden_gaps: schema.forbidden_gaps,
272
+ template_file: parsed.template_file,
273
+ };
274
+ }
275
+ // ── 模板名 → ArtifactKind 映射 ──
276
+ const TEMPLATE_NAME_MAP = {
277
+ "原型说明模版.md": "prototype_spec",
278
+ "架构设计模版.md": "design_doc",
279
+ "API接口规格文档模版.md": "api_spec",
280
+ "设计一致性验收报告模版.md": "verification_report",
281
+ "详细设计模版.md": "detailed_design",
282
+ "接口对接方案模版.md": "api_design",
283
+ "需求分析模版.md": "requirement_analysis",
284
+ "测试计划模版.md": "test_plan",
285
+ "切片计划模版.md": "task_breakdown",
286
+ "Bug分析模版.md": "root_cause",
287
+ "故障复盘模版.md": "incident_review",
288
+ "代码审查报告模版.md": "review_report",
289
+ "ADR模版.md": "tech_decision_record",
290
+ "迁移评估模版.md": "migration_plan",
291
+ "通用质量验收清单.md": "acceptance_checklist",
292
+ "OOD设计摘要模版.md": "domain_model",
293
+ };
294
+ function mapTemplateNameToKind(_templateName, fileName) {
295
+ // 先用文件名精确匹配
296
+ if (fileName in TEMPLATE_NAME_MAP)
297
+ return TEMPLATE_NAME_MAP[fileName];
298
+ // 再用 name 字段模糊匹配
299
+ return undefined;
300
+ }
301
+ //# sourceMappingURL=template_schema_loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template_schema_loader.js","sourceRoot":"","sources":["../../../src/engine/contracts/template_schema_loader.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,10 @@
5
5
  * 为每次 expand 生成知识注入报告,说明哪些知识被注入、
6
6
  * 哪些只能 advisory、哪些被排除以及排除原因。
7
7
  */
8
- import type { KnowledgeEntry, KnowledgeInjectionReport, KnowledgeConflict, ExclusionReason } from "../../types/index.js";
8
+ import type { KnowledgeEntry, KnowledgeInjectionReport, ArtifactSchemaInjection, KnowledgeConflict, ExclusionReason } from "../../types/index.js";
9
9
  import type { IntentRouteDecision } from "../pipeline/intent_router.js";
10
+ import type { OperationType } from "../../types/pipeline.js";
11
+ import type { TaskStage } from "../workflow/workflow_navigation_contract.js";
10
12
  import { type ConsumableAssetRef } from "../templates/consumable_asset_registry.js";
11
13
  export interface InjectionGovernanceFinding {
12
14
  severity: "hard_fail" | "advisory";
@@ -27,7 +29,7 @@ export declare function clearInjectionContractCache(): void;
27
29
  /** 门1: 过滤可索引的知识条目,排除非 active/pending_review 状态 */
28
30
  export declare function filterIndexable(entries: KnowledgeEntry[]): GateResult<KnowledgeEntry>;
29
31
  /** 门2: 过滤可注入的知识条目,按消费模式、作用域、产品、路由等条件筛选 */
30
- export declare function filterInjectable(entries: KnowledgeEntry[], routeDecision: IntentRouteDecision | undefined, scopeFilters: string[], assets: ConsumableAssetRef[], productFilters?: string[], contractRoot?: string): {
32
+ export declare function filterInjectable(entries: KnowledgeEntry[], routeDecision: IntentRouteDecision | undefined, scopeFilters: string[], assets: ConsumableAssetRef[], productFilters?: string[], contractRoot?: string, taskStage?: TaskStage): {
31
33
  injectable: KnowledgeEntry[];
32
34
  advisory: KnowledgeEntry[];
33
35
  excluded: Array<{
@@ -38,7 +40,7 @@ export declare function filterInjectable(entries: KnowledgeEntry[], routeDecisio
38
40
  indexOnlyExcludedIds: Set<string>;
39
41
  };
40
42
  /** 门3: 按优先级排序知识条目,检测冲突,在预算内裁剪 */
41
- export declare function sortByPriority(entries: KnowledgeEntry[], routeDecision: IntentRouteDecision | undefined, assets: ConsumableAssetRef[], budget: number): {
43
+ export declare function sortByPriority(entries: KnowledgeEntry[], routeDecision: IntentRouteDecision | undefined, assets: ConsumableAssetRef[], budget: number, taskStage?: TaskStage): {
42
44
  sorted: KnowledgeEntry[];
43
45
  conflicts: KnowledgeConflict[];
44
46
  dropped: Array<{
@@ -47,8 +49,23 @@ export declare function sortByPriority(entries: KnowledgeEntry[], routeDecision:
47
49
  reason: ExclusionReason;
48
50
  }>;
49
51
  };
52
+ /**
53
+ * 解析产物 Schema 和 ProcessRules 的独立注入内容。
54
+ *
55
+ * 核心设计决策:Schema 和 ProcessRules 是结构约束,不是知识。
56
+ * 它们绕过三道门的条目数/token 预算限制,作为独立注入通道。
57
+ * 无论知识注入预算是否充足,Schema 始终被注入到 prompt 中。
58
+ *
59
+ * @param outputArtifact 路由决策中的 output_artifact(含 kind 和可选 template)
60
+ * @param operationType 当前操作类型(extract/review/fix/iterate)
61
+ * @returns Schema 注入内容,无匹配产物类型时返回 null
62
+ */
63
+ export declare function resolveArtifactSchemaInjection(outputArtifact: {
64
+ kind: string;
65
+ template?: string;
66
+ } | undefined, operationType: OperationType | undefined): ArtifactSchemaInjection | null;
50
67
  /** 知识注入边界主入口,依次执行三道门并生成注入报告 */
51
- export declare function enforceKnowledgeInjectionBoundary(entries: KnowledgeEntry[], routeDecision: IntentRouteDecision | undefined, scopeFilters: string[], assets: ConsumableAssetRef[] | undefined, budget?: number, productFilters?: string[], contractRoot?: string, maxTokenBudget?: number): KnowledgeInjectionReport;
68
+ export declare function enforceKnowledgeInjectionBoundary(entries: KnowledgeEntry[], routeDecision: IntentRouteDecision | undefined, scopeFilters: string[], assets: ConsumableAssetRef[] | undefined, budget?: number, productFilters?: string[], contractRoot?: string, maxTokenBudget?: number, taskStage?: TaskStage): KnowledgeInjectionReport;
52
69
  /** 自治理验证知识注入报告的合规性 */
53
70
  export declare function validateInjectionReport(report: KnowledgeInjectionReport): InjectionGovernanceFinding[];
54
71
  /**