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
package/README.md CHANGED
@@ -10,6 +10,16 @@
10
10
  POMaster = State + Context + Transition + Evidence,在 Authority 与 Adaptive Governance 下运行
11
11
  ```
12
12
 
13
+ ## v0.5.0 亮点(2026-09-06)
14
+
15
+ - **技术栈问卷 + 基线确认 gate**:init 平台选择后 14 键逐项必答(候选含实战栈与占位,可自由输入),答完回填 `baseline/<lane>/stack.yaml` 并销账 unknowns 台账;`pomaster baseline confirm` 以 sha256 快照烙印基线——closeout 对未确认(`BASELINE_NOT_CONFIRMED`)与漂移(`BASELINE_DRIFT`)双重阻断,确认后修改走 `--change CHANGE.*` 治理通路。
16
+ - **baseline 栈预置草案**:选型落定后 init 自动为 22 份基线面生成 `PRESET-DRAFT` 草案节——内容逐条溯源到主题文档与 overlay,Owner 可改,confirm 烙印;业务实体/接口零预置。
17
+ - **spec 主题式重组**:77 份 FE/BE 协议重组为 **20 份主题文档 + 1 导航**(13 跨端合并 + 7 端独占),语言差异为主题文档内小节(内容自 18 族 overlay 逐字同步);旧平铺文件退役,已安装工作区由 doctor/status `legacy_specs_present` 检出。
18
+ - **overlay 前端族**:vue3 / ant-design-vue / geist / css 体系四族入库(原 14 族全后端 java),全部带官方文档实抓锚(x-research-anchors)。
19
+ - **Discovery 方法论长卡 + Grill 策略**:`pomaster-discovery` 卡内置 Grounded Brainstorm 全剧本——先 Ground 后 Grill、九类拷问动作、Frontier 节奏、上游决策失效重算;`brainstorm decide --set/--answer/--ready` 机器闸放行,`promote` 即建任务。
20
+ - **组件画廊(Storybook)**:仓内 `packages/studio`——41 张 archetype 语义卡 + 71 个 antdv 组件真渲染 + 18 overlay 能力页,`pnpm studio:build` 出静态站。
21
+ - **收口链补全**:`record verification`(claim 到 VERIFIED 的公开生产入口)、context 指纹绑定范围内正文(漂移必 stale)、closeout 候选证据置换不变、research request/handoff 公开链。
22
+
13
23
  ## 快速上手
14
24
 
15
25
  POMaster 的全部能力收敛在一条 CLI(`pomaster`)——八拍 Change Loop 的每一拍都有对应命令面。先给一张**命令全景**(机器钉版,与 `pomaster --help` 零漂移;`#` 分节注释仅人读)。第一次使用?直接看下面 [install → init → 第一个 Change](#1-安装) 的全流程。
@@ -22,6 +32,7 @@ pomaster alerts
22
32
  pomaster doctor
23
33
  pomaster portability bootstrap/check
24
34
  pomaster update --check/--yes
35
+ pomaster baseline set/confirm # set = 单键后补销账;confirm = 基线确认 gate(14 unknowns 销账后 digest 快照——closeout 阻断码与 doctor/status 确认态的消费源)
25
36
 
26
37
  # ① TRIAGE —— 秒级判档(MINIMAL/LIGHT/STANDARD;NO-OP 合法)
27
38
  pomaster triage "<request>"
@@ -38,11 +49,11 @@ pomaster maintain <change-or-task> --ops <tx>
38
49
 
39
50
  # ⑤ VERIFY —— FAST gate / gate recipes 派发 / 证据入账
40
51
  pomaster check --fast/--gates
41
- pomaster record gate-run/claim
52
+ pomaster record gate-run/claim/verification
42
53
 
43
54
  # ⑥ RECONCILE —— delta 三方对账 / 投影视图 / 审计 / 例外台账
44
55
  pomaster reconcile --permit <PERMIT.*>
45
- pomaster view blueprint/task
56
+ pomaster view blueprint/task/attention/decision
46
57
  pomaster audit blueprint/task
47
58
  pomaster ledger record/list
48
59
 
@@ -56,23 +67,24 @@ pomaster closeout <task-id>
56
67
 
57
68
  # 横切 —— 对象检视 / 图视图 / Discovery / Research / Eval / Catalog / 迁移 / 生产反馈 / 多 Agent / 执行身份
58
69
  pomaster resolve "<need>" [--hints ...]
70
+ pomaster new-entity check <governed-id> [--need ...]
59
71
  pomaster inspect <governed-id>
