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,1632 @@
1
+ /**
2
+ * 统一契约注册表 — 将治理对象从 capability 扩展到多 kind contract。
3
+ *
4
+ * 问题二十 (Unified Contract Registry) 核心实现:
5
+ * - 统一登记 workflow、guard、verification、delivery、failure、degradation、
6
+ * metric、language_policy 等所有核心契约
7
+ * - contract_id 作为一等治理身份
8
+ * - policy_id 到 contract_id 的映射
9
+ * - 契约状态门控、漂移检测、依赖校验、证据校验
10
+ * - Runtime hard fail gating
11
+ *
12
+ * Capability Registry 保留为能力状态事实源,此表覆盖更广泛的契约类型。
13
+ */
14
+ import { getCapability } from "./capability_registry.js";
15
+ // ── 内置契约注册表 ──
16
+ const BUILTIN_CONTRACTS = [
17
+ // ── 1. 工作流契约 ──
18
+ {
19
+ contract_id: "workflow_contract",
20
+ kind: "workflow",
21
+ name: "工作流契约",
22
+ state: "enforced",
23
+ owner_component: "engine/workflow_contract_registry",
24
+ owner_files: ["src/engine/workflow_contract_registry.ts"],
25
+ test_files: ["tests/engine/workflow_contract_registry.test.ts"],
26
+ lifecycle_test_files: ["tests/engine/workflow_contract_registry.test.ts"],
27
+ knowledge_refs: ["templates/knowledge/rules/工作流契约规则.md"],
28
+ prompt_refs: [],
29
+ depends_on: ["route_decision_contract"],
30
+ consumed_by: ["tool_invocation_contract", "main_path_integration_contract"],
31
+ hard_fail_allowed: true,
32
+ promotion_conditions: ["所有 workflow 有集成测试"],
33
+ demotion_conditions: ["workflow regression check 漏检"],
34
+ evidence_requirements: ["validateWorkflowContracts 无 hard_fail"],
35
+ policy_id: "CAP-021",
36
+ capability_ids: ["workflow_contract"],
37
+ },
38
+ // ── 2. 工具调用契约 ──
39
+ {
40
+ contract_id: "tool_invocation_contract",
41
+ kind: "guard",
42
+ name: "工具调用契约",
43
+ state: "enforced",
44
+ owner_component: "engine/tool_invocation_contract_registry",
45
+ owner_files: ["src/engine/tool_invocation_contract_registry.ts"],
46
+ test_files: ["tests/engine/tool_invocation_contract_registry.test.ts"],
47
+ lifecycle_test_files: ["tests/engine/tool_invocation_contract_registry.test.ts"],
48
+ knowledge_refs: ["templates/knowledge/rules/工具调用规则.md"],
49
+ prompt_refs: [],
50
+ depends_on: ["workflow_contract"],
51
+ consumed_by: ["main_path_integration_contract"],
52
+ hard_fail_allowed: true,
53
+ promotion_conditions: ["所有 MCP tool 有 invocation test"],
54
+ demotion_conditions: ["tool invocation regression 漏检"],
55
+ evidence_requirements: ["validateToolInvocation 无 hard_fail"],
56
+ policy_id: "CAP-022",
57
+ capability_ids: ["tool_invocation_contract"],
58
+ },
59
+ // ── 3. 机制契约 ──
60
+ {
61
+ contract_id: "mechanism_contract",
62
+ kind: "mechanism_family",
63
+ name: "机制契约",
64
+ state: "enforced",
65
+ owner_component: "engine/mechanism_contract_registry",
66
+ owner_files: ["src/engine/mechanism_contract_registry.ts"],
67
+ test_files: ["tests/engine/mechanism_contract_registry.test.ts"],
68
+ lifecycle_test_files: ["tests/engine/mechanism_contract_registry.test.ts"],
69
+ knowledge_refs: [],
70
+ prompt_refs: [],
71
+ depends_on: ["workflow_contract", "tool_invocation_contract"],
72
+ consumed_by: ["main_path_integration_contract"],
73
+ hard_fail_allowed: true,
74
+ promotion_conditions: ["所有 P0 机制有 lifecycle test"],
75
+ demotion_conditions: ["机制 regression check 漏检"],
76
+ evidence_requirements: ["validateMechanismContracts 无 hard_fail"],
77
+ },
78
+ // ── 4. 产物契约 ──
79
+ {
80
+ contract_id: "artifact_contract",
81
+ kind: "delivery",
82
+ name: "产物契约",
83
+ state: "enforced",
84
+ owner_component: "engine/artifact_contract_registry",
85
+ owner_files: ["src/engine/artifact_contract_registry.ts"],
86
+ test_files: ["tests/engine/artifact_contract_registry.test.ts"],
87
+ lifecycle_test_files: ["tests/engine/artifact_contract_registry.test.ts"],
88
+ knowledge_refs: [],
89
+ prompt_refs: [],
90
+ depends_on: ["workflow_contract"],
91
+ consumed_by: ["main_path_integration_contract"],
92
+ hard_fail_allowed: true,
93
+ promotion_conditions: ["所有 artifact kind 有测试"],
94
+ demotion_conditions: ["artifact regression 漏检"],
95
+ evidence_requirements: ["validateArtifactContracts 无 hard_fail"],
96
+ },
97
+ // ── 5. 输入物料契约 ──
98
+ {
99
+ contract_id: "input_material_contract",
100
+ kind: "verification",
101
+ name: "输入物料契约",
102
+ state: "enforced",
103
+ owner_component: "engine/input_material_contract_registry",
104
+ owner_files: ["src/engine/input_material_contract_registry.ts"],
105
+ test_files: ["tests/engine/input_material_contract_registry.test.ts"],
106
+ lifecycle_test_files: ["tests/engine/input_material_contract_registry.test.ts"],
107
+ knowledge_refs: [],
108
+ prompt_refs: [],
109
+ depends_on: ["privacy_secret_contract"],
110
+ consumed_by: ["workflow_contract", "main_path_integration_contract"],
111
+ hard_fail_allowed: true,
112
+ promotion_conditions: ["所有 material kind 有测试"],
113
+ demotion_conditions: ["material regression 漏检"],
114
+ evidence_requirements: ["input material contract 验证通过"],
115
+ },
116
+ // ── 6. 命令执行契约 ──
117
+ {
118
+ contract_id: "command_execution_contract",
119
+ kind: "guard",
120
+ name: "命令执行契约",
121
+ state: "enforced",
122
+ owner_component: "engine/command_execution_contract",
123
+ owner_files: ["src/engine/command_execution_contract.ts"],
124
+ test_files: ["tests/engine/command_execution_contract.test.ts"],
125
+ lifecycle_test_files: ["tests/engine/command_execution_contract.test.ts"],
126
+ knowledge_refs: ["templates/knowledge/rules/命令执行规则.md"],
127
+ prompt_refs: [],
128
+ depends_on: ["tool_invocation_contract"],
129
+ consumed_by: ["main_path_integration_contract"],
130
+ hard_fail_allowed: true,
131
+ promotion_conditions: ["覆盖所有 destructive 命令模式"],
132
+ demotion_conditions: ["destructive 命令漏检"],
133
+ evidence_requirements: ["命令分级测试通过"],
134
+ policy_id: "CAP-025",
135
+ capability_ids: ["command_execution"],
136
+ },
137
+ // ── 7. 隐私/敏感信息契约 ──
138
+ {
139
+ contract_id: "privacy_secret_contract",
140
+ kind: "guard",
141
+ name: "隐私/敏感信息契约",
142
+ state: "enforced",
143
+ owner_component: "engine/privacy_secret_contract",
144
+ owner_files: ["src/engine/privacy_secret_contract.ts"],
145
+ test_files: ["tests/engine/privacy_secret_contract.test.ts"],
146
+ lifecycle_test_files: ["tests/engine/privacy_secret_contract.test.ts"],
147
+ knowledge_refs: ["templates/knowledge/rules/敏感信息处理规则.md"],
148
+ prompt_refs: [],
149
+ depends_on: [],
150
+ consumed_by: ["input_material_contract", "main_path_integration_contract"],
151
+ hard_fail_allowed: true,
152
+ promotion_conditions: ["覆盖所有 PII 类型"],
153
+ demotion_conditions: ["secret scanner 产生大量误报"],
154
+ evidence_requirements: ["RedactionRecord 测试通过"],
155
+ policy_id: "CAP-024",
156
+ capability_ids: ["privacy_secret"],
157
+ },
158
+ // ── 8. 配置优先级契约 ──
159
+ {
160
+ contract_id: "config_precedence_contract",
161
+ kind: "guard",
162
+ name: "配置优先级契约",
163
+ state: "enforced",
164
+ owner_component: "engine/config_precedence_contract",
165
+ owner_files: ["src/engine/config_precedence_contract.ts"],
166
+ test_files: ["tests/engine/config_precedence_contract.test.ts"],
167
+ lifecycle_test_files: ["tests/engine/config_precedence_contract.test.ts"],
168
+ knowledge_refs: [],
169
+ prompt_refs: [],
170
+ depends_on: [],
171
+ consumed_by: ["main_path_integration_contract"],
172
+ hard_fail_allowed: true,
173
+ promotion_conditions: ["所有优先级冲突有测试"],
174
+ demotion_conditions: ["优先级回归漏检"],
175
+ evidence_requirements: ["validateConfigPrecedence 无 hard_fail"],
176
+ },
177
+ // ── 9. 用户反馈契约 ──
178
+ {
179
+ contract_id: "user_feedback_contract",
180
+ kind: "delivery",
181
+ name: "用户反馈契约",
182
+ state: "enforced",
183
+ owner_component: "engine/user_feedback_contract",
184
+ owner_files: ["src/engine/user_feedback_contract.ts"],
185
+ test_files: ["tests/engine/user_feedback_contract.test.ts"],
186
+ lifecycle_test_files: ["tests/engine/user_feedback_contract.test.ts"],
187
+ knowledge_refs: [],
188
+ prompt_refs: [],
189
+ depends_on: [],
190
+ consumed_by: ["main_path_integration_contract"],
191
+ hard_fail_allowed: true,
192
+ promotion_conditions: ["所有反馈类型有测试"],
193
+ demotion_conditions: ["反馈回归漏检"],
194
+ evidence_requirements: ["用户反馈契约验证通过"],
195
+ },
196
+ // ── 10. 主链路接入契约 ──
197
+ {
198
+ contract_id: "main_path_integration_contract",
199
+ kind: "verification",
200
+ name: "主链路接入防孤岛契约",
201
+ state: "enforced",
202
+ owner_component: "engine/main_path_integration_contract",
203
+ owner_files: ["src/engine/main_path_integration_contract.ts"],
204
+ test_files: ["tests/engine/main_path_integration_contract.test.ts"],
205
+ lifecycle_test_files: ["tests/engine/main_path_integration_contract.test.ts"],
206
+ knowledge_refs: ["templates/knowledge/rules/防孤岛实现规则.md"],
207
+ prompt_refs: [],
208
+ depends_on: [
209
+ "workflow_contract",
210
+ "tool_invocation_contract",
211
+ "mechanism_contract",
212
+ "artifact_contract",
213
+ ],
214
+ consumed_by: ["contract_governance"],
215
+ hard_fail_allowed: true,
216
+ promotion_conditions: ["所有 enforced 模块有 entry trace"],
217
+ demotion_conditions: ["orphan scan 产生大量误报"],
218
+ evidence_requirements: ["validateMainPathIntegration 无 hard_fail"],
219
+ policy_id: "CAP-023",
220
+ capability_ids: ["main_path_integration"],
221
+ },
222
+ // ── 11. 路由决策契约 ──
223
+ {
224
+ contract_id: "route_decision_contract",
225
+ kind: "workflow",
226
+ name: "路由决策契约",
227
+ state: "enforced",
228
+ owner_component: "engine/route_decision_contract_verifier",
229
+ owner_files: ["src/engine/route_decision_contract_verifier.ts"],
230
+ test_files: ["tests/engine/route_decision_contract.test.ts"],
231
+ lifecycle_test_files: ["tests/engine/route_decision_contract.test.ts"],
232
+ knowledge_refs: [],
233
+ prompt_refs: [],
234
+ depends_on: [],
235
+ consumed_by: ["workflow_contract"],
236
+ hard_fail_allowed: true,
237
+ promotion_conditions: ["所有路由决策有测试"],
238
+ demotion_conditions: ["路由决策回归漏检"],
239
+ evidence_requirements: ["verifyRouteDecisionContract 无 hard_fail"],
240
+ },
241
+ // ── 12. 契约治理契约(问题二十自治理) ──
242
+ {
243
+ contract_id: "contract_governance",
244
+ kind: "verification",
245
+ name: "契约治理契约",
246
+ state: "enforced",
247
+ owner_component: "engine/contract_registry",
248
+ owner_files: ["src/engine/contract_registry.ts"],
249
+ test_files: ["tests/engine/contract_registry.test.ts"],
250
+ lifecycle_test_files: ["tests/engine/contract_registry.test.ts"],
251
+ knowledge_refs: [],
252
+ prompt_refs: [],
253
+ depends_on: [
254
+ "main_path_integration_contract",
255
+ "workflow_contract",
256
+ "tool_invocation_contract",
257
+ ],
258
+ consumed_by: [],
259
+ hard_fail_allowed: true,
260
+ promotion_conditions: ["所有核心契约已在 Unified Contract Registry 登记"],
261
+ demotion_conditions: ["契约治理检查产生大量误报"],
262
+ evidence_requirements: [
263
+ "validateContractRegistry 无 hard_fail",
264
+ "所有核心 contract 已登记",
265
+ "policy_id 到 contract_id 映射完整",
266
+ ],
267
+ },
268
+ // ── 13. 知识注入契约 ──
269
+ {
270
+ contract_id: "knowledge_injection_contract",
271
+ kind: "knowledge_injection",
272
+ name: "知识注入契约",
273
+ state: "advisory",
274
+ owner_component: "engine/knowledge_injection_boundary",
275
+ owner_files: ["src/engine/knowledge_injection_boundary.ts"],
276
+ test_files: ["tests/engine/knowledge_injection_boundary.test.ts"],
277
+ lifecycle_test_files: [],
278
+ knowledge_refs: [],
279
+ prompt_refs: [],
280
+ depends_on: ["workflow_contract"],
281
+ consumed_by: ["main_path_integration_contract"],
282
+ hard_fail_allowed: false,
283
+ promotion_conditions: ["知识注入边界有完整集成测试"],
284
+ demotion_conditions: ["知识注入产生安全逃逸"],
285
+ evidence_requirements: ["knowledge injection boundary 测试通过"],
286
+ },
287
+ // ── 14. 失败/恢复契约 ──
288
+ {
289
+ contract_id: "failure_recovery_contract",
290
+ kind: "failure",
291
+ name: "失败/恢复契约",
292
+ state: "advisory",
293
+ owner_component: "engine/failure_classifier",
294
+ owner_files: ["src/engine/failure_classifier.ts"],
295
+ test_files: ["tests/engine/failure_classifier.test.ts"],
296
+ lifecycle_test_files: [],
297
+ knowledge_refs: [],
298
+ prompt_refs: [],
299
+ depends_on: ["workflow_contract"],
300
+ consumed_by: ["main_path_integration_contract"],
301
+ hard_fail_allowed: false,
302
+ promotion_conditions: ["所有失败分类有恢复策略测试"],
303
+ demotion_conditions: ["失败恢复逻辑产生误判"],
304
+ evidence_requirements: ["failure classifier 测试通过"],
305
+ },
306
+ // ── 15. 降级契约 ──
307
+ {
308
+ contract_id: "degradation_contract",
309
+ kind: "degradation",
310
+ name: "降级契约",
311
+ state: "advisory",
312
+ owner_component: "engine/runtime_safety",
313
+ owner_files: ["src/engine/runtime_safety.ts"],
314
+ test_files: ["tests/engine/runtime_safety.test.ts"],
315
+ lifecycle_test_files: [],
316
+ knowledge_refs: [],
317
+ prompt_refs: [],
318
+ depends_on: ["failure_recovery_contract"],
319
+ consumed_by: ["main_path_integration_contract"],
320
+ hard_fail_allowed: false,
321
+ promotion_conditions: ["降级事件用户可见测试通过"],
322
+ demotion_conditions: ["降级逻辑产生误判"],
323
+ evidence_requirements: ["runtime safety 测试通过"],
324
+ },
325
+ // ── 16. 指标契约 ──
326
+ {
327
+ contract_id: "metric_contract",
328
+ kind: "metric",
329
+ name: "指标契约",
330
+ state: "enforced",
331
+ owner_component: "engine/metric_governance",
332
+ owner_files: ["src/engine/metric_governance.ts"],
333
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
334
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
335
+ knowledge_refs: [],
336
+ prompt_refs: [],
337
+ depends_on: [],
338
+ consumed_by: ["main_path_integration_contract"],
339
+ hard_fail_allowed: true,
340
+ promotion_conditions: ["所有治理指标有采集和聚合测试"],
341
+ demotion_conditions: ["指标采集影响性能"],
342
+ evidence_requirements: ["metric governance 场景矩阵通过"],
343
+ },
344
+ // ── 17. 语言策略契约 ──
345
+ {
346
+ contract_id: "language_policy_contract",
347
+ kind: "language_policy",
348
+ name: "语言策略契约",
349
+ state: "advisory",
350
+ owner_component: "engine/core_engineering_principles",
351
+ owner_files: ["src/engine/core_engineering_principles.ts"],
352
+ test_files: ["tests/engine/core_engineering_principles.test.ts"],
353
+ lifecycle_test_files: [],
354
+ knowledge_refs: [],
355
+ prompt_refs: [],
356
+ depends_on: [],
357
+ consumed_by: ["main_path_integration_contract"],
358
+ hard_fail_allowed: false,
359
+ promotion_conditions: ["中文语义优先覆盖所有用户可见路径"],
360
+ demotion_conditions: ["语言策略产生误判阻断"],
361
+ evidence_requirements: ["core engineering principles 测试通过"],
362
+ },
363
+ // ── 18. 任务上下文契约 ──
364
+ {
365
+ contract_id: "task_context_contract",
366
+ kind: "task_context",
367
+ name: "任务上下文契约",
368
+ state: "enforced",
369
+ owner_component: "engine/task_context",
370
+ owner_files: ["src/engine/task_context.ts"],
371
+ test_files: ["tests/engine/task_context.test.ts"],
372
+ lifecycle_test_files: ["tests/engine/task_context.test.ts"],
373
+ knowledge_refs: [],
374
+ prompt_refs: [],
375
+ depends_on: [],
376
+ consumed_by: ["workflow_contract", "main_path_integration_contract"],
377
+ hard_fail_allowed: true,
378
+ promotion_conditions: ["TaskContext 生命周期测试覆盖所有状态转移"],
379
+ demotion_conditions: ["TaskContext 逃逸(绕过状态机)"],
380
+ evidence_requirements: ["task_context 生命周期测试通过"],
381
+ policy_id: "CAP-001",
382
+ capability_ids: ["task_context_lifecycle"],
383
+ },
384
+ // ── 19. 技术决策契约 ──
385
+ {
386
+ contract_id: "technology_decision_contract",
387
+ kind: "decision_sovereignty",
388
+ name: "技术决策主权契约",
389
+ state: "enforced",
390
+ owner_component: "engine/technology_decision",
391
+ owner_files: ["src/engine/technology_decision.ts"],
392
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
393
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
394
+ knowledge_refs: [],
395
+ prompt_refs: [],
396
+ depends_on: [],
397
+ consumed_by: ["main_path_integration_contract"],
398
+ hard_fail_allowed: true,
399
+ promotion_conditions: ["技术决策 human gate 覆盖所有高影响范围"],
400
+ demotion_conditions: ["技术决策误判阻断正常开发"],
401
+ evidence_requirements: ["decision sovereignty 场景矩阵通过"],
402
+ },
403
+ // ── 20. 知识演化契约 ──
404
+ {
405
+ contract_id: "knowledge_evolution_contract",
406
+ kind: "knowledge_evolution",
407
+ name: "知识演化契约",
408
+ state: "advisory",
409
+ owner_component: "engine/knowledge_sovereignty",
410
+ owner_files: ["src/engine/knowledge_sovereignty.ts"],
411
+ test_files: ["tests/engine/knowledge_sovereignty.test.ts"],
412
+ lifecycle_test_files: [],
413
+ knowledge_refs: [],
414
+ prompt_refs: [],
415
+ depends_on: ["knowledge_injection_contract"],
416
+ consumed_by: ["main_path_integration_contract"],
417
+ hard_fail_allowed: false,
418
+ promotion_conditions: ["知识演化生命周期有完整测试"],
419
+ demotion_conditions: ["知识演化逻辑产生误判"],
420
+ evidence_requirements: ["knowledge sovereignty 测试通过"],
421
+ },
422
+ // ── 21. 诊断码契约 ──
423
+ {
424
+ contract_id: "diagnostic_code_contract",
425
+ kind: "guard",
426
+ name: "诊断码契约",
427
+ state: "enforced",
428
+ owner_component: "engine/diagnostic_registry",
429
+ owner_files: ["src/engine/diagnostic_registry.ts"],
430
+ test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
431
+ lifecycle_test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
432
+ knowledge_refs: [],
433
+ prompt_refs: [],
434
+ depends_on: ["contract_governance"],
435
+ consumed_by: ["main_path_integration_contract"],
436
+ hard_fail_allowed: true,
437
+ promotion_conditions: ["所有 blocking/critical 事件有诊断码"],
438
+ demotion_conditions: ["诊断码检查产生大量误报"],
439
+ evidence_requirements: ["diagnostic registry 测试通过"],
440
+ },
441
+ // ── 22. 强制护栏契约 ──
442
+ {
443
+ contract_id: "enforcement_guard_contract",
444
+ kind: "guard",
445
+ name: "强制护栏契约",
446
+ state: "enforced",
447
+ owner_component: "engine/enforcement_guard",
448
+ owner_files: ["src/engine/enforcement_guard.ts"],
449
+ test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
450
+ lifecycle_test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
451
+ knowledge_refs: [],
452
+ prompt_refs: [],
453
+ depends_on: ["diagnostic_code_contract", "command_execution_contract"],
454
+ consumed_by: ["main_path_integration_contract"],
455
+ hard_fail_allowed: true,
456
+ promotion_conditions: ["覆盖七类护栏且有 must-fail 测试"],
457
+ demotion_conditions: ["护栏阻断产生大量误报"],
458
+ evidence_requirements: ["enforcement guard 测试通过"],
459
+ },
460
+ // ── 23. 验证契约 ──
461
+ {
462
+ contract_id: "verification_contract",
463
+ kind: "verification",
464
+ name: "验证契约",
465
+ state: "enforced",
466
+ owner_component: "engine/verification_contract",
467
+ owner_files: ["src/engine/verification_contract.ts"],
468
+ test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
469
+ lifecycle_test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
470
+ knowledge_refs: [],
471
+ prompt_refs: [],
472
+ depends_on: ["main_path_integration_contract"],
473
+ consumed_by: ["delivery_readiness_contract"],
474
+ hard_fail_allowed: true,
475
+ promotion_conditions: ["VerificationPlan 与 VerificationEvidence 分离有测试"],
476
+ demotion_conditions: ["验证契约检查产生大量误报"],
477
+ evidence_requirements: ["verification contract 测试通过"],
478
+ },
479
+ // ── 24. 交付就绪契约 ──
480
+ {
481
+ contract_id: "delivery_readiness_contract",
482
+ kind: "delivery",
483
+ name: "交付就绪契约",
484
+ state: "enforced",
485
+ owner_component: "engine/delivery_readiness",
486
+ owner_files: ["src/engine/delivery_readiness.ts"],
487
+ test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
488
+ lifecycle_test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
489
+ knowledge_refs: [],
490
+ prompt_refs: [],
491
+ depends_on: ["verification_contract", "enforcement_guard_contract"],
492
+ consumed_by: ["main_path_integration_contract"],
493
+ hard_fail_allowed: true,
494
+ promotion_conditions: ["交付许可不触发交付执行有测试"],
495
+ demotion_conditions: ["交付门控产生大量误报"],
496
+ evidence_requirements: ["delivery readiness 测试通过"],
497
+ },
498
+ // ── 25. 失败报告契约 ──
499
+ {
500
+ contract_id: "failure_report_contract",
501
+ kind: "failure",
502
+ name: "失败报告契约",
503
+ state: "enforced",
504
+ owner_component: "engine/failure_report",
505
+ owner_files: ["src/engine/failure_report.ts"],
506
+ test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
507
+ lifecycle_test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
508
+ knowledge_refs: [],
509
+ prompt_refs: [],
510
+ depends_on: ["diagnostic_code_contract", "failure_recovery_contract"],
511
+ consumed_by: ["main_path_integration_contract"],
512
+ hard_fail_allowed: true,
513
+ promotion_conditions: ["所有 FailureClass 有恢复策略和测试"],
514
+ demotion_conditions: ["失败分类产生大量误判"],
515
+ evidence_requirements: ["failure report 测试通过"],
516
+ },
517
+ // ── 26. 降级契约 ──
518
+ {
519
+ contract_id: "degradation_event_contract",
520
+ kind: "degradation",
521
+ name: "降级事件契约",
522
+ state: "enforced",
523
+ owner_component: "engine/degradation",
524
+ owner_files: ["src/engine/degradation.ts"],
525
+ test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
526
+ lifecycle_test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
527
+ knowledge_refs: [],
528
+ prompt_refs: [],
529
+ depends_on: ["diagnostic_code_contract"],
530
+ consumed_by: ["main_path_integration_contract"],
531
+ hard_fail_allowed: true,
532
+ promotion_conditions: ["降级事件用户可见有测试"],
533
+ demotion_conditions: ["降级检查产生大量误报"],
534
+ evidence_requirements: ["degradation 测试通过"],
535
+ },
536
+ // ── 27. 工作区隔离契约 ──
537
+ {
538
+ contract_id: "workspace_isolation_contract",
539
+ kind: "guard",
540
+ name: "工作区隔离契约",
541
+ state: "enforced",
542
+ owner_component: "engine/workspace_lease",
543
+ owner_files: ["src/engine/workspace_lease.ts"],
544
+ test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
545
+ lifecycle_test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
546
+ knowledge_refs: [],
547
+ prompt_refs: [],
548
+ depends_on: ["diagnostic_code_contract"],
549
+ consumed_by: ["main_path_integration_contract"],
550
+ hard_fail_allowed: true,
551
+ promotion_conditions: ["并发冲突检测有测试"],
552
+ demotion_conditions: ["lease 冲突检测产生大量误报"],
553
+ evidence_requirements: ["workspace lease 测试通过"],
554
+ },
555
+ // ── 28. 测试策略契约 ──
556
+ {
557
+ contract_id: "test_strategy_contract",
558
+ kind: "verification",
559
+ name: "测试策略契约",
560
+ state: "advisory",
561
+ owner_component: "engine/test_strategy",
562
+ owner_files: ["src/engine/test_strategy.ts"],
563
+ test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
564
+ lifecycle_test_files: [],
565
+ knowledge_refs: [],
566
+ prompt_refs: [],
567
+ depends_on: ["contract_governance"],
568
+ consumed_by: ["main_path_integration_contract"],
569
+ hard_fail_allowed: false,
570
+ promotion_conditions: ["enforced contract lifecycle test 覆盖完整"],
571
+ demotion_conditions: ["测试策略检查产生大量误报"],
572
+ evidence_requirements: ["test strategy 测试通过"],
573
+ },
574
+ // ── 29. 机制族映射契约 ──
575
+ {
576
+ contract_id: "mechanism_family_contract",
577
+ kind: "mechanism_family",
578
+ name: "机制族映射契约",
579
+ state: "advisory",
580
+ owner_component: "engine/mechanism_family_registry",
581
+ owner_files: ["src/engine/mechanism_family_registry.ts"],
582
+ test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
583
+ lifecycle_test_files: [],
584
+ knowledge_refs: [],
585
+ prompt_refs: [],
586
+ depends_on: ["contract_governance"],
587
+ consumed_by: ["main_path_integration_contract"],
588
+ hard_fail_allowed: false,
589
+ promotion_conditions: ["所有设计机制族有 owner module 和测试"],
590
+ demotion_conditions: ["机制族映射产生大量误报"],
591
+ evidence_requirements: ["mechanism family registry 测试通过"],
592
+ },
593
+ // ── 30. 语言策略契约 ──
594
+ {
595
+ contract_id: "language_policy_contract_entry",
596
+ kind: "language_policy",
597
+ name: "语言策略契约",
598
+ state: "advisory",
599
+ owner_component: "engine/language_policy_contract",
600
+ owner_files: ["src/engine/language_policy_contract.ts"],
601
+ test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
602
+ lifecycle_test_files: [],
603
+ knowledge_refs: [],
604
+ prompt_refs: [],
605
+ depends_on: [],
606
+ consumed_by: ["main_path_integration_contract"],
607
+ hard_fail_allowed: false,
608
+ promotion_conditions: ["中文语义覆盖所有用户可见路径"],
609
+ demotion_conditions: ["语言策略产生误判阻断"],
610
+ evidence_requirements: ["language policy 测试通过"],
611
+ },
612
+ // ── 31. 保留策略契约 ──
613
+ {
614
+ contract_id: "retention_policy_contract",
615
+ kind: "knowledge_evolution",
616
+ name: "保留策略契约",
617
+ state: "advisory",
618
+ owner_component: "engine/retention_policy",
619
+ owner_files: ["src/engine/retention_policy.ts"],
620
+ test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
621
+ lifecycle_test_files: [],
622
+ knowledge_refs: [],
623
+ prompt_refs: [],
624
+ depends_on: [],
625
+ consumed_by: ["main_path_integration_contract"],
626
+ hard_fail_allowed: false,
627
+ promotion_conditions: ["所有记录类型有保留策略"],
628
+ demotion_conditions: ["清理策略删除仍被引用的 evidence"],
629
+ evidence_requirements: ["retention policy 测试通过"],
630
+ },
631
+ // ── Batch 3 契约 ──
632
+ // ── 32. 知识生命周期契约(问题七) ──
633
+ {
634
+ contract_id: "knowledge_lifecycle_contract",
635
+ kind: "knowledge_lifecycle",
636
+ name: "知识生命周期契约",
637
+ state: "enforced",
638
+ owner_component: "engine/knowledge_lifecycle",
639
+ owner_files: ["src/engine/knowledge_lifecycle.ts"],
640
+ test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
641
+ lifecycle_test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
642
+ knowledge_refs: [],
643
+ prompt_refs: [],
644
+ depends_on: ["knowledge_evolution_contract"],
645
+ consumed_by: ["main_path_integration_contract"],
646
+ hard_fail_allowed: true,
647
+ promotion_conditions: ["知识生命周期状态机完整测试"],
648
+ demotion_conditions: ["知识生命周期产生误判"],
649
+ evidence_requirements: ["知识生命周期场景矩阵通过"],
650
+ },
651
+ // ── 33. 知识演进契约(问题十四) ──
652
+ {
653
+ contract_id: "knowledge_evolution_contract",
654
+ kind: "knowledge_evolution",
655
+ name: "知识演进契约",
656
+ state: "enforced",
657
+ owner_component: "engine/knowledge_evolution",
658
+ owner_files: ["src/engine/knowledge_evolution.ts"],
659
+ test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
660
+ lifecycle_test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
661
+ knowledge_refs: [],
662
+ prompt_refs: [],
663
+ depends_on: ["knowledge_lifecycle_contract"],
664
+ consumed_by: ["main_path_integration_contract"],
665
+ hard_fail_allowed: true,
666
+ promotion_conditions: ["Evidence-based promotion 有完整测试"],
667
+ demotion_conditions: ["知识演进产生误判"],
668
+ evidence_requirements: ["知识演进场景矩阵通过"],
669
+ },
670
+ // ── 34. 模板同步契约(问题二十五) ──
671
+ {
672
+ contract_id: "template_sync_contract",
673
+ kind: "template_sync",
674
+ name: "模板同步契约",
675
+ state: "enforced",
676
+ owner_component: "engine/template_sync",
677
+ owner_files: ["src/engine/template_sync.ts"],
678
+ test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
679
+ lifecycle_test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
680
+ knowledge_refs: [],
681
+ prompt_refs: [],
682
+ depends_on: ["knowledge_lifecycle_contract"],
683
+ consumed_by: ["main_path_integration_contract"],
684
+ hard_fail_allowed: true,
685
+ promotion_conditions: ["模板同步 dry-run/apply 有完整测试"],
686
+ demotion_conditions: ["模板同步产生误判"],
687
+ evidence_requirements: ["模板同步场景矩阵通过"],
688
+ },
689
+ // ── 35. 适配器 Prompt 契约(问题三十一) ──
690
+ {
691
+ contract_id: "adapter_prompt_contract_entry",
692
+ kind: "adapter_prompt",
693
+ name: "适配器 Prompt 契约",
694
+ state: "enforced",
695
+ owner_component: "engine/adapter_prompt_contract",
696
+ owner_files: ["src/engine/adapter_prompt_contract.ts"],
697
+ test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
698
+ lifecycle_test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
699
+ knowledge_refs: [],
700
+ prompt_refs: [],
701
+ depends_on: ["tool_invocation_contract"],
702
+ consumed_by: ["main_path_integration_contract"],
703
+ hard_fail_allowed: true,
704
+ promotion_conditions: ["adapter prompt 验证有完整测试"],
705
+ demotion_conditions: ["adapter prompt 验证产生误判"],
706
+ evidence_requirements: ["adapter prompt 场景矩阵通过"],
707
+ },
708
+ // ── 36. 文档治理契约(问题二十一) ──
709
+ {
710
+ contract_id: "documentation_governance_contract",
711
+ kind: "documentation_governance",
712
+ name: "文档治理契约",
713
+ state: "enforced",
714
+ owner_component: "engine/documentation_governance",
715
+ owner_files: ["src/engine/documentation_governance.ts"],
716
+ test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
717
+ lifecycle_test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
718
+ knowledge_refs: [],
719
+ prompt_refs: [],
720
+ depends_on: ["contract_governance"],
721
+ consumed_by: ["main_path_integration_contract"],
722
+ hard_fail_allowed: true,
723
+ promotion_conditions: ["文档治理有完整测试"],
724
+ demotion_conditions: ["文档治理产生误判"],
725
+ evidence_requirements: ["文档治理场景矩阵通过"],
726
+ },
727
+ // ── 37. 用户承诺契约(问题三十) ──
728
+ {
729
+ contract_id: "user_promise_contract",
730
+ kind: "user_promise",
731
+ name: "用户承诺契约",
732
+ state: "enforced",
733
+ owner_component: "engine/user_promise",
734
+ owner_files: ["src/engine/user_promise.ts"],
735
+ test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
736
+ lifecycle_test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
737
+ knowledge_refs: [],
738
+ prompt_refs: [],
739
+ depends_on: ["documentation_governance_contract"],
740
+ consumed_by: ["main_path_integration_contract"],
741
+ hard_fail_allowed: true,
742
+ promotion_conditions: ["README 命令漂移检测有完整测试"],
743
+ demotion_conditions: ["用户承诺检测产生误判"],
744
+ evidence_requirements: ["用户承诺场景矩阵通过"],
745
+ },
746
+ // ── 38. 发布兼容契约(问题三十五) ──
747
+ {
748
+ contract_id: "release_compatibility_contract",
749
+ kind: "release_compatibility",
750
+ name: "发布兼容契约",
751
+ state: "enforced",
752
+ owner_component: "engine/release_compatibility",
753
+ owner_files: ["src/engine/release_compatibility.ts"],
754
+ test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
755
+ lifecycle_test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
756
+ knowledge_refs: [],
757
+ prompt_refs: [],
758
+ depends_on: ["template_sync_contract"],
759
+ consumed_by: ["main_path_integration_contract"],
760
+ hard_fail_allowed: true,
761
+ promotion_conditions: ["发布兼容有完整测试"],
762
+ demotion_conditions: ["发布兼容产生误判"],
763
+ evidence_requirements: ["发布兼容场景矩阵通过"],
764
+ },
765
+ // ── 39. 语言策略覆盖契约(问题四十一) ──
766
+ {
767
+ contract_id: "language_policy_override_contract",
768
+ kind: "language_policy",
769
+ name: "语言策略覆盖契约",
770
+ state: "enforced",
771
+ owner_component: "engine/language_policy",
772
+ owner_files: ["src/engine/language_policy.ts"],
773
+ test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
774
+ lifecycle_test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
775
+ knowledge_refs: [],
776
+ prompt_refs: [],
777
+ depends_on: ["language_policy_contract_entry"],
778
+ consumed_by: ["main_path_integration_contract"],
779
+ hard_fail_allowed: true,
780
+ promotion_conditions: ["语言策略覆盖有完整测试"],
781
+ demotion_conditions: ["语言策略覆盖产生误判"],
782
+ evidence_requirements: ["语言策略覆盖场景矩阵通过"],
783
+ },
784
+ // ── 40. 中文语义优先契约(问题十) ──
785
+ {
786
+ contract_id: "chinese_semantic_priority_contract",
787
+ kind: "chinese_semantic",
788
+ name: "中文语义优先契约",
789
+ state: "enforced",
790
+ owner_component: "engine/chinese_semantic_priority",
791
+ owner_files: ["src/engine/chinese_semantic_priority.ts"],
792
+ test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
793
+ lifecycle_test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
794
+ knowledge_refs: [],
795
+ prompt_refs: [],
796
+ depends_on: ["language_policy_override_contract"],
797
+ consumed_by: ["main_path_integration_contract"],
798
+ hard_fail_allowed: true,
799
+ promotion_conditions: ["中文语义优先有完整测试"],
800
+ demotion_conditions: ["中文语义优先产生误判"],
801
+ evidence_requirements: ["中文语义优先场景矩阵通过"],
802
+ },
803
+ // ── Batch 4 契约 ──
804
+ // ── 41. 扩展契约(问题三十九) ──
805
+ {
806
+ contract_id: "extension_contract",
807
+ kind: "extension",
808
+ name: "扩展契约",
809
+ state: "enforced",
810
+ owner_component: "engine/extension_contract",
811
+ owner_files: ["src/engine/extension_contract.ts"],
812
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
813
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
814
+ knowledge_refs: [],
815
+ prompt_refs: [],
816
+ depends_on: ["contract_governance"],
817
+ consumed_by: ["main_path_integration_contract"],
818
+ hard_fail_allowed: true,
819
+ promotion_conditions: ["扩展生命周期、权限授权有完整测试"],
820
+ demotion_conditions: ["扩展契约产生误判"],
821
+ evidence_requirements: ["扩展契约场景矩阵通过"],
822
+ },
823
+ // ── 42. 平台兼容契约(问题四十) ──
824
+ {
825
+ contract_id: "platform_compatibility_contract",
826
+ kind: "platform_compatibility",
827
+ name: "平台兼容契约",
828
+ state: "enforced",
829
+ owner_component: "engine/platform_context",
830
+ owner_files: ["src/engine/platform_context.ts"],
831
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
832
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
833
+ knowledge_refs: [],
834
+ prompt_refs: [],
835
+ depends_on: ["contract_governance"],
836
+ consumed_by: ["main_path_integration_contract"],
837
+ hard_fail_allowed: true,
838
+ promotion_conditions: ["跨平台路径安全有完整测试"],
839
+ demotion_conditions: ["平台兼容产生误判"],
840
+ evidence_requirements: ["平台兼容场景矩阵通过"],
841
+ },
842
+ // ── 43. 治理动作契约(问题十九) ──
843
+ {
844
+ contract_id: "governance_action_contract",
845
+ kind: "governance_action",
846
+ name: "治理动作契约",
847
+ state: "enforced",
848
+ owner_component: "engine/metric_governance",
849
+ owner_files: ["src/engine/metric_governance.ts"],
850
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
851
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
852
+ knowledge_refs: [],
853
+ prompt_refs: [],
854
+ depends_on: ["metric_contract"],
855
+ consumed_by: ["main_path_integration_contract"],
856
+ hard_fail_allowed: true,
857
+ promotion_conditions: ["治理动作绑定有完整测试"],
858
+ demotion_conditions: ["治理动作产生误判"],
859
+ evidence_requirements: ["治理动作场景矩阵通过"],
860
+ },
861
+ // ── 44. 脑暴契约(问题四十一 Brainstorm) ──
862
+ {
863
+ contract_id: "brainstorm_contract",
864
+ kind: "brainstorm",
865
+ name: "脑暴/方案探索契约",
866
+ state: "enforced",
867
+ owner_component: "engine/brainstorm_contract",
868
+ owner_files: ["src/engine/brainstorm_contract.ts"],
869
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
870
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
871
+ knowledge_refs: [],
872
+ prompt_refs: [],
873
+ depends_on: ["technology_decision_contract"],
874
+ consumed_by: ["main_path_integration_contract"],
875
+ hard_fail_allowed: true,
876
+ promotion_conditions: ["脑暴会话完整性有测试"],
877
+ demotion_conditions: ["脑暴契约产生误判"],
878
+ evidence_requirements: ["脑暴契约场景矩阵通过"],
879
+ },
880
+ // ── 45. 细节纪律契约(问题二十六) ──
881
+ {
882
+ contract_id: "detail_discipline_contract",
883
+ kind: "detail_discipline",
884
+ name: "细节纪律契约",
885
+ state: "enforced",
886
+ owner_component: "engine/detail_discipline",
887
+ owner_files: ["src/engine/detail_discipline.ts"],
888
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
889
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
890
+ knowledge_refs: [],
891
+ prompt_refs: [],
892
+ depends_on: ["contract_governance"],
893
+ consumed_by: ["main_path_integration_contract"],
894
+ hard_fail_allowed: true,
895
+ promotion_conditions: ["细节纪律检查有完整测试"],
896
+ demotion_conditions: ["细节纪律产生误判"],
897
+ evidence_requirements: ["细节纪律场景矩阵通过"],
898
+ },
899
+ // ── 46. 第一性原理契约(问题二十七) ──
900
+ {
901
+ contract_id: "first_principles_contract",
902
+ kind: "first_principles",
903
+ name: "第一性原理契约",
904
+ state: "enforced",
905
+ owner_component: "engine/first_principles",
906
+ owner_files: ["src/engine/first_principles.ts"],
907
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
908
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
909
+ knowledge_refs: [],
910
+ prompt_refs: [],
911
+ depends_on: ["contract_governance"],
912
+ consumed_by: ["main_path_integration_contract"],
913
+ hard_fail_allowed: true,
914
+ promotion_conditions: ["第一性原理检查有完整测试"],
915
+ demotion_conditions: ["第一性原理产生误判"],
916
+ evidence_requirements: ["第一性原理场景矩阵通过"],
917
+ },
918
+ // ── 47. 架构设计契约(问题四十九) ──
919
+ {
920
+ contract_id: "architecture_design_contract_entry",
921
+ kind: "architecture_design",
922
+ name: "架构设计契约",
923
+ state: "enforced",
924
+ owner_component: "engine/architecture_design_contract",
925
+ owner_files: ["src/engine/architecture_design_contract.ts"],
926
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
927
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
928
+ knowledge_refs: [],
929
+ prompt_refs: [],
930
+ depends_on: ["technology_decision_contract", "brainstorm_contract"],
931
+ consumed_by: ["main_path_integration_contract"],
932
+ hard_fail_allowed: true,
933
+ promotion_conditions: ["架构设计审查有完整测试"],
934
+ demotion_conditions: ["架构设计产生误判"],
935
+ evidence_requirements: ["架构设计场景矩阵通过"],
936
+ },
937
+ // ── 48. 现有系统分析契约(问题五十) ──
938
+ {
939
+ contract_id: "existing_system_analysis_contract_entry",
940
+ kind: "existing_system_analysis",
941
+ name: "现有系统分析契约",
942
+ state: "enforced",
943
+ owner_component: "engine/existing_system_analysis",
944
+ owner_files: ["src/engine/existing_system_analysis.ts"],
945
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
946
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
947
+ knowledge_refs: [],
948
+ prompt_refs: [],
949
+ depends_on: ["contract_governance"],
950
+ consumed_by: ["main_path_integration_contract"],
951
+ hard_fail_allowed: true,
952
+ promotion_conditions: ["现有系统分析有完整测试"],
953
+ demotion_conditions: ["现有系统分析产生误判"],
954
+ evidence_requirements: ["现有系统分析场景矩阵通过"],
955
+ },
956
+ // ── 49. 编码准备契约(问题五十一) ──
957
+ {
958
+ contract_id: "coding_readiness_contract_entry",
959
+ kind: "coding_readiness",
960
+ name: "编码准备契约",
961
+ state: "enforced",
962
+ owner_component: "engine/coding_readiness_gate",
963
+ owner_files: ["src/engine/coding_readiness_gate.ts"],
964
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
965
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
966
+ knowledge_refs: [],
967
+ prompt_refs: [],
968
+ depends_on: ["existing_system_analysis_contract_entry"],
969
+ consumed_by: ["main_path_integration_contract"],
970
+ hard_fail_allowed: true,
971
+ promotion_conditions: ["编码准备门有完整测试"],
972
+ demotion_conditions: ["编码准备产生误判"],
973
+ evidence_requirements: ["编码准备场景矩阵通过"],
974
+ },
975
+ // ── 50. 本地验收契约(问题五十二) ──
976
+ {
977
+ contract_id: "local_acceptance_contract_entry",
978
+ kind: "local_acceptance",
979
+ name: "本地验收契约",
980
+ state: "enforced",
981
+ owner_component: "engine/local_docker_acceptance",
982
+ owner_files: ["src/engine/local_docker_acceptance.ts"],
983
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
984
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
985
+ knowledge_refs: [],
986
+ prompt_refs: [],
987
+ depends_on: ["coding_readiness_contract_entry"],
988
+ consumed_by: ["main_path_integration_contract"],
989
+ hard_fail_allowed: true,
990
+ promotion_conditions: ["本地验收有完整测试"],
991
+ demotion_conditions: ["本地验收产生误判"],
992
+ evidence_requirements: ["本地验收场景矩阵通过"],
993
+ },
994
+ // ── 51. 工作流模板包契约(问题五十三) ──
995
+ {
996
+ contract_id: "workflow_template_pack_contract_entry",
997
+ kind: "workflow_template_pack",
998
+ name: "工作流模板包契约",
999
+ state: "enforced",
1000
+ owner_component: "engine/workflow_template_pack",
1001
+ owner_files: ["src/engine/workflow_template_pack.ts"],
1002
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
1003
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
1004
+ knowledge_refs: [],
1005
+ prompt_refs: [],
1006
+ depends_on: ["architecture_design_contract_entry"],
1007
+ consumed_by: ["main_path_integration_contract"],
1008
+ hard_fail_allowed: true,
1009
+ promotion_conditions: ["模板包消费 pipeline 有完整测试"],
1010
+ demotion_conditions: ["模板包产生误判"],
1011
+ evidence_requirements: ["模板包场景矩阵通过"],
1012
+ },
1013
+ // ── 52. 演进回归契约(问题五十四) ──
1014
+ {
1015
+ contract_id: "evolution_regression_contract_entry",
1016
+ kind: "evolution_regression",
1017
+ name: "演进回归契约",
1018
+ state: "enforced",
1019
+ owner_component: "engine/evolution_regression_gate",
1020
+ owner_files: ["src/engine/evolution_regression_gate.ts"],
1021
+ test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
1022
+ lifecycle_test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
1023
+ knowledge_refs: [],
1024
+ prompt_refs: [],
1025
+ depends_on: ["contract_governance"],
1026
+ consumed_by: ["main_path_integration_contract"],
1027
+ hard_fail_allowed: true,
1028
+ promotion_conditions: ["演进回归有完整测试"],
1029
+ demotion_conditions: ["演进回归产生误判"],
1030
+ evidence_requirements: ["演进回归场景矩阵通过"],
1031
+ },
1032
+ // ── Batch 5 契约 ──
1033
+ // ── 53. Plan Proposal First Gate 契约(问题五十五) ──
1034
+ {
1035
+ contract_id: "plan_proposal_gate_contract",
1036
+ kind: "plan_proposal_gate",
1037
+ name: "计划前置门契约",
1038
+ state: "enforced",
1039
+ owner_component: "engine/plan_proposal_gate",
1040
+ owner_files: ["src/engine/plan_proposal_gate.ts"],
1041
+ test_files: ["tests/engine/release_gate_scenario_matrix.test.ts"],
1042
+ lifecycle_test_files: ["tests/engine/release_gate_scenario_matrix.test.ts"],
1043
+ knowledge_refs: [],
1044
+ prompt_refs: [],
1045
+ depends_on: ["task_context_contract", "workflow_contract"],
1046
+ consumed_by: ["core_experience_principle_contract"],
1047
+ hard_fail_allowed: true,
1048
+ promotion_conditions: ["PlanProposalFirstGate 场景A 通过"],
1049
+ demotion_conditions: ["Plan Gate 产生大量误报"],
1050
+ evidence_requirements: ["evaluatePlanProposalGate 无 hard_fail", "场景 A must-fail 全部触发"],
1051
+ },
1052
+ // ── 54. Core Experience Principle 契约(问题五十六) ──
1053
+ {
1054
+ contract_id: "core_experience_principle_contract",
1055
+ kind: "core_experience_principle",
1056
+ name: "核心体验原则契约",
1057
+ state: "enforced",
1058
+ owner_component: "engine/core_experience_principle",
1059
+ owner_files: ["src/engine/core_experience_principle.ts"],
1060
+ test_files: ["tests/engine/release_gate_scenario_matrix.test.ts"],
1061
+ lifecycle_test_files: ["tests/engine/release_gate_scenario_matrix.test.ts"],
1062
+ knowledge_refs: [],
1063
+ prompt_refs: [],
1064
+ depends_on: ["plan_proposal_gate_contract", "verification_contract", "failure_report_contract"],
1065
+ consumed_by: ["knowledge_asset_governance_contract"],
1066
+ hard_fail_allowed: true,
1067
+ promotion_conditions: ["CoreExperiencePrincipleEvaluation 场景B 通过"],
1068
+ demotion_conditions: ["体验原则检查产生大量误报"],
1069
+ evidence_requirements: ["evaluateCoreExperiencePrinciple 无 hard_fail", "场景 B must-fail 全部触发"],
1070
+ },
1071
+ // ── 55. Knowledge Asset Governance 契约(问题五十七) ──
1072
+ {
1073
+ contract_id: "knowledge_asset_governance_contract",
1074
+ kind: "knowledge_asset_governance",
1075
+ name: "知识资产治理契约",
1076
+ state: "enforced",
1077
+ owner_component: "engine/knowledge_asset_schema",
1078
+ owner_files: [
1079
+ "src/engine/knowledge_asset_schema.ts",
1080
+ "src/engine/knowledge_asset_audit.ts",
1081
+ "src/engine/knowledge_consumption_snapshot.ts",
1082
+ "src/engine/knowledge_asset_generation_gate.ts",
1083
+ "src/engine/knowledge_asset_migration.ts",
1084
+ ],
1085
+ test_files: ["tests/engine/release_gate_scenario_matrix.test.ts"],
1086
+ lifecycle_test_files: ["tests/engine/release_gate_scenario_matrix.test.ts"],
1087
+ knowledge_refs: [],
1088
+ prompt_refs: [],
1089
+ depends_on: ["knowledge_lifecycle_contract", "template_sync_contract", "release_compatibility_contract"],
1090
+ consumed_by: ["core_experience_principle_contract"],
1091
+ hard_fail_allowed: true,
1092
+ promotion_conditions: ["KnowledgeAssetAudit 通过", "KnowledgeConsumptionSnapshot 完整"],
1093
+ demotion_conditions: ["知识资产审计产生大量误报"],
1094
+ evidence_requirements: ["validateKnowledgeAssets 无 hard_fail", "场景 C must-fail 全部触发", "消费快照包含 indexed/injected/filtered/degraded/conflict_resolutions"],
1095
+ },
1096
+ ];
1097
+ // ── 运行时注册表(允许动态添加,用于测试和扩展) ──
1098
+ let runtimeEntries = null;
1099
+ function getRegistry() {
1100
+ if (!runtimeEntries) {
1101
+ runtimeEntries = new Map();
1102
+ for (const entry of BUILTIN_CONTRACTS) {
1103
+ runtimeEntries.set(entry.contract_id, cloneEntry(entry));
1104
+ }
1105
+ }
1106
+ return runtimeEntries;
1107
+ }
1108
+ function cloneEntry(e) {
1109
+ return {
1110
+ ...e,
1111
+ owner_files: [...e.owner_files],
1112
+ test_files: [...e.test_files],
1113
+ lifecycle_test_files: [...e.lifecycle_test_files],
1114
+ knowledge_refs: [...e.knowledge_refs],
1115
+ prompt_refs: [...e.prompt_refs],
1116
+ depends_on: [...e.depends_on],
1117
+ consumed_by: [...e.consumed_by],
1118
+ promotion_conditions: [...e.promotion_conditions],
1119
+ demotion_conditions: [...e.demotion_conditions],
1120
+ evidence_requirements: [...e.evidence_requirements],
1121
+ capability_ids: e.capability_ids ? [...e.capability_ids] : undefined,
1122
+ };
1123
+ }
1124
+ // ── 查询函数 ──
1125
+ /** 获取所有契约条目 */
1126
+ export function getAllContracts() {
1127
+ return [...getRegistry().values()].map(cloneEntry);
1128
+ }
1129
+ /** 按 contract_id 获取 */
1130
+ export function getContractById(id) {
1131
+ const entry = getRegistry().get(id);
1132
+ return entry ? cloneEntry(entry) : undefined;
1133
+ }
1134
+ /** 按 policy_id 查找对应 contract_id */
1135
+ export function getContractByPolicyId(policyId) {
1136
+ for (const entry of getRegistry().values()) {
1137
+ if (entry.policy_id === policyId)
1138
+ return cloneEntry(entry);
1139
+ }
1140
+ return undefined;
1141
+ }
1142
+ /** 按类型列出契约 */
1143
+ export function listContractsByKind(kind) {
1144
+ return [...getRegistry().values()]
1145
+ .filter((e) => e.kind === kind)
1146
+ .map(cloneEntry);
1147
+ }
1148
+ /** 按状态列出契约 */
1149
+ export function listContractsByState(state) {
1150
+ return [...getRegistry().values()]
1151
+ .filter((e) => e.state === state)
1152
+ .map(cloneEntry);
1153
+ }
1154
+ /** 列出所有契约 */
1155
+ export function listContracts() {
1156
+ return getAllContracts();
1157
+ }
1158
+ /** 注册表汇总统计 */
1159
+ export function getContractRegistrySummary() {
1160
+ const entries = [...getRegistry().values()];
1161
+ const ALL_KINDS = [
1162
+ "capability", "mechanism_family", "workflow", "guard",
1163
+ "knowledge_injection", "verification", "delivery", "failure",
1164
+ "degradation", "metric", "language_policy", "technology_decision",
1165
+ "task_context", "knowledge_evolution", "knowledge_lifecycle",
1166
+ "template_sync", "adapter_prompt", "documentation_governance",
1167
+ "user_promise", "release_compatibility", "chinese_semantic",
1168
+ "extension", "platform_compatibility", "governance_action",
1169
+ "decision_sovereignty", "brainstorm", "detail_discipline",
1170
+ "first_principles", "architecture_design", "existing_system_analysis",
1171
+ "coding_readiness", "local_acceptance", "workflow_template_pack",
1172
+ "evolution_regression", "plan_proposal_gate", "core_experience_principle",
1173
+ "knowledge_asset_governance",
1174
+ ];
1175
+ const ALL_STATES = [
1176
+ "draft", "advisory", "enforced", "experimental", "deprecated", "removed",
1177
+ ];
1178
+ const by_kind = Object.fromEntries(ALL_KINDS.map((k) => [k, entries.filter((e) => e.kind === k).length]));
1179
+ const by_state = Object.fromEntries(ALL_STATES.map((s) => [s, entries.filter((e) => e.state === s).length]));
1180
+ const canHardFail = entries.filter((e) => e.hard_fail_allowed && e.state === "enforced");
1181
+ const cannotHardFail = entries.filter((e) => !(e.hard_fail_allowed && e.state === "enforced"));
1182
+ return {
1183
+ total: entries.length,
1184
+ by_kind,
1185
+ by_state,
1186
+ can_hard_fail: canHardFail.map((e) => e.contract_id),
1187
+ cannot_hard_fail: cannotHardFail.map((e) => e.contract_id),
1188
+ };
1189
+ }
1190
+ // ── 运行时硬失败门控 ──
1191
+ /**
1192
+ * 判断契约是否允许 hard fail。
1193
+ * 只有 state=enforced 且 hard_fail_allowed=true 的契约才能阻断。
1194
+ */
1195
+ export function canContractHardFail(contractId) {
1196
+ const entry = getRegistry().get(contractId);
1197
+ if (!entry)
1198
+ return false;
1199
+ return entry.state === "enforced" && entry.hard_fail_allowed;
1200
+ }
1201
+ /**
1202
+ * Runtime hard fail gate — 未登记的契约不得 hard fail。
1203
+ * 用于运行时检查 workflow 是否引用了合法的 guard/verification/failure 契约。
1204
+ */
1205
+ export function runtimeHardFailGate(contractId, context) {
1206
+ const entry = getRegistry().get(contractId);
1207
+ if (!entry) {
1208
+ return {
1209
+ allowed: false,
1210
+ reason: `契约 ${contractId} 未在 Unified Contract Registry 登记,不得 hard fail`,
1211
+ };
1212
+ }
1213
+ if (entry.state === "removed") {
1214
+ return {
1215
+ allowed: false,
1216
+ reason: `契约 ${contractId} 已移除,${context} 不得引用已移除契约`,
1217
+ };
1218
+ }
1219
+ if (entry.state === "deprecated") {
1220
+ if (entry.replacement_contract_id) {
1221
+ return {
1222
+ allowed: false,
1223
+ reason: `契约 ${contractId} 已废弃,替代契约: ${entry.replacement_contract_id},请迁移到替代契约`,
1224
+ };
1225
+ }
1226
+ if (entry.migration_note) {
1227
+ return {
1228
+ allowed: false,
1229
+ reason: `契约 ${contractId} 已废弃,迁移说明: ${entry.migration_note}`,
1230
+ };
1231
+ }
1232
+ return {
1233
+ allowed: false,
1234
+ reason: `契约 ${contractId} 已废弃且无替代/迁移说明,${context} 不得引用`,
1235
+ };
1236
+ }
1237
+ if (entry.state === "advisory" || entry.state === "experimental" || entry.state === "draft") {
1238
+ return {
1239
+ allowed: false,
1240
+ reason: `契约 ${contractId} 状态为 ${entry.state},advisory/experimental/draft 契约只能 warning/advisory,不能阻断主流程`,
1241
+ };
1242
+ }
1243
+ if (entry.state === "enforced" && !entry.hard_fail_allowed) {
1244
+ return {
1245
+ allowed: false,
1246
+ reason: `契约 ${contractId} enforced 但 hard_fail_allowed=false,不得阻断`,
1247
+ };
1248
+ }
1249
+ if (entry.state === "enforced" && entry.hard_fail_allowed) {
1250
+ return { allowed: true, reason: "契约已强制登记且允许 hard fail" };
1251
+ }
1252
+ return { allowed: false, reason: `契约 ${contractId} 状态为 ${entry.state},不允许 hard fail` };
1253
+ }
1254
+ // ── 契约治理内核 ──
1255
+ /**
1256
+ * 验证契约注册表完整性。
1257
+ * 检查: 唯一性、字段完整性、文件存在、状态约束、依赖存在性、capability 冲突等。
1258
+ */
1259
+ export function validateContractRegistry(existingFiles) {
1260
+ const findings = [];
1261
+ const entries = [...getRegistry().values()];
1262
+ const idSet = new Set();
1263
+ for (const entry of entries) {
1264
+ // 1. contract_id 唯一且非空
1265
+ if (!entry.contract_id || entry.contract_id.trim() === "") {
1266
+ findings.push({
1267
+ contract_id: entry.contract_id || "",
1268
+ kind: entry.kind,
1269
+ severity: "hard_fail",
1270
+ rule: "contract_id_nonempty",
1271
+ message_zh: "contract_id 不能为空",
1272
+ evidence_refs: [],
1273
+ });
1274
+ continue;
1275
+ }
1276
+ if (idSet.has(entry.contract_id)) {
1277
+ findings.push({
1278
+ contract_id: entry.contract_id,
1279
+ kind: entry.kind,
1280
+ severity: "hard_fail",
1281
+ rule: "contract_id_unique",
1282
+ message_zh: `contract_id ${entry.contract_id} 重复`,
1283
+ evidence_refs: [],
1284
+ });
1285
+ }
1286
+ idSet.add(entry.contract_id);
1287
+ // 2. kind/state/owner/test 字段完整
1288
+ if (!entry.kind) {
1289
+ findings.push({
1290
+ contract_id: entry.contract_id,
1291
+ kind: entry.kind,
1292
+ severity: "hard_fail",
1293
+ rule: "kind_required",
1294
+ message_zh: `契约 ${entry.contract_id} 缺少 kind`,
1295
+ evidence_refs: [],
1296
+ });
1297
+ }
1298
+ if (!entry.state) {
1299
+ findings.push({
1300
+ contract_id: entry.contract_id,
1301
+ kind: entry.kind,
1302
+ severity: "hard_fail",
1303
+ rule: "state_required",
1304
+ message_zh: `契约 ${entry.contract_id} 缺少 state`,
1305
+ evidence_refs: [],
1306
+ });
1307
+ }
1308
+ if (!entry.owner_component) {
1309
+ findings.push({
1310
+ contract_id: entry.contract_id,
1311
+ kind: entry.kind,
1312
+ severity: "hard_fail",
1313
+ rule: "owner_required",
1314
+ message_zh: `契约 ${entry.contract_id} 缺少 owner_component`,
1315
+ evidence_refs: [],
1316
+ });
1317
+ }
1318
+ if (entry.test_files.length === 0) {
1319
+ findings.push({
1320
+ contract_id: entry.contract_id,
1321
+ kind: entry.kind,
1322
+ severity: "hard_fail",
1323
+ rule: "test_files_required",
1324
+ message_zh: `契约 ${entry.contract_id} 无测试文件,所有核心契约必须有测试`,
1325
+ evidence_refs: [],
1326
+ });
1327
+ }
1328
+ // 3. owner_files/test_files 存在性(当 existingFiles 提供时)
1329
+ if (existingFiles) {
1330
+ const isEnforcedOrHardFail = entry.state === "enforced" || entry.hard_fail_allowed;
1331
+ for (const f of entry.owner_files) {
1332
+ if (!existingFiles.has(f)) {
1333
+ findings.push({
1334
+ contract_id: entry.contract_id,
1335
+ kind: entry.kind,
1336
+ severity: isEnforcedOrHardFail ? "hard_fail" : "warning",
1337
+ rule: "owner_file_exists",
1338
+ message_zh: `契约 ${entry.contract_id} 的 owner_file ${f} 不存在${isEnforcedOrHardFail ? "(enforced/hard_fail 契约必须存在)" : ""}`,
1339
+ evidence_refs: [f],
1340
+ });
1341
+ }
1342
+ }
1343
+ for (const f of entry.test_files) {
1344
+ if (!existingFiles.has(f)) {
1345
+ findings.push({
1346
+ contract_id: entry.contract_id,
1347
+ kind: entry.kind,
1348
+ severity: isEnforcedOrHardFail ? "hard_fail" : "warning",
1349
+ rule: "test_file_exists",
1350
+ message_zh: `契约 ${entry.contract_id} 的 test_file ${f} 不存在${isEnforcedOrHardFail ? "(enforced/hard_fail 契约必须存在)" : ""}`,
1351
+ evidence_refs: [f],
1352
+ });
1353
+ }
1354
+ }
1355
+ for (const f of entry.lifecycle_test_files) {
1356
+ if (!existingFiles.has(f)) {
1357
+ findings.push({
1358
+ contract_id: entry.contract_id,
1359
+ kind: entry.kind,
1360
+ severity: "hard_fail",
1361
+ rule: "lifecycle_test_file_exists",
1362
+ message_zh: `契约 ${entry.contract_id} 的 lifecycle_test_file ${f} 不存在`,
1363
+ evidence_refs: [f],
1364
+ });
1365
+ }
1366
+ }
1367
+ }
1368
+ // 4. hard_fail_allowed=true 必须 state=enforced 且 lifecycle_test_files 非空
1369
+ if (entry.hard_fail_allowed) {
1370
+ if (entry.state !== "enforced") {
1371
+ findings.push({
1372
+ contract_id: entry.contract_id,
1373
+ kind: entry.kind,
1374
+ severity: "hard_fail",
1375
+ rule: "hard_fail_requires_enforced",
1376
+ message_zh: `契约 ${entry.contract_id} 的 hard_fail_allowed=true 但 state=${entry.state},只有 enforced 契约允许 hard fail`,
1377
+ evidence_refs: [],
1378
+ });
1379
+ }
1380
+ if (entry.lifecycle_test_files.length === 0) {
1381
+ findings.push({
1382
+ contract_id: entry.contract_id,
1383
+ kind: entry.kind,
1384
+ severity: "hard_fail",
1385
+ rule: "hard_fail_requires_lifecycle_tests",
1386
+ message_zh: `契约 ${entry.contract_id} 的 hard_fail_allowed=true 但无 lifecycle_test_files`,
1387
+ evidence_refs: [],
1388
+ });
1389
+ }
1390
+ }
1391
+ // 5. advisory/experimental/draft 不得 hard_fail_allowed
1392
+ if ((entry.state === "advisory" ||
1393
+ entry.state === "experimental" ||
1394
+ entry.state === "draft") &&
1395
+ entry.hard_fail_allowed) {
1396
+ findings.push({
1397
+ contract_id: entry.contract_id,
1398
+ kind: entry.kind,
1399
+ severity: "hard_fail",
1400
+ rule: "non_enforced_no_hard_fail",
1401
+ message_zh: `契约 ${entry.contract_id} 的 state=${entry.state},advisory/experimental/draft 契约不得 hard_fail_allowed=true`,
1402
+ evidence_refs: [],
1403
+ });
1404
+ }
1405
+ // 6. deprecated 必须有 replacement_contract_id 或 migration_note
1406
+ if (entry.state === "deprecated") {
1407
+ if (!entry.replacement_contract_id && !entry.migration_note) {
1408
+ findings.push({
1409
+ contract_id: entry.contract_id,
1410
+ kind: entry.kind,
1411
+ severity: "hard_fail",
1412
+ rule: "deprecated_requires_replacement",
1413
+ message_zh: `契约 ${entry.contract_id} 已废弃但无 replacement_contract_id 或 migration_note`,
1414
+ evidence_refs: [],
1415
+ });
1416
+ }
1417
+ }
1418
+ // 7. removed 不得被 workflow/prompt/consumed_by 主链路引用
1419
+ if (entry.state === "removed") {
1420
+ if (entry.consumed_by.length > 0) {
1421
+ findings.push({
1422
+ contract_id: entry.contract_id,
1423
+ kind: entry.kind,
1424
+ severity: "hard_fail",
1425
+ rule: "removed_not_referenced",
1426
+ message_zh: `已移除契约 ${entry.contract_id} 仍被 consumed_by 引用: ${entry.consumed_by.join(", ")}`,
1427
+ evidence_refs: entry.consumed_by,
1428
+ });
1429
+ }
1430
+ if (entry.prompt_refs.length > 0) {
1431
+ findings.push({
1432
+ contract_id: entry.contract_id,
1433
+ kind: entry.kind,
1434
+ severity: "hard_fail",
1435
+ rule: "removed_no_prompt_refs",
1436
+ message_zh: `已移除契约 ${entry.contract_id} 仍被 prompt 引用: ${entry.prompt_refs.join(", ")}`,
1437
+ evidence_refs: entry.prompt_refs,
1438
+ });
1439
+ }
1440
+ }
1441
+ // 8. depends_on 指向的契约必须存在
1442
+ for (const depId of entry.depends_on) {
1443
+ if (!getRegistry().has(depId)) {
1444
+ findings.push({
1445
+ contract_id: entry.contract_id,
1446
+ kind: entry.kind,
1447
+ severity: "hard_fail",
1448
+ rule: "dependency_exists",
1449
+ message_zh: `契约 ${entry.contract_id} 依赖不存在的契约 ${depId}`,
1450
+ evidence_refs: [depId],
1451
+ });
1452
+ }
1453
+ else {
1454
+ const dep = getRegistry().get(depId);
1455
+ // 8a. 依赖不得指向 removed
1456
+ if (dep.state === "removed") {
1457
+ findings.push({
1458
+ contract_id: entry.contract_id,
1459
+ kind: entry.kind,
1460
+ severity: "hard_fail",
1461
+ rule: "dependency_not_removed",
1462
+ message_zh: `契约 ${entry.contract_id} 依赖已移除的契约 ${depId}`,
1463
+ evidence_refs: [depId],
1464
+ });
1465
+ }
1466
+ // 8b. 指向 deprecated 必须有 migration note 或 replacement
1467
+ if (dep.state === "deprecated" && !dep.replacement_contract_id && !dep.migration_note) {
1468
+ findings.push({
1469
+ contract_id: entry.contract_id,
1470
+ kind: entry.kind,
1471
+ severity: "warning",
1472
+ rule: "dependency_deprecated_migration",
1473
+ message_zh: `契约 ${entry.contract_id} 依赖已废弃的契约 ${depId},该废弃契约无替代或迁移说明`,
1474
+ evidence_refs: [depId],
1475
+ });
1476
+ }
1477
+ }
1478
+ }
1479
+ // 9. capability state 与 contract state 冲突检查
1480
+ if (entry.policy_id && entry.capability_ids && entry.capability_ids.length > 0) {
1481
+ for (const capId of entry.capability_ids) {
1482
+ const cap = getCapability(capId);
1483
+ if (cap) {
1484
+ const conflict = checkCapabilityContractConflict(cap.state, entry.state, capId, entry.contract_id);
1485
+ if (conflict) {
1486
+ findings.push(conflict);
1487
+ }
1488
+ }
1489
+ }
1490
+ }
1491
+ }
1492
+ return findings;
1493
+ }
1494
+ /**
1495
+ * 检查 capability state 与 contract state 冲突。
1496
+ * capability enforced 但对应 contract advisory/removed 必须报告。
1497
+ */
1498
+ function checkCapabilityContractConflict(capState, contractState, capId, contractId) {
1499
+ // capability enforced 但 contract advisory/removed/draft — 冲突
1500
+ if (capState === "enforced" &&
1501
+ (contractState === "advisory" ||
1502
+ contractState === "removed" ||
1503
+ contractState === "draft")) {
1504
+ return {
1505
+ contract_id: contractId,
1506
+ kind: "capability",
1507
+ severity: "hard_fail",
1508
+ rule: "capability_contract_state_conflict",
1509
+ message_zh: `能力 ${capId} 状态为 enforced,但对应契约 ${contractId} 状态为 ${contractState},存在冲突`,
1510
+ evidence_refs: [capId, contractId],
1511
+ };
1512
+ }
1513
+ // capability advisory 但 contract enforced — 冲突(反向)
1514
+ if (capState === "advisory" && contractState === "enforced") {
1515
+ return {
1516
+ contract_id: contractId,
1517
+ kind: "capability",
1518
+ severity: "warning",
1519
+ rule: "capability_contract_state_conflict",
1520
+ message_zh: `能力 ${capId} 状态为 advisory,但对应契约 ${contractId} 状态为 enforced,可能需要同步`,
1521
+ evidence_refs: [capId, contractId],
1522
+ };
1523
+ }
1524
+ return null;
1525
+ }
1526
+ /**
1527
+ * 验证 workflow 引用的契约是否合法。
1528
+ * workflow 引用不存在、removed 或非法 deprecated contract 必须 blocked。
1529
+ */
1530
+ export function validateWorkflowContractRefs(workflowId, referencedContractIds) {
1531
+ const findings = [];
1532
+ for (const refId of referencedContractIds) {
1533
+ const entry = getRegistry().get(refId);
1534
+ if (!entry) {
1535
+ findings.push({
1536
+ contract_id: refId,
1537
+ kind: "workflow",
1538
+ severity: "hard_fail",
1539
+ rule: "workflow_ref_exists",
1540
+ message_zh: `工作流 ${workflowId} 引用不存在的契约 ${refId}`,
1541
+ evidence_refs: [workflowId, refId],
1542
+ });
1543
+ continue;
1544
+ }
1545
+ if (entry.state === "removed") {
1546
+ findings.push({
1547
+ contract_id: refId,
1548
+ kind: entry.kind,
1549
+ severity: "hard_fail",
1550
+ rule: "workflow_ref_not_removed",
1551
+ message_zh: `工作流 ${workflowId} 引用已移除的契约 ${refId}`,
1552
+ evidence_refs: [workflowId, refId],
1553
+ });
1554
+ }
1555
+ // deprecated 一律 hard_fail/blocked;有 replacement 提示迁移
1556
+ if (entry.state === "deprecated") {
1557
+ const hint = entry.replacement_contract_id
1558
+ ? `,替代契约: ${entry.replacement_contract_id}`
1559
+ : entry.migration_note
1560
+ ? `,迁移说明: ${entry.migration_note}`
1561
+ : ",无替代或迁移说明";
1562
+ findings.push({
1563
+ contract_id: refId,
1564
+ kind: entry.kind,
1565
+ severity: "hard_fail",
1566
+ rule: "workflow_ref_deprecated_blocked",
1567
+ message_zh: `工作流 ${workflowId} 引用已废弃的契约 ${refId}${hint}`,
1568
+ evidence_refs: [workflowId, refId],
1569
+ });
1570
+ }
1571
+ // advisory/experimental 只能 warning,不能阻断
1572
+ if (entry.state === "advisory" || entry.state === "experimental" || entry.state === "draft") {
1573
+ findings.push({
1574
+ contract_id: refId,
1575
+ kind: entry.kind,
1576
+ severity: "advisory",
1577
+ rule: "workflow_ref_advisory_only",
1578
+ message_zh: `工作流 ${workflowId} 引用的契约 ${refId} 状态为 ${entry.state},只能 advisory,不能阻断主流程`,
1579
+ evidence_refs: [workflowId, refId],
1580
+ });
1581
+ }
1582
+ }
1583
+ return findings;
1584
+ }
1585
+ // ── 动态注册(用于测试和扩展) ──
1586
+ /** 注册新契约(运行时) */
1587
+ export function registerContract(entry) {
1588
+ const registry = getRegistry();
1589
+ if (registry.has(entry.contract_id)) {
1590
+ return { success: false, error: `contract_id ${entry.contract_id} 已存在` };
1591
+ }
1592
+ registry.set(entry.contract_id, cloneEntry(entry));
1593
+ return { success: true };
1594
+ }
1595
+ /**
1596
+ * 内部 helper: 只允许通过 ContractStateStore.apply 调用。
1597
+ * 此函数不导出。ContractStateStore 通过 createContractStateApplier 获取闭包引用。
1598
+ */
1599
+ function applyContractStateOverride(override) {
1600
+ const registry = getRegistry();
1601
+ const entry = registry.get(override.contract_id);
1602
+ if (!entry)
1603
+ return;
1604
+ const updated = cloneEntry(entry);
1605
+ updated.state = override.new_state;
1606
+ if (override.replacement_contract_id) {
1607
+ updated.replacement_contract_id = override.replacement_contract_id;
1608
+ }
1609
+ if (override.migration_note) {
1610
+ updated.migration_note = override.migration_note;
1611
+ }
1612
+ registry.set(override.contract_id, updated);
1613
+ }
1614
+ /** 工厂函数: 返回 applyContractStateOverride 闭包引用,仅供 ContractStateStore 使用 */
1615
+ export function createContractStateApplier() {
1616
+ return applyContractStateOverride;
1617
+ }
1618
+ /** 重置运行时注册表为内置契约(用于测试清理) */
1619
+ export function resetRegistry() {
1620
+ runtimeEntries = null;
1621
+ }
1622
+ /** 获取所有 policy_id → contract_id 映射 */
1623
+ export function getPolicyToContractMapping() {
1624
+ const result = [];
1625
+ for (const entry of getRegistry().values()) {
1626
+ if (entry.policy_id) {
1627
+ result.push({ policy_id: entry.policy_id, contract_id: entry.contract_id });
1628
+ }
1629
+ }
1630
+ return result;
1631
+ }
1632
+ //# sourceMappingURL=contract_registry.js.map