soloforge 1.2.19 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (719) hide show
  1. package/README.md +140 -3
  2. package/dist/adapters/claude_code/claude_md.d.ts +1 -2
  3. package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
  4. package/dist/adapters/claude_code/claude_md.js +47 -4
  5. package/dist/adapters/claude_code/claude_md.js.map +1 -1
  6. package/dist/adapters/claude_code/hooks.d.ts.map +1 -1
  7. package/dist/adapters/claude_code/hooks.js +2 -1
  8. package/dist/adapters/claude_code/hooks.js.map +1 -1
  9. package/dist/adapters/claude_code/server.js +4 -3
  10. package/dist/adapters/claude_code/server.js.map +1 -1
  11. package/dist/adapters/claude_code/tools.d.ts +255 -1
  12. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  13. package/dist/adapters/claude_code/tools.js +981 -7
  14. package/dist/adapters/claude_code/tools.js.map +1 -1
  15. package/dist/adapters/codex/codex_config.d.ts.map +1 -1
  16. package/dist/adapters/codex/codex_config.js +3 -2
  17. package/dist/adapters/codex/codex_config.js.map +1 -1
  18. package/dist/adapters/codex/codex_rules.d.ts.map +1 -1
  19. package/dist/adapters/codex/codex_rules.js +2 -1
  20. package/dist/adapters/codex/codex_rules.js.map +1 -1
  21. package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
  22. package/dist/adapters/shared/workflow_template.js +2 -1
  23. package/dist/adapters/shared/workflow_template.js.map +1 -1
  24. package/dist/adapters/trae/trae_config.d.ts +1 -6
  25. package/dist/adapters/trae/trae_config.d.ts.map +1 -1
  26. package/dist/adapters/trae/trae_config.js +3 -2
  27. package/dist/adapters/trae/trae_config.js.map +1 -1
  28. package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
  29. package/dist/adapters/trae/trae_rules.js +2 -1
  30. package/dist/adapters/trae/trae_rules.js.map +1 -1
  31. package/dist/bin/config_commands.d.ts.map +1 -1
  32. package/dist/bin/config_commands.js +34 -33
  33. package/dist/bin/config_commands.js.map +1 -1
  34. package/dist/bin/soloforge.d.ts.map +1 -1
  35. package/dist/bin/soloforge.js +1110 -157
  36. package/dist/bin/soloforge.js.map +1 -1
  37. package/dist/engine/adapter_prompt_contract.d.ts +60 -0
  38. package/dist/engine/adapter_prompt_contract.d.ts.map +1 -0
  39. package/dist/engine/adapter_prompt_contract.js +163 -0
  40. package/dist/engine/adapter_prompt_contract.js.map +1 -0
  41. package/dist/engine/architecture_design_contract.d.ts +49 -0
  42. package/dist/engine/architecture_design_contract.d.ts.map +1 -0
  43. package/dist/engine/architecture_design_contract.js +169 -0
  44. package/dist/engine/architecture_design_contract.js.map +1 -0
  45. package/dist/engine/artifact_contract_registry.d.ts.map +1 -1
  46. package/dist/engine/artifact_contract_registry.js +7 -14
  47. package/dist/engine/artifact_contract_registry.js.map +1 -1
  48. package/dist/engine/{batch1_manifest.d.ts → asset_manifest.d.ts} +8 -8
  49. package/dist/engine/asset_manifest.d.ts.map +1 -0
  50. package/dist/engine/{batch1_manifest.js → asset_manifest.js} +52 -9
  51. package/dist/engine/asset_manifest.js.map +1 -0
  52. package/dist/engine/audit_pool.d.ts.map +1 -1
  53. package/dist/engine/audit_pool.js +6 -4
  54. package/dist/engine/audit_pool.js.map +1 -1
  55. package/dist/engine/audit_sampler.d.ts.map +1 -1
  56. package/dist/engine/audit_sampler.js +2 -1
  57. package/dist/engine/audit_sampler.js.map +1 -1
  58. package/dist/engine/audit_verifier.d.ts.map +1 -1
  59. package/dist/engine/audit_verifier.js +5 -4
  60. package/dist/engine/audit_verifier.js.map +1 -1
  61. package/dist/engine/brainstorm_contract.d.ts +46 -0
  62. package/dist/engine/brainstorm_contract.d.ts.map +1 -0
  63. package/dist/engine/brainstorm_contract.js +136 -0
  64. package/dist/engine/brainstorm_contract.js.map +1 -0
  65. package/dist/engine/capability_action_advisor.d.ts.map +1 -1
  66. package/dist/engine/capability_action_advisor.js +8 -7
  67. package/dist/engine/capability_action_advisor.js.map +1 -1
  68. package/dist/engine/capability_registry.d.ts.map +1 -1
  69. package/dist/engine/capability_registry.js +0 -7
  70. package/dist/engine/capability_registry.js.map +1 -1
  71. package/dist/engine/capability_state_store.d.ts.map +1 -1
  72. package/dist/engine/capability_state_store.js +7 -6
  73. package/dist/engine/capability_state_store.js.map +1 -1
  74. package/dist/engine/change_coordinator.d.ts.map +1 -1
  75. package/dist/engine/change_coordinator.js +4 -3
  76. package/dist/engine/change_coordinator.js.map +1 -1
  77. package/dist/engine/chinese_semantic_priority.d.ts +62 -0
  78. package/dist/engine/chinese_semantic_priority.d.ts.map +1 -0
  79. package/dist/engine/chinese_semantic_priority.js +153 -0
  80. package/dist/engine/chinese_semantic_priority.js.map +1 -0
  81. package/dist/engine/coding_readiness_gate.d.ts +46 -0
  82. package/dist/engine/coding_readiness_gate.d.ts.map +1 -0
  83. package/dist/engine/coding_readiness_gate.js +175 -0
  84. package/dist/engine/coding_readiness_gate.js.map +1 -0
  85. package/dist/engine/cognitive_anchor.d.ts.map +1 -1
  86. package/dist/engine/cognitive_anchor.js +7 -6
  87. package/dist/engine/cognitive_anchor.js.map +1 -1
  88. package/dist/engine/command_execution_contract.d.ts.map +1 -1
  89. package/dist/engine/command_execution_contract.js +13 -12
  90. package/dist/engine/command_execution_contract.js.map +1 -1
  91. package/dist/engine/confidence_scorer.d.ts.map +1 -1
  92. package/dist/engine/confidence_scorer.js +2 -1
  93. package/dist/engine/confidence_scorer.js.map +1 -1
  94. package/dist/engine/config_precedence_contract.d.ts.map +1 -1
  95. package/dist/engine/config_precedence_contract.js +9 -8
  96. package/dist/engine/config_precedence_contract.js.map +1 -1
  97. package/dist/engine/conflict_gate.d.ts.map +1 -1
  98. package/dist/engine/conflict_gate.js +4 -3
  99. package/dist/engine/conflict_gate.js.map +1 -1
  100. package/dist/engine/consumable_asset_registry.d.ts +4 -0
  101. package/dist/engine/consumable_asset_registry.d.ts.map +1 -1
  102. package/dist/engine/consumable_asset_registry.js +307 -0
  103. package/dist/engine/consumable_asset_registry.js.map +1 -1
  104. package/dist/engine/consumption_trace_store.d.ts +50 -0
  105. package/dist/engine/consumption_trace_store.d.ts.map +1 -0
  106. package/dist/engine/consumption_trace_store.js +84 -0
  107. package/dist/engine/consumption_trace_store.js.map +1 -0
  108. package/dist/engine/contract_guard.d.ts.map +1 -1
  109. package/dist/engine/contract_guard.js +7 -6
  110. package/dist/engine/contract_guard.js.map +1 -1
  111. package/dist/engine/contract_registry.d.ts +113 -0
  112. package/dist/engine/contract_registry.d.ts.map +1 -0
  113. package/dist/engine/contract_registry.js +1632 -0
  114. package/dist/engine/contract_registry.js.map +1 -0
  115. package/dist/engine/contract_state_store.d.ts +67 -0
  116. package/dist/engine/contract_state_store.d.ts.map +1 -0
  117. package/dist/engine/contract_state_store.js +167 -0
  118. package/dist/engine/contract_state_store.js.map +1 -0
  119. package/dist/engine/convention_detector.d.ts.map +1 -1
  120. package/dist/engine/convention_detector.js +4 -3
  121. package/dist/engine/convention_detector.js.map +1 -1
  122. package/dist/engine/core_engineering_principles.d.ts.map +1 -1
  123. package/dist/engine/core_engineering_principles.js +4 -14
  124. package/dist/engine/core_engineering_principles.js.map +1 -1
  125. package/dist/engine/core_experience_principle.d.ts +194 -0
  126. package/dist/engine/core_experience_principle.d.ts.map +1 -0
  127. package/dist/engine/core_experience_principle.js +349 -0
  128. package/dist/engine/core_experience_principle.js.map +1 -0
  129. package/dist/engine/debt_reporter.d.ts.map +1 -1
  130. package/dist/engine/debt_reporter.js +3 -2
  131. package/dist/engine/debt_reporter.js.map +1 -1
  132. package/dist/engine/debt_tracker.d.ts.map +1 -1
  133. package/dist/engine/debt_tracker.js +8 -7
  134. package/dist/engine/debt_tracker.js.map +1 -1
  135. package/dist/engine/debug_log.d.ts +4 -1
  136. package/dist/engine/debug_log.d.ts.map +1 -1
  137. package/dist/engine/debug_log.js +4 -6
  138. package/dist/engine/debug_log.js.map +1 -1
  139. package/dist/engine/debugger.d.ts.map +1 -1
  140. package/dist/engine/debugger.js +33 -3
  141. package/dist/engine/debugger.js.map +1 -1
  142. package/dist/engine/decision_contract.d.ts.map +1 -1
  143. package/dist/engine/decision_contract.js +4 -3
  144. package/dist/engine/decision_contract.js.map +1 -1
  145. package/dist/engine/degradation.d.ts +58 -0
  146. package/dist/engine/degradation.d.ts.map +1 -0
  147. package/dist/engine/degradation.js +74 -0
  148. package/dist/engine/degradation.js.map +1 -0
  149. package/dist/engine/delivery.d.ts.map +1 -1
  150. package/dist/engine/delivery.js +16 -15
  151. package/dist/engine/delivery.js.map +1 -1
  152. package/dist/engine/delivery_readiness.d.ts +70 -0
  153. package/dist/engine/delivery_readiness.d.ts.map +1 -0
  154. package/dist/engine/delivery_readiness.js +198 -0
  155. package/dist/engine/delivery_readiness.js.map +1 -0
  156. package/dist/engine/dependency_scanner.d.ts.map +1 -1
  157. package/dist/engine/dependency_scanner.js +6 -5
  158. package/dist/engine/dependency_scanner.js.map +1 -1
  159. package/dist/engine/deprecated_contract.d.ts +21 -0
  160. package/dist/engine/deprecated_contract.d.ts.map +1 -0
  161. package/dist/engine/deprecated_contract.js +14 -0
  162. package/dist/engine/deprecated_contract.js.map +1 -0
  163. package/dist/engine/detail_discipline.d.ts +40 -0
  164. package/dist/engine/detail_discipline.d.ts.map +1 -0
  165. package/dist/engine/detail_discipline.js +107 -0
  166. package/dist/engine/detail_discipline.js.map +1 -0
  167. package/dist/engine/developer_sovereignty.d.ts.map +1 -1
  168. package/dist/engine/developer_sovereignty.js +6 -5
  169. package/dist/engine/developer_sovereignty.js.map +1 -1
  170. package/dist/engine/diagnostic_registry.d.ts +64 -0
  171. package/dist/engine/diagnostic_registry.d.ts.map +1 -0
  172. package/dist/engine/diagnostic_registry.js +176 -0
  173. package/dist/engine/diagnostic_registry.js.map +1 -0
  174. package/dist/engine/diff_ownership.d.ts.map +1 -1
  175. package/dist/engine/diff_ownership.js +9 -8
  176. package/dist/engine/diff_ownership.js.map +1 -1
  177. package/dist/engine/diff_ownership_store.d.ts.map +1 -1
  178. package/dist/engine/diff_ownership_store.js +8 -7
  179. package/dist/engine/diff_ownership_store.js.map +1 -1
  180. package/dist/engine/documentation_governance.d.ts +55 -0
  181. package/dist/engine/documentation_governance.d.ts.map +1 -0
  182. package/dist/engine/documentation_governance.js +249 -0
  183. package/dist/engine/documentation_governance.js.map +1 -0
  184. package/dist/engine/dual_layer_mechanism_registry.d.ts +6 -4
  185. package/dist/engine/dual_layer_mechanism_registry.d.ts.map +1 -1
  186. package/dist/engine/dual_layer_mechanism_registry.js +731 -11
  187. package/dist/engine/dual_layer_mechanism_registry.js.map +1 -1
  188. package/dist/engine/enforcement_guard.d.ts +84 -0
  189. package/dist/engine/enforcement_guard.d.ts.map +1 -0
  190. package/dist/engine/enforcement_guard.js +319 -0
  191. package/dist/engine/enforcement_guard.js.map +1 -0
  192. package/dist/engine/escape_report.d.ts.map +1 -1
  193. package/dist/engine/escape_report.js +4 -3
  194. package/dist/engine/escape_report.js.map +1 -1
  195. package/dist/engine/evolution_regression_gate.d.ts +42 -0
  196. package/dist/engine/evolution_regression_gate.d.ts.map +1 -0
  197. package/dist/engine/evolution_regression_gate.js +159 -0
  198. package/dist/engine/evolution_regression_gate.js.map +1 -0
  199. package/dist/engine/existing_system_analysis.d.ts +37 -0
  200. package/dist/engine/existing_system_analysis.d.ts.map +1 -0
  201. package/dist/engine/existing_system_analysis.js +151 -0
  202. package/dist/engine/existing_system_analysis.js.map +1 -0
  203. package/dist/engine/exploration.d.ts.map +1 -1
  204. package/dist/engine/exploration.js +7 -6
  205. package/dist/engine/exploration.js.map +1 -1
  206. package/dist/engine/extension_contract.d.ts +50 -0
  207. package/dist/engine/extension_contract.d.ts.map +1 -0
  208. package/dist/engine/extension_contract.js +158 -0
  209. package/dist/engine/extension_contract.js.map +1 -0
  210. package/dist/engine/extension_platform_contracts.d.ts +712 -0
  211. package/dist/engine/extension_platform_contracts.d.ts.map +1 -0
  212. package/dist/engine/extension_platform_contracts.js +42 -0
  213. package/dist/engine/extension_platform_contracts.js.map +1 -0
  214. package/dist/engine/extension_scenario_registry.d.ts +30 -0
  215. package/dist/engine/extension_scenario_registry.d.ts.map +1 -0
  216. package/dist/engine/extension_scenario_registry.js +976 -0
  217. package/dist/engine/extension_scenario_registry.js.map +1 -0
  218. package/dist/engine/failure_classifier.d.ts.map +1 -1
  219. package/dist/engine/failure_classifier.js +9 -8
  220. package/dist/engine/failure_classifier.js.map +1 -1
  221. package/dist/engine/failure_report.d.ts +74 -0
  222. package/dist/engine/failure_report.d.ts.map +1 -0
  223. package/dist/engine/failure_report.js +143 -0
  224. package/dist/engine/failure_report.js.map +1 -0
  225. package/dist/engine/feasibility_checker.d.ts.map +1 -1
  226. package/dist/engine/feasibility_checker.js +5 -4
  227. package/dist/engine/feasibility_checker.js.map +1 -1
  228. package/dist/engine/first_principles.d.ts +35 -0
  229. package/dist/engine/first_principles.d.ts.map +1 -0
  230. package/dist/engine/first_principles.js +128 -0
  231. package/dist/engine/first_principles.js.map +1 -0
  232. package/dist/engine/{batch1_scenario_registry.d.ts → foundation_scenario_registry.d.ts} +15 -15
  233. package/dist/engine/foundation_scenario_registry.d.ts.map +1 -0
  234. package/dist/engine/{batch1_scenario_registry.js → foundation_scenario_registry.js} +22 -25
  235. package/dist/engine/foundation_scenario_registry.js.map +1 -0
  236. package/dist/engine/{batch1_scenario_runners.d.ts → foundation_scenario_runners.d.ts} +1 -1
  237. package/dist/engine/foundation_scenario_runners.d.ts.map +1 -0
  238. package/dist/engine/{batch1_scenario_runners.js → foundation_scenario_runners.js} +8 -7
  239. package/dist/engine/foundation_scenario_runners.js.map +1 -0
  240. package/dist/engine/git_deps.d.ts.map +1 -1
  241. package/dist/engine/git_deps.js +2 -1
  242. package/dist/engine/git_deps.js.map +1 -1
  243. package/dist/engine/governance_report.d.ts +9 -1
  244. package/dist/engine/governance_report.d.ts.map +1 -1
  245. package/dist/engine/governance_report.js +25 -10
  246. package/dist/engine/governance_report.js.map +1 -1
  247. package/dist/engine/impact_analyzer.d.ts.map +1 -1
  248. package/dist/engine/impact_analyzer.js +5 -4
  249. package/dist/engine/impact_analyzer.js.map +1 -1
  250. package/dist/engine/implementation_roadmap_registry.d.ts +1 -1
  251. package/dist/engine/implementation_roadmap_registry.d.ts.map +1 -1
  252. package/dist/engine/implementation_roadmap_registry.js +237 -92
  253. package/dist/engine/implementation_roadmap_registry.js.map +1 -1
  254. package/dist/engine/input_material_contract_registry.d.ts.map +1 -1
  255. package/dist/engine/input_material_contract_registry.js +4 -3
  256. package/dist/engine/input_material_contract_registry.js.map +1 -1
  257. package/dist/engine/instruction_contract.d.ts +68 -0
  258. package/dist/engine/instruction_contract.d.ts.map +1 -0
  259. package/dist/engine/instruction_contract.js +123 -0
  260. package/dist/engine/instruction_contract.js.map +1 -0
  261. package/dist/engine/intent_expander.d.ts.map +1 -1
  262. package/dist/engine/intent_expander.js +339 -1
  263. package/dist/engine/intent_expander.js.map +1 -1
  264. package/dist/engine/intent_router.d.ts +11 -2
  265. package/dist/engine/intent_router.d.ts.map +1 -1
  266. package/dist/engine/intent_router.js +121 -1
  267. package/dist/engine/intent_router.js.map +1 -1
  268. package/dist/engine/intent_signal_extractor.d.ts +3 -0
  269. package/dist/engine/intent_signal_extractor.d.ts.map +1 -1
  270. package/dist/engine/intent_signal_extractor.js +49 -0
  271. package/dist/engine/intent_signal_extractor.js.map +1 -1
  272. package/dist/engine/io_controller.d.ts.map +1 -1
  273. package/dist/engine/io_controller.js +8 -7
  274. package/dist/engine/io_controller.js.map +1 -1
  275. package/dist/engine/java_quality_guard.d.ts.map +1 -1
  276. package/dist/engine/java_quality_guard.js +5 -18
  277. package/dist/engine/java_quality_guard.js.map +1 -1
  278. package/dist/engine/job_manager.d.ts.map +1 -1
  279. package/dist/engine/job_manager.js +8 -7
  280. package/dist/engine/job_manager.js.map +1 -1
  281. package/dist/engine/knowledge_acceptance_registry.d.ts +35 -0
  282. package/dist/engine/knowledge_acceptance_registry.d.ts.map +1 -0
  283. package/dist/engine/knowledge_acceptance_registry.js +271 -0
  284. package/dist/engine/knowledge_acceptance_registry.js.map +1 -0
  285. package/dist/engine/knowledge_asset_audit.d.ts +65 -0
  286. package/dist/engine/knowledge_asset_audit.d.ts.map +1 -0
  287. package/dist/engine/knowledge_asset_audit.js +230 -0
  288. package/dist/engine/knowledge_asset_audit.js.map +1 -0
  289. package/dist/engine/knowledge_asset_consumer.d.ts +150 -0
  290. package/dist/engine/knowledge_asset_consumer.d.ts.map +1 -0
  291. package/dist/engine/knowledge_asset_consumer.js +279 -0
  292. package/dist/engine/knowledge_asset_consumer.js.map +1 -0
  293. package/dist/engine/knowledge_asset_generation_gate.d.ts +38 -0
  294. package/dist/engine/knowledge_asset_generation_gate.d.ts.map +1 -0
  295. package/dist/engine/knowledge_asset_generation_gate.js +131 -0
  296. package/dist/engine/knowledge_asset_generation_gate.js.map +1 -0
  297. package/dist/engine/knowledge_asset_migration.d.ts +117 -0
  298. package/dist/engine/knowledge_asset_migration.d.ts.map +1 -0
  299. package/dist/engine/knowledge_asset_migration.js +204 -0
  300. package/dist/engine/knowledge_asset_migration.js.map +1 -0
  301. package/dist/engine/knowledge_asset_schema.d.ts +97 -0
  302. package/dist/engine/knowledge_asset_schema.d.ts.map +1 -0
  303. package/dist/engine/knowledge_asset_schema.js +413 -0
  304. package/dist/engine/knowledge_asset_schema.js.map +1 -0
  305. package/dist/engine/knowledge_config_loader.d.ts.map +1 -1
  306. package/dist/engine/knowledge_config_loader.js +5 -4
  307. package/dist/engine/knowledge_config_loader.js.map +1 -1
  308. package/dist/engine/knowledge_consumption_snapshot.d.ts +91 -0
  309. package/dist/engine/knowledge_consumption_snapshot.d.ts.map +1 -0
  310. package/dist/engine/knowledge_consumption_snapshot.js +113 -0
  311. package/dist/engine/knowledge_consumption_snapshot.js.map +1 -0
  312. package/dist/engine/knowledge_evolution.d.ts +82 -0
  313. package/dist/engine/knowledge_evolution.d.ts.map +1 -0
  314. package/dist/engine/knowledge_evolution.js +272 -0
  315. package/dist/engine/knowledge_evolution.js.map +1 -0
  316. package/dist/engine/knowledge_lifecycle.d.ts +83 -0
  317. package/dist/engine/knowledge_lifecycle.d.ts.map +1 -0
  318. package/dist/engine/knowledge_lifecycle.js +247 -0
  319. package/dist/engine/knowledge_lifecycle.js.map +1 -0
  320. package/dist/engine/knowledge_manager.d.ts.map +1 -1
  321. package/dist/engine/knowledge_manager.js +9 -8
  322. package/dist/engine/knowledge_manager.js.map +1 -1
  323. package/dist/engine/knowledge_scenario_registry.d.ts +21 -0
  324. package/dist/engine/knowledge_scenario_registry.d.ts.map +1 -0
  325. package/dist/engine/knowledge_scenario_registry.js +337 -0
  326. package/dist/engine/knowledge_scenario_registry.js.map +1 -0
  327. package/dist/engine/knowledge_sovereignty.d.ts.map +1 -1
  328. package/dist/engine/knowledge_sovereignty.js +5 -4
  329. package/dist/engine/knowledge_sovereignty.js.map +1 -1
  330. package/dist/engine/knowledge_template_contracts.d.ts +244 -0
  331. package/dist/engine/knowledge_template_contracts.d.ts.map +1 -0
  332. package/dist/engine/knowledge_template_contracts.js +26 -0
  333. package/dist/engine/knowledge_template_contracts.js.map +1 -0
  334. package/dist/engine/language_policy.d.ts +78 -0
  335. package/dist/engine/language_policy.d.ts.map +1 -0
  336. package/dist/engine/language_policy.js +139 -0
  337. package/dist/engine/language_policy.js.map +1 -0
  338. package/dist/engine/language_policy_contract.d.ts +52 -0
  339. package/dist/engine/language_policy_contract.d.ts.map +1 -0
  340. package/dist/engine/language_policy_contract.js +78 -0
  341. package/dist/engine/language_policy_contract.js.map +1 -0
  342. package/dist/engine/llm_gateway.d.ts.map +1 -1
  343. package/dist/engine/llm_gateway.js +10 -9
  344. package/dist/engine/llm_gateway.js.map +1 -1
  345. package/dist/engine/local_docker_acceptance.d.ts +94 -0
  346. package/dist/engine/local_docker_acceptance.d.ts.map +1 -0
  347. package/dist/engine/local_docker_acceptance.js +312 -0
  348. package/dist/engine/local_docker_acceptance.js.map +1 -0
  349. package/dist/engine/logger.d.ts +64 -0
  350. package/dist/engine/logger.d.ts.map +1 -0
  351. package/dist/engine/logger.js +115 -0
  352. package/dist/engine/logger.js.map +1 -0
  353. package/dist/engine/main_path_integration_contract.d.ts.map +1 -1
  354. package/dist/engine/main_path_integration_contract.js +43 -42
  355. package/dist/engine/main_path_integration_contract.js.map +1 -1
  356. package/dist/engine/mechanism_contract_registry.d.ts.map +1 -1
  357. package/dist/engine/mechanism_contract_registry.js +448 -17
  358. package/dist/engine/mechanism_contract_registry.js.map +1 -1
  359. package/dist/engine/mechanism_family_registry.d.ts +48 -0
  360. package/dist/engine/mechanism_family_registry.d.ts.map +1 -0
  361. package/dist/engine/mechanism_family_registry.js +197 -0
  362. package/dist/engine/mechanism_family_registry.js.map +1 -0
  363. package/dist/engine/metric_governance.d.ts +51 -0
  364. package/dist/engine/metric_governance.d.ts.map +1 -0
  365. package/dist/engine/metric_governance.js +138 -0
  366. package/dist/engine/metric_governance.js.map +1 -0
  367. package/dist/engine/migration_guard.d.ts.map +1 -1
  368. package/dist/engine/migration_guard.js +6 -5
  369. package/dist/engine/migration_guard.js.map +1 -1
  370. package/dist/engine/mutation_audit.d.ts.map +1 -1
  371. package/dist/engine/mutation_audit.js +6 -5
  372. package/dist/engine/mutation_audit.js.map +1 -1
  373. package/dist/engine/observability.d.ts +11 -0
  374. package/dist/engine/observability.d.ts.map +1 -1
  375. package/dist/engine/observability.js +60 -8
  376. package/dist/engine/observability.js.map +1 -1
  377. package/dist/engine/onboarding.d.ts.map +1 -1
  378. package/dist/engine/onboarding.js +17 -16
  379. package/dist/engine/onboarding.js.map +1 -1
  380. package/dist/engine/plan_proposal_gate.d.ts +131 -0
  381. package/dist/engine/plan_proposal_gate.d.ts.map +1 -0
  382. package/dist/engine/plan_proposal_gate.js +340 -0
  383. package/dist/engine/plan_proposal_gate.js.map +1 -0
  384. package/dist/engine/platform_context.d.ts +44 -0
  385. package/dist/engine/platform_context.d.ts.map +1 -0
  386. package/dist/engine/platform_context.js +165 -0
  387. package/dist/engine/platform_context.js.map +1 -0
  388. package/dist/engine/policy_drift_detector.d.ts +20 -0
  389. package/dist/engine/policy_drift_detector.d.ts.map +1 -1
  390. package/dist/engine/policy_drift_detector.js +85 -5
  391. package/dist/engine/policy_drift_detector.js.map +1 -1
  392. package/dist/engine/regression_matrix.d.ts.map +1 -1
  393. package/dist/engine/regression_matrix.js +15 -14
  394. package/dist/engine/regression_matrix.js.map +1 -1
  395. package/dist/engine/release_compatibility.d.ts +62 -0
  396. package/dist/engine/release_compatibility.d.ts.map +1 -0
  397. package/dist/engine/release_compatibility.js +145 -0
  398. package/dist/engine/release_compatibility.js.map +1 -0
  399. package/dist/engine/release_gate.d.ts +29 -0
  400. package/dist/engine/release_gate.d.ts.map +1 -0
  401. package/dist/engine/release_gate.js +675 -0
  402. package/dist/engine/release_gate.js.map +1 -0
  403. package/dist/engine/release_gate_scenario_registry.d.ts +50 -0
  404. package/dist/engine/release_gate_scenario_registry.d.ts.map +1 -0
  405. package/dist/engine/release_gate_scenario_registry.js +514 -0
  406. package/dist/engine/release_gate_scenario_registry.js.map +1 -0
  407. package/dist/engine/release_readiness_gate.d.ts +36 -0
  408. package/dist/engine/release_readiness_gate.d.ts.map +1 -0
  409. package/dist/engine/release_readiness_gate.js +1050 -0
  410. package/dist/engine/release_readiness_gate.js.map +1 -0
  411. package/dist/engine/retention_policy.d.ts +46 -0
  412. package/dist/engine/retention_policy.d.ts.map +1 -0
  413. package/dist/engine/retention_policy.js +124 -0
  414. package/dist/engine/retention_policy.js.map +1 -0
  415. package/dist/engine/risk_sampler.d.ts.map +1 -1
  416. package/dist/engine/risk_sampler.js +4 -3
  417. package/dist/engine/risk_sampler.js.map +1 -1
  418. package/dist/engine/runtime_safety.d.ts.map +1 -1
  419. package/dist/engine/runtime_safety.js +18 -17
  420. package/dist/engine/runtime_safety.js.map +1 -1
  421. package/dist/engine/scaffolder.d.ts.map +1 -1
  422. package/dist/engine/scaffolder.js +4 -3
  423. package/dist/engine/scaffolder.js.map +1 -1
  424. package/dist/engine/scope_lease.d.ts.map +1 -1
  425. package/dist/engine/scope_lease.js +4 -3
  426. package/dist/engine/scope_lease.js.map +1 -1
  427. package/dist/engine/semantic_evidence.d.ts.map +1 -1
  428. package/dist/engine/semantic_evidence.js +4 -3
  429. package/dist/engine/semantic_evidence.js.map +1 -1
  430. package/dist/engine/state_fact_classifier.d.ts +47 -0
  431. package/dist/engine/state_fact_classifier.d.ts.map +1 -0
  432. package/dist/engine/state_fact_classifier.js +158 -0
  433. package/dist/engine/state_fact_classifier.js.map +1 -0
  434. package/dist/engine/state_update_bypass.d.ts +19 -0
  435. package/dist/engine/state_update_bypass.d.ts.map +1 -0
  436. package/dist/engine/state_update_bypass.js +17 -0
  437. package/dist/engine/state_update_bypass.js.map +1 -0
  438. package/dist/engine/task_context.d.ts +25 -3
  439. package/dist/engine/task_context.d.ts.map +1 -1
  440. package/dist/engine/task_context.js +132 -35
  441. package/dist/engine/task_context.js.map +1 -1
  442. package/dist/engine/task_planner.d.ts.map +1 -1
  443. package/dist/engine/task_planner.js +6 -5
  444. package/dist/engine/task_planner.js.map +1 -1
  445. package/dist/engine/team_awareness.d.ts.map +1 -1
  446. package/dist/engine/team_awareness.js +2 -1
  447. package/dist/engine/team_awareness.js.map +1 -1
  448. package/dist/engine/technology_decision.d.ts +38 -0
  449. package/dist/engine/technology_decision.d.ts.map +1 -0
  450. package/dist/engine/technology_decision.js +120 -0
  451. package/dist/engine/technology_decision.js.map +1 -0
  452. package/dist/engine/template_manifest_io.d.ts +47 -0
  453. package/dist/engine/template_manifest_io.d.ts.map +1 -0
  454. package/dist/engine/template_manifest_io.js +151 -0
  455. package/dist/engine/template_manifest_io.js.map +1 -0
  456. package/dist/engine/template_mechanism_auditor.d.ts.map +1 -1
  457. package/dist/engine/template_mechanism_auditor.js +5 -4
  458. package/dist/engine/template_mechanism_auditor.js.map +1 -1
  459. package/dist/engine/template_sync.d.ts +98 -0
  460. package/dist/engine/template_sync.d.ts.map +1 -0
  461. package/dist/engine/template_sync.js +355 -0
  462. package/dist/engine/template_sync.js.map +1 -0
  463. package/dist/engine/test_generator.d.ts.map +1 -1
  464. package/dist/engine/test_generator.js +5 -4
  465. package/dist/engine/test_generator.js.map +1 -1
  466. package/dist/engine/test_quality.d.ts.map +1 -1
  467. package/dist/engine/test_quality.js +5 -4
  468. package/dist/engine/test_quality.js.map +1 -1
  469. package/dist/engine/test_strategy.d.ts +58 -0
  470. package/dist/engine/test_strategy.d.ts.map +1 -0
  471. package/dist/engine/test_strategy.js +93 -0
  472. package/dist/engine/test_strategy.js.map +1 -0
  473. package/dist/engine/tool_invocation_contract_registry.d.ts.map +1 -1
  474. package/dist/engine/tool_invocation_contract_registry.js +43 -32
  475. package/dist/engine/tool_invocation_contract_registry.js.map +1 -1
  476. package/dist/engine/traceability.d.ts.map +1 -1
  477. package/dist/engine/traceability.js +6 -5
  478. package/dist/engine/traceability.js.map +1 -1
  479. package/dist/engine/user_feedback_contract.d.ts.map +1 -1
  480. package/dist/engine/user_feedback_contract.js +81 -19
  481. package/dist/engine/user_feedback_contract.js.map +1 -1
  482. package/dist/engine/user_promise.d.ts +67 -0
  483. package/dist/engine/user_promise.d.ts.map +1 -0
  484. package/dist/engine/user_promise.js +436 -0
  485. package/dist/engine/user_promise.js.map +1 -0
  486. package/dist/engine/verification_contract.d.ts +132 -0
  487. package/dist/engine/verification_contract.d.ts.map +1 -0
  488. package/dist/engine/verification_contract.js +296 -0
  489. package/dist/engine/verification_contract.js.map +1 -0
  490. package/dist/engine/verifier.d.ts +6 -10
  491. package/dist/engine/verifier.d.ts.map +1 -1
  492. package/dist/engine/verifier.js +149 -1
  493. package/dist/engine/verifier.js.map +1 -1
  494. package/dist/engine/workflow_contract_registry.d.ts.map +1 -1
  495. package/dist/engine/workflow_contract_registry.js +127 -10
  496. package/dist/engine/workflow_contract_registry.js.map +1 -1
  497. package/dist/engine/workflow_template_pack.d.ts +71 -0
  498. package/dist/engine/workflow_template_pack.d.ts.map +1 -0
  499. package/dist/engine/workflow_template_pack.js +246 -0
  500. package/dist/engine/workflow_template_pack.js.map +1 -0
  501. package/dist/engine/workspace_lease.d.ts +69 -0
  502. package/dist/engine/workspace_lease.d.ts.map +1 -0
  503. package/dist/engine/workspace_lease.js +153 -0
  504. package/dist/engine/workspace_lease.js.map +1 -0
  505. package/dist/engine/workspace_resumer.d.ts.map +1 -1
  506. package/dist/engine/workspace_resumer.js +9 -8
  507. package/dist/engine/workspace_resumer.js.map +1 -1
  508. package/dist/engine/zero_config_init.d.ts.map +1 -1
  509. package/dist/engine/zero_config_init.js +16 -15
  510. package/dist/engine/zero_config_init.js.map +1 -1
  511. package/dist/git/operations.d.ts.map +1 -1
  512. package/dist/git/operations.js +18 -17
  513. package/dist/git/operations.js.map +1 -1
  514. package/dist/index.js +10 -9
  515. package/dist/index.js.map +1 -1
  516. package/dist/knowledge/conflict_detector.d.ts.map +1 -1
  517. package/dist/knowledge/conflict_detector.js +2 -1
  518. package/dist/knowledge/conflict_detector.js.map +1 -1
  519. package/dist/knowledge/health_checker.d.ts.map +1 -1
  520. package/dist/knowledge/health_checker.js +5 -4
  521. package/dist/knowledge/health_checker.js.map +1 -1
  522. package/dist/knowledge/index_manager.js +4 -4
  523. package/dist/knowledge/index_manager.js.map +1 -1
  524. package/dist/knowledge/loader.d.ts.map +1 -1
  525. package/dist/knowledge/loader.js +20 -14
  526. package/dist/knowledge/loader.js.map +1 -1
  527. package/dist/knowledge/writer.d.ts.map +1 -1
  528. package/dist/knowledge/writer.js +7 -6
  529. package/dist/knowledge/writer.js.map +1 -1
  530. package/dist/types.d.ts +34 -2
  531. package/dist/types.d.ts.map +1 -1
  532. package/package.json +13 -4
  533. package/templates/knowledge/acceptance_templates/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +27 -3
  534. package/templates/knowledge/acceptance_templates/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +27 -3
  535. package/templates/knowledge/acceptance_templates//345/211/215/347/253/257/351/241/265/351/235/242/351/252/214/346/224/266/346/270/205/345/215/225.md +30 -3
  536. package/templates/knowledge/acceptance_templates//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +31 -3
  537. package/templates/knowledge/acceptance_templates//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md +29 -3
  538. package/templates/knowledge/acceptance_templates//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md +27 -3
  539. package/templates/knowledge/acceptance_templates//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md +27 -3
  540. package/templates/knowledge/acceptance_templates//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 +30 -3
  541. package/templates/knowledge/acceptance_templates//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210/346/250/241/347/211/210.md +26 -3
  542. package/templates/knowledge/acceptance_templates//346/216/245/345/217/243/350/256/276/350/256/241/346/250/241/347/211/210.md +27 -3
  543. package/templates/knowledge/acceptance_templates//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md +28 -3
  544. package/templates/knowledge/acceptance_templates//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/346/226/271/346/241/210/346/250/241/347/211/210.md +26 -3
  545. package/templates/knowledge/acceptance_templates//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/351/252/214/346/224/266/346/270/205/345/215/225.md +31 -3
  546. package/templates/knowledge/acceptance_templates//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +27 -3
  547. package/templates/knowledge/acceptance_templates//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md +27 -3
  548. package/templates/knowledge/acceptance_templates//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md +26 -3
  549. package/templates/knowledge/acceptance_templates//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md +27 -3
  550. package/templates/knowledge/acceptance_templates//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +30 -3
  551. package/templates/knowledge/acceptance_templates//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +27 -3
  552. package/templates/knowledge/acceptance_templates//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md +27 -3
  553. package/templates/knowledge/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 +29 -0
  554. package/templates/knowledge/checklists//344/274/232/350/257/235/346/201/242/345/244/215.md +30 -8
  555. package/templates/knowledge/checklists//345/267/245/344/275/234/346/265/201/351/252/214/346/224/266/346/270/205/345/215/225.md +30 -0
  556. package/templates/knowledge/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 +29 -0
  557. package/templates/knowledge/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 +30 -0
  558. package/templates/knowledge/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +29 -0
  559. package/templates/knowledge/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +29 -0
  560. package/templates/knowledge/domain//345/244/232/347/247/237/346/210/267.md +28 -3
  561. package/templates/knowledge/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +27 -3
  562. package/templates/knowledge/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +30 -3
  563. package/templates/knowledge/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +32 -3
  564. package/templates/knowledge/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +31 -3
  565. package/templates/knowledge/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +31 -3
  566. package/templates/knowledge/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +28 -3
  567. package/templates/knowledge/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +30 -3
  568. package/templates/knowledge/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +31 -3
  569. package/templates/knowledge/patterns/core/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +24 -7
  570. package/templates/knowledge/patterns/core/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +25 -7
  571. package/templates/knowledge/patterns/core/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +24 -7
  572. package/templates/knowledge/patterns/core//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 +24 -7
  573. package/templates/knowledge/patterns/core//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +25 -7
  574. package/templates/knowledge/patterns/core//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 +24 -7
  575. package/templates/knowledge/patterns/core//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +25 -7
  576. package/templates/knowledge/patterns/core//345/206/262/347/252/201/351/227/250/347/246/201.md +24 -7
  577. package/templates/knowledge/patterns/core//345/206/263/347/255/226/347/275/221/345/205/263.md +26 -7
  578. package/templates/knowledge/patterns/core//345/217/230/345/274/202/345/256/241/350/256/241.md +25 -7
  579. package/templates/knowledge/patterns/core//345/233/236/345/275/222/347/237/251/351/230/265.md +24 -7
  580. package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +24 -7
  581. package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +24 -7
  582. package/templates/knowledge/patterns/core//345/271/266/345/217/221/351/224/201.md +26 -7
  583. package/templates/knowledge/patterns/core//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +26 -7
  584. package/templates/knowledge/patterns/core//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +24 -7
  585. package/templates/knowledge/patterns/core//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +25 -7
  586. package/templates/knowledge/patterns/core//346/265/201/345/274/217/345/277/203/350/267/263.md +25 -7
  587. package/templates/knowledge/patterns/core//347/237/245/350/257/206/344/270/273/346/235/203.md +25 -7
  588. package/templates/knowledge/patterns/core//350/257/255/344/271/211/350/257/201/346/215/256.md +24 -7
  589. package/templates/knowledge/patterns/core//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +25 -7
  590. package/templates/knowledge/patterns/core//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +24 -7
  591. package/templates/knowledge/patterns/core//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +24 -7
  592. package/templates/knowledge/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +29 -3
  593. package/templates/knowledge/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 +33 -0
  594. package/templates/knowledge/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +30 -3
  595. package/templates/knowledge/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +30 -3
  596. package/templates/knowledge/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +30 -3
  597. package/templates/knowledge/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +34 -0
  598. package/templates/knowledge/procedures//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md +30 -3
  599. package/templates/knowledge/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +34 -0
  600. package/templates/knowledge/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +30 -3
  601. package/templates/knowledge/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +34 -0
  602. package/templates/knowledge/procedures//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md +30 -3
  603. package/templates/knowledge/procedures//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273/346/265/201/347/250/213.md +29 -3
  604. package/templates/knowledge/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 +99 -0
  605. package/templates/knowledge/procedures//346/236/266/346/236/204/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +95 -0
  606. package/templates/knowledge/procedures//346/236/266/346/236/204/350/256/276/350/256/241/346/265/201/347/250/213.md +30 -3
  607. package/templates/knowledge/procedures//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md +30 -3
  608. package/templates/knowledge/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 +91 -0
  609. package/templates/knowledge/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 +30 -3
  610. package/templates/knowledge/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 +97 -0
  611. package/templates/knowledge/procedures//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md +30 -3
  612. package/templates/knowledge/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +30 -3
  613. package/templates/knowledge/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/347/250/213.md +30 -3
  614. package/templates/knowledge/procedures//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205/346/265/201/347/250/213.md +33 -0
  615. package/templates/knowledge/procedures//347/274/272/351/231/267/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +30 -3
  616. package/templates/knowledge/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +30 -3
  617. package/templates/knowledge/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +30 -3
  618. package/templates/knowledge/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +30 -3
  619. package/templates/knowledge/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +30 -3
  620. package/templates/knowledge/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +30 -3
  621. package/templates/knowledge/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +30 -3
  622. package/templates/knowledge/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +30 -3
  623. package/templates/knowledge/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +30 -3
  624. package/templates/knowledge/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +30 -3
  625. package/templates/knowledge/procedures//351/252/214/350/257/201/350/256/241/345/210/222/346/265/201/347/250/213.md +30 -3
  626. package/templates/knowledge/review_rules//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 +24 -3
  627. package/templates/knowledge/review_rules//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
  628. package/templates/knowledge/review_rules//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +23 -3
  629. package/templates/knowledge/review_rules//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
  630. package/templates/knowledge/review_rules//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245/350/247/204/345/210/231.md +23 -3
  631. package/templates/knowledge/review_rules//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
  632. package/templates/knowledge/review_rules//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +24 -3
  633. package/templates/knowledge/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +36 -0
  634. package/templates/knowledge/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 +65 -0
  635. package/templates/knowledge/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +36 -0
  636. package/templates/knowledge/rules//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246/350/247/204/345/210/231.md +36 -0
  637. package/templates/knowledge/rules//345/267/245/344/275/234/346/265/201/346/250/241/346/235/277/345/214/205/350/247/204/345/210/231.md +38 -0
  638. package/templates/knowledge/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +36 -0
  639. package/templates/knowledge/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +36 -0
  640. package/templates/knowledge/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 +36 -0
  641. package/templates/knowledge/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 +38 -0
  642. package/templates/knowledge/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 +64 -0
  643. package/templates/knowledge/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 +36 -0
  644. package/templates/knowledge/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 +49 -0
  645. package/templates/knowledge/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +50 -0
  646. package/templates/knowledge/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 +35 -0
  647. package/templates/knowledge/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 +36 -0
  648. package/templates/knowledge/rules//346/274/224/350/277/233/345/233/236/345/275/222/350/247/204/345/210/231.md +51 -0
  649. package/templates/knowledge/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 +74 -0
  650. package/templates/knowledge/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 +35 -0
  651. package/templates/knowledge/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 +36 -0
  652. package/templates/knowledge/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 +61 -0
  653. package/templates/knowledge/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 +73 -0
  654. package/templates/knowledge/rules//347/273/206/350/212/202/347/272/252/345/276/213/350/247/204/345/210/231.md +67 -0
  655. package/templates/knowledge/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 +66 -0
  656. package/templates/knowledge/rules//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250/350/247/204/345/210/231.md +59 -0
  657. package/templates/knowledge/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 +38 -0
  658. package/templates/knowledge/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 +36 -0
  659. package/templates/knowledge/rules//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247/350/247/204/345/210/231.md +35 -0
  660. package/templates/knowledge/rules//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260/350/247/204/345/210/231.md +36 -0
  661. package/templates/knowledge/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 +36 -0
  662. package/templates/knowledge/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +36 -0
  663. package/templates/knowledge/templates//345/256/241/346/237/245/346/221/230/350/246/201.md +26 -7
  664. package/templates/patterns/API/350/256/276/350/256/241/350/247/204/350/214/203.md +30 -3
  665. package/templates/patterns/Docker/351/203/250/347/275/262/350/247/204/350/214/203.md +29 -3
  666. package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +33 -3
  667. package/templates/patterns/N/345/212/2401/346/237/245/350/257/242/350/247/204/350/214/203.md +31 -3
  668. package/templates/patterns/React/345/210/227/350/241/250/350/241/250/346/240/274/350/247/204/350/214/203.md +30 -3
  669. package/templates/patterns/React/346/216/245/345/217/243/351/233/206/346/210/220/350/247/204/350/214/203.md +31 -3
  670. package/templates/patterns/React/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +31 -3
  671. package/templates/patterns/React/347/273/204/344/273/266/350/247/204/350/214/203.md +30 -3
  672. package/templates/patterns/React/350/241/250/345/215/225/350/247/204/350/214/203.md +30 -3
  673. package/templates/patterns/React/350/267/257/347/224/261/350/247/204/350/214/203.md +31 -3
  674. package/templates/patterns/Schema/345/205/274/345/256/271/350/247/204/350/214/203.md +30 -3
  675. package/templates/patterns/Vue/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +29 -3
  676. package/templates/patterns/Vue/347/273/204/344/273/266/350/247/204/350/214/203.md +33 -3
  677. package/templates/patterns/Vue/350/267/257/347/224/261/350/247/204/350/214/203.md +28 -3
  678. package/templates/patterns//344/272/213/344/273/266/351/251/261/345/212/250/350/247/204/350/214/203.md +32 -3
  679. package/templates/patterns//344/272/213/345/212/241/346/250/241/345/274/217/350/247/204/350/214/203.md +31 -3
  680. package/templates/patterns//344/274/230/351/233/205/345/201/234/346/234/272/350/247/204/350/214/203.md +31 -3
  681. package/templates/patterns//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +30 -3
  682. package/templates/patterns//345/210/206/351/241/265/346/237/245/350/257/242/350/247/204/350/214/203.md +34 -3
  683. package/templates/patterns//345/211/215/347/253/257/346/200/247/350/203/275/350/247/204/350/214/203.md +32 -3
  684. package/templates/patterns//345/221/275/345/220/215/350/247/204/350/214/203.md +30 -3
  685. package/templates/patterns//345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +31 -3
  686. package/templates/patterns//345/242/236/345/210/240/346/224/271/346/237/245/350/247/204/350/214/203.md +31 -3
  687. package/templates/patterns//345/244/226/351/203/250/344/276/235/350/265/226/350/247/204/350/214/203.md +31 -3
  688. package/templates/patterns//345/245/221/347/272/246/345/205/274/345/256/271/350/247/204/350/214/203.md +28 -3
  689. package/templates/patterns//345/256/232/346/227/266/344/273/273/345/212/241/350/247/204/350/214/203.md +32 -3
  690. package/templates/patterns//345/256/236/346/227/266/346/216/250/351/200/201/350/247/204/350/214/203.md +31 -3
  691. package/templates/patterns//345/267/245/347/250/213/347/272/252/345/276/213.md +30 -3
  692. package/templates/patterns//345/271/266/345/217/221/346/216/247/345/210/266/350/247/204/350/214/203.md +34 -3
  693. package/templates/patterns//345/274/202/346/255/245/345/257/274/345/207/272/350/247/204/350/214/203.md +31 -3
  694. package/templates/patterns//346/216/245/345/217/243/345/245/221/347/272/246/350/247/204/350/214/203.md +29 -3
  695. package/templates/patterns//346/220/234/347/264/242/346/250/241/345/274/217/350/247/204/350/214/203.md +33 -3
  696. package/templates/patterns//346/225/260/346/215/256/351/232/220/347/247/201/350/247/204/350/214/203.md +34 -3
  697. package/templates/patterns//346/226/207/344/273/266/344/270/212/344/274/240/350/247/204/350/214/203.md +30 -3
  698. package/templates/patterns//346/227/240/351/232/234/347/242/215/350/247/204/350/214/203.md +30 -3
  699. package/templates/patterns//346/227/245/345/277/227/350/247/204/350/214/203.md +31 -3
  700. package/templates/patterns//346/235/203/351/231/220/350/256/244/350/257/201/350/247/204/350/214/203.md +34 -3
  701. package/templates/patterns//346/236/266/346/236/204/347/272/242/347/272/277.md +28 -3
  702. package/templates/patterns//346/265/213/350/257/225/350/264/250/351/207/217/350/247/204/350/214/203.md +30 -3
  703. package/templates/patterns//347/206/224/346/226/255/351/231/215/347/272/247/350/247/204/350/214/203.md +32 -3
  704. package/templates/patterns//347/212/266/346/200/201/346/265/201/350/275/254/350/247/204/350/214/203.md +29 -3
  705. package/templates/patterns//347/272/246/346/235/237/345/256/236/347/216/260/350/247/204/350/214/203.md +32 -3
  706. package/templates/patterns//347/274/223/345/255/230/347/255/226/347/225/245/350/247/204/350/214/203.md +31 -3
  707. package/templates/patterns//347/274/226/347/240/201/350/264/250/351/207/217/350/247/204/350/214/203.md +30 -3
  708. package/templates/patterns//347/274/272/351/231/267/347/256/241/347/220/206/350/247/204/350/214/203.md +29 -3
  709. package/templates/patterns//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +30 -3
  710. package/templates/patterns//350/276/223/345/205/245/346/240/241/351/252/214/350/247/204/350/214/203.md +31 -3
  711. package/templates/patterns//351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +31 -3
  712. package/templates/patterns//351/224/231/350/257/257/350/276/271/347/225/214/350/247/204/350/214/203.md +33 -3
  713. 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 +30 -3
  714. package/dist/engine/batch1_manifest.d.ts.map +0 -1
  715. package/dist/engine/batch1_manifest.js.map +0 -1
  716. package/dist/engine/batch1_scenario_registry.d.ts.map +0 -1
  717. package/dist/engine/batch1_scenario_registry.js.map +0 -1
  718. package/dist/engine/batch1_scenario_runners.d.ts.map +0 -1
  719. package/dist/engine/batch1_scenario_runners.js.map +0 -1