60
72
  pomaster graph <governed-id> [--view impact]
61
- pomaster brainstorm start/status/promote
62
- pomaster research list/inspect
73
+ pomaster brainstorm start/question-gate/status/decide/promote
74
+ pomaster research list/inspect/request/handoff
63
75
  pomaster eval --suite behavioral
64
76
  pomaster catalog status/explain/relock
65
77
  pomaster migrate trellis-spec --analyze --spec-root <dir>
66
78
  pomaster production band/evaluate/challenge/diagnose/metrics/self-improvement
67
- pomaster agents status
79
+ pomaster agents status/dispatch-pack
68
80
  pomaster run <task>
69
81
  pomaster handoff <task> --to <role>
70
82
  pomaster session attach/refresh/list
71
83
  pomaster lock acquire/heartbeat/release/steal/list
72
84
  pomaster execution begin/end/list
73
85
  pomaster trace show/list
74
- # pomaster session(不带子命令)= 治理速览投影(SessionStart 注入源;≤10k 字符,恒 exit 0)
75
- # pomaster alerts(重入口轻提醒源)= 可行动项过滤器(干净=空输出,恒 exit 0)
86
+ # pomaster session(不带子命令)= 治理速览投影(SessionStart 注入源;≤10k 字符,恒 exit 0;尾部带首答确认协议指令段)
87
+ # pomaster alerts(重入口 UserPromptSubmit 源)= 可行动项过滤器 + workflow 路由段(干净=非空但极简,恒 exit 0)
76
88
  ```
77
89
 
78
90
  ### 1. 安装
@@ -102,31 +114,36 @@ pomaster init
102
114
  | `.pomaster/state/authority.json` | Authority Map 骨架(默认登记 `BOOTSTRAP_OWNER`) | 否(人类加注的 owner 一律不动) |
103
115
  | `.pomaster/config.yaml` | 治理配置(人类可编辑) | 否(只在缺失时创建) |
104
116
  | `AGENTS.md` / `CLAUDE.md` | Agent 重入口(profile + 状态速览 + 常用命令 + 重入口安装物锚点) | 仅带生成标记的(`CLAUDE.md` 通过 `@AGENTS.md` 导入共享) |
117
+ | `SPEC.*` 预植对象 ×19 | Evidence Spec Kit 的 store 对象面(PROPOSED 起步;项目经 maintain→CURRENT 采纳后进 closeout 判卷) | 否(在座零触碰,幂等;`--json` 信封可查) |
105
118
 
106
- **目录宪法全树预铺**(Owner 裁定 2026-09-04,不分模式):init 一次性建出 `.pomaster/` 目录宪法 §2 全树(state / truth/objects / evidence 三区 / executions / traces / runtime 四区 / discovery/scratchpads / memory/inbox / production 六区,25 目录 × 各带 README)+ `.pomaster/layout.json` 机器清单(全目录 status=wired + activation_hint——什么样的项目/需求激活该平面由 AI 按项目复杂度自行判断,目录存在 ≠ 已激活)。`--mode light` 与 heavy 的 `.pomaster/` 目录树**完全相同**(mode 只影响 skills/hooks 注入层);canonical 正文层为 `.pomaster/truth/objects/`,legacy `.pomaster/objects/` 在场会被显式告警(禁静默 merge/覆盖/迁移)。完整规范见 `.pomaster/layout.json` 与目录宪法文档。
119
+ **目录宪法全树预铺**(Owner 裁定 2026-09-04,不分档级):init 一次性建出 `.pomaster/` 目录宪法 §2 全树(state / truth/objects / evidence 三区 / executions / traces / runtime 四区 / discovery/scratchpads / memory/inbox / production 六区,40 目录 × 各带 README——含 09-04 Batch 1 增量 sources/ 来源权威边界平面 + Batch 2 增量 state/contexts/(Task Context Manifest 落盘位)与 evidence/observations/(感知回执 sidecar 分区)+ Batch 6 增量 baseline/(Project Engineering Baseline 四 lane 分区)与 specs/(Spec Workspace:hard/themes、hard/stacks、acceptance、evidence;B7-THEME 起主题文档单目录承载,旧 FE/BE 平铺位退役)两棵播种子树)+ `.pomaster/layout.json` 机器清单(全目录 status=wired + activation_hint——什么样的项目/需求激活该平面由 AI 按项目复杂度自行判断,目录存在 ≠ 已激活)。目录树与入口形态/平台选择**完全无关**(B7 裁定:init 单一重入口,无模式旗标);canonical 正文层为 `.pomaster/truth/objects/`,legacy `.pomaster/objects/` 在场会被显式告警(禁静默 merge/覆盖/迁移)。播种面语义(Batch 6):`baseline/**` 与 `specs/**` 下的内容文件由 init 按种子清单 **seed-once-missing-only** 落盘——缺失才写、在座零触碰、播种件不带生成标记(项目自有可编辑,重跑 init 永不覆盖你的修改;AI 禁静默覆盖)。播种分母 = **102 份内容文件**(specs/hard 57:themes 21(20 主题 + 1 导航——B7-THEME 主题式重组)/ stacks 18×2——后端 14 族 + 前端 4 族;specs/evidence 20;baseline 25)+ manifest 单源;已安装工作区的旧 FE/BE 平铺 spec 由 doctor/status `legacy_specs_present` 检出呈现(纯读不拦不删)。完整规范见 `.pomaster/layout.json` 与目录宪法文档。
107
120
 
108
121
  **重入口默认**(D13 修订,2026-09-03):init 缺省生成重入口全套,让 Agent 一开会话就自动看到治理状态、按需自动触发命令卡——
109
122
 
110
- - **skills 命令卡库**:`/pomaster` 路由全景 + `pomaster-bootstrap` … `pomaster-runtime` 等 15 份命令卡,双镜像安装到 `.agents/skills/`(通用层——Codex / Cursor / Gemini CLI / GitHub Copilot / VS Code / Amp / Warp / OpenCode / Droid 等原生读取)与 `.claude/skills/`(Claude Code 必需位),两份逐字节一致、同指 `pomaster --help` 单一事实源;
111
- - **hooks 注入(claude)**:`.claude/settings.json` 合并式注册 SessionStart → `pomaster session`(治理速览投影,≤10,000 字符硬上限)与 UserPromptSubmit → `pomaster alerts`(可行动项过滤器,干净=空输出恒 exit 0);既有 hooks(人类/Trellis 条目)一律保留,坏 JSON fail-closed 不覆盖;
123
+ - **skills 命令卡库**:`/pomaster` 路由全景 + `pomaster-bootstrap` … `pomaster-runtime` 等 15 份命令卡,双镜像安装到 `.agents/skills/`(通用层——Codex / Cursor / Gemini CLI / GitHub Copilot / VS Code / Amp / Warp / OpenCode / Droid 等原生读取)与 `.claude/skills/`(Claude Code 必需位),两份逐字节一致、同指 `pomaster --help` 单一事实源;其中 `pomaster-discovery` 是方法论长卡(Grounded Brainstorm:Grill Strategy 主轴 + 对话形式纪律 + 机器闸命令链 + 任务生命周期全图——「走 pomaster brainstorm」/需求讨论/拷问需求等自然语言命中);
124
+ - **hooks 注入(claude)**:`.claude/settings.json` 合并式注册 SessionStart → `pomaster session`(治理速览投影,≤10,000 字符硬上限,尾部带**首答确认协议**——模型首轮回复必须可见确认注入并报告 Next-Action 路由)与 UserPromptSubmit → `pomaster alerts`(可行动项过滤器 + workflow 路由段:无活跃 TASK 给判档/讨论双入口,有活跃 TASK 给八拍位置与下一拍命令,恒 exit 0);既有 hooks(人类/Trellis 条目)一律保留,坏 JSON fail-closed 不覆盖;
112
125
  - **cursor/qoder**:加厚版 rules(命令卡 + Browser Eyes 展开进 `.cursor/rules/pomaster.mdc` / `.qoder/rules/pomaster.md`)。
113
126
 
114
- **显式退回**:`pomaster init --mode light` 保留轻入口形态(细指针适配器,静态、无运行时依赖、无 hook 注入);对已重入口项目执行时按平台清单移除上述安装物并重写入口文件回轻形态——重→轻可逆,不动人类文件。
115
-
116
127
  **多平台适配器**:`AGENTS.md` 恒为唯一事实源;`--platforms claude,codex,cursor,qoder` 追加各平台的适配器(`CLAUDE.md` / 根 `AGENTS.md` 即 codex 原生入口 / `.cursor/rules/pomaster.mdc` / `.qoder/rules/pomaster.md`,本包产物形态升级自动重写,人类异形内容一律不覆盖);`--platforms none` 只建 AGENTS.md + 状态骨架。TTY 交互终端直接 `pomaster init` 会出复选清单(◉/◯ 空格勾选 / ↑↓ 移动 / 回车确认;raw 模式不可用时降级为编号输入);`--json` 恒走确定性缺省(claude,重入口)。
117
128
 
118
- 装好后 `pomaster session`(无子命令)就是 hook 看到的治理速览;`pomaster doctor` 会用 `heavy_entry_hooks` / `heavy_entry_skills` 探针核对重入口安装物(hooks 注册态 + 双镜像逐字节一致;light 退回形态报告 READY-符合预期)。
129
+ **技术栈问卷与后补销账**(R-M 裁定,2026-09-05):TTY 交互 init 在平台选择后接技术栈逐键问卷——前端 9 键 + 后端 5 键逐项必答(无缺省不预填,候选含实战栈与常见占位,末行可自由输入;中断 = 零写入),答完即把选型写回 `.pomaster/baseline/<lane>/stack.yaml` 并在 `baseline/manifest.yaml` 的 unknowns 台账对已答键销账;重跑 init 幂等——已答键不重复问,全销账则问卷整体跳过。非交互通道(`--json` / CI)问卷整体跳过、UNKNOWN 显式缺席,后补用 `pomaster baseline set --lane <frontend|backend> --key <key> --value <value>`(键词形 fail-closed;同值重放幂等;已答键改型与已确认基线的修改显式拒绝——修改走治理通路)。分层/职责等架构叙述住播种骨架 `baseline/<lane>/architecture.md`(Owner 就地填写;问卷不程序化改写 md 骨架)。
130
+
131
+ **基线确认 gate**(R-L 裁定,2026-09-05):`pomaster baseline confirm` 在 14 个 unknowns 全部销账后对基线做 Owner 确认施断——`baseline/manifest.yaml` 写入 `confirmed` 确认记录(`at_seq` 时点锚 + 两个 `stack.yaml` 与两个 `architecture.md` 的 sha256 digest 快照),已确认且 digest 无漂移时重复 confirm 幂等零写入(NO_CHANGE)。closeout 聚合单点消费确认态:baseline 未确认 → `BASELINE_NOT_CONFIRMED` 阻断;确认后任一快照目标与现盘 digest 不符(检出谁改了架构)→ `BASELINE_DRIFT` 阻断。确认后的修改走治理通路:`pomaster baseline set --change <CHANGE-id>`(CHANGE.* 对象须在册且 lifecycle 合法,kernel 校验)允许写入并使确认记录失效,重确认前 closeout 恢复阻断;漂移后 `pomaster baseline confirm` 重新快照即治理通路终点。`pomaster doctor` / `pomaster status` 呈现确认态(未确认/已确认/已漂移)+ 未销账 unknowns 计数 + 漂移文件清单(`--json` 字段 `baseline_confirmation`;纯读呈现不改 ok 语义)。
132
+
133
+ **baseline 栈预置草案**(G-B/G-C/G-D 裁定,2026-09-06):问卷选型落定后,init 自动为 22 份 baseline md 生成「预置草案」节(节头 `PRESET-DRAFT — Owner 确认后成为基线`,NON-AUTHORITATIVE)——草案内容逐条溯源到已锚定的主题文档与 overlay(`- 源:` 行标注 `.pomaster` 路径 + 节锚),纯加法追加、`起步值:UNKNOWN` 骨架字节零改动;栈维度未销账的 lane 保持纯 UNKNOWN(缺席诚实);draft-once(在座零触碰),Owner 可改;`baseline confirm` 时草案随整文件 digest 烙印,确认后改动即 `BASELINE_DRIFT` 走治理通路。业务实体/接口/数据模型零预置(New Entity Gate 词形在册)。
134
+
135
+ 装好后 `pomaster session`(无子命令)就是 hook 看到的治理速览——**八段分段投影**(分母/任务执行锁状态/**Next-Action 确定性路由**/许可例外/可行动项/attention/完整性微探针/八拍路标,带逐段预算与缺席诚实)+ 尾部首答确认协议(模型首轮必须确认注入并转述 Next-Action 路由);`pomaster status` 尾行 `next:` 给同一张路由表的当前建议;`pomaster alerts` 恒带 workflow 路由段(无活跃 TASK → 八拍① triage 或 brainstorm start 双入口;有活跃 TASK → 八拍位置 + 下一拍命令 + 分段卡名)。`pomaster doctor` 会用 `heavy_entry_hooks` / `heavy_entry_skills` 探针核对重入口安装物(hooks 注册态 + hook 命令 PATH 可达的生效自检 + 双镜像逐字节一致;未安装/不可达 → MISSING_CONFIGURATION 并给修复指引——重跑 init / 检查 PATH / 项目 hooks 信任审批前置说明)。
119
136
 
