pomaster 0.2.0 → 0.4.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 (393) hide show
  1. package/README.md +25 -10
  2. package/catalog/archetypes/archetype.frontend.error_taxonomy.json +13 -5
  3. package/catalog/archetypes/archetype.frontend.feature_oriented.json +1 -1
  4. package/catalog/archetypes/archetype.state.async_command.json +4 -4
  5. package/catalog/catalog-lock.draft.json +1120 -104
  6. package/catalog/gates/gate.be.api.contract_checks.json +2 -1
  7. package/catalog/gates/gate.be.chg.contract_change_checks.json +2 -1
  8. package/catalog/gates/gate.chg.prechange_checks.json +2 -1
  9. package/catalog/gates/gate.web.api.request_checks.json +2 -1
  10. package/catalog/gates/gate.web.grid.checks.json +2 -1
  11. package/catalog/knowledge/knowledge.api.example_stable_error_code.json +2 -1
  12. package/catalog/knowledge/knowledge.chg.example_compat_window.json +2 -1
  13. package/catalog/knowledge/knowledge.chg.example_prop_migration.json +2 -1
  14. package/catalog/knowledge/knowledge.fp.api.field_drift_no_contract.json +2 -1
  15. package/catalog/knowledge/knowledge.fp.api.per_page_http_client.json +2 -1
  16. package/catalog/knowledge/knowledge.fp.be.contract_drift.json +2 -1
  17. package/catalog/knowledge/knowledge.fp.chg.page_local_padding.json +2 -1
  18. package/catalog/knowledge/knowledge.fp.grid.global_td_width.json +2 -1
  19. package/catalog/knowledge/knowledge.web.api.example_get_entity_list.json +2 -1
  20. package/catalog/knowledge/knowledge.web.grid.example_column_preset.json +2 -1
  21. package/catalog/policies/authority.be.api_contract_ownership.json +2 -1
  22. package/catalog/policies/authority.be.contract_ownership.json +2 -1
  23. package/catalog/policies/authority.chg.change_owners.json +2 -1
  24. package/catalog/policies/authority.web.api.request_owners.json +2 -1
  25. package/catalog/policies/authority.web.grid.ownership.json +2 -1
  26. package/catalog/policies/policy.ai.change_plan_first.json +91 -0
  27. package/catalog/policies/policy.ai.fact_inference_separation.json +91 -0
  28. package/catalog/policies/policy.ai.read_search_verify_before_write.json +92 -0
  29. package/catalog/policies/policy.ai.rule_relaxation_approval.json +91 -0
  30. package/catalog/policies/policy.api.backward_compat_defaults.json +2 -1
  31. package/catalog/policies/policy.api.contract_impl_consistency.json +2 -1
  32. package/catalog/policies/policy.api.no_informal_contract.json +2 -1
  33. package/catalog/policies/policy.arch.adr_immutable_history.json +91 -0
  34. package/catalog/policies/policy.arch.decision_tradeoff_record.json +2 -1
  35. package/catalog/policies/policy.arch.no_convenience_over_boundary.json +93 -0
  36. package/catalog/policies/policy.arch.prefer_verifiable_option.json +92 -0
  37. package/catalog/policies/policy.authz.no_gating_proxy_trust.json +99 -0
  38. package/catalog/policies/policy.authz.permission_scope_expansion_gate.json +99 -0
  39. package/catalog/policies/policy.authz.server_five_factor_verification.json +101 -0
  40. package/catalog/policies/policy.be.conc.prefer_db_constraints.json +97 -0
  41. package/catalog/policies/policy.be.db.expand_migrate_contract.json +97 -0
  42. package/catalog/policies/policy.be.idem.key_payload_conflict.json +97 -0
  43. package/catalog/policies/policy.be.model.single_boundary_conversion.json +97 -0
  44. package/catalog/policies/policy.be.sql.index_for_known_queries.json +97 -0
  45. package/catalog/policies/policy.be.state.single_rule_source.json +97 -0
  46. package/catalog/policies/policy.be.txn.short_locks_compensation.json +96 -0
  47. package/catalog/policies/policy.bound.search_first_entry_only.json +91 -0
  48. package/catalog/policies/policy.boundary.validate_in_encode_out.json +92 -0
  49. package/catalog/policies/policy.cache.failure_mode_guards.json +93 -0
  50. package/catalog/policies/policy.cache.lifecycle_definition.json +2 -1
  51. package/catalog/policies/policy.cache.schema_versioning.json +91 -0
  52. package/catalog/policies/policy.cfg.config_attribute_completeness.json +95 -0
  53. package/catalog/policies/policy.cfg.key_rename_dual_read.json +92 -0
  54. package/catalog/policies/policy.cfg.no_secret_dispersal.json +90 -0
  55. package/catalog/policies/policy.cfg.production_safe_defaults.json +92 -0
  56. package/catalog/policies/policy.cfg.schema_backed_config.json +92 -0
  57. package/catalog/policies/policy.chg.affect_templates.json +2 -1
  58. package/catalog/policies/policy.chg.breaking_versioning.json +2 -1
  59. package/catalog/policies/policy.chg.compat_migration_rollback.json +2 -1
  60. package/catalog/policies/policy.chg.deprecate_before_delete.json +2 -1
  61. package/catalog/policies/policy.chg.fix_at_root_cause_level.json +2 -1
  62. package/catalog/policies/policy.chg.no_unrelated_changes.json +91 -0
  63. package/catalog/policies/policy.chg.observable_evolution.json +2 -1
  64. package/catalog/policies/policy.chg.prechange_consumer_scan.json +2 -1
  65. package/catalog/policies/policy.chg.staged_rollout.json +2 -1
  66. package/catalog/policies/policy.chg.sync_contract_docs_tests.json +2 -1
  67. package/catalog/policies/policy.conflict.priority_ladder.json +2 -1
  68. package/catalog/policies/policy.contract.no_invented_facts.json +93 -0
  69. package/catalog/policies/policy.dep.admission_six_dimension_check.json +2 -1
  70. package/catalog/policies/policy.dep.build_path_supply_chain.json +93 -0
  71. package/catalog/policies/policy.dep.change_surface_review.json +2 -1
  72. package/catalog/policies/policy.dep.introduction_review.json +2 -1
  73. package/catalog/policies/policy.dep.no_untrusted_source_no_lock_bypass.json +92 -0
  74. package/catalog/policies/policy.dep.time_boxed_urgent_exception.json +91 -0
  75. package/catalog/policies/policy.deploy.no_dev_env_as_production_fact.json +91 -0
  76. package/catalog/policies/policy.deploy.operational_capabilities.json +93 -0
  77. package/catalog/policies/policy.deploy.runtime_fact_record.json +97 -0
  78. package/catalog/policies/policy.derived.single_implementation.json +2 -1
  79. package/catalog/policies/policy.err.failure_five_part_mapping.json +101 -0
  80. package/catalog/policies/policy.err.no_internal_detail_exposure.json +97 -0
  81. package/catalog/policies/policy.err.published_code_immutable.json +98 -0
  82. package/catalog/policies/policy.evid.acceptance_binds_verifiable_evidence.json +92 -0
  83. package/catalog/policies/policy.evid.no_silent_gate_removal.json +90 -0
  84. package/catalog/policies/policy.evid.no_unverifiable_pass.json +92 -0
  85. package/catalog/policies/policy.flag.cleanup_after_full_rollout.json +94 -0
  86. package/catalog/policies/policy.flag.consistent_off_state.json +92 -0
  87. package/catalog/policies/policy.flag.kill_switch.json +91 -0
  88. package/catalog/policies/policy.flag.lifecycle_metadata.json +93 -0
  89. package/catalog/policies/policy.flag.not_a_permission.json +92 -0
  90. package/catalog/policies/policy.gate.p0_non_bypassable.json +92 -0
  91. package/catalog/policies/policy.gate.risk_factors_confirmed.json +93 -0
  92. package/catalog/policies/policy.guard.no_check_weakening.json +92 -0
  93. package/catalog/policies/policy.integration.call_definition_minimum.json +95 -0
  94. package/catalog/policies/policy.integration.fault_containment.json +94 -0
  95. package/catalog/policies/policy.job.lifecycle_definition.json +96 -0
  96. package/catalog/policies/policy.job.no_unmanaged_execution.json +92 -0
  97. package/catalog/policies/policy.job.operational_features.json +93 -0
  98. package/catalog/policies/policy.obs.actionable_signals.json +93 -0
  99. package/catalog/policies/policy.obs.alert_with_owner.json +91 -0
  100. package/catalog/policies/policy.obs.context_field_baseline.json +91 -0
  101. package/catalog/policies/policy.obs.correlation_context_minimum.json +2 -1
  102. package/catalog/policies/policy.obs.no_sensitive_or_unbounded_logging.json +92 -0
  103. package/catalog/policies/policy.obs.no_sensitive_raw_values.json +93 -0
  104. package/catalog/policies/policy.obs.rum_dimension_whitelist.json +2 -1
  105. package/catalog/policies/policy.obs.signal_change_impact.json +91 -0
  106. package/catalog/policies/policy.obs.source_map_access_control.json +92 -0
  107. package/catalog/policies/policy.obs.telemetry_lifecycle_declared.json +93 -0
  108. package/catalog/policies/policy.obs.trace_correlation.json +91 -0
  109. package/catalog/policies/policy.perf.budget_change_retest.json +91 -0
  110. package/catalog/policies/policy.perf.evidence_binding.json +95 -0
  111. package/catalog/policies/policy.perf.observation_dimensions.json +94 -0
  112. package/catalog/policies/policy.proc.checklist_change_policy.json +91 -0
  113. package/catalog/policies/policy.proc.pre_code_declaration.json +2 -1
  114. package/catalog/policies/policy.proc.scope_drift_reclassify.json +91 -0
  115. package/catalog/policies/policy.prv.processing_scope_re_review.json +97 -0
  116. package/catalog/policies/policy.prv.sensitive_data_six_facts.json +102 -0
  117. package/catalog/policies/policy.registry.human_fields_validated_decorrelated.json +93 -0
  118. package/catalog/policies/policy.rel.no_irreversible_unmonitored_full_release.json +91 -0
  119. package/catalog/policies/policy.rel.observability_before_ship.json +91 -0
  120. package/catalog/policies/policy.rel.pre_release_confirmation.json +2 -1
  121. package/catalog/policies/policy.rel.process_change_needs_drill_audit.json +91 -0
  122. package/catalog/policies/policy.rel.traceable_build.json +93 -0
  123. package/catalog/policies/policy.role.domain_decision_authority.json +2 -1
  124. package/catalog/policies/policy.role.human_signs_for_ai.json +93 -0
  125. package/catalog/policies/policy.sec.authn_policy_unified.json +91 -0
  126. package/catalog/policies/policy.sec.no_client_side_trust.json +92 -0
  127. package/catalog/policies/policy.sec.no_longterm_security_disable.json +91 -0
  128. package/catalog/policies/policy.sec.no_script_readable_credentials.json +91 -0
  129. package/catalog/policies/policy.sec.no_secrets_in_client_surface.json +91 -0
  130. package/catalog/policies/policy.sec.relaxation_approval.json +92 -0
  131. package/catalog/policies/policy.sec.security_relaxation_gate.json +92 -0
  132. package/catalog/policies/policy.sec.third_party_execution_register.json +2 -1
  133. package/catalog/policies/policy.sec.trust_boundary_enforcement.json +93 -0
  134. package/catalog/policies/policy.sec.upload_download_server_recheck.json +91 -0
  135. package/catalog/policies/policy.sec.url_source_allowlist.json +91 -0
  136. package/catalog/policies/policy.spec.admission_criteria.json +2 -1
  137. package/catalog/policies/policy.spec.derived_view_regeneration.json +2 -1
  138. package/catalog/policies/policy.spec.draft_not_baseline.json +2 -1
  139. package/catalog/policies/policy.spec.family_conflict_precedence.json +93 -0
  140. package/catalog/policies/policy.spec.file_structure_contract.json +2 -1
  141. package/catalog/policies/policy.spec.freeze_before_use.json +93 -0
  142. package/catalog/policies/policy.spec.metadata_required.json +2 -1
  143. package/catalog/policies/policy.spec.post_dev_backfill_classify.json +2 -1
  144. package/catalog/policies/policy.spec.primary_source_basis.json +93 -0
  145. package/catalog/policies/policy.spec.procedural_record_not_surrogate.json +2 -1
  146. package/catalog/policies/policy.spec.semantic_identity.json +2 -1
  147. package/catalog/policies/policy.spec.unresolved_ledger_gate.json +2 -1
  148. package/catalog/policies/policy.stack.derived_store_not_authority.json +93 -0
  149. package/catalog/policies/policy.stack.dual_web_stack_boundary.json +93 -0
  150. package/catalog/policies/policy.stack.entry_chain_recorded.json +93 -0
  151. package/catalog/policies/policy.stack.entry_limits_aligned.json +94 -0
  152. package/catalog/policies/policy.stack.local_form_not_prod_fact.json +93 -0
  153. package/catalog/policies/policy.stack.multi_datastore_ownership.json +93 -0
  154. package/catalog/policies/policy.stack.no_implicit_selection.json +2 -1
  155. package/catalog/policies/policy.stack.persistence_coexistence_scope.json +93 -0
  156. package/catalog/policies/policy.stack.toolchain_versions_pinned.json +95 -0
  157. package/catalog/policies/policy.stack.upgrade_compat_verified.json +93 -0
  158. package/catalog/policies/policy.struct.module_entry_dependency_declared.json +92 -0
  159. package/catalog/policies/policy.struct.no_unexplained_top_level_dir.json +91 -0
  160. package/catalog/policies/policy.struct.reuse_proven_structure.json +91 -0
  161. package/catalog/policies/policy.test.control_nondeterminism_keep_diagnosis.json +91 -0
  162. package/catalog/policies/policy.test.isolation_and_cleanup.json +93 -0
  163. package/catalog/policies/policy.test.no_synthetic_stability.json +92 -0
  164. package/catalog/policies/policy.test.pyramid_and_ci_matrix.json +92 -0
  165. package/catalog/policies/policy.test.removal_justification.json +91 -0
  166. package/catalog/policies/policy.test.removal_needs_substitute_evidence.json +91 -0
  167. package/catalog/policies/policy.test.risk_driven_plan.json +92 -0
  168. package/catalog/policies/policy.test.stable_observable_assertions.json +92 -0
  169. package/catalog/policies/policy.tool.discoverable_toolchain.json +92 -0
  170. package/catalog/policies/policy.tool.no_hand_edit_generated_no_ci_drift.json +91 -0
  171. package/catalog/policies/policy.tool.no_vendored_body_edits.json +94 -0
  172. package/catalog/policies/policy.tool.scoped_scan_boundary.json +2 -1
  173. package/catalog/policies/policy.tool.upgrade_verify_lock_rollback.json +92 -0
  174. package/catalog/policies/policy.web.api.auth_app_client_split.json +2 -1
  175. package/catalog/policies/policy.web.api.client_change_impact.json +2 -1
  176. package/catalog/policies/policy.web.api.domain_api_only.json +2 -1
  177. package/catalog/policies/policy.web.api.error_normalization.json +2 -1
  178. package/catalog/policies/policy.web.api.generated_client.json +2 -1
  179. package/catalog/policies/policy.web.api.late_result_guard.json +2 -1
  180. package/catalog/policies/policy.web.api.mutation_idempotency.json +2 -1
  181. package/catalog/policies/policy.web.api.no_network_optimism.json +2 -1
  182. package/catalog/policies/policy.web.api.query_cancel_stale_drop.json +2 -1
  183. package/catalog/policies/policy.web.api.request_infrastructure.json +2 -1
  184. package/catalog/policies/policy.web.api.retry_discipline.json +2 -1
  185. package/catalog/policies/policy.web.api.session_recovery_split.json +2 -1
  186. package/catalog/policies/policy.web.api.single_http_client.json +2 -1
  187. package/catalog/policies/policy.web.api.single_loading_source.json +2 -1
  188. package/catalog/policies/policy.web.api.transport_vs_business.json +2 -1
  189. package/catalog/policies/policy.web.api.trusted_endpoint_source.json +2 -1
  190. package/catalog/policies/policy.web.api.typed_domain_naming.json +2 -1
  191. package/catalog/policies/policy.web.arch.layer_isolation.json +2 -1
  192. package/catalog/policies/policy.web.arch.naming_conventions.json +2 -1
  193. package/catalog/policies/policy.web.arch.public_api_barrel.json +2 -1
  194. package/catalog/policies/policy.web.chg.controlled_change_triggers.json +2 -1
  195. package/catalog/policies/policy.web.comp.no_trivial_or_god_component.json +91 -0
  196. package/catalog/policies/policy.web.comp.public_contract_completeness.json +93 -0
  197. package/catalog/policies/policy.web.copy.action_object_clarity.json +92 -0
  198. package/catalog/policies/policy.web.copy.enumerable_placement.json +91 -0
  199. package/catalog/policies/policy.web.copy.error_next_step.json +92 -0
  200. package/catalog/policies/policy.web.copy.suppression_ledger_discipline.json +2 -1
  201. package/catalog/policies/policy.web.grid.column_schema_fields.json +2 -1
  202. package/catalog/policies/policy.web.grid.config_isolation.json +2 -1
  203. package/catalog/policies/policy.web.grid.freeze_key_columns.json +2 -1
  204. package/catalog/policies/policy.web.grid.interaction_registry.json +2 -1
  205. package/catalog/policies/policy.web.grid.keyboard_clipboard.json +2 -1
  206. package/catalog/policies/policy.web.grid.schema_driven_shell.json +2 -1
  207. package/catalog/policies/policy.web.grid.schema_versioning.json +2 -1
  208. package/catalog/policies/policy.web.grid.server_ops_virtualization.json +2 -1
  209. package/catalog/policies/policy.web.grid.shell_change_matrix.json +2 -1
  210. package/catalog/policies/policy.web.grid.width_fix_ladder.json +2 -1
  211. package/catalog/policies/policy.web.handoff.state_matrix_full.json +94 -0
  212. package/catalog/policies/policy.web.i18n.copy_key_discipline.json +92 -0
  213. package/catalog/policies/policy.web.i18n.raw_value_for_compute.json +91 -0
  214. package/catalog/policies/policy.web.page.region_consistency.json +93 -0
  215. package/catalog/policies/policy.web.perf.budget_skeleton.json +2 -1
  216. package/catalog/policies/policy.web.style.ownership_matrix.json +2 -1
  217. package/catalog/policies/policy.web.track.attempt_result_correlation.json +91 -0
  218. package/catalog/policies/policy.web.track.consent_lifecycle.json +2 -1
  219. package/catalog/policies/policy.web.track.no_synthetic_actions.json +92 -0
  220. package/catalog/policies/policy.web.track.privacy_default_deny.json +2 -1
  221. package/catalog/policies/policy.web.track.stable_event_keys.json +2 -1
  222. package/catalog/policies/policy.web.track.typed_client_validation.json +91 -0
  223. package/catalog/policies/policy.web.uiux.provider_evidence_not_business_truth.json +2 -1
  224. package/catalog/policies/policy.wf.no_planned_as_verified.json +91 -0
  225. package/catalog/policies/policy.wf.task_facts_preconfirm.json +94 -0
  226. package/catalog/policies/profile.baseline.java_enterprise_default.json +96 -0
  227. package/catalog/sensors/sensor.browser.deterministic.json +2 -1
  228. package/catalog/sensors/sensor.browser.interactive.json +2 -1
  229. package/catalog/sensors/sensor.build.static.json +2 -1
  230. package/catalog/sensors/sensor.contract.conformance.json +2 -1
  231. package/catalog/sensors/sensor.performance.budget.json +2 -1
  232. package/catalog/sensors/sensor.production.metric.json +2 -1
  233. package/catalog/tools/seed_b6b_frontend.py +1424 -0
  234. package/catalog/tools/seed_b6c_backend.py +1495 -0
  235. package/catalog/tools/seed_b6d_baseline.py +620 -0
  236. package/catalog/tools/seed_b6e_evidence.py +1305 -0
  237. package/catalog/tools/seed_d3_review.py +1105 -0
  238. package/catalog/tools/seed_v06_batch2_materials.py +27 -18
  239. package/dist/bin.js +31967 -24201
  240. package/package.json +2 -1
  241. package/seeds/baseline/backend/api-contract.md +26 -0
  242. package/seeds/baseline/backend/architecture.md +31 -0
  243. package/seeds/baseline/backend/data-access.md +31 -0
  244. package/seeds/baseline/backend/directory-structure.md +11 -0
  245. package/seeds/baseline/backend/integration-runtime.md +21 -0
  246. package/seeds/baseline/backend/quality.md +31 -0
  247. package/seeds/baseline/backend/stack.yaml +13 -0
  248. package/seeds/baseline/backend/transaction-concurrency.md +26 -0
  249. package/seeds/baseline/data/lineage.md +11 -0
  250. package/seeds/baseline/data/migration.md +11 -0
  251. package/seeds/baseline/data/model.md +31 -0
  252. package/seeds/baseline/data/precision-units.md +31 -0
  253. package/seeds/baseline/data/quality.md +31 -0
  254. package/seeds/baseline/frontend/api-and-error.md +21 -0
  255. package/seeds/baseline/frontend/architecture.md +26 -0
  256. package/seeds/baseline/frontend/design-system.md +21 -0
  257. package/seeds/baseline/frontend/directory-structure.md +16 -0
  258. package/seeds/baseline/frontend/quality.md +26 -0
  259. package/seeds/baseline/frontend/stack.yaml +17 -0
  260. package/seeds/baseline/frontend/state-and-data.md +26 -0
  261. package/seeds/baseline/manifest.yaml +32 -0
  262. package/seeds/baseline/platform/delivery.md +36 -0
  263. package/seeds/baseline/platform/environment.md +11 -0
  264. package/seeds/baseline/platform/observability.md +31 -0
  265. package/seeds/baseline/platform/security.md +26 -0
  266. package/seeds/manifest.json +2006 -0
  267. package/seeds/specs/evidence/accessibility.md +89 -0
  268. package/seeds/specs/evidence/architecture.md +89 -0
  269. package/seeds/specs/evidence/browser-e2e.md +91 -0
  270. package/seeds/specs/evidence/build.md +91 -0
  271. package/seeds/specs/evidence/business-acceptance.md +89 -0
  272. package/seeds/specs/evidence/complexity-crap.md +97 -0
  273. package/seeds/specs/evidence/contract.md +89 -0
  274. package/seeds/specs/evidence/coverage.md +91 -0
  275. package/seeds/specs/evidence/data-migration.md +91 -0
  276. package/seeds/specs/evidence/dead-code-duplicate.md +89 -0
  277. package/seeds/specs/evidence/dependency-supply-chain.md +89 -0
  278. package/seeds/specs/evidence/index.md +55 -0
  279. package/seeds/specs/evidence/mutation.md +89 -0
  280. package/seeds/specs/evidence/performance.md +89 -0
  281. package/seeds/specs/evidence/release.md +91 -0
  282. package/seeds/specs/evidence/runtime-observability.md +91 -0
  283. package/seeds/specs/evidence/security.md +89 -0
  284. package/seeds/specs/evidence/typecheck-lint.md +91 -0
  285. package/seeds/specs/evidence/unit-component-integration.md +91 -0
  286. package/seeds/specs/evidence/visual-regression.md +89 -0
  287. package/seeds/specs/hard/backend/01-architecture-governance-protocol.md +68 -0
  288. package/seeds/specs/hard/backend/02-project-structure-governance-protocol.md +68 -0
  289. package/seeds/specs/hard/backend/03-directory-boundary-protocol.md +68 -0
  290. package/seeds/specs/hard/backend/04-layering-architecture-protocol.md +68 -0
  291. package/seeds/specs/hard/backend/05-task-workflow-protocol.md +68 -0
  292. package/seeds/specs/hard/backend/06-ai-generated-code-protocol.md +68 -0
  293. package/seeds/specs/hard/backend/07-evidence-acceptance-protocol.md +68 -0
  294. package/seeds/specs/hard/backend/08-contract-change-protocol.md +68 -0
  295. package/seeds/specs/hard/backend/09-role-responsibility-protocol.md +68 -0
  296. package/seeds/specs/hard/backend/10-security-protocol.md +68 -0
  297. package/seeds/specs/hard/backend/11-environment-configuration-protocol.md +67 -0
  298. package/seeds/specs/hard/backend/12-api-contract-protocol.md +68 -0
  299. package/seeds/specs/hard/backend/13-privacy-data-lifecycle-protocol.md +68 -0
  300. package/seeds/specs/hard/backend/14-business-rules-state-protocol.md +68 -0
  301. package/seeds/specs/hard/backend/15-data-model-protocol.md +68 -0
  302. package/seeds/specs/hard/backend/16-error-code-protocol.md +68 -0
  303. package/seeds/specs/hard/backend/17-permission-authorization-protocol.md +68 -0
  304. package/seeds/specs/hard/backend/18-database-schema-migration-protocol.md +68 -0
  305. package/seeds/specs/hard/backend/19-query-index-sql-protocol.md +68 -0
  306. package/seeds/specs/hard/backend/20-transaction-boundary-protocol.md +68 -0
  307. package/seeds/specs/hard/backend/21-concurrency-locking-protocol.md +68 -0
  308. package/seeds/specs/hard/backend/22-idempotency-protocol.md +68 -0
  309. package/seeds/specs/hard/backend/23-cache-redis-consistency-protocol.md +68 -0
  310. package/seeds/specs/hard/backend/24-external-integration-resilience-protocol.md +68 -0
  311. package/seeds/specs/hard/backend/25-async-job-scheduler-protocol.md +68 -0
  312. package/seeds/specs/hard/backend/26-engineering-tooling-protocol.md +68 -0
  313. package/seeds/specs/hard/backend/27-dependency-supply-chain-protocol.md +68 -0
  314. package/seeds/specs/hard/backend/28-testing-protocol.md +68 -0
  315. package/seeds/specs/hard/backend/29-observability-logging-tracing-protocol.md +68 -0
  316. package/seeds/specs/hard/backend/30-performance-capacity-protocol.md +68 -0
  317. package/seeds/specs/hard/backend/31-runtime-deployment-protocol.md +68 -0
  318. package/seeds/specs/hard/backend/32-release-versioning-rollback-protocol.md +68 -0
  319. package/seeds/specs/hard/backend/index.md +177 -0
  320. package/seeds/specs/hard/frontend/01-development-checklist-protocol.md +86 -0
  321. package/seeds/specs/hard/frontend/02-ai-generated-code-protocol.md +82 -0
  322. package/seeds/specs/hard/frontend/03-acceptance-gate-protocol.md +86 -0
  323. package/seeds/specs/hard/frontend/04-security-protocol.md +283 -0
  324. package/seeds/specs/hard/frontend/05-environment-configuration-protocol.md +80 -0
  325. package/seeds/specs/hard/frontend/06-change-governance-protocol.md +90 -0
  326. package/seeds/specs/hard/frontend/07-frontend-backend-communication-protocol.md +219 -0
  327. package/seeds/specs/hard/frontend/08-role-responsibility-protocol.md +80 -0
  328. package/seeds/specs/hard/frontend/09-module-boundary-protocol.md +81 -0
  329. package/seeds/specs/hard/frontend/10-engineering-tooling-protocol.md +89 -0
  330. package/seeds/specs/hard/frontend/11-dependency-package-management-protocol.md +87 -0
  331. package/seeds/specs/hard/frontend/12-business-rules-protocol.md +79 -0
  332. package/seeds/specs/hard/frontend/13-monetary-precision-protocol.md +81 -0
  333. package/seeds/specs/hard/frontend/14-data-model-protocol.md +85 -0
  334. package/seeds/specs/hard/frontend/15-request-api-protocol.md +87 -0
  335. package/seeds/specs/hard/frontend/16-error-handling-protocol.md +79 -0
  336. package/seeds/specs/hard/frontend/17-permission-protocol.md +79 -0
  337. package/seeds/specs/hard/frontend/18-state-management-protocol.md +88 -0
  338. package/seeds/specs/hard/frontend/19-cache-protocol.md +79 -0
  339. package/seeds/specs/hard/frontend/20-testing-protocol.md +88 -0
  340. package/seeds/specs/hard/frontend/21-design-system-protocol.md +79 -0
  341. package/seeds/specs/hard/frontend/22-theme-protocol.md +79 -0
  342. package/seeds/specs/hard/frontend/23-accessibility-protocol.md +189 -0
  343. package/seeds/specs/hard/frontend/24-component-protocol.md +80 -0
  344. package/seeds/specs/hard/frontend/25-page-structure-protocol.md +79 -0
  345. package/seeds/specs/hard/frontend/26-style-layout-protocol.md +80 -0
  346. package/seeds/specs/hard/frontend/27-rendering-state-protocol.md +81 -0
  347. package/seeds/specs/hard/frontend/28-form-protocol.md +88 -0
  348. package/seeds/specs/hard/frontend/29-routing-url-protocol.md +79 -0
  349. package/seeds/specs/hard/frontend/30-data-grid-protocol.md +83 -0
  350. package/seeds/specs/hard/frontend/31-performance-protocol.md +137 -0
  351. package/seeds/specs/hard/frontend/32-file-import-export-protocol.md +80 -0
  352. package/seeds/specs/hard/frontend/33-release-versioning-protocol.md +79 -0
  353. package/seeds/specs/hard/frontend/34-monitoring-logging-protocol.md +128 -0
  354. package/seeds/specs/hard/frontend/35-mock-protocol.md +97 -0
  355. package/seeds/specs/hard/frontend/36-feature-flag-protocol.md +79 -0
  356. package/seeds/specs/hard/frontend/37-browser-device-compatibility-protocol.md +83 -0
  357. package/seeds/specs/hard/frontend/38-internationalization-protocol.md +243 -0
  358. package/seeds/specs/hard/frontend/39-copywriting-protocol.md +79 -0
  359. package/seeds/specs/hard/frontend/40-analytics-protocol.md +98 -0
  360. package/seeds/specs/hard/frontend/41-design-handoff-protocol.md +80 -0
  361. package/seeds/specs/hard/frontend/42-browser-runtime-lifecycle-protocol.md +86 -0
  362. package/seeds/specs/hard/frontend/43-time-temporal-protocol.md +86 -0
  363. package/seeds/specs/hard/frontend/44-privacy-data-lifecycle-protocol.md +87 -0
  364. package/seeds/specs/hard/frontend/45-browser-storage-protocol.md +87 -0
  365. package/seeds/specs/hard/frontend/index.md +308 -0
  366. package/seeds/specs/hard/stacks/java/index.md +20 -0
  367. package/seeds/specs/hard/stacks/java/java-language-overlay.md +35 -0
  368. package/seeds/specs/hard/stacks/jpa/index.md +20 -0
  369. package/seeds/specs/hard/stacks/jpa/jpa-persistence-overlay.md +35 -0
  370. package/seeds/specs/hard/stacks/kubernetes-ingress/index.md +20 -0
  371. package/seeds/specs/hard/stacks/kubernetes-ingress/kubernetes-ingress-overlay.md +35 -0
  372. package/seeds/specs/hard/stacks/messaging/index.md +20 -0
  373. package/seeds/specs/hard/stacks/messaging/messaging-reliability-overlay.md +35 -0
  374. package/seeds/specs/hard/stacks/mybatis/index.md +20 -0
  375. package/seeds/specs/hard/stacks/mybatis/mybatis-persistence-overlay.md +35 -0
  376. package/seeds/specs/hard/stacks/mysql/index.md +20 -0
  377. package/seeds/specs/hard/stacks/mysql/mysql-database-overlay.md +35 -0
  378. package/seeds/specs/hard/stacks/nginx/index.md +20 -0
  379. package/seeds/specs/hard/stacks/nginx/nginx-proxy-overlay.md +35 -0
  380. package/seeds/specs/hard/stacks/postgresql/index.md +20 -0
  381. package/seeds/specs/hard/stacks/postgresql/postgresql-database-overlay.md +35 -0
  382. package/seeds/specs/hard/stacks/redis/index.md +20 -0
  383. package/seeds/specs/hard/stacks/redis/redis-cache-overlay.md +35 -0
  384. package/seeds/specs/hard/stacks/spring-batch/index.md +20 -0
  385. package/seeds/specs/hard/stacks/spring-batch/spring-batch-job-overlay.md +35 -0
  386. package/seeds/specs/hard/stacks/spring-boot/index.md +20 -0
  387. package/seeds/specs/hard/stacks/spring-boot/spring-boot-application-overlay.md +35 -0
  388. package/seeds/specs/hard/stacks/spring-mvc/index.md +20 -0
  389. package/seeds/specs/hard/stacks/spring-mvc/spring-mvc-web-overlay.md +35 -0
  390. package/seeds/specs/hard/stacks/spring-webflux/index.md +20 -0
  391. package/seeds/specs/hard/stacks/spring-webflux/spring-webflux-reactive-overlay.md +35 -0
  392. package/seeds/specs/hard/stacks/tomcat/index.md +20 -0
  393. package/seeds/specs/hard/stacks/tomcat/tomcat-runtime-overlay.md +35 -0
