pomaster 0.3.0 → 0.5.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 (344) hide show
  1. package/README.md +57 -22
  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 +95 -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 +95 -0
  132. package/catalog/policies/policy.sec.third_party_execution_register.json +2 -1
  133. package/catalog/policies/policy.sec.trust_boundary_enforcement.json +96 -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 +20514 -10735
  240. package/package.json +2 -1
  241. package/seeds/aggregation-manifest.json +691 -0
  242. package/seeds/baseline/backend/api-contract.md +26 -0
  243. package/seeds/baseline/backend/architecture.md +31 -0
  244. package/seeds/baseline/backend/data-access.md +31 -0
  245. package/seeds/baseline/backend/directory-structure.md +11 -0
  246. package/seeds/baseline/backend/integration-runtime.md +21 -0
  247. package/seeds/baseline/backend/quality.md +31 -0
  248. package/seeds/baseline/backend/stack.yaml +13 -0
  249. package/seeds/baseline/backend/transaction-concurrency.md +26 -0
  250. package/seeds/baseline/data/lineage.md +11 -0
  251. package/seeds/baseline/data/migration.md +11 -0
  252. package/seeds/baseline/data/model.md +31 -0
  253. package/seeds/baseline/data/precision-units.md +31 -0
  254. package/seeds/baseline/data/quality.md +31 -0
  255. package/seeds/baseline/frontend/api-and-error.md +21 -0
  256. package/seeds/baseline/frontend/architecture.md +26 -0
  257. package/seeds/baseline/frontend/design-system.md +21 -0
  258. package/seeds/baseline/frontend/directory-structure.md +16 -0
  259. package/seeds/baseline/frontend/quality.md +26 -0
  260. package/seeds/baseline/frontend/stack.yaml +17 -0
  261. package/seeds/baseline/frontend/state-and-data.md +26 -0
  262. package/seeds/baseline/manifest.yaml +32 -0
  263. package/seeds/baseline/platform/delivery.md +36 -0
  264. package/seeds/baseline/platform/environment.md +11 -0
  265. package/seeds/baseline/platform/observability.md +31 -0
  266. package/seeds/baseline/platform/security.md +26 -0
  267. package/seeds/manifest.json +1429 -0
  268. package/seeds/specs/evidence/accessibility.md +89 -0
  269. package/seeds/specs/evidence/architecture.md +89 -0
  270. package/seeds/specs/evidence/browser-e2e.md +91 -0
  271. package/seeds/specs/evidence/build.md +91 -0
  272. package/seeds/specs/evidence/business-acceptance.md +89 -0
  273. package/seeds/specs/evidence/complexity-crap.md +97 -0
  274. package/seeds/specs/evidence/contract.md +89 -0
  275. package/seeds/specs/evidence/coverage.md +91 -0
  276. package/seeds/specs/evidence/data-migration.md +91 -0
  277. package/seeds/specs/evidence/dead-code-duplicate.md +89 -0
  278. package/seeds/specs/evidence/dependency-supply-chain.md +89 -0
  279. package/seeds/specs/evidence/index.md +55 -0
  280. package/seeds/specs/evidence/mutation.md +89 -0
  281. package/seeds/specs/evidence/performance.md +89 -0
  282. package/seeds/specs/evidence/release.md +91 -0
  283. package/seeds/specs/evidence/runtime-observability.md +91 -0
  284. package/seeds/specs/evidence/security.md +89 -0
  285. package/seeds/specs/evidence/typecheck-lint.md +91 -0
  286. package/seeds/specs/evidence/unit-component-integration.md +91 -0
  287. package/seeds/specs/evidence/visual-regression.md +89 -0
  288. package/seeds/specs/hard/stacks/antdesign/antdesign-ui-overlay.md +48 -0
  289. package/seeds/specs/hard/stacks/antdesign/index.md +20 -0
  290. package/seeds/specs/hard/stacks/css/css-system-overlay.md +52 -0
  291. package/seeds/specs/hard/stacks/css/index.md +20 -0
  292. package/seeds/specs/hard/stacks/geist/geist-design-system-overlay.md +48 -0
  293. package/seeds/specs/hard/stacks/geist/index.md +20 -0
  294. package/seeds/specs/hard/stacks/java/index.md +20 -0
  295. package/seeds/specs/hard/stacks/java/java-language-overlay.md +35 -0
  296. package/seeds/specs/hard/stacks/jpa/index.md +20 -0
  297. package/seeds/specs/hard/stacks/jpa/jpa-persistence-overlay.md +35 -0
  298. package/seeds/specs/hard/stacks/kubernetes-ingress/index.md +20 -0
  299. package/seeds/specs/hard/stacks/kubernetes-ingress/kubernetes-ingress-overlay.md +35 -0
  300. package/seeds/specs/hard/stacks/messaging/index.md +20 -0
  301. package/seeds/specs/hard/stacks/messaging/messaging-reliability-overlay.md +35 -0
  302. package/seeds/specs/hard/stacks/mybatis/index.md +20 -0
  303. package/seeds/specs/hard/stacks/mybatis/mybatis-persistence-overlay.md +35 -0
  304. package/seeds/specs/hard/stacks/mysql/index.md +20 -0
  305. package/seeds/specs/hard/stacks/mysql/mysql-database-overlay.md +35 -0
  306. package/seeds/specs/hard/stacks/nginx/index.md +20 -0
  307. package/seeds/specs/hard/stacks/nginx/nginx-proxy-overlay.md +35 -0
  308. package/seeds/specs/hard/stacks/postgresql/index.md +20 -0
  309. package/seeds/specs/hard/stacks/postgresql/postgresql-database-overlay.md +35 -0
  310. package/seeds/specs/hard/stacks/redis/index.md +20 -0
  311. package/seeds/specs/hard/stacks/redis/redis-cache-overlay.md +35 -0
  312. package/seeds/specs/hard/stacks/spring-batch/index.md +20 -0
  313. package/seeds/specs/hard/stacks/spring-batch/spring-batch-job-overlay.md +35 -0
  314. package/seeds/specs/hard/stacks/spring-boot/index.md +20 -0
  315. package/seeds/specs/hard/stacks/spring-boot/spring-boot-application-overlay.md +35 -0
  316. package/seeds/specs/hard/stacks/spring-mvc/index.md +20 -0
  317. package/seeds/specs/hard/stacks/spring-mvc/spring-mvc-web-overlay.md +35 -0
  318. package/seeds/specs/hard/stacks/spring-webflux/index.md +20 -0
  319. package/seeds/specs/hard/stacks/spring-webflux/spring-webflux-reactive-overlay.md +35 -0
  320. package/seeds/specs/hard/stacks/tomcat/index.md +20 -0
  321. package/seeds/specs/hard/stacks/tomcat/tomcat-runtime-overlay.md +35 -0
  322. package/seeds/specs/hard/stacks/vue3/index.md +20 -0
  323. package/seeds/specs/hard/stacks/vue3/vue3-framework-overlay.md +71 -0
  324. package/seeds/specs/hard/themes/ai-generated-code.md +171 -0
  325. package/seeds/specs/hard/themes/api-contract-and-error-semantics.md +532 -0
  326. package/seeds/specs/hard/themes/architecture-and-module-boundaries.md +323 -0
  327. package/seeds/specs/hard/themes/data-and-transactions.md +582 -0
  328. package/seeds/specs/hard/themes/engineering-toolchain-and-dependencies.md +333 -0
  329. package/seeds/specs/hard/themes/environment-and-configuration.md +196 -0
  330. package/seeds/specs/hard/themes/frontend-state-and-client-data.md +342 -0
  331. package/seeds/specs/hard/themes/index.md +374 -0
  332. package/seeds/specs/hard/themes/integration-and-async-runtime.md +331 -0
  333. package/seeds/specs/hard/themes/internationalization-and-copywriting.md +350 -0
  334. package/seeds/specs/hard/themes/observability-and-analytics.md +305 -0
  335. package/seeds/specs/hard/themes/page-composition-and-browser-environment.md +554 -0
  336. package/seeds/specs/hard/themes/performance-and-capacity.md +226 -0
  337. package/seeds/specs/hard/themes/permission-and-authorization.md +168 -0
  338. package/seeds/specs/hard/themes/privacy-and-data-lifecycle.md +176 -0
  339. package/seeds/specs/hard/themes/release-and-feature-flags.md +237 -0
  340. package/seeds/specs/hard/themes/security.md +372 -0
  341. package/seeds/specs/hard/themes/task-governance-and-acceptance.md +554 -0
  342. package/seeds/specs/hard/themes/testing-and-verification.md +266 -0
  343. package/seeds/specs/hard/themes/ui-presentation-and-design.md +670 -0
  344. package/seeds/specs/hard/themes/value-semantics-and-domain-data.md +339 -0