120
137
  ### 3. init 之后该配置什么(config.yaml)
121
138
 
122
139
  ```yaml
123
140
  version: 1
124
- profile: LIGHT # 治理档位:MINIMAL | LIGHT | STANDARD
141
+ profile: LIGHT # 治理档位(信息性人类偏好,A1 裁定:不进判卷):MINIMAL | LIGHT | STANDARD
125
142
  triage:
126
143
  ttl_hours: 168 # triage 结果有效期,过期必须 re-triage
127
144
  ```
128
145
 
129
- **profile 三档怎么选**:
146
+ **profile 三档怎么选**(信息性人类偏好——A1 裁定 2026-09-04:档位只影响呈现与偏好记录,不进任何 gate/permit 判卷、不决定激活;激活由 context compile 的 lane/role/capability 机制承担):
130
147
 
131
148
  | 档位 | 适合 | 体感 |
132
149
  |---|---|---|
@@ -174,15 +191,15 @@ flowchart TB
174
191
  STATE["Canonical State<br/>truth-index + objects<br/>四轴状态"]:::core
175
192
  PERMIT["Permit / Transition<br/>谁有权改什么"]:::core
176
193
  EVI["Evidence 平面<br/>GRN / blobs / claims"]:::core
177
- PROJ["Context Projection<br/>MUST/ADVISORY/KNOWLEDGE/<br/>CATALOG/LAZY TOOLS"]:::core
194
+ PROJ["Context Projection<br/>AUTHORITATIVE PROJECT STATE / REQUIRED POLICY /<br/>ADVISORY KNOWLEDGE / REUSE / CATALOG / VERIFICATION"]:::core
178
195
  end