@@ -0,0 +1,296 @@
1
+ /**
2
+ * 验证契约 — 问题十二 (Verification Contract)。
3
+ *
4
+ * 核心规则:
5
+ * - VerificationPlan 只是计划,不是结果
6
+ * - VerificationResult 必须来自真实执行或明确 not_executed
7
+ * - 未验证不得 delivered
8
+ * - delivery_readiness 不得触发 delivery_execution
9
+ */
10
+ /**
11
+ * 创建验证计划(不执行)。
12
+ */
13
+ export function createVerificationPlan(taskId, commands, acceptanceCriteria) {
14
+ return {
15
+ plan_id: `vp-${taskId}-${Date.now()}`,
16
+ task_id: taskId,
17
+ commands,
18
+ acceptance_criteria: acceptanceCriteria,
19
+ created_at: new Date().toISOString(),
20
+ status: "plan_only",
21
+ };
22
+ }
23
+ /**
24
+ * 检查是否为 plan_only(无真实执行)。
25
+ * VerificationPlan.status === "plan_only" 时不得视为 VerificationResult。
26
+ */
27
+ export function isPlanOnly(plan) {
28
+ return plan.status === "plan_only";
29
+ }
30
+ /**
31
+ * 创建验证结果(内部使用,provenance = "direct")。
32
+ * delivery_readiness 必须拒绝 provenance="direct" 的 passed 结果。
33
+ * 唯一合法 passed 入口是 recordVerificationExecution。
34
+ */
35
+ export function createVerificationResult(taskId, planId, evidenceIds, commandResults) {
36
+ // 不允许空 evidenceIds + 空 commandResults 时返回 passed
37
+ const hasEvidence = evidenceIds.length > 0;
38
+ const hasCommands = commandResults.length > 0;
39
+ // 无 evidence 或无 commands → 强制 failed
40
+ if (!hasEvidence || !hasCommands) {
41
+ return {
42
+ result_id: `vr-${taskId}-${Date.now()}`,
43
+ task_id: taskId,
44
+ plan_id: planId,
45
+ status: "failed",
46
+ total_commands: commandResults.length,
47
+ passed_commands: 0,
48
+ failed_commands: 0,
49
+ evidence_ids: evidenceIds,
50
+ findings: [{
51
+ rule: "evidence_required",
52
+ severity: "hard_fail",
53
+ message_zh: `验证结果缺少${!hasEvidence ? " evidence" : ""}${!hasEvidence && !hasCommands ? " 和" : ""}${!hasCommands ? " commands" : ""},不得 passed`,
54
+ diagnostic_code: "SF-VERIFY-0003",
55
+ }],
56
+ completed_at: new Date().toISOString(),
57
+ provenance: "direct",
58
+ };
59
+ }
60
+ const passedCount = commandResults.filter((r) => r.passed).length;
61
+ const failedCount = commandResults.filter((r) => !r.passed).length;
62
+ const findings = commandResults
63
+ .filter((r) => !r.passed && r.diagnostic_code)
64
+ .map((r) => ({
65
+ rule: "command_failed",
66
+ severity: "hard_fail",
67
+ message_zh: `验证命令失败: ${r.diagnostic_code}`,
68
+ diagnostic_code: r.diagnostic_code,
69
+ }));
70
+ return {
71
+ result_id: `vr-${taskId}-${Date.now()}`,
72
+ task_id: taskId,
73
+ plan_id: planId,
74
+ status: failedCount === 0 ? "passed" : "failed",
75
+ total_commands: commandResults.length,
76
+ passed_commands: passedCount,
77
+ failed_commands: failedCount,
78
+ evidence_ids: evidenceIds,
79
+ findings,
80
+ completed_at: new Date().toISOString(),
81
+ provenance: "direct",
82
+ };
83
+ }
84
+ /**
85
+ * 创建未执行的验证结果。
86
+ */
87
+ export function createNotExecutedResult(taskId, planId, reason) {
88
+ return {
89
+ result_id: `vr-${taskId}-${Date.now()}`,
90
+ task_id: taskId,
91
+ plan_id: planId,
92
+ status: "not_executed",
93
+ total_commands: 0,
94
+ passed_commands: 0,
95
+ failed_commands: 0,
96
+ evidence_ids: [],
97
+ findings: [{
98
+ rule: "not_executed",
99
+ severity: "warning",
100
+ message_zh: `验证未执行: ${reason}`,
101
+ diagnostic_code: "SF-VERIFY-0001",
102
+ }],
103
+ completed_at: new Date().toISOString(),
104
+ provenance: "direct",
105
+ };
106
+ }
107
+ /** SHA256 hex 格式 */
108
+ const SHA256_RE = /^[a-f0-9]{64}$/i;
109
+ /** ISO 8601 日期格式 */
110
+ const ISO8601_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/;
111
+ /**
112
+ * 校验执行记录: 证据格式、命令合法性、evidence_id 唯一性、时间合法性。
113
+ * 返回校验失败的记录索引及对应的 diagnostic_code。
114
+ */
115
+ export function validateExecutionRecords(plan, records) {
116
+ const errors = [];
117
+ const seenEvidenceIds = new Set();
118
+ const planCommands = new Set(plan.commands);
119
+ for (let i = 0; i < records.length; i++) {
120
+ const r = records[i];
121
+ if (!r.command) {
122
+ errors.push({ index: i, diagnostic_code: "SF-VERIFY-5001", message_zh: `记录 ${i}: command 为空` });
123
+ continue;
124
+ }
125
+ if (!planCommands.has(r.command)) {
126
+ errors.push({ index: i, diagnostic_code: "SF-VERIFY-5006", message_zh: `记录 ${i}: 命令 "${r.command}" 不在 plan.commands 中` });
127
+ }
128
+ if (!r.stdout_hash || !SHA256_RE.test(r.stdout_hash)) {
129
+ errors.push({ index: i, diagnostic_code: "SF-VERIFY-5007", message_zh: `记录 ${i}: stdout_hash 为空或格式非法` });
130
+ }
131
+ if (!r.stderr_hash || !SHA256_RE.test(r.stderr_hash)) {
132
+ errors.push({ index: i, diagnostic_code: "SF-VERIFY-5008", message_zh: `记录 ${i}: stderr_hash 为空或格式非法` });
133
+ }
134
+ if (!r.evidence_id) {
135
+ errors.push({ index: i, diagnostic_code: "SF-VERIFY-5009", message_zh: `记录 ${i}: evidence_id 为空` });
136
+ }
137
+ else if (seenEvidenceIds.has(r.evidence_id)) {
138
+ errors.push({ index: i, diagnostic_code: "SF-VERIFY-5010", message_zh: `记录 ${i}: evidence_id "${r.evidence_id}" 重复` });
139
+ }
140
+ else {
141
+ seenEvidenceIds.add(r.evidence_id);
142
+ }
143
+ if (!r.started_at || !ISO8601_RE.test(r.started_at)) {
144
+ errors.push({ index: i, diagnostic_code: "SF-VERIFY-5011", message_zh: `记录 ${i}: started_at 格式非法` });
145
+ }
146
+ if (!r.finished_at || !ISO8601_RE.test(r.finished_at)) {
147
+ errors.push({ index: i, diagnostic_code: "SF-VERIFY-5012", message_zh: `记录 ${i}: finished_at 格式非法` });
148
+ }
149
+ if (r.started_at && r.finished_at && ISO8601_RE.test(r.started_at) && ISO8601_RE.test(r.finished_at)) {
150
+ if (new Date(r.finished_at).getTime() < new Date(r.started_at).getTime()) {
151
+ errors.push({ index: i, diagnostic_code: "SF-VERIFY-5013", message_zh: `记录 ${i}: finished_at 早于 started_at` });
152
+ }
153
+ }
154
+ }
155
+ return errors;
156
+ }
157
+ /**
158
+ * 计算命令覆盖率: plan.commands 中被 records 覆盖的比例。
159
+ */
160
+ export function computeCommandCoverage(plan, records) {
161
+ const covered = new Set(records.map((r) => r.command));
162
+ const coveredCommands = [];
163
+ const missingCommands = [];
164
+ for (const cmd of plan.commands) {
165
+ if (covered.has(cmd)) {
166
+ coveredCommands.push(cmd);
167
+ }
168
+ else {
169
+ missingCommands.push(cmd);
170
+ }
171
+ }
172
+ return { covered_commands: coveredCommands, missing_commands: missingCommands };
173
+ }
174
+ /** 构造带 diagnostic_code 的 failed 结果 */
175
+ function createFailedResult(taskId, planId, diagnosticCode, message) {
176
+ return {
177
+ result_id: `vr-${taskId}-${Date.now()}`,
178
+ task_id: taskId,
179
+ plan_id: planId,
180
+ status: "failed",
181
+ total_commands: 0,
182
+ passed_commands: 0,
183
+ failed_commands: 0,
184
+ evidence_ids: [],
185
+ findings: [{
186
+ rule: "plan_binding_required",
187
+ severity: "hard_fail",
188
+ message_zh: message,
189
+ diagnostic_code: diagnosticCode,
190
+ }],
191
+ completed_at: new Date().toISOString(),
192
+ provenance: "direct",
193
+ covered_commands: [],
194
+ missing_commands: [],
195
+ evidence_integrity_passed: false,
196
+ };
197
+ }
198
+ /**
199
+ * 录入真实执行结果 — VerificationResult.status = "passed" 的唯一合法入口。
200
+ *
201
+ * 规则:
202
+ * - plan 为 null → hard fail (SF-VERIFY-5002)
203
+ * - records 为空 → not_executed
204
+ * - 非计划命令 → 该条 failed (SF-VERIFY-5006)
205
+ * - stdout/stderr hash 格式非法 → 该条 failed
206
+ * - evidence_id 重复 → 该条 failed
207
+ * - 时间倒挂 → 该条 failed
208
+ * - plan.commands 未全覆盖 → failed (SF-VERIFY-5003)
209
+ * - 所有 exit_code === 0 且全覆盖且无格式错误 → passed
210
+ */
211
+ export function recordVerificationExecution(taskId, planId, records, plan) {
212
+ if (!plan) {
213
+ return createFailedResult(taskId, planId, "SF-VERIFY-5002", "无关联 VerificationPlan,不得录入执行结果");
214
+ }
215
+ if (planId !== plan.plan_id) {
216
+ return createFailedResult(taskId, planId, "SF-VERIFY-5014", `plan_id 不匹配: 传入 "${planId}",plan 中 "${plan.plan_id}"`);
217
+ }
218
+ if (taskId !== plan.task_id) {
219
+ return createFailedResult(taskId, planId, "SF-VERIFY-5015", `task_id 不匹配: 传入 "${taskId}",plan 中 "${plan.task_id}"`);
220
+ }
221
+ if (records.length === 0) {
222
+ return createNotExecutedResult(taskId, planId, "无执行记录");
223
+ }
224
+ // 校验证据格式和命令合法性
225
+ const validationErrors = validateExecutionRecords(plan, records);
226
+ const errorIndices = new Set(validationErrors.map((e) => e.index));
227
+ // 校验命令覆盖
228
+ const { covered_commands, missing_commands } = computeCommandCoverage(plan, records);
229
+ const hasMissing = missing_commands.length > 0;
230
+ // 逐条判定: 合法记录按 exit_code 判,非法记录直接 failed
231
+ const commandResults = records.map((r, i) => {
232
+ if (errorIndices.has(i)) {
233
+ return { passed: false, diagnostic_code: "SF-VERIFY-5001" };
234
+ }
235
+ return {
236
+ passed: r.exit_code === 0,
237
+ diagnostic_code: r.exit_code !== 0 ? "SF-VERIFY-0004" : undefined,
238
+ };
239
+ });
240
+ // 所有校验错误转为 findings(每条记录可能有多个错误)
241
+ const validationFindings = validationErrors.map((e) => ({
242
+ rule: "evidence_validation",
243
+ severity: "hard_fail",
244
+ message_zh: e.message_zh,
245
+ diagnostic_code: e.diagnostic_code,
246
+ }));
247
+ const evidenceIds = records.map((r) => r.evidence_id);
248
+ const base = createVerificationResult(taskId, planId, evidenceIds, commandResults);
249
+ // 合并所有 findings
250
+ const allFindings = [...base.findings, ...validationFindings];
251
+ // 命令未全覆盖 → 强制 failed 并追加 finding
252
+ if (hasMissing) {
253
+ return {
254
+ ...base,
255
+ status: "failed",
256
+ provenance: "record_verification_execution",
257
+ findings: [...allFindings, {
258
+ rule: "plan_coverage_incomplete",
259
+ severity: "hard_fail",
260
+ message_zh: `plan 命令未全覆盖,缺少: ${missing_commands.join(", ")}`,
261
+ diagnostic_code: "SF-VERIFY-5003",
262
+ }],
263
+ covered_commands,
264
+ missing_commands,
265
+ evidence_integrity_passed: errorIndices.size === 0,
266
+ };
267
+ }
268
+ return {
269
+ ...base,
270
+ provenance: "record_verification_execution",
271
+ findings: allFindings,
272
+ covered_commands,
273
+ missing_commands,
274
+ evidence_integrity_passed: errorIndices.size === 0,
275
+ };
276
+ }
277
+ /**
278
+ * 验证: VerificationPlan 不得当作 VerificationEvidence。
279
+ */
280
+ export function validateVerificationSeparation(plan, result) {
281
+ const errors = [];
282
+ if (!result) {
283
+ errors.push({
284
+ error: `验证计划 ${plan.plan_id} 存在但无 VerificationResult`,
285
+ severity: "hard_fail",
286
+ });
287
+ }
288
+ else if (result.status === "not_executed") {
289
+ errors.push({
290
+ error: `验证结果状态为 not_executed,不得视为通过`,
291
+ severity: "hard_fail",
292
+ });
293
+ }
294
+ return errors;
295
+ }
296
+ //# sourceMappingURL=verification_contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification_contract.js","sourceRoot":"","sources":["../../src/engine/verification_contract.ts"],"names":[],"mappings":"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"}
@@ -21,16 +21,12 @@ export interface TripleNegationResult {
21
21
  /** 是否通过推演 */
22
22
  passed: boolean;
23
23
  }