@@ -0,0 +1,96 @@
1
+ {
2
+ "x-vocab-pr": {
3
+ "status": "vocab_pr_candidate",
4
+ "finding": "id 域段待登记:BE(vocab-lock@v0.9-resolved policy_id_domains 35 段未含——PR-0010 后新用域段沿用候选注记先例,词汇表 PR 增补)",
5
+ "proposal": "词汇表 PR 增补新 id 域段至 catalog_layer_vocab.policy_id_domains(与 PR-0009/PR-0010 同轴追加,append-only)",
6
+ "locked_vocab_untouched": true
7
+ },
8
+ "x-spec-d-materialization": {
9
+ "status": "PROPOSAL",
10
+ "package": "裁定批 G/D3-R2 排除卡逐卡复核物化·R2 轮(SPEC-D 池卡复用;分母=MASTer 池卡 + vendor 播种字节双锚)",
11
+ "human_review_required": true,
12
+ "evidence": "PLANNED",
13
+ "provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
14
+ "group": "BE-G3",
15
+ "candidate_id": "POLICY.BE.TXN.SHORT_LOCKS_COMPENSATION",
16
+ "pool_statement_sha16": "7de9ba8459cce310",
17
+ "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",
18
+ "denominator": "MASTer(池卡锚)"
19
+ },
20
+ "x-b6-porting": {
21
+ "status": "PROPOSAL",
22
+ "batch": "D3-R2",
23
+ "human_review_required": true,
24
+ "classification_face": "policy",
25
+ "enforcement_axis": {
26
+ "source_sections": [
27
+ "SHOULD"
28
+ ],
29
+ "rule": "SHOULD/Change Policy 源条目 enforcement 必须 advisory(禁升 required);MUST/MUST NOT 源条目 enforcement 必须 required_when_applicable(降级合法)",
30
+ "asserted_by": "packages/cli/tests/catalog-b6-porting.spec.ts"
31
+ },
32
+ "extra_master_sections": [],
33
+ "denominator": "vendor",
34
+ "vendor_pin": {
35
+ "path": "pomaster/components/backend-hard-spec/assets/universal/20-transaction-boundary-protocol.md",
36
+ "sha256": "4c4634b71f1e07e9cae074f9790fa50b3425f0af71300ab2ac12e644b521eff4",
37
+ "bytes": 1323
38
+ },
39
+ "seeded_spec": ".pomaster/specs/hard/themes/data-and-transactions.md",
40
+ "seed_manifest": "packages/cli/seeds/manifest.json",
41
+ "d3_review": {
42
+ "excluded_from_batch": "B6C",
43
+ "exclusion_reason_at_seed": "池行行锚缺席(锚证据不足,保守排除待复核)",
44
+ "adjudication": "D3 逐卡复核 R2 轮(Owner 2026-09-05 裁定 D3=逐卡复核,裁定批 G 落地 2026-09-05):本卡原属 B6C 保守排除留池(排除理由:池行行锚缺席(锚证据不足,保守排除待复核));复核补锚回 MASTer 源取得行级证据,锚段=SHOULD,按强度入册(SHOULD 行锚 advisory 原样(池判一致;复核行锚补证))",
45
+ "anchor_evidence": "MASTer 20-transaction-boundary-protocol.md L33「- 应缩短锁持有时间,并将外部副作用设计为可重试或可补偿。」",
46
+ "pool_enforcement_at_seed": "advisory"
47
+ }
48
+ },
49
+ "id": "POLICY.BE.TXN.SHORT_LOCKS_COMPENSATION",
50
+ "kind": "policy",
51
+ "axis_profile": "policy_default",
52
+ "classification": "UNIVERSAL_POLICY",
53
+ "axes": {
54
+ "lifecycle": "PROPOSED",
55
+ "confidence": "UNRESOLVED",
56
+ "evidence": "PLANNED",
57
+ "change": "STABLE"
58
+ },
59
+ "title_zh": "短锁持有与副作用补偿",
60
+ "statement_zh": "应尽量压缩锁的持有时长,并把对外部系统产生的副作用设计成可重试或可补偿的形态。",
61
+ "statement_en_keywords": [
62
+ "short lock hold time",
63
+ "retryable or compensable external side effects"
64
+ ],
65
+ "applies_when": {
66
+ "lane": "backend",
67
+ "condition": "设计事务与外部系统交互时",
68
+ "applicability_note": "设计事务与外部系统交互时"
69
+ },
70
+ "enforcement": "advisory",
71
+ "authority": {
72
+ "owner": "HUMAN_OWNER",
73
+ "delegates": [],
74
+ "write_policy": "EVOLUTION_CHANNEL",
75
+ "escalation_hint": "catalog-spec-decomposition"
76
+ },
77
+ "origin": "ingested",
78
+ "origin_note": "裁定批 G/D3-R2 D3 逐卡复核物化·R2 轮(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
79
+ "sources": [
80
+ {
81
+ "type": "design_seed",
82
+ "ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G3.yaml",
83
+ "captured_by": "agent:claude/spec-d-consolidation",
84
+ "locator": {
85
+ "candidate": "POLICY.BE.TXN.SHORT_LOCKS_COMPENSATION",
86
+ "source_protocol": ".trellis/spec/backend/20-transaction-boundary-protocol.md",
87
+ "lines": "L33"
88
+ },
89
+ "clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
90
+ }
91
+ ],
92
+ "review_notes": [
93
+ "短锁持有+外部副作用可重试/可补偿在既有 228 条中无对应条目;与同批 INTEGRATION.FAULT_CONTAINMENT 互引(事务边界时序 vs 集成故障隔离);与 REL.NO_IRREVERSIBLE_UNMONITORED_FULL_RELEASE 不同轴。",
94
+ "D3-R2 补锚:MASTer 20 L33(SHOULD 段),advisory 原样(池判一致)。"
95
+ ]
96
+ }
@@ -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 域段待登记:BOUND",
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.BOUND.SEARCH_FIRST_ENTRY_ONLY",
17
+ "density_rank": "UNIVERSAL",
18
+ "density_score": 32.31,
19
+ "pool_statement_sha16": "5e0f8379b7a9cb1f",
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"
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/03-directory-boundary-protocol.md",
39
+ "sha256": "95a917cfe3c929b5a0a40de5f6215b25ef4a358a4e7f1c7cb2daa08defcf6bcc",
40
+ "bytes": 1224
41
+ },
42
+ "seeded_spec": ".pomaster/specs/hard/themes/architecture-and-module-boundaries.md",
43
+ "seed_manifest": "packages/cli/seeds/manifest.json"
44
+ },
45
+ "id": "POLICY.BOUND.SEARCH_FIRST_ENTRY_ONLY",
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
+ "search before modify",
59
+ "public entry only"
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-G1.yaml",
79
+ "captured_by": "agent:claude/spec-d-consolidation",
80
+ "locator": {
81
+ "candidate": "POLICY.BOUND.SEARCH_FIRST_ENTRY_ONLY",
82
+ "source_protocol": ".trellis/spec/backend/03-directory-boundary-protocol.md",
83
+ "lines": "25"
84
+ },
85
+ "clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
86
+ }
87
+ ],
88
+ "review_notes": [
89
+ "与既有 POLICY.AI.READ_SEARCH_VERIFY_BEFORE_WRITE(本批)为通则与依赖方向特例:彼管写前三步,本管依赖只指向声明公开入口,互引不合并;零语义重复。"
90
+ ]
91
+ }
@@ -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);新 id 域段待登记:BOUNDARY",
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.BOUNDARY.VALIDATE_IN_ENCODE_OUT",
17
+ "density_rank": null,
18
+ "density_score": 33.19,
19
+ "pool_statement_sha16": "0b72a2315b61d7b9",
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/04-security-protocol.md",
38
+ "sha256": "4d9bb6bd34a64fcc3e362c969492bc326533e16ef4c6d2284dc01442733504e6",
39
+ "bytes": 21948
40
+ },
41
+ "seeded_spec": ".pomaster/specs/hard/themes/security.md",
42
+ "seed_manifest": "packages/cli/seeds/manifest.json"
43
+ },
44
+ "id": "POLICY.BOUNDARY.VALIDATE_IN_ENCODE_OUT",
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
+ "validate input encode output",
58
+ "untrusted data boundary",
59
+ "types are not validation"
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": "B6b-I FE 播种移植物化;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/FE-G1.yaml",
79
+ "captured_by": "agent:claude/spec-d-consolidation",
80
+ "locator": {
81
+ "candidate": "POLICY.BOUNDARY.VALIDATE_IN_ENCODE_OUT",
82
+ "source_protocol": ".trellis/spec/frontend/04-security-protocol.md",
83
+ "lines": "L23"
84
+ },
85
+ "clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
86
+ }
87
+ ],
88
+ "review_notes": [
89
+ "安全数据边界义务在既有 143 条中无对应条目(POLICY.SEC.* 仅第三方执行体登记),零语义重复。",
90
+ "卡为双锚卡(04 L23 + 10 L27 外部数据运行时校验),10 文件不重复立卡。"
91
+ ]
92
+ }
@@ -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.CACHE.FAILURE_MODE_GUARDS",
10
+ "pool_statement_sha16": "a209858141161311",
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/23-cache-redis-consistency-protocol.md",
30
+ "sha256": "073da5821658adfc0580798873fde95c49dc9d993a63949b3b1543a9c0e18a11",
31
+ "bytes": 1316
32
+ },
33
+ "seeded_spec": ".pomaster/specs/hard/themes/data-and-transactions.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 23-cache-redis-consistency-protocol.md L31-L33「## SHOULD」",
40
+ "pool_enforcement_at_seed": "advisory"
41
+ }
42
+ },
43
+ "id": "POLICY.CACHE.FAILURE_MODE_GUARDS",
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
+ "cache penetration",
57
+ "breakdown",
58
+ "avalanche",
59
+ "hot key",
60
+ "mitigation and observation"
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.CACHE.FAILURE_MODE_GUARDS",
83
+ "source_protocol": ".trellis/spec/backend/23-cache-redis-consistency-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
+ "缓存穿透/击穿/雪崩/热 key 限制与观测在既有 228 条中无对应条目;与 POLICY.CACHE.LIFECYCLE_DEFINITION(B6b-I:缓存生命周期定义)及同批 SCHEMA_VERSIONING(变更纪律)不同轴——彼管结构形态/演进,本管失效模式防护设计面,互引不合并。",
91
+ "D3-R2 补锚:卡层 source_lines=null,复核回 MASTer 23 L31-33(SHOULD 段)取得行级证据,advisory 原样(池判一致)。"
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 域段待登记:CACHE",
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,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-G4",
9
+ "candidate_id": "POLICY.CACHE.SCHEMA_VERSIONING",
10
+ "pool_statement_sha16": "211ab3ab605ba8d3",
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/23-cache-redis-consistency-protocol.md",
30
+ "sha256": "073da5821658adfc0580798873fde95c49dc9d993a63949b3b1543a9c0e18a11",
31
+ "bytes": 1316
32
+ },
33
+ "seeded_spec": ".pomaster/specs/hard/themes/data-and-transactions.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 23-cache-redis-consistency-protocol.md 57「value schema 或 key 变化必须版本化并规划旧数据清理。」",
40
+ "pool_enforcement_at_seed": "required_when_applicable"
41
+ }
42
+ },
43
+ "id": "POLICY.CACHE.SCHEMA_VERSIONING",
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
+ "cache value schema versioning",
57
+ "key convention change",
58
+ "legacy entry cleanup"
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-G4.yaml",
78
+ "captured_by": "agent:claude/spec-d-consolidation",
79
+ "locator": {
80
+ "candidate": "POLICY.CACHE.SCHEMA_VERSIONING",
81
+ "source_protocol": ".trellis/spec/backend/23-cache-redis-consistency-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-II FLAG.CLEANUP_AFTER_FULL_ROLLOUT(存量清退语义)互引。",
89
+ "Change Policy 锚(MASTer 23 L57)——降 advisory 入册。"
90
+ ]
91
+ }
@@ -0,0 +1,95 @@
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-G2",
9
+ "candidate_id": "POLICY.CFG.CONFIG_ATTRIBUTE_COMPLETENESS",
10
+ "pool_statement_sha16": "9e100ddf5853c65f",
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
+ "MUST"
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/11-environment-configuration-protocol.md",
30
+ "sha256": "eb9e82e9df64ce238501bc51cd359f36150f911c149904e2ed5a43d9b652b1bd",
31
+ "bytes": 1362
32
+ },
33
+ "seeded_spec": ".pomaster/specs/hard/themes/environment-and-configuration.md",
34
+ "seed_manifest": "packages/cli/seeds/manifest.json",
35
+ "d3_review": {
36
+ "excluded_from_batch": "B6C",
37
+ "exclusion_reason_at_seed": "卡层 source=null(锚证据不足),保守排除待复核",
38
+ "adjudication": "D3 逐卡复核(Owner 2026-09-05 裁定 D3=逐卡复核,裁定批 F 落地 2026-09-05):本卡原属 B6C 保守排除留池(排除理由:卡层 source=null(锚证据不足),保守排除待复核);复核补锚回 vendor/MASTer 源取得行级证据,锚段=MUST,按强度入册(MUST/MUST NOT 行锚 required 原样)",
39
+ "anchor_evidence": "MASTer 11-environment-configuration-protocol.md 25「- 配置必须有类型、来源、默认行为、敏感级别、验证与变更路径。」",
40
+ "pool_enforcement_at_seed": "required_when_applicable"
41
+ }
42
+ },
43
+ "id": "POLICY.CFG.CONFIG_ATTRIBUTE_COMPLETENESS",
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
+ "config item attributes",
57
+ "type",
58
+ "source",
59
+ "default behavior",
60
+ "sensitivity",
61
+ "validation",
62
+ "change path"
63
+ ],
64
+ "applies_when": {
65
+ "lane": "backend",
66
+ "condition": "登记或引入任何配置项",
67
+ "applicability_note": "登记或引入任何配置项"
68
+ },
69
+ "enforcement": "required_when_applicable",
70
+ "authority": {
71
+ "owner": "HUMAN_OWNER",
72
+ "delegates": [],
73
+ "write_policy": "EVOLUTION_CHANNEL",
74
+ "escalation_hint": "catalog-spec-decomposition"
75
+ },
76
+ "origin": "ingested",
77
+ "origin_note": "裁定批 F/D3-R1 D3 逐卡复核物化(原 B6C 保守排除卡补锚收编);statement 沿用 SPEC-D 候选卡独立措辞(clean-room),零逐字拷贝上游源文本;播种分母=vendor 字节(x-b6-porting.vendor_pin),分解分母=MASTer 池卡(x-spec-d-materialization)",
78
+ "sources": [
79
+ {
80
+ "type": "design_seed",
81
+ "ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G2.yaml",
82
+ "captured_by": "agent:claude/spec-d-consolidation",
83
+ "locator": {
84
+ "candidate": "POLICY.CFG.CONFIG_ATTRIBUTE_COMPLETENESS",
85
+ "source_protocol": ".trellis/spec/backend/11-environment-configuration-protocol.md",
86
+ "lines": "25"
87
+ },
88
+ "clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
89
+ }
90
+ ],
91
+ "review_notes": [
92
+ "配置登记六要素在既有 228 条中无对应条目;与 POLICY.CFG.SCHEMA_BACKED_CONFIG(B6b-I:配置结构化定义与环境矩阵)相邻——彼管配置结构形态,本管逐项登记要素完备性,互引不合并。",
93
+ "D3b 补锚:MASTer 11-environment-configuration-protocol.md L25(MUST 段)。"
94
+ ]
95
+ }