179
- subgraph CAT["Engineering Catalog(随包分发)"]
180
- POL["policies 79"]:::cat
196
+ subgraph CAT["Engineering Catalog(随包分发,catalog-lock 逐字节对账)"]
197
+ POL["policies 206"]:::cat
181
198
  KN["knowledge 11"]:::cat
182
199
  GT["gates 6"]:::cat
183
200
  SEN["sensors 6"]:::cat
184
201
  ARC["archetypes 41"]:::cat
185
- TOO["tools 8"]:::cat
202
+ TOO["tools 13"]:::cat
186
203
  end
187
204
  AGENT["Agent Harness<br/>(Claude Code / Codex / …)"]:::ext
188
205
  HUMAN["Human Authority<br/>(Owner)"]:::ext
@@ -370,16 +387,16 @@ Spec、Task、Gate、Knowledge、Brainstorm……全部是这五个原语的派
370
387
  ## 哲学宪法(违者即是 bug)
371
388
 
372
389
  - Small Constitution:硬约束极少而精——不伪造事实、不越权、不静默冲突、不无证据宣称完成
373
- - Heavy Entry by Default(D13 修订,2026-09-03):入口即治理——init 默认安装 skills 库 + hooks 注入,Agent 开会话即见状态;轻入口是显式退回(`--mode light`),不是默认;hook 注入内容永远是 Canonical State 的投影,不是第二事实源
390
+ - Heavy Entry by Default(D13 修订 2026-09-03 + B7 裁定 2026-09-04):入口即治理——init 默认安装 skills 库 + hooks 注入,Agent 开会话即见状态;单一重入口、无模式旗标;hook 注入内容永远是 Canonical State 的投影,不是第二事实源
374
391
  - No-op is elegant:没有必要的治理动作,零变化就是成功