@@ -0,0 +1,93 @@
1
+ {
2
+ "x-vocab-pr": {
3
+ "status": "vocab_pr_candidate",
4
+ "finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world);新 id 域段待登记:CONTRACT",
5
+ "proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+25 条同因同请,合并进同一 vocab PR)",
6
+ "locked_vocab_untouched": true,
7
+ "resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
8
+ },
9
+ "x-spec-d-materialization": {
10
+ "status": "PROPOSAL",
11
+ "package": "B6b-I FE 播种移植(SPEC-D 池卡复用;分母=MASTer 池卡 + vendor 播种字节双锚)",
12
+ "human_review_required": true,
13
+ "evidence": "PLANNED",
14
+ "provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
15
+ "group": "FE-G1",
16
+ "candidate_id": "POLICY.CONTRACT.NO_INVENTED_FACTS",
17
+ "density_rank": null,
18
+ "density_score": 33.25,
19
+ "pool_statement_sha16": "2e8da7c1f824b8f5",
20
+ "curated_rule": "B6b-I 分母(FE 01-23)required 池(ELIGIBLE 未物化)按池密度序取前 22 + advisory 池(SHOULD 源 backlog policy 卡)按同公式密度序取前 3 = 25(D5 上限);UNIVERSAL + UNIVERSAL_POLICY + 无 uncertainty + 非 project_scope + 非重复",
21
+ "denominator": "MASTer(池卡 source_protocol 锚)"
22
+ },
23
+ "x-b6-porting": {
24
+ "status": "PROPOSAL",
25
+ "batch": "B6B-1",
26
+ "human_review_required": true,
27
+ "enforcement_axis": {
28
+ "source_sections": [
29
+ "MUST"
30
+ ],
31
+ "rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
32
+ "asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
33
+ },
34
+ "extra_master_sections": [],
35
+ "denominator": "vendor",
36
+ "vendor_pin": {
37
+ "path": "pomaster/components/frontend-hard-spec/assets/universal/01-development-checklist-protocol.md",
38
+ "sha256": "fa8914b29dbf7af25c8128aa1b8936fd658e37854e0a4f457175e2e3c82c3a03",
39
+ "bytes": 2691
40
+ },
41
+ "seeded_spec": ".pomaster/specs/hard/frontend/01-development-checklist-protocol.md",
42
+ "seed_manifest": "packages/cli/seeds/manifest.json"
43
+ },
44
+ "id": "POLICY.CONTRACT.NO_INVENTED_FACTS",
45
+ "kind": "policy",
46
+ "axis_profile": "policy_default",
47
+ "classification": "UNIVERSAL_POLICY",
48
+ "axes": {
49
+ "lifecycle": "PROPOSED",
50
+ "confidence": "UNRESOLVED",
51
+ "evidence": "PLANNED",
52
+ "change": "STABLE"
53
+ },
54
+ "title_zh": "未证实事实先补契约",
55
+ "statement_zh": "缺失正式依据的字段、状态、权限、接口或业务规则,必须先补全契约或显式阻塞等待确认,不得以推测值继续实现。",
56
+ "statement_en_keywords": [
57
+ "no invented facts",
58
+ "missing contract",
59
+ "block on confirmation",
60
+ "no guessed values"
61
+ ],
62
+ "applies_when": {
63
+ "lane": "any",
64
+ "condition": "实现中遭遇未定义事实时",
65
+ "applicability_note": "实现中遭遇未定义事实时"
66
+ },
67
+ "enforcement": "required_when_applicable",
68
+ "authority": {
69
+ "owner": "HUMAN_OWNER",
70
+ "delegates": [],
71
+ "write_policy": "EVOLUTION_CHANNEL",
72
+ "escalation_hint": "catalog-spec-decomposition"
73
+ },
74
+ "origin": "ingested",
75
+ "origin_note": "B6b-I FE 播种移植物化;statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
76
+ "sources": [
77
+ {
78
+ "type": "design_seed",
79
+ "ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml",
80
+ "captured_by": "agent:claude/spec-d-consolidation",
81
+ "locator": {
82
+ "candidate": "POLICY.CONTRACT.NO_INVENTED_FACTS",
83
+ "source_protocol": ".trellis/spec/frontend/01-development-checklist-protocol.md",
84
+ "lines": "L22"
85
+ },
86
+ "clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
87
+ }
88
+ ],
89
+ "review_notes": [
90
+ "与既有 POLICY.API.NO_INFORMAL_CONTRACT(接口契约不得来自非正式源)不同轴:本条管任何未定义事实先补契约或阻塞确认,彼条管契约来源正式性;池层已判零语义重复。",
91
+ "卡为双锚卡(01 L22 + 02 L28 AI 侧禁止形态),02 文件不重复立卡。"
92
+ ]
93
+ }
@@ -3,7 +3,8 @@
3
3
  "status": "vocab_pr_candidate",
