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,342 @@
1
+ ---
2
+ seed_source: packages/cli/seeds/aggregation-manifest.json
3
+ seed_source_sha256: 039b637ccffacdfe3ce30d85e193f4b38928fcdfb16efdc4eb255e35e05af91f
4
+ seed_version: B7-THEME
5
+ lane: [frontend]
6
+ status: CURRENT
7
+ authority_scope: mixed_required_and_advisory
8
+ applies_to: [frontend]
9
+ related_evidence_specs: []
10
+ related_tools: []
11
+ legacy_id: theme:frontend-state-and-client-data
12
+ criticality: standard # 聚合注记:来源无 criticality 字段,取中性默认;info 性注记非执行语义
13
+ injection_mode: mixed # 聚合注记:来源无 injection_mode 字段(默认基线 + 任务命中激活模型);info 性注记非执行语义
14
+ stages: [] # 聚合注记:来源无 stages 字段;info 性注记非执行语义
15
+ triggers: [] # 聚合注记:来源无 triggers 字段;info 性注记非执行语义
16
+ requires: [] # 聚合注记:来源 requires 并集(全空)
17
+ x-aggregation: # 聚合来源(D6):逐源 vendor pin(sha256 与卡 vendor_pin 同值)
18
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/18-state-management-protocol.md
19
+ sha256: 72445fcd0ac7e21ebea38a5f72849543f936c7a96eee54eb99330226acaaf400
20
+ seed_version: B6B-1
21
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/19-cache-protocol.md
22
+ sha256: 893d5651016233eec36333775441a935746fe1202c8924dc2edf753d61523daf
23
+ seed_version: B6B-1
24
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/32-file-import-export-protocol.md
25
+ sha256: 2262d7ce2e910e4d64b0c6f3ef1af0b72c3cafc31d6cb1a796a8fb8b1801cbbc
26
+ seed_version: B6B-2
27
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/45-browser-storage-protocol.md
28
+ sha256: 01d0d3cb618519c94c939658526a97ad1df851a8f820a22a9b4595bef03cc2cb
29
+ seed_version: B6B-2
30
+ ---
31
+
32
+ # 前端状态与客户端数据
33
+
34
+ > **聚合纪律**:本文档 12 节正文规则行逐字取自 frontmatter x-aggregation 所列来源协议(节内按「端 → 源编号升序」以加粗来源行分块,源内标题与层级原样保留),零新增、零改写、零删除;新增文本仅限文档标题、本注记与逐节来源行。
35
+
36
+ ## Scope
37
+
38
+ **源:FE 18 状态管理协议(pomaster/components/frontend-hard-spec/assets/universal/18-state-management-protocol.md)**
39
+
40
+ P1。定义 local、page、URL、global、server、form 和 persisted state 的归属与生命周期。
41
+
42
+ **源:FE 19 缓存协议(pomaster/components/frontend-hard-spec/assets/universal/19-cache-protocol.md)**
43
+
44
+ P1。定义字典、用户、权限、列表、详情、任务和偏好的缓存、隔离与失效。
45
+
46
+ **源:FE 32 文件、导入与导出协议(pomaster/components/frontend-hard-spec/assets/universal/32-file-import-export-protocol.md)**
47
+
48
+ P1。定义文件上传、下载、模板、导入校验、错误明细、导出范围和后台任务。
49
+
50
+ **源:FE 45 浏览器存储协议(pomaster/components/frontend-hard-spec/assets/universal/45-browser-storage-protocol.md)**
51
+
52
+ P1。定义 Cookie、Web Storage、IndexedDB、Cache API 和其他客户端持久化的选择、隔离、校验、配额、迁移、一致性与清理。
53
+
54
+ ## Non-Scope
55
+
56
+ **源:FE 18 状态管理协议**
57
+
58
+ 不指定状态库品牌,不替代缓存和路由协议。
59
+
60
+ **源:FE 19 缓存协议**
61
+
62
+ 不定义 HTTP/CDN 服务端缓存,不替代状态管理和接口契约。
63
+
64
+ **源:FE 32 文件、导入与导出协议**
65
+
66
+ 不定义底层存储实现,不替代安全、权限和异步任务接口契约。
67
+
68
+ **源:FE 45 浏览器存储协议**
69
+
70
+ 不定义服务端数据库或 HTTP/CDN 缓存,不允许客户端存储替代后端权威状态、认证或鉴权。
71
+
72
+ ## Terms
73
+
74
+ **源:FE 18 状态管理协议**
75
+
76
+ - Local State:单组件短生命周期状态。
77
+ - Server State:远端权威数据及请求生命周期。
78
+ - URL State:需分享、刷新或返回恢复的状态。
79
+ - Persisted Preference:跨会话用户偏好。
80
+
81
+ **源:FE 19 缓存协议**
82
+
83
+ - Query Key:唯一描述结果集合的结构化键。
84
+ - Stale Time:数据可视为新鲜的时间。
85
+ - Invalidation:写操作后使依赖缓存失效。
86
+
87
+ **源:FE 32 文件、导入与导出协议**
88
+
89
+ - Import Template:与 schema 版本匹配的输入模板。
90
+ - Partial Success:部分行成功、失败、跳过或警告。
91
+ - Export Scope:当前页、选中行、筛选全量、保存视图或汇总。
92
+
93
+ **源:FE 45 浏览器存储协议**
94
+
95
+ - Storage Class:存储介质及其可见范围、持久性和安全属性。
96
+ - Isolation Key:用户、租户、组织、权限范围和数据版本等隔离维度。
97
+ - Storage Schema:持久化数据的版本化结构。
98
+ - Eviction:浏览器因策略、配额或用户操作删除数据。
99
+
100
+ ## MUST
101
+
102
+ **源:FE 18 状态管理协议 · §MUST**
103
+
104
+ - 每个状态声明 owner、更新者、存储位置、生命周期和清理策略。
105
+ - server state 由查询缓存层管理。
106
+ - 可分享和可恢复状态进入 URL。
107
+ - 全局 store 只保存稳定跨页面状态。
108
+ - 用户、权限或范围切换时清除越权风险状态。
109
+ - 表单区分 initial、current、dirty、errors、submitting 和 conflict。
110
+ - 状态拥有的监听器、计时器、观察器、请求、流、连接、Worker 和对象 URL 必须声明释放时机,并在卸载、身份切换或能力关闭时清理。
111
+ - 第三方 SDK 实例、DOM 节点、连接句柄等不可序列化资源必须保持为不透明运行时引用,不进入持久化、URL 或可序列化全局状态。
112
+ - 持久化状态必须区分用户/租户/环境命名空间,并在登出、权限收缩或版本不兼容时失效或迁移。
113
+
114
+ **源:FE 19 缓存协议 · §MUST**
115
+
116
+ - 每个缓存声明 key、参数、身份/权限隔离、stale、保留和失效规则。
117
+ - Query Key 包含所有影响结果的筛选和上下文。
118
+ - 写操作定义依赖失效矩阵。
119
+ - 用户、角色、组织和数据范围切换时清理风险缓存。
120
+ - schema 变化时迁移或重置持久化偏好。
121
+
122
+ **源:FE 32 文件、导入与导出协议 · §MUST**
123
+
124
+ - 上传声明类型、大小、数量、文件名和安全校验。
125
+ - 导入流程包含模板、上传、校验、任务、进度、结果和错误明细。
126
+ - 错误明细至少包含行、列、字段、原值、错误码和修复建议。
127
+ - 导出明确范围、字段、权限和有效期。
128
+ - 大文件使用后台任务,完成后刷新依赖数据。
129
+ - 下载时重新鉴权和校验数据范围。
130
+
131
+ **源:FE 45 浏览器存储协议 · §MUST**
132
+
133
+ - 每个持久化项必须声明用途、Storage Class、Isolation Key、schema 版本、大小预算、过期时间、迁移/重置策略、清理触发器和 Owner。
134
+ - 从浏览器存储读取的数据必须执行 schema、版本、身份、租户和权限校验;失败时保守重置,不得直接信任。
135
+ - 必须处理不可用、隐私模式、配额不足、写入失败、被驱逐和数据损坏,并为关键流程提供非持久化降级路径。
136
+ - 注销、切换账号/租户、权限变化和数据目的撤回必须清除或重新隔离相关数据。
137
+ - 跨标签页共享的数据必须定义冲突、通知、版本和最终一致性策略;不得假设内存状态会自动同步。
138
+ - IndexedDB 等版本化数据库必须处理升级阻塞、连接关闭、迁移失败和回滚/重置路径。
139
+ - Service Worker 与 Cache API 必须限定作用域、版本化缓存、验证响应来源,并在发布和退出策略中清理过期内容。
140
+ - 凭据类数据必须遵守 `universal:security-protocol`;可被脚本读取的存储不得持久化 session identifier、refresh token、secret 或等价凭据,除非存在经批准且有期限的安全例外。
141
+
142
+ ## MUST NOT
143
+
144
+ **源:FE 18 状态管理协议 · §MUST NOT**
145
+
146
+ - MUST NOT 将组件状态放入全局 store。
147
+ - MUST NOT 复制 server state 到全局 store 手动同步。
148
+ - MUST NOT 将敏感或未提交表单写入 URL。
149
+ - MUST NOT 共享未隔离的页面状态。
150
+ - MUST NOT 把认证凭据、敏感表单原值或第三方资源句柄写入通用持久化状态。
151
+ - MUST NOT 让已取消请求、旧订阅或旧身份上下文的迟到结果继续写入当前状态。
152
+
153
+ **源:FE 19 缓存协议 · §MUST NOT**
154
+
155
+ - MUST NOT 用同一 key 表示不同筛选或权限范围。
156
+ - MUST NOT mutation 后只改视觉而不刷新依赖。
157
+ - MUST NOT 长缓存实时敏感数据而无批准。
158
+ - MUST NOT 将 server cache 再复制进全局 store。
159
+
160
+ **源:FE 32 文件、导入与导出协议 · §MUST NOT**
161
+
162
+ - MUST NOT 静默导入失败。
163
+ - MUST NOT 大文件同步阻塞页面。
164
+ - MUST NOT 页面自行拼导出字段或绕过权限。
165
+ - MUST NOT 成功后遗漏缓存刷新。
166
+
167
+ **源:FE 45 浏览器存储协议 · §MUST NOT**
168
+
169
+ - MUST NOT 使用客户端存储值证明身份、权限、价格、审批或其他权威业务事实。
170
+ - MUST NOT 多个用户、租户或权限范围复用未隔离的 key、数据库或缓存条目。
171
+ - MUST NOT 无限期持久化草稿、文件、接口响应或敏感偏好。
172
+ - MUST NOT 在 schema 变化后静默读取旧结构并猜测字段语义。
173
+ - MUST NOT 假设客户端存储可靠、保密、不会被修改或永不被驱逐。
174
+
175
+ ## SHOULD
176
+
177
+ **源:FE 18 状态管理协议 · §SHOULD**
178
+
179
+ - SHOULD 让状态更新来源唯一且可追踪。
180
+ - SHOULD 使用 schema/version 管理持久化状态。
181
+
182
+ **源:FE 19 缓存协议 · §SHOULD**
183
+
184
+ - SHOULD 使用结构化 key factory 和集中失效策略。
185
+ - SHOULD 在后台刷新时保留可用旧数据并标识 stale。
186
+
187
+ **源:FE 32 文件、导入与导出协议 · §SHOULD**
188
+
189
+ - SHOULD 支持取消、重试、结果通知和来源页面跳转。
190
+ - SHOULD 让模板和错误文件可追踪 schema 版本。
191
+
192
+ **源:FE 45 浏览器存储协议 · §SHOULD**
193
+
194
+ - SHOULD 只在明确需要跨刷新或跨会话时持久化,短生命周期状态优先留在内存。
195
+ - SHOULD 提供存储占用、迁移失败和清理结果的安全诊断信息。
196
+ - SHOULD 对大型或敏感持久化建立容量、性能和隐私测试。
197
+
198
+ ## Contract
199
+
200
+ **源:FE 18 状态管理协议 · §Contract**
201
+
202
+ ```text
203
+ StateId, Category, Owner, Writer, Storage,
204
+ Persistence, IsolationKey, CleanupTrigger
205
+ ```
206
+
207
+ **源:FE 19 缓存协议 · §Contract**
208
+
209
+ ```text
210
+ Resource, QueryKey, IsolationKeys[], StaleTime,
211
+ Retention, RefetchTriggers[], MutationInvalidations[]
212
+ ```
213
+
214
+ **源:FE 32 文件、导入与导出协议 · §Contract**
215
+
216
+ ```text
217
+ FilePolicy, TemplateVersion, ImportJob,
218
+ ErrorRowSchema, ExportScope, ResultExpiry, Permissions
219
+ ```
220
+
221
+ **源:FE 45 浏览器存储协议 · §Contract**
222
+
223
+ ```text
224
+ StorageId, Purpose, StorageClass, IsolationKeys[], SchemaVersion,
225
+ SizeBudget, Expiry, Migration, ResetPolicy, EvictionFallback,
226
+ CrossTabPolicy, CleanupTriggers[], Owner
227
+ ```
228
+
229
+ ## Checklist
230
+
231
+ **源:FE 18 状态管理协议 · §Checklist**
232
+
233
+ - [ ] 状态分类正确。
234
+ - [ ] writer 和生命周期明确。
235
+ - [ ] URL/global 白名单遵守。
236
+ - [ ] 切换身份可安全清理。
237
+ - [ ] 运行时资源有释放时机,迟到结果不会污染新上下文。
238
+ - [ ] 持久化命名空间、版本迁移和失效策略明确。
239
+
240
+ **源:FE 19 缓存协议 · §Checklist**
241
+
242
+ - [ ] key 覆盖所有结果参数。
243
+ - [ ] 身份与权限隔离安全。
244
+ - [ ] mutation 失效完整。
245
+ - [ ] schema 迁移明确。
246
+
247
+ **源:FE 32 文件、导入与导出协议 · §Checklist**
248
+
249
+ - [ ] 文件策略明确。
250
+ - [ ] 导入全流程和部分成功完整。
251
+ - [ ] 导出范围与权限一致。
252
+ - [ ] 大文件任务化。
253
+
254
+ **源:FE 45 浏览器存储协议 · §Checklist**
255
+
256
+ - [ ] 存储必要性和介质选择合理。
257
+ - [ ] schema、身份、租户和权限均被校验。
258
+ - [ ] 配额、驱逐、损坏和不可用有降级路径。
259
+ - [ ] 跨标签页和版本迁移行为明确。
260
+ - [ ] 注销和权限变化会安全清理。
261
+
262
+ ## Examples
263
+
264
+ **源:FE 18 状态管理协议 · §Examples**
265
+
266
+ ### 内容示例,可删除
267
+
268
+ 分页筛选进入 URL,列表数据留在 server cache,抽屉开关留在页面状态。
269
+
270
+ **源:FE 19 缓存协议 · §Examples**
271
+
272
+ ### 内容示例,可删除
273
+
274
+ 列表 key 同时包含用户数据范围、分页、筛选和排序;权限变化后整体清除。
275
+
276
+ **源:FE 32 文件、导入与导出协议 · §Examples**
277
+
278
+ ### 内容示例,可删除
279
+
280
+ 导入完成显示成功、失败、跳过和警告数量,并提供字段级错误文件。
281
+
282
+ **源:FE 45 浏览器存储协议 · §Examples**
283
+
284
+ ### 内容示例,可删除
285
+
286
+ 用户列偏好按用户、租户和 schema 版本隔离;读取失败或版本不兼容时恢复默认值,不影响核心查询和编辑流程。
287
+
288
+ ## Anti-patterns
289
+
290
+ **源:FE 18 状态管理协议 · §Anti-patterns**
291
+
292
+ 把所有列表、筛选、弹窗和表单都塞进一个全局 store。
293
+
294
+ **源:FE 19 缓存协议 · §Anti-patterns**
295
+
296
+ 所有用户共用 `['entity-list']`,导致筛选串扰甚至越权复用。
297
+
298
+ **源:FE 32 文件、导入与导出协议 · §Anti-patterns**
299
+
300
+ 上传后只显示“导入失败”,没有行号、原因、TraceId 或重试路径。
301
+
302
+ **源:FE 45 浏览器存储协议 · §Anti-patterns**
303
+
304
+ 把 token、完整权限矩阵和接口响应长期写入 localStorage,所有账号共享同一 key,并把读取结果直接当作可信状态。
305
+
306
+ ## Ownership
307
+
308
+ **源:FE 18 状态管理协议 · §Ownership**
309
+
310
+ 平台 Owner 维护状态基础设施,页面/领域 Owner 负责具体状态归属。
311
+
312
+ **源:FE 19 缓存协议 · §Ownership**
313
+
314
+ 平台 Owner 维护缓存工具,领域 Owner 定义数据依赖和实时性。
315
+
316
+ **源:FE 32 文件、导入与导出协议 · §Ownership**
317
+
318
+ 业务 Owner 定义字段,文件/任务 Owner 维护流程,安全 Owner 维护文件策略。
319
+
320
+ **源:FE 45 浏览器存储协议 · §Ownership**
321
+
322
+ 平台 Owner 维护存储适配和迁移机制,领域 Owner 定义数据必要性与隔离键,安全/隐私 Owner 审核敏感持久化。
323
+
324
+ ## Change Policy
325
+
326
+ **源:FE 18 状态管理协议 · §Change Policy**
327
+
328
+ 状态位置或持久化变化必须提供迁移、清理和兼容策略,尤其是用户隔离数据。
329
+
330
+ **源:FE 19 缓存协议 · §Change Policy**
331
+
332
+ Key 结构或持久化 schema 改变必须版本化并提供迁移/清理。
333
+
334
+ **源:FE 32 文件、导入与导出协议 · §Change Policy**
335
+
336
+ 模板、字段和错误 schema 变化必须版本化并提供兼容/迁移说明。
337
+
338
+ **源:FE 45 浏览器存储协议 · §Change Policy**
339
+
340
+ 改变介质、key、schema、隔离或保留策略必须提供迁移、重置、回滚和受影响用户说明,并同步 `universal:state-management-protocol`、`universal:cache-protocol` 与 `universal:privacy-data-lifecycle-protocol`。
341
+
342
+ > **语言节**:本主题无语言节挂点(缺席诚实);规则本体即上文通用节。