24
- /**
25
- * 三重否定推演 — AI 必须假设自己的方案是错的,寻找能使其崩溃的极端边界。
26
- * 推演三重否定:
27
- * 1. 边界否定: 输入为空/极大/特殊字符时是否崩溃
28
- * 2. 状态否定: 并发/中断/部分失败后状态是否一致
29
- * 3. 链路否定: 上游依赖返回异常/超时/格式错误时是否安全
30
- *
31
- * @param params - 推演参数,包含变更文件、验收项和项目配置
32
- * @returns 三重否定推演结果,包含崩溃场景、修复建议和终局宣言
33
- */
24
+ export declare function getVerifierConsumptionTrace(): ReadonlyArray<{
25
+ task_id: string;
26
+ consumed_hard_blocks: string[];
27
+ consumed_required_evidence: string[];
28
+ consumed_at: string;
29
+ }>;
34
30
  export declare function performTripleNegation(params: {
35
31
  changedFiles: string[];
36
32
  acceptanceItems: AcceptanceItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/engine/verifier.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAiB,cAAc,EAA+C,MAAM,aAAa,CAAC;AAa3I;;;;;;;;;;GAUG;AAIH,eAAe;AACf,MAAM,WAAW,oBAAoB;IACnC,iBAAiB;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW;IACX,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,WAAW;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAMD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,aAAa,EAAE,aAAa,CAAC;CAC9B,GAAG,oBAAoB,CAoDvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,eAAe,EAAE,cAAc,EAAE,EACjC,KAAK,CAAC,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GACtB,YAAY,CAgPd"}
1
+ {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/engine/verifier.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAiB,cAAc,EAA+C,MAAM,aAAa,CAAC;AAuB3I;;;;;;;;;;GAUG;AAIH,eAAe;AACf,MAAM,WAAW,oBAAoB;IACnC,iBAAiB;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW;IACX,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,WAAW;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AA2CD,wBAAgB,2BAA2B,IAAI,aAAa,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAAC,0BAA0B,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAO3K;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,aAAa,EAAE,aAAa,CAAC;CAC9B,GAAG,oBAAoB,CAoDvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,EAAE,EACtB,eAAe,EAAE,cAAc,EAAE,EACjC,KAAK,CAAC,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GACtB,YAAY,CAkXd"}
@@ -5,6 +5,11 @@ import { orphanGate, buildMainPathIntegrationContracts, } from "./main_path_inte
5
5
  import { checkCorePrinciples } from "./core_engineering_principles.js";
6
6
  import { createCommandContract } from "./command_execution_contract.js";
7
7
  import { debugLog } from "./debug_log.js";
8
+ import { reviewArchitectureDesign } from "./architecture_design_contract.js";
9
+ import { checkAnalysisGate } from "./existing_system_analysis.js";
10
+ import { evaluateCodingReadiness } from "./coding_readiness_gate.js";
11
+ import { performDetailCheck } from "./detail_discipline.js";
12
+ import { performFirstPrinciplesCheck } from "./first_principles.js";
8
13
  debugLog("verifier: 验证命令生成器模块已加载");
9
14
  /** 终局宣言签名 */
10
15
  const SOLOFORGE_AUDIT_PASS = "[SoloForge Audit: PASS - 已通过三重深度推演,确认无潜在隐患]";
@@ -19,6 +24,40 @@ const SOLOFORGE_AUDIT_FAIL = "[SoloForge Audit: FAIL - 三重推演发现未覆
19
24
  * @param params - 推演参数,包含变更文件、验收项和项目配置
20
25
  * @returns 三重否定推演结果,包含崩溃场景、修复建议和终局宣言
21
26
  */
27
+ /**
28
+ * 知识消费钩子: 记录 verifier 的知识资产消费到统一 trace store。
29
+ */
30
+ import { recordConsumptionTrace, getTracesByConsumer, CONSUMER_FIELD_CONTRACTS } from "./consumption_trace_store.js";
31
+ import { listConsumableAssetsByConsumer } from "./consumable_asset_registry.js";
32
+ /**
33
+ * 内部函数: 在真实验证路径中记录 verifier 消费 trace。
34
+ * 仅从 generateVerifyCommands 内部调用,不对外导出。
35
+ * 记录真实验证决策消费的验证规则,不使用 registry 全量补数。
36
+ */
37
+ function recordVerifierConsumptionInternal(route, changedFiles) {
38
+ const verifierAssets = listConsumableAssetsByConsumer("verifier")
39
+ .filter(a => a.consumption_mode === "required");
40
+ if (verifierAssets.length === 0)
41
+ return;
42
+ for (const asset of verifierAssets) {
43
+ recordConsumptionTrace({
44
+ consumer: "verifier",
45
+ asset_id: asset.id,
46
+ fields_consumed: CONSUMER_FIELD_CONTRACTS.verifier,
47
+ matched_reason: `verifier.generateVerifyCommands route=${route ?? "unknown"} files=${changedFiles.length}`,
48
+ task_id_or_route: route ?? "verify",
49
+ consumed_at: new Date().toISOString(),
50
+ });
51
+ }
52
+ }
53
+ export function getVerifierConsumptionTrace() {
54
+ return getTracesByConsumer("verifier").map(t => ({
55
+ task_id: t.task_id_or_route,
56
+ consumed_hard_blocks: t.fields_consumed.filter(f => f === "hard_blocks"),
57
+ consumed_required_evidence: t.fields_consumed.filter(f => f === "required_evidence"),
58
+ consumed_at: t.consumed_at,
59
+ }));
60
+ }
22
61
  export function performTripleNegation(params) {
23
62
  const { changedFiles, acceptanceItems, projectConfig } = params;
24
63
  const crashScenarios = [];
@@ -259,6 +298,113 @@ export function generateVerifyCommands(config, changedFiles, acceptanceItems, ro
259
298
  else if (corePrinciples.principles.some((p) => p.status === "passed")) {
260
299
  finalSummary += "\n\n✓ 核心工程执行原则检查通过";
261
300
  }
301
+ // 10. 机制治理检查 — 条件性调用,使用真实参数
302
+ const mechanismGovernanceEvidence = [];
303
+ const governanceTimestamp = new Date().toISOString();
304
+ const verifyId = `verify-${config.name}-${changedFiles.length}files`;
305
+ // problem-49: reviewArchitectureDesign — 架构文件变更时审查
306
+ const hasArchChanges = changedFiles.some(f => /architecture|arch|design|架构|设计/.test(f) || f.includes("architecture_design"));
307
+ if (hasArchChanges) {
308
+ const archContract = {
309
+ contract_id: `${verifyId}-arch`,
310
+ workflow_id: "architecture_design",
311
+ architecture_design_status: "draft",
312
+ input_set: {
313
+ task_ids: [verifyId],
314
+ required_source_artifacts: [],
315
+ consumed_files: changedFiles,
316
+ missing_required_files: [],
317
+ all_clients_covered: changedFiles.length > 0,
318
+ },
319
+ output_directory_decision: { recommended_name: "src", recommendation_reason_zh: `项目 ${config.name} 配置`, architecture_output_directory_status: "recommended" },
320
+ template_id: "architecture_design",
321
+ technology_policy: {
322
+ backend_preferred: "java",
323
+ frontend_preferred: "latest_stable_vue_ecosystem",
324
+ frontend_default_stack: {
325
+ framework: "latest_stable_vue",
326
+ language: "typescript",
327
+ build_tool: "vite",
328
+ router: "vue_router",
329
+ state_management: "pinia",
330
+ unit_test: "vitest",
331
+ e2e_test: "playwright",
332
+ lint_format: "eslint_prettier",
333
+ api_client: "typed_fetch_client",
334
+ ui_library_policy: "recommend_by_project_type",
335
+ },
336
+ allow_override: true, override_evidence_refs: [],
337
+ },
338
+ frontend_repository_policy: { default_strategy: "separate_repo_per_client", clients: [], repository_plan: [], merge_requires_user_confirmation: false },
339
+ uncertainty_decisions: [],
340
+ mermaid_diagram_requirements: [],
341
+ review: { review_status: "passed", missing_sections: [], missing_inputs: [], failed_rules: [], manual_required_items: [], repair_required: false },
342
+ evidence_refs: changedFiles.slice(0, 5),
343
+ };
344
+ const archReview = reviewArchitectureDesign(archContract);
345
+ mechanismGovernanceEvidence.push({ id: `${verifyId}-arch`, level: "E1", description: `架构设计审查(${changedFiles.length} 变更文件): ${archReview.passed ? "通过" : "未通过"}`, source: "runtime", passed: archReview.passed, timestamp: governanceTimestamp });
346
+ }
347
+ else {
348
+ mechanismGovernanceEvidence.push({ id: `${verifyId}-arch-skip`, level: "E2", description: "架构设计审查: 跳过(无架构相关变更文件)", source: "runtime", passed: true, timestamp: governanceTimestamp });
349
+ }
350
+ // problem-50: checkAnalysisGate — 检查现有系统分析是否完成
351
+ const projectType = config.tech_stack?.backend?.framework ? "existing_system" : "new_system";
352
+ const analysisGate = checkAnalysisGate({ project_context_type: projectType, detection_evidence_refs: changedFiles.slice(0, 3), confidence: config.tech_stack?.backend?.framework ? "high" : "medium" }, changedFiles.length > 0, changedFiles.some(f => /spec|analysis|gap/i.test(f)));
353
+ mechanismGovernanceEvidence.push({ id: `${verifyId}-analysis`, level: "E1", description: `分析前置门控(项目类型=${projectType}, 变更=${changedFiles.length}): ${analysisGate.allowed ? "通过" : "阻断"}`, source: "runtime", passed: analysisGate.allowed, timestamp: governanceTimestamp });
354
+ // problem-51: evaluateCodingReadiness — 使用 route 和 changedFiles 构建真实编码准备上下文
355
+ const hasTestAcceptance = acceptanceItems.some(a => /test|测试/.test(a.description));
356
+ const codingReadiness = evaluateCodingReadiness({
357
+ task_id: verifyId,
358
+ project_context_type: projectType,
359
+ task_type: route ?? "unknown",
360
+ consumed_constraints: acceptanceItems.map(a => a.description),
361
+ required_preconditions: changedFiles.length > 0 ? [`变更文件: ${changedFiles.length} 个`] : [],
362
+ test_first_plan: {
363
+ test_first_status: hasTestAcceptance ? "written" : "not_required",
364
+ test_mode: hasTestAcceptance ? "verification_case_first" : "not_applicable_with_reason",
365
+ task_type: route ?? "unknown",
366
+ test_targets: acceptanceItems.filter(a => /test|测试/.test(a.description)).map(a => a.description),
367
+ acceptance_cases: acceptanceItems.filter(a => a.type === "automated").map(a => a.description),
368
+ must_not_break_cases: acceptanceItems.filter(a => a.type === "manual").map(a => a.description),
369
+ expected_failures_before_implementation: [],
370
+ test_files_to_create_or_update: [],
371
+ verification_commands: buildCommands.map(c => c.command),
372
+ manual_acceptance_steps: [],
373
+ not_applicable_reason: hasTestAcceptance ? "" : "验证阶段无测试验收项",
374
+ },
375
+ implementation_scope: changedFiles,
376
+ verification_plan_ref: "verifier.generateVerifyCommands",
377
+ coding_readiness_status: changedFiles.length > 0 ? "ready_for_verification_first" : "manual_required",
378
+ }, changedFiles.some(f => /gap|todo|hack/i.test(f)), !hasTestAcceptance, changedFiles.length === 0);
379
+ mechanismGovernanceEvidence.push({ id: `${verifyId}-coding`, level: "E1", description: `编码准备门控(route=${route ?? "unknown"}, tests=${hasTestAcceptance}): ${codingReadiness.allowed ? "通过" : "阻断"}`, source: "runtime", passed: codingReadiness.allowed, timestamp: governanceTimestamp });
380
+ // problem-26: performDetailCheck — 使用 acceptanceItems 提取真实维度
381
+ const detailDimensions = [...new Set(acceptanceItems.map(a => a.type === "automated" ? "automated" : "manual"))];
382
+ const detailResult = performDetailCheck({ contract_id: `${verifyId}-detail`, target_types: changedFiles.length > 0 ? ["implementation"] : [], required_dimensions: detailDimensions.length > 0 ? detailDimensions : ["implementation"] }, verifyId, "implementation", Object.fromEntries(acceptanceItems.map(a => [a.id, [a.description]])));
383
+ mechanismGovernanceEvidence.push({ id: `${verifyId}-detail`, level: "E1", description: `细节纪律检查(${acceptanceItems.length} 验收项, ${detailDimensions.length} 维度): ${detailResult.detail_check_status}`, source: "runtime", passed: detailResult.detail_check_status === "passed", timestamp: governanceTimestamp });
384
+ // problem-27: performFirstPrinciplesCheck — 使用 changedFiles 和 acceptanceItems 作为已知事实
385
+ const fpResult = performFirstPrinciplesCheck({
386
+ problem_id: `${verifyId}-fp`,
387
+ user_goal: `验证 ${config.name} 的 ${changedFiles.length} 个变更文件`,
388
+ fundamental_need: "变更不引入回归且保持系统一致性",
389
+ known_facts: changedFiles.slice(0, 5).map(f => `变更文件: ${f}`),
390
+ assumptions: acceptanceItems.filter(a => a.type === "manual").map(a => `假设: ${a.description}`),
391
+ candidate_solutions: changedFiles.length > 0 ? [`验证 ${changedFiles.length} 个变更`] : [],
392
+ simplest_viable_solution: changedFiles.length > 0 ? `运行构建和测试验证 ${changedFiles.length} 个变更` : "无变更,无需验证",
393
+ falsification_questions: ["变更是否引入回归?", "测试是否覆盖变更路径?"],
394
+ why_not_legacy_path: `当前验证路径: route=${route ?? "unknown"}, shape=${executionShape ?? "unknown"}`,
395
+ chosen_solution: "执行验证命令集",
396
+ first_principles_status: "passed",
397
+ non_negotiable_constraints: acceptanceItems.filter(a => a.type === "automated").map(a => a.description).slice(0, 3),
398
+ });
399
+ mechanismGovernanceEvidence.push({ id: `${verifyId}-fp`, level: "E1", description: `第一性原理检查(${changedFiles.length} 变更, ${acceptanceItems.length} 验收): ${fpResult.passed ? "通过" : "未通过"}`, source: "runtime", passed: fpResult.passed, timestamp: governanceTimestamp });
400
+ // problem-41-brainstorm: 验证阶段不涉及脑暴 — 记录 not_applicable
401
+ mechanismGovernanceEvidence.push({ id: `${verifyId}-brainstorm-skip`, level: "E2", description: "脑暴会话验证: not_applicable(验证阶段不产生脑暴会话,脑暴由 sf_expand 消费)", source: "runtime", passed: true, timestamp: governanceTimestamp });
402
+ // problem-16: 技术决策验证 — 验证阶段不产生新技术决策 — 记录 not_applicable
403
+ mechanismGovernanceEvidence.push({ id: `${verifyId}-tech-skip`, level: "E2", description: "技术决策验证: not_applicable(验证阶段不产生技术决策,决策由 sf_expand 消费)", source: "runtime", passed: true, timestamp: governanceTimestamp });
404
+ // problem-54: 演进回归门控 — 验证阶段不涉及 issue 演进 — 记录 not_applicable
405
+ mechanismGovernanceEvidence.push({ id: `${verifyId}-evo-skip`, level: "E2", description: "演进回归门控: not_applicable(验证阶段不涉及 issue 演进,演进由问题管理流程消费)", source: "runtime", passed: true, timestamp: governanceTimestamp });
406
+ // problem-53: 工作流模板包 — 验证阶段不验证模板包 — 记录 not_applicable
407
+ mechanismGovernanceEvidence.push({ id: `${verifyId}-pack-skip`, level: "E2", description: "工作流模板包验证: not_applicable(验证阶段不验证模板包,模板包由 sync-templates 消费)", source: "runtime", passed: true, timestamp: governanceTimestamp });
262
408
  // 从构建和测试命令生成 command_contracts
263
409
  const command_contracts = [
264
410
  ...buildCommands.map((cmd) => createCommandContract({
@@ -277,6 +423,8 @@ export function generateVerifyCommands(config, changedFiles, acceptanceItems, ro
277
423
  })),
278
424
  ];
279
425
  debugLog(`verifier: 验证命令生成完成 — 构建 ${buildCommands.length} 个,测试 ${testCommands.length} 个,自动验收 ${autoTotal} 项`);
426
+ // 真实验证路径 — 记录 verifier 消费 trace(使用真实 registry 资产 ID)
427
+ recordVerifierConsumptionInternal(route, changedFiles);
280
428
  return {
281
429
  task_id: "", // 由调用方填充
282
430
  checks: {
@@ -287,7 +435,7 @@ export function generateVerifyCommands(config, changedFiles, acceptanceItems, ro
287
435
  command_contracts,
288
436
  summary: finalSummary,
289
437
  manual_items: manualItems,
290
- evidence: [...evidence, ...javaGuardEvidence].length > 0 ? [...evidence, ...javaGuardEvidence] : undefined,
438
+ evidence: [...evidence, ...javaGuardEvidence, ...mechanismGovernanceEvidence].length > 0 ? [...evidence, ...javaGuardEvidence, ...mechanismGovernanceEvidence] : undefined,
291
439
  coverage,
292
440
  triple_negation: tripleNegation,
293
441
  main_path_integration: checkedModules.length > 0 ? {
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/engine/verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/engine/verifier.ts"],"names":[],"mappings":"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"}