4
4
  "finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world);新 id 域段待登记:DEP",
5
5
  "proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+9 条同因同请,合并进同一 vocab PR)",
6
- "locked_vocab_untouched": true
6
+ "locked_vocab_untouched": true,
7
+ "resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
7
8
  },
8
9
  "x-spec-d-materialization": {
9
10
  "status": "PROPOSAL",
@@ -0,0 +1,93 @@
1
+ {
2
+ "x-vocab-pr": {
3
+ "status": "vocab_pr_candidate",
4
+ "finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world)",
5
+ "proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+25 条同因同请,合并进同一 vocab PR)",
6
+ "locked_vocab_untouched": true,
7
+ "resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
8
+ },
9
+ "x-spec-d-materialization": {
10
+ "status": "PROPOSAL",
11
+ "package": "B6b-I FE 播种移植(SPEC-D 池卡复用;分母=MASTer 池卡 + vendor 播种字节双锚)",
12
+ "human_review_required": true,
13
+ "evidence": "PLANNED",
14
+ "provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
15
+ "group": "FE-G1",
16
+ "candidate_id": "POLICY.DEP.BUILD_PATH_SUPPLY_CHAIN",
17
+ "density_rank": null,
18
+ "density_score": 33.12,
19
+ "pool_statement_sha16": "8e7da01dd1b16710",
20
+ "curated_rule": "B6b-I 分母(FE 01-23)required 池(ELIGIBLE 未物化)按池密度序取前 22 + advisory 池(SHOULD 源 backlog policy 卡)按同公式密度序取前 3 = 25(D5 上限);UNIVERSAL + UNIVERSAL_POLICY + 无 uncertainty + 非 project_scope + 非重复",
21
+ "denominator": "MASTer(池卡 source_protocol 锚)",
22
+ "clean_room_rewrite": true
23
+ },
24
+ "x-b6-porting": {
25
+ "status": "PROPOSAL",
26
+ "batch": "B6B-1",
27
+ "human_review_required": true,
28
+ "enforcement_axis": {
29
+ "source_sections": [
30
+ "MUST"
31
+ ],
32
+ "rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
33
+ "asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
34
+ },
35
+ "extra_master_sections": [],
36
+ "denominator": "vendor",
37
+ "vendor_pin": {
38
+ "path": "pomaster/components/frontend-hard-spec/assets/universal/11-dependency-package-management-protocol.md",
39
+ "sha256": "a0cc135edaf0dfd1f5122d2ff7298866143ef3a273ad4d45f5e1eff763691867",
40
+ "bytes": 2906
41
+ },
42
+ "seeded_spec": ".pomaster/specs/hard/frontend/11-dependency-package-management-protocol.md",
43
+ "seed_manifest": "packages/cli/seeds/manifest.json"
44
+ },
45
+ "id": "POLICY.DEP.BUILD_PATH_SUPPLY_CHAIN",
46
+ "kind": "policy",
47
+ "axis_profile": "policy_default",
48
+ "classification": "UNIVERSAL_POLICY",
49
+ "axes": {
50
+ "lifecycle": "PROPOSED",
51
+ "confidence": "UNRESOLVED",
52
+ "evidence": "PLANNED",
53
+ "change": "STABLE"
54
+ },
55
+ "title_zh": "构建链路按供应链治理",
56
+ "statement_zh": "凡在构建与集成链路上执行的自动化环节——无论是构建期插件、流水线步骤、代码生成过程还是远端脚本——一律纳入供应链同级审查;对可漂移的引用形态必须消除,改为锁定版本或在受控策略下更新。",
57
+ "statement_en_keywords": [
58
+ "build supply chain",
59
+ "ci actions as dependencies",
60
+ "pinned references",
61
+ "code generators"
62
+ ],
63
+ "applies_when": {
64
+ "lane": "any",
65
+ "condition": "构建路径上的可执行依赖",
66
+ "applicability_note": "构建路径上的可执行依赖"
67
+ },
68
+ "enforcement": "required_when_applicable",
69
+ "authority": {
70
+ "owner": "HUMAN_OWNER",
71
+ "delegates": [],
72
+ "write_policy": "EVOLUTION_CHANNEL",
73
+ "escalation_hint": "catalog-spec-decomposition"
74
+ },
75
+ "origin": "ingested",
76
+ "origin_note": "B6b-I FE 播种移植物化;statement 在物化层以独立措辞改写(clean-room;源卡语句与上游存在逐字重合,已消除),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
77
+ "sources": [
78
+ {
79
+ "type": "design_seed",
80
+ "ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml",
81
+ "captured_by": "agent:claude/spec-d-consolidation",
82
+ "locator": {
83
+ "candidate": "POLICY.DEP.BUILD_PATH_SUPPLY_CHAIN",
84
+ "source_protocol": ".trellis/spec/frontend/11-dependency-package-management-protocol.md",
85
+ "lines": "L27"
86
+ },
87
+ "clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
88
+ }
89
+ ],
90
+ "review_notes": [
91
+ "与既有 POLICY.DEP.* 三条(准入/引入/变更面)为不同时点:本条管构建与 CI 链路按供应链治理,彼三条管依赖包引入与变更;零语义重复。"
92
+ ]
93
+ }
@@ -3,7 +3,8 @@
3
3
  "status": "vocab_pr_candidate",
4
4
  "finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world);新 id 域段待登记:DEP",
5
5
  "proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+9 条同因同请,合并进同一 vocab PR)",
6
- "locked_vocab_untouched": true
6
+ "locked_vocab_untouched": true,
7
+ "resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
7
8
  },