375
- - Framework as Review Surface:框架约束好了的人,不需要读 AI 写的每一行代码——但前提是判卷器诚实,所以我们用对抗性用例持续攻击自己的 gate
392
+ - Framework as Review Surface:框架约束好了的人,不需要读 AI 写的每一行代码——但前提是判卷器诚实,所以我们用对抗性用例持续攻击自己的 gate(8 个宪法回归 Case **CRC-A..H** 永久套件守护核心不变式:一句话需求必须过 grounding、原型实现无权威、agent 不得自批、观察失败≠不存在、截图≠payload……)
376
393
  - Minimum Sufficient Governance:治理开销必须与变更风险成比例;小改动的体验是"几乎感觉不到 POMaster"
377
394
  - Memory Sovereignty:删掉本机缓存 + fresh clone + bootstrap ≈ 项目认知完全恢复
378
395
 
379
396
  ## 项目结构
380
397
 
381
398
  ```text
382
- packages/ kernel(状态与判卷权威)· cli(命令面)· gauntlet-lite(确定性 gate 腿)· schemas(FROZEN 词表 schema)
399
+ packages/ kernel(状态与判卷权威)· cli(命令面)· gauntlet-lite(确定性 gate 腿)· schemas(FROZEN 词表 schema)· studio(组件画廊 Storybook 实例——private,不入 npm 发布面)
383
400
  catalog/ policies · knowledge · gates · sensors · archetypes · tools——随包分发的工程策展物料(catalog-lock 逐字节对账;手补物料后 `pomaster catalog relock` 一键重锁)
384
401
  references/ concept-ledger(治理概念账本)· external-sites-index(外部参照站点索引)
385
402
  tests/ 单元 / 集成 / Golden / 对抗 / 行为 / 自托管基准(数量下限进 CI 棘轮,只升不降)
@@ -389,6 +406,24 @@ legal/ THIRD_PARTY_NOTICES · PROVENANCE
389
406
 
390
407
  技术栈:TypeScript · Node ≥ 22 · pnpm monorepo · Canonical State 为 JSON · Git 为版本与回滚底座 · 外部测试工具一律走 Adapter(绝不进核心)。
391
408
 
409
+ ## 组件画廊(Storybook studio,仓内开发面)
410
+
411
+ 开发仓内置 canonical Storybook 实例(裁定 G-A;`packages/studio`,private——`build-npm-package` 的 stage 白名单不含它,npm 发布面零泄漏)。组件资产的「有哪些 + 长什么样」一页可览:
412
+
413
+ | 页面类 | 数量 | 形态 |
414
+ | --- | --- | --- |
415
+ | Archetype 语义卡 | 41 | MDX 纯文档页(responsibility / when_to_use / composition / 研究锚透传) |
416
+ | AntDV 组件 | 71 | CSF3 story 真渲染(`ant-design-vue@4.2.6`,同族子导出一并挂载) |
417
+ | Overlay 能力清单 | 18 | MDX 页(capability / requires / Rules / 源指向,自 `seeds/specs/hard/stacks/`) |
418
+ | Foundations 与边界 | 4 | geist 官方站参照(无 Vue 本体声明)· CSS 体系 D8 组合 · baseline 四 lane 导航 · 画廊总览 |
419
+
420
+ ```bash
421
+ corepack pnpm studio:dev # 起 dev server(生成产物先自动重建;遥测经 STORYBOOK_DISABLE_TELEMETRY 关闭)
422
+ corepack pnpm studio:build # 静态导出到 packages/studio/dist-storybook/(gitignore,可任意静态伺服)
423
+ ```
424
+
425
+ 生成器纪律:全部 MDX/stories 由 `packages/studio/scripts/lib/` 从 `catalog/archetypes` 与 `seeds/` 程序化生成(幂等可重放);`generated/` 不入 git,入库的是生成器 + 配置 + 少量手写边界页。覆盖与幂等由 `packages/studio/tests/generators.spec.ts` 钉住(41/71/18/4 分母 + 双跑 diff 空)。画廊全程只读渲染既有锚定物料:NON-AUTHORITATIVE 声明在页头、零新增 catalog 物料(D6)、业务实体/业务组件零出现(G-D)。
426
+
392
427
  ## License
393
428
 
394
429
  POMaster 采用**双许可**发布(Owner 决议 2026-09-01):
@@ -3,10 +3,10 @@
3
3
  "kind": "archetype",
4
4
  "layer": "PATTERN",
5
5
  "title_zh": "前端错误分类",
6
- "summary_zh": "前端错误九分型逐字闭包(PRD §21):每型绑定呈现/重试/遥测/用户话术四语义位;浏览器原生信号只够两分,细分映射责任在 HTTP Client 适配层。",
6
+ "summary_zh": "前端错误十分型闭包(PRD §21 九分型 + Owner 2026-09-04 裁定补 CANCELED 第十分型):每型绑定呈现/重试/遥测/用户话术四语义位;浏览器原生信号只够两分,细分映射责任在 HTTP Client 适配层。",
7
7
  "semantic": {
8
- "responsibility": "把运行时错误归类为九分型闭包,驱动呈现/重试/遥测/话术四列的确定性处置",
9
- "when_to_use": "任何触发 HTTP/异步调用的页面组契约错误处置面——错误到分型的映射在 HTTP Client 适配层完成(WHATWG fetch 原生只给 TypeError 与 HTTP status 两分,§21 九分型的映射责任不在浏览器)",
8
+ "responsibility": "把运行时错误归类为十分型闭包,驱动呈现/重试/遥测/话术四列的确定性处置",
9
+ "when_to_use": "任何触发 HTTP/异步调用的页面组契约错误处置面——错误到分型的映射在 HTTP Client 适配层完成(WHATWG fetch 原生只给 TypeError 与 HTTP status 两分,十分型的映射责任不在浏览器)",
10
10
  "when_not_to_use": "非错误态的加载/空态呈现;后端错误信封字段结构本身(v0.6.1 §44 Error Archetype 承载 type/title/status/detail/instance 等成员)"
11
11
  },
12
12
  "composition": {
@@ -57,6 +57,12 @@
57
57
  "telemetry": "timeout_event",
58
58
  "user_message": "请求超时,请重试"
59
59
  },
60
+ "CANCELED": {
61
+ "presentation_pattern": "cancelled_state_quiet_dismissal",
62
+ "retry_behavior": "never_retry_user_cancelled",
63
+ "telemetry": "cancel_event_aborted",
64
+ "user_message": "操作已取消"
65
+ },
60
66
  "OFFLINE": {
61
67
  "presentation_pattern": "offline_banner_persistent",
62
68
  "retry_behavior": "auto_resume_on_reconnect",
@@ -72,11 +78,13 @@
72
78
  },
73
79
  "constraints": [
74
80
  "浏览器原生信号只够两分:WHATWG fetch 网络失败 reject TypeError、HTTP 错误状态不 reject(查 Response.status)——TIMEOUT/OFFLINE/AUTHENTICATION 等细分全部依赖 client 适配层信号(axios code/AbortSignal/navigator.onLine/status 映射)",
75
- "九分型映射责任在 HTTP Client Archetype 层而非浏览器",
81
+ "十分型映射责任在 HTTP Client Archetype 层而非浏览器",
82
+ "CANCELED 第十分型(Owner 2026-09-04 裁定):axios ERR_CANCELED / fetch AbortError / TanStack cancelQueries 三源业界共识——用户主动取消绝不自动重试,呈现为安静取消态而非错误横幅(九分型缺位会把取消误归 UNKNOWN/TRANSPORT)",
83
+ "429 归重试处置(Owner 2026-09-04 裁定注记):ofetch 默认重试列表含 409/429 视作传输层瞬时错误——429 不归 CONFLICT 分型,按 retryable 瞬时处置;409 仍归 CONFLICT(语义张力如实登记)",
76
84
  "RFC 9457 about:blank(未给出更具体类型时的缺省)与 UNKNOWN 同构"
77
85
  ],
78
86
  "x-research-anchors": {
79
- "note": "【待 Owner 裁定·差异表 #8 两项】①是否补 CANCELED 第十分型(axios ERR_CANCELED/fetch AbortError/TanStack cancelQueries 三处业界共识,retry 语义绝不重试——九分型缺位会把取消误归 UNKNOWN/TRANSPORT)②429 归属(ofetch 默认重试列表含 409/429 视作传输层瞬时错误,与 CONFLICT 语义有张力)——本物料保持九分型不扩,待裁定后走词汇表式修订。WHATWG fetch TypeError/RFC 9457 成员空间/axios error codes 全表/ofetch 重试列表为规范与官方文档 2026-09-03 实抓",
87
+ "note": "【已裁定 2026-09-04·差异表 #8 两项】①补 CANCELED 第十分型(九→十):axios ERR_CANCELED/fetch AbortError/TanStack cancelQueries 三处业界共识,retry 语义绝不重试——已入 categories 且四列绑定齐全;②429 归重试处置:ofetch 默认重试列表含 409/429 视作传输层瞬时错误,429 不归 CONFLICT、按 retryable 瞬时处置注记入 constraints。WHATWG fetch TypeError/RFC 9457 成员空间/axios error codes 全表/ofetch 重试列表为规范与官方文档 2026-09-03 实抓",
80
88
  "sources": [
81
89
  {
82
90
  "url": "https://fetch.spec.whatwg.org/",
@@ -44,7 +44,7 @@
44
44
  "自造新层(FSD:层语义已标准化,不推荐新增)"
45
45
  ],
46
46
  "x-research-anchors": {
47
- "note": "【差异表 #4 部分差异】FSD 现行 7 层(Processes deprecated→有效 6 层)、无独立 API 层(api 是 segment)、widgets 无 PRD 对应、app 层 PRD 未纳入——四行声明随物料落位;import rule 严格向下与 Public API「contract+gate」定位(与 PRD §19 public_api_required 同构)为 feature-sliced.design 官方文档(v3 站点)2026-09-03 实抓",
47
+ "note": "【已裁定 2026-09-04·差异表 #4】FSD v2 现行映射采纳(六有效层 + Processes deprecated + api 是 segment):上述 defaults 四行声明即裁定正文——FSD 现行 7 层(Processes deprecated→有效 6 层)、无独立 API 层(api 是各层 segment)、widgets 无 PRD 对应层(optional 位)、app 层为 FSD v2 新增有效层;import rule 严格向下与 Public API「contract+gate」定位(与 PRD §19 public_api_required 同构)为 feature-sliced.design 官方文档(v3 站点)2026-09-03 实抓",
48
48
  "sources": [
49
49
  {
50
50
  "url": "https://feature-sliced.design/docs/reference/layers",
@@ -3,10 +3,10 @@
3
3
  "kind": "archetype",
4
4
  "layer": "PATTERN",
5
5
  "title_zh": "异步命令状态机",
6
- "summary_zh": "以 XState v5 六概念(state/event/transition/guard/actor/input/output)承载的异步命令原型:命令参数经 input 进入,状态经 guarded transition 确定性转移,final state 产出 output;非法组合经 transition contract 显式声明(实现侧绑定 state.can() 守卫位)。",
6
+ "summary_zh": "以 XState v5 六概念(state/event/transition/guard/actor/input/output)承载的异步命令原型:命令参数经 input 进入,状态经 guarded transition 确定性转移,final state 产出 output;非法组合可检测——未声明 transition 不存在(XState v5 运行时静默忽略),state.can() 守卫为唯一预检位(Owner 2026-09-04 裁定差异表 #7)。",
7
7
  "semantic": {
8
8
  "responsibility": "把一次异步命令(提交/保存/执行)建模为显式状态机:idle/running/done|error 转移全部声明在案,guard 纯同步布尔",
9
- "when_to_use": "命令的合法状态转移需要显式契约时(非法组合必须可表达为「未声明的 transition 不存在」);多步骤异步编排(invoke/spawn actor)",
9
+ "when_to_use": "命令的合法状态转移需要显式契约时(非法组合可检测:「未声明的 transition 不存在」——XState v5 对未匹配事件静默忽略,state.can() 守卫预检);多步骤异步编排(invoke/spawn actor)",
10
10
  "when_not_to_use": "远端取数缓存语义(STATE_ARCHETYPE.SERVER_QUERY);无需显式转移契约的局部加载布尔"
11
11
  },
12
12
  "composition": {
@@ -33,10 +33,10 @@
33
33
  "forbidden": [
34
34
  "在 output 语义位放中途产物(output 仅到达 final state 时存在)",
35
35
  "直接改 context(immutable,仅 assign 更新)",
36
- "断言未匹配事件会运行时报错(XState v5 现实是静默忽略+state.can() 为 false——非法组合的表达位是 transition contract 声明与 can() 守卫位)"
36
+ "断言未匹配事件会运行时报错(XState v5 现实是静默忽略+state.can() 为 false——非法组合的可检测位是 transition contract 声明与 can() 守卫预检,Owner 2026-09-04 裁定)"
37
37
  ],
38
38
  "x-research-anchors": {
39
- "note": "【待 Owner 裁定·差异表 #7】PRD「Illegal Transition 必须可表达」在 XState v5(npm 5.32.6)无对应词形:未匹配/未启用事件=「no enabled transition → state does not change」静默忽略,state.can() 显式守卫为唯一查询位。本物料落 PRD 语义意图(非法组合经 transition contract 显式声明)+实现绑定注记 can() 守卫位;是否以治理层概念保留 Illegal Transition 词形待裁定。六概念词形与 guard 序列化命名推荐(reusability+visualization)均为 stately.ai 官方文档 2026-09-03 实抓",
39
+ "note": "【已裁定 2026-09-04·差异表 #7】Illegal Transition 不引入治理层词形:XState v5(npm 5.32.6)对未匹配/未启用事件按「no enabled transition → state does not change」静默忽略,state.can() 显式守卫为唯一预检位——PRD「非法组合必须可表达」由「可检测(transition contract 声明 + state.can() 守卫预检)」承载。六概念词形与 guard 序列化命名推荐(reusability+visualization)均为 stately.ai 官方文档 2026-09-03 实抓",
40
40
  "sources": [
41
41
  {
42
42
  "url": "https://stately.ai/docs/transitions",