8
9
  "x-spec-d-materialization": {
9
10
  "status": "PROPOSAL",
@@ -3,7 +3,8 @@
3
3
  "status": "vocab_pr_candidate",
4
4
  "finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world);新 id 域段待登记:DEP",
5
5
  "proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+9 条同因同请,合并进同一 vocab PR)",
6
- "locked_vocab_untouched": true
6
+ "locked_vocab_untouched": true,
7
+ "resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
7
8
  },
8
9
  "x-spec-d-materialization": {
9
10
  "status": "PROPOSAL",
@@ -0,0 +1,92 @@
1
+ {
2
+ "x-vocab-pr": {
3
+ "status": "vocab_pr_candidate",
4
+ "finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world)",
5
+ "proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+25+9 条同因同请,合并进同一 vocab PR)",
6
+ "locked_vocab_untouched": true,
7
+ "resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
8
+ },
9
+ "x-spec-d-materialization": {
10
+ "status": "PROPOSAL",
11
+ "package": "B6c BE 播种移植(SPEC-D 池卡复用;分母=MASTer 池卡 + vendor 播种字节双锚)",
12
+ "human_review_required": true,
13
+ "evidence": "PLANNED",
14
+ "provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
15
+ "group": "BE-G1",
16
+ "candidate_id": "POLICY.DEP.NO_UNTRUSTED_SOURCE_NO_LOCK_BYPASS",
17
+ "density_rank": "UNIVERSAL",
18
+ "density_score": 31.81,
19
+ "pool_statement_sha16": "45a0b955f36fbd59",
20
+ "curated_rule": "B6c 分母(BE universal 33:32 编号协议 + index)required 池(ELIGIBLE 未物化 + 卡层锚落 MUST/MUST NOT 且与 MASTer 行锚交叉验证)按池密度序取前 22 + advisory 池(SHOULD 源 backlog policy 卡 + 行锚全落建议段闭包)按同公式密度序取前 3 = 25(D5 上限/批内执行);UNIVERSAL + UNIVERSAL_POLICY + 无 uncertainty + 非 project_scope + 非重复",
21
+ "denominator": "MASTer(池卡 source 锚)"
22
+ },
23
+ "x-b6-porting": {
24
+ "status": "PROPOSAL",
25
+ "batch": "B6C",
26
+ "human_review_required": true,
27
+ "classification_face": "policy",
28
+ "enforcement_axis": {
29
+ "source_sections": [
30
+ "MUST NOT"
31
+ ],
32
+ "rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
33
+ "asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
34
+ },
35
+ "extra_master_sections": [],
36
+ "denominator": "vendor",
37
+ "vendor_pin": {
38
+ "path": "pomaster/components/backend-hard-spec/assets/universal/27-dependency-supply-chain-protocol.md",
39
+ "sha256": "7e0817507039ab5f633ff4cb7eb3590d8755a547b8db91867f92bc702a64ddfe",
40
+ "bytes": 1317
41
+ },
42
+ "seeded_spec": ".pomaster/specs/hard/backend/27-dependency-supply-chain-protocol.md",
43
+ "seed_manifest": "packages/cli/seeds/manifest.json"
44
+ },
45
+ "id": "POLICY.DEP.NO_UNTRUSTED_SOURCE_NO_LOCK_BYPASS",
46
+ "kind": "policy",
47
+ "axis_profile": "policy_default",
48
+ "classification": "UNIVERSAL_POLICY",
49
+ "axes": {
50
+ "lifecycle": "PROPOSED",
51
+ "confidence": "UNRESOLVED",
52
+ "evidence": "PLANNED",
53
+ "change": "STABLE"
54
+ },
55
+ "title_zh": "禁不可信源与锁绕过",
56
+ "statement_zh": "禁止从不可信来源下载并执行代码,禁止无视锁文件与校验差异。",
57
+ "statement_en_keywords": [
58
+ "no untrusted source",
59
+ "no lockfile bypass",
60
+ "checksum integrity"
61
+ ],
62
+ "applies_when": {
63
+ "lane": "any",
64
+ "condition": "依赖获取与安装",
65
+ "applicability_note": "依赖获取与安装"
66
+ },
67
+ "enforcement": "required_when_applicable",
68
+ "authority": {
69
+ "owner": "HUMAN_OWNER",
70
+ "delegates": [],
71
+ "write_policy": "EVOLUTION_CHANNEL",
72
+ "escalation_hint": "catalog-spec-decomposition"
73
+ },
74
+ "origin": "ingested",
75
+ "origin_note": "B6c BE 播种移植物化;statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
76
+ "sources": [
77
+ {
78
+ "type": "design_seed",
79
+ "ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G1.yaml",
80
+ "captured_by": "agent:claude/spec-d-consolidation",
81
+ "locator": {
82
+ "candidate": "POLICY.DEP.NO_UNTRUSTED_SOURCE_NO_LOCK_BYPASS",
83
+ "source_protocol": ".trellis/spec/backend/27-dependency-supply-chain-protocol.md",
84
+ "lines": "29"
85
+ },
86
+ "clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
87
+ }
88
+ ],
89
+ "review_notes": [
90
+ "与既有 POLICY.DEP.* 族(准入/引入/变更 + B6b-I BUILD_PATH_SUPPLY_CHAIN)不同轴——彼族管构建链路与依赖治理过程,本管下载执行来源与锁文件绕过禁令,零语义重复。"
91
+ ]
92
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "x-spec-d-materialization": {
3
+ "status": "PROPOSAL",
4
+ "package": "裁定批 F/D3-R1 排除卡逐卡复核物化(SPEC-D 池卡复用;分母=MASTer 池卡 + vendor 播种字节双锚)",
5
+ "human_review_required": true,
6
+ "evidence": "PLANNED",
7
+ "provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
8
+ "group": "BE-G1",
9
+ "candidate_id": "POLICY.DEP.TIME_BOXED_URGENT_EXCEPTION",
10
+ "pool_statement_sha16": "22d6ec8ae536b3fd",
11
+ "curated_rule": "D3 逐卡复核批(Owner 2026-09-05 裁定 D3=逐卡复核;72 张保守排除卡逐卡核锚):required 9(D3b source=null 补锚落 MUST/MUST NOT 且与 MASTer 行锚交叉验证)+ advisory 16(Change Policy 锚 14 张降 advisory[行内容含「必须」行为规范、强度只降不升] + 池密度序前 2)= 25(D6 合并上限 policy+TP 合计 25/批内执行;超出 17 张 advisory 留 D3-R2 轮次台账);维持排除 30(Ownership 归属说明族)",
12
+ "denominator": "MASTer(池卡锚)"
13
+ },
14
+ "x-b6-porting": {
15
+ "status": "PROPOSAL",
16
+ "batch": "D3-R1",
17
+ "human_review_required": true,
18
+ "classification_face": "policy",
19
+ "enforcement_axis": {
20
+ "source_sections": [
21
+ "Change Policy"
22
+ ],
23
+ "rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
24
+ "asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
25
+ },
26
+ "extra_master_sections": [],
27
+ "denominator": "vendor",
28
+ "vendor_pin": {
29
+ "path": "pomaster/components/backend-hard-spec/assets/universal/27-dependency-supply-chain-protocol.md",
30
+ "sha256": "7e0817507039ab5f633ff4cb7eb3590d8755a547b8db91867f92bc702a64ddfe",
31
+ "bytes": 1317
32
+ },
33
+ "seeded_spec": ".pomaster/specs/hard/backend/27-dependency-supply-chain-protocol.md",
34
+ "seed_manifest": "packages/cli/seeds/manifest.json",
35
+ "d3_review": {
36
+ "excluded_from_batch": "B6C",
37
+ "exclusion_reason_at_seed": "行锚段映射非 MUST/MUST NOT(池 enforcement 判定矛盾,保守排除待复核)",
38
+ "adjudication": "D3 逐卡复核(Owner 2026-09-05 裁定 D3=逐卡复核,裁定批 F 落地 2026-09-05):本卡原属 B6C 保守排除留池(排除理由:行锚段映射非 MUST/MUST NOT(池 enforcement 判定矛盾,保守排除待复核));复核补锚回 vendor/MASTer 源取得行级证据,锚段=Change Policy,按强度入册(行内容含「必须」行为规范、Change Policy 段 advisory 落点(强度只降不升))",
39
+ "anchor_evidence": "MASTer 27-dependency-supply-chain-protocol.md 57「紧急漏洞例外必须限时、可追踪并安排后续完整验证。」",
40
+ "pool_enforcement_at_seed": "required_when_applicable"
41
+ }
42
+ },
43
+ "id": "POLICY.DEP.TIME_BOXED_URGENT_EXCEPTION",
44
+ "kind": "policy",
45
+ "axis_profile": "policy_default",
46
+ "classification": "UNIVERSAL_POLICY",
47
+ "axes": {
48
+ "lifecycle": "PROPOSED",
49
+ "confidence": "UNRESOLVED",
50
+ "evidence": "PLANNED",
51
+ "change": "STABLE"
52
+ },
53
+ "title_zh": "紧急漏洞例外限时追踪",
54
+ "statement_zh": "紧急漏洞例外必须限时、可追踪,并排定后续完整验证。",
55
+ "statement_en_keywords": [
56
+ "time boxed exception",
57
+ "urgent vulnerability",
58
+ "follow-up verification"
59
+ ],
60
+ "applies_when": {
61
+ "lane": "any",
62
+ "condition": "紧急漏洞需要例外通道",
63
+ "applicability_note": "紧急漏洞需要例外通道"
64
+ },
65
+ "enforcement": "advisory",
66
+ "authority": {
67
+ "owner": "HUMAN_OWNER",
68
+ "delegates": [],
69
+ "write_policy": "EVOLUTION_CHANNEL",
70
+ "escalation_hint": "catalog-spec-decomposition"
71
+ },
72
+ "origin": "ingested",
73
+ "origin_note": "裁定批 F/D3-R1 D3 逐卡复核物化(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
74
+ "sources": [
75
+ {
76
+ "type": "design_seed",
77
+ "ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G1.yaml",
78
+ "captured_by": "agent:claude/spec-d-consolidation",
79
+ "locator": {
80
+ "candidate": "POLICY.DEP.TIME_BOXED_URGENT_EXCEPTION",
81
+ "source_protocol": ".trellis/spec/backend/27-dependency-supply-chain-protocol.md",
82
+ "lines": "57"
83
+ },
84
+ "clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
85
+ }
86
+ ],
87
+ "review_notes": [
88
+ "紧急漏洞例外时限在既有 228 条中无对应条目;与 B6b-I SEC.NO_LONGTERM_SECURITY_DISABLE(安全机制关闭须有期限)同族互引(依赖侧紧急例外 vs 安全机制临时关闭)。",
89
+ "Change Policy 锚(MASTer 27 L57)——降 advisory 入册。"
90
+ ]
91
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "x-vocab-pr": {
3
+ "status": "vocab_pr_candidate",
4
+ "finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world);新 id 域段待登记:DEPLOY",
5
+ "proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+25+9 条同因同请,合并进同一 vocab PR)",
6
+ "locked_vocab_untouched": true,
7
+ "resolution": "2026-09-05 vocab PR-0009 收编落地(vocab-lock@v0.8-resolved,三镜像同 commit;Owner 裁定 D4=(a) 2026-09-05):kind='policy' 是 catalog 物料分类词形(catalog_layer_vocab.catalog_kind 在册——PR-0006,不受 kinds_registry.truth_bodies 闭包管辖),POLICY. 前缀为 governed 闭包既有前缀,id 域段词形随 catalog_layer_vocab.policy_id_domains / policy_web_domains 收编;本 pending 注记就此转正(finding/proposal/locked_vocab_untouched 为创建时点历史记录原样保留——mcp_eyes 先例)"
8
+ },
9
+ "x-spec-d-materialization": {
10
+ "status": "PROPOSAL",
11
+ "package": "B6c BE 播种移植(SPEC-D 池卡复用;分母=MASTer 池卡 + vendor 播种字节双锚)",
12
+ "human_review_required": true,
13
+ "evidence": "PLANNED",
14
+ "provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
15
+ "group": "BE-G4",
16
+ "candidate_id": "POLICY.DEPLOY.NO_DEV_ENV_AS_PRODUCTION_FACT",
17
+ "density_rank": "UNIVERSAL",
18
+ "density_score": 32.25,
19
+ "pool_statement_sha16": "d08055cc8e2ef139",
20
+ "curated_rule": "B6c 分母(BE universal 33:32 编号协议 + index)required 池(ELIGIBLE 未物化 + 卡层锚落 MUST/MUST NOT 且与 MASTer 行锚交叉验证)按池密度序取前 22 + advisory 池(SHOULD 源 backlog policy 卡 + 行锚全落建议段闭包)按同公式密度序取前 3 = 25(D5 上限/批内执行);UNIVERSAL + UNIVERSAL_POLICY + 无 uncertainty + 非 project_scope + 非重复",
21
+ "denominator": "MASTer(池卡 source 锚)"
22
+ },
23
+ "x-b6-porting": {
24
+ "status": "PROPOSAL",
25
+ "batch": "B6C",
26
+ "human_review_required": true,
27
+ "classification_face": "policy",
28
+ "enforcement_axis": {
29
+ "source_sections": [
30
+ "MUST NOT"
31
+ ],
32
+ "rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
33
+ "asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
34
+ },
35
+ "extra_master_sections": [],
36
+ "denominator": "vendor",
37
+ "vendor_pin": {
38
+ "path": "pomaster/components/backend-hard-spec/assets/universal/31-runtime-deployment-protocol.md",
39
+ "sha256": "c791451de0be3aa0629fd562e2b43cc54066e4b10d786264fa7a333c561ef23a",
40
+ "bytes": 1410
41
+ },
42
+ "seeded_spec": ".pomaster/specs/hard/backend/31-runtime-deployment-protocol.md",
43
+ "seed_manifest": "packages/cli/seeds/manifest.json"
44
+ },
45
+ "id": "POLICY.DEPLOY.NO_DEV_ENV_AS_PRODUCTION_FACT",
46
+ "kind": "policy",
47
+ "axis_profile": "policy_default",
48
+ "classification": "UNIVERSAL_POLICY",
49
+ "axes": {
50
+ "lifecycle": "PROPOSED",
51
+ "confidence": "UNRESOLVED",
52
+ "evidence": "PLANNED",
53
+ "change": "STABLE"
54
+ },
55
+ "title_zh": "禁以开发形态当生产事实",
56
+ "statement_zh": "禁止把开发环境的拓扑、默认端口或未经生产验证的容器行为当作生产事实引用。",
57
+ "statement_en_keywords": [
58
+ "no dev topology or default port as production fact",
59
+ "no unverified container behavior"
60
+ ],
61
+ "applies_when": {
62
+ "lane": "any",
63
+ "condition": "生产部署事实认定",
64
+ "applicability_note": "生产部署事实认定"
65
+ },
66
+ "enforcement": "required_when_applicable",
67
+ "authority": {
68
+ "owner": "HUMAN_OWNER",
69
+ "delegates": [],
70
+ "write_policy": "EVOLUTION_CHANNEL",
71
+ "escalation_hint": "catalog-spec-decomposition"
72
+ },
73
+ "origin": "ingested",
74
+ "origin_note": "B6c BE 播种移植物化;statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
75
+ "sources": [
76
+ {
77
+ "type": "design_seed",
78
+ "ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G4.yaml",
79
+ "captured_by": "agent:claude/spec-d-consolidation",
80
+ "locator": {
81
+ "candidate": "POLICY.DEPLOY.NO_DEV_ENV_AS_PRODUCTION_FACT",
82
+ "source_protocol": ".trellis/spec/backend/31-runtime-deployment-protocol.md",
83
+ "lines": ""
84
+ },
85
+ "clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
86
+ }
87
+ ],
88
+ "review_notes": [
89
+ "开发环境不得当生产事实在既有 193 条中无对应条目(CFG.PRODUCTION_SAFE_DEFAULTS 管默认态配置,非事实认定轴),零语义重复;与 POLICY.STACK.LOCAL_FORM_NOT_PROD_FACT(本批 TP 面)互引——协议通用语境 vs overlay 运行时语境。"
90
+ ]
91
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "x-spec-d-materialization": {
3
+ "status": "PROPOSAL",
4
+ "package": "裁定批 G/D3-R2 排除卡逐卡复核物化·R2 轮(SPEC-D 池卡复用;分母=MASTer 池卡 + vendor 播种字节双锚)",
5
+ "human_review_required": true,
6
+ "evidence": "PLANNED",
7
+ "provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
8
+ "group": "BE-G4",
9
+ "candidate_id": "POLICY.DEPLOY.OPERATIONAL_CAPABILITIES",
10
+ "pool_statement_sha16": "029729877af6c6a1",
11
+ "curated_rule": "D3 逐卡复核批 R2 轮(Owner 2026-09-05 裁定 D3=逐卡复核;裁定批 G 收尾批):R1 入册 25(required 9 + advisory 16)后余量 17 张 advisory 全量入册——SHOULD 锚 13(卡层行锚缺席,复核回 MASTer 源取得行级证据:B6c BE-G4 六 + BE-G3 七)+ 非 12 段锚 4(B6b-II FE index 2 / B6c BE index 冲突优先序 1 / B6b-I FE20 Change Policy 锚 1,extra_master_sections 如实登记);全部 advisory(池判 required 卡强度只降不升);D6 合并口径 ≤25/批满足(17 ≤ 25);72 张总账=R1 25 + R2 17 + 维持排除 30",
12
+ "denominator": "MASTer(池卡锚)"
13
+ },
14
+ "x-b6-porting": {
15
+ "status": "PROPOSAL",
16
+ "batch": "D3-R2",
17
+ "human_review_required": true,
18
+ "classification_face": "policy",
19
+ "enforcement_axis": {
20
+ "source_sections": [
21
+ "SHOULD"
22
+ ],
23
+ "rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
24
+ "asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
25
+ },
26
+ "extra_master_sections": [],
27
+ "denominator": "vendor",
28
+ "vendor_pin": {
29
+ "path": "pomaster/components/backend-hard-spec/assets/universal/31-runtime-deployment-protocol.md",
30
+ "sha256": "c791451de0be3aa0629fd562e2b43cc54066e4b10d786264fa7a333c561ef23a",
31
+ "bytes": 1410
32
+ },
33
+ "seeded_spec": ".pomaster/specs/hard/backend/31-runtime-deployment-protocol.md",
34
+ "seed_manifest": "packages/cli/seeds/manifest.json",
35
+ "d3_review": {
36
+ "excluded_from_batch": "B6C",
37
+ "exclusion_reason_at_seed": "池行行锚缺席(锚证据不足,保守排除待复核)",
38
+ "adjudication": "D3 逐卡复核 R2 轮(Owner 2026-09-05 裁定 D3=逐卡复核,裁定批 G 落地 2026-09-05):本卡原属 B6C 保守排除留池(排除理由:池行行锚缺席(锚证据不足,保守排除待复核));复核补锚回 MASTer 源取得行级证据,锚段=SHOULD,按强度入册(SHOULD 行锚 advisory 原样(池判一致;复核行锚补证))",
39
+ "anchor_evidence": "MASTer 31-runtime-deployment-protocol.md L31-L33「## SHOULD」",
40
+ "pool_enforcement_at_seed": "advisory"
41
+ }
42
+ },
43
+ "id": "POLICY.DEPLOY.OPERATIONAL_CAPABILITIES",
44
+ "kind": "policy",
45
+ "axis_profile": "policy_default",
46
+ "classification": "UNIVERSAL_POLICY",
47
+ "axes": {
48
+ "lifecycle": "PROPOSED",
49
+ "confidence": "UNRESOLVED",
50
+ "evidence": "PLANNED",
51
+ "change": "STABLE"
52
+ },
53
+ "title_zh": "部署运行能力六项",
54
+ "statement_zh": "部署单元宜具备优雅启停、健康检查、滚动发布、最小权限运行与故障隔离五类运行能力。",
55
+ "statement_en_keywords": [
56
+ "graceful start-stop",
57
+ "health check",
58
+ "rolling release",
59
+ "least privilege",
60
+ "fault isolation"
61
+ ],
62
+ "applies_when": {
63
+ "lane": "any",
64
+ "condition": "部署单元运行能力设计",
65
+ "applicability_note": "部署单元运行能力设计"
66
+ },
67
+ "enforcement": "advisory",
68
+ "authority": {
69
+ "owner": "HUMAN_OWNER",
70
+ "delegates": [],
71
+ "write_policy": "EVOLUTION_CHANNEL",
72
+ "escalation_hint": "catalog-spec-decomposition"
73
+ },
74
+ "origin": "ingested",
75
+ "origin_note": "裁定批 G/D3-R2 D3 逐卡复核物化·R2 轮(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
76
+ "sources": [
77
+ {
78
+ "type": "design_seed",
79
+ "ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G4.yaml",
80
+ "captured_by": "agent:claude/spec-d-consolidation",
81
+ "locator": {
82
+ "candidate": "POLICY.DEPLOY.OPERATIONAL_CAPABILITIES",
83
+ "source_protocol": ".trellis/spec/backend/31-runtime-deployment-protocol.md",
84
+ "lines": "L31-L33"
85
+ },
86
+ "clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
87
+ }
88
+ ],
89
+ "review_notes": [
90
+ "优雅启停/健康检查/滚动发布/最小权限/故障隔离在既有 228 条中无对应条目;与 POLICY.DEPLOY.NO_DEV_ENV_AS_PRODUCTION_FACT、RUNTIME_FACT_RECORD(B6b-I:部署事实登记)不同轴——彼管事实记录,本管部署单元能力设计面,互引。",
91
+ "D3-R2 补锚:MASTer 31 L31-33(SHOULD 段),advisory 原样(池判一致)。"
92
+ ]
93
+ }