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,670 @@
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:ui-presentation-and-design
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/21-design-system-protocol.md
19
+ sha256: 317d4086949eb7d26ea2465adc6521ba6ebb611dca0d2f32aec2c57a985be4f3
20
+ seed_version: B6B-1
21
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/22-theme-protocol.md
22
+ sha256: b93ed272a0def5abc689fe66d939b87cacf6f38cce5d6278cfd5c94d1754b3ec
23
+ seed_version: B6B-1
24
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/23-accessibility-protocol.md
25
+ sha256: 10557bf1221d1cf2748e29149820890e4523789701a35f7336e3f661fed82bfb
26
+ seed_version: B6B-1
27
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/24-component-protocol.md
28
+ sha256: 5ed49550278ae263d7b4f3914c20c31a3005dc101d45bbd48c025a444f7441c4
29
+ seed_version: B6B-2
30
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/26-style-layout-protocol.md
31
+ sha256: a66b216ca119c7296431233fb2bb6db9affd1f71ba011e5394aaaafdab9e8240
32
+ seed_version: B6B-2
33
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md
34
+ sha256: c702a9956fd5e7aac40e1eefebcdd7a3518b95bd1a750bfcb31cbaddb80f41ff
35
+ seed_version: B6B-2
36
+ x-language-sections: # 语言节同步源(R-J 资产层唯一权威;注入面为同步副本)
37
+ - overlay: pomaster/components/frontend-hard-spec/assets/stacks/vue3/vue3-framework-overlay.md
38
+ sha256: 15e7fd3808760bb330933f4a0479e4e95e3e07d0e24485d1b9b860019a708935
39
+ attach: primary
40
+ - overlay: pomaster/components/frontend-hard-spec/assets/stacks/antdesign/antdesign-ui-overlay.md
41
+ sha256: e70a6dad3fedbf8c4a182d92af9c9229e13cc368f880b3ccd96fe11ccdbdd7be
42
+ attach: primary
43
+ - overlay: pomaster/components/frontend-hard-spec/assets/stacks/geist/geist-design-system-overlay.md
44
+ sha256: a9edc3d23708ccef6aeade6669dd638117f341052c47e0145347a5b51e085680
45
+ attach: primary
46
+ - overlay: pomaster/components/frontend-hard-spec/assets/stacks/css/css-system-overlay.md
47
+ sha256: 4167e2a2d4c457f594db95336470dca4f0778e76df006e815207c0761667692a
48
+ attach: primary
49
+ ---
50
+
51
+ # UI 呈现与设计
52
+
53
+ > **聚合纪律**:本文档 12 节正文规则行逐字取自 frontmatter x-aggregation 所列来源协议(节内按「端 → 源编号升序」以加粗来源行分块,源内标题与层级原样保留),零新增、零改写、零删除;新增文本仅限文档标题、本注记与逐节来源行。
54
+ 文末「语言与栈节」为 stacks overlay 资产 Scope/Rules/Checklist 的逐字节同步副本(标题降 2 级,正文零改动)——资产层为唯一权威,改规则只改 overlay、本区随同步。
55
+
56
+ ## Scope
57
+
58
+ **源:FE 21 设计系统协议(pomaster/components/frontend-hard-spec/assets/universal/21-design-system-protocol.md)**
59
+
60
+ P1。定义合法 UI 的 token、组件、视觉状态、栅格、密度和动效来源。
61
+
62
+ **源:FE 22 主题协议(pomaster/components/frontend-hard-spec/assets/universal/22-theme-protocol.md)**
63
+
64
+ P1。定义亮暗、品牌、紧凑、大字体等主题及 token 覆盖、切换和持久化。
65
+
66
+ **源:FE 23 可访问性协议(pomaster/components/frontend-hard-spec/assets/universal/23-accessibility-protocol.md)**
67
+
68
+ P1。定义项目级可访问性治理:以 WCAG 2.2 AA 为默认目标,覆盖语义化 HTML、键盘导航、焦点管理、ARIA 使用、屏幕阅读器支持、颜色与对比度、表单与错误、动态内容/通知、响应式/缩放/触控目标、媒体与动画、时间限制/会话、可读性与认知负荷,以及第三方/自造组件 a11y 矩阵。具体组件的 props/role/keyboard map/focus 行为由 component-registry 的 vendor_api_ref 或自造组件 a11y 字段落地;本协议定义项目级检查点、工具链、例外流程和跨目录层级责任。
69
+
70
+ **源:FE 24 组件协议(pomaster/components/frontend-hard-spec/assets/universal/24-component-protocol.md)**
71
+
72
+ P1。定义组件分层、复用门槛、目录、Props、Events、Slots、状态和公共 API。
73
+
74
+ **源:FE 26 样式与布局协议(pomaster/components/frontend-hard-spec/assets/universal/26-style-layout-protocol.md)**
75
+
76
+ P1。定义 CSS 组织、尺寸职责、溢出、层级、响应式、第三方覆盖和布局稳定。
77
+
78
+ **源:FE 30 数据表格协议(pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md)**
79
+
80
+ P1。定义表格壳、列 schema、列宽、固定列、分页、排序筛选、虚拟滚动、列配置和导出。
81
+
82
+ ## Non-Scope
83
+
84
+ **源:FE 21 设计系统协议**
85
+
86
+ 不决定具体品牌主题,不替代页面结构、可访问性和设计交付协议。
87
+
88
+ **源:FE 22 主题协议**
89
+
90
+ 不定义基础 token 语义,不允许主题改变业务含义。
91
+
92
+ **源:FE 23 可访问性协议**
93
+
94
+ - 不替代 WCAG 2.2、WAI-ARIA 1.2、WAI-ARIA APG 等官方标准;本协议是项目治理层对它们的应用与检查点映射。
95
+ - 不替代具体组件业务规则,也不以自动化扫描通过作为可访问性验收的唯一证据。
96
+ - 不在组件协议 24 中重复定义组件级 a11y API;组件协议 24 的 Checklist 引用本协议,组件实现细节落到 component-registry / vendor_api_ref。
97
+ - 不定义消费项目的视觉稿或品牌色;项目阈值和选型下沉到 a11y-requirements.yaml,universal 只规定必须存在的决策与证据。
98
+
99
+ **源:FE 24 组件协议**
100
+
101
+ 不定义页面整体结构,不允许组件隐式承担接口、路由和全局状态职责。
102
+
103
+ **源:FE 26 样式与布局协议**
104
+
105
+ 不定义品牌色值、页面业务结构或组件 API。
106
+
107
+ **源:FE 30 数据表格协议**
108
+
109
+ 不定义业务字段口径,不允许表格库决定页面权限和数据契约。
110
+
111
+ ## Terms
112
+
113
+ **源:FE 21 设计系统协议**
114
+
115
+ - Design Token:可复用的设计决策变量。
116
+ - Semantic Token:按用途而非具体值命名的 token。
117
+ - Component Token:组件级语义变量。
118
+
119
+ **源:FE 22 主题协议**
120
+
121
+ - Theme:一组完整 token 值。
122
+ - Theme Mode:light/dark 或其他可选模式。
123
+ - Theme Adapter:同步第三方组件、图表和 portal 的适配层。
124
+
125
+ **源:FE 23 可访问性协议**
126
+
127
+ - **Accessible Name**:辅助技术识别控件时朗读的名称,可来自可见文本、aria-label、aria-labelledby 或原生标签。
128
+ - **Focus Indicator**:键盘焦点在控件上可见的指示器,可以是浏览器默认轮廓或同等级可见替代。
129
+ - **Landmark**:HTML 语义区域(main、nav、aside、header、footer、section 等),辅助技术可快速跳转。
130
+ - **Live Region**:不抢夺焦点即可向屏幕阅读器宣布动态内容的区域(aria-live polite/assertive)。
131
+ - **Roving Tabindex**:组合组件(tabs、listbox、grid)中仅在活动项上放置 tabindex="0"、其余为 -1 的键盘模式。
132
+ - **Skip Link**:跳到主内容(main)的隐藏/可见链接,使键盘用户绕过重复导航块(WCAG 2.4.1)。
133
+ - **WCAG SC**:Web Content Accessibility Guidelines 成功准则(Success Criterion),例如 1.4.3、2.1.1。
134
+
135
+ **源:FE 24 组件协议**
136
+
137
+ - Base Component:无业务语义的基础控件。
138
+ - Domain Component:具有稳定领域语义的组件。
139
+ - Page-local Component:只服务单页的内部组件。
140
+ - Public Component:跨所有者复用并有稳定 contract 的组件。
141
+
142
+ **源:FE 26 样式与布局协议**
143
+
144
+ - Layout Owner:负责外层尺寸和区域关系的容器。
145
+ - Content Owner:负责内部内容排布的组件。
146
+ - Stable Dimension:动态状态下不引发布局跳动的尺寸约束。
147
+
148
+ **源:FE 30 数据表格协议**
149
+
150
+ - Grid Type:可编辑宽表、只读表、报表、主数据表等类型。
151
+ - Column Schema:列 key、类型、宽度、权限和行为契约。
152
+ - Saved View:用户保存的列、筛选和排序配置。
153
+
154
+ ## MUST
155
+
156
+ **源:FE 21 设计系统协议 · §MUST**
157
+
158
+ - 定义颜色、字体、间距、圆角、阴影、层级、断点、状态和动效 token。
159
+ - UI 只能从 token 和批准组件取得视觉规则。
160
+ - hover、active、focus、disabled、loading、empty、error 状态完整。
161
+ - token 到代码和设计工具的映射有唯一来源。
162
+ - 新视觉规则有复用语义和 Owner。
163
+
164
+ **源:FE 22 主题协议 · §MUST**
165
+
166
+ - 明确支持的主题列表和默认主题。
167
+ - 所有主题覆盖完整语义 token,而非只换背景。
168
+ - 表格、图表、弹层、焦点和状态随主题同步。
169
+ - 切换、持久化、系统偏好和失败回退有策略。
170
+ - 每个主题满足可访问性和视觉回归。
171
+
172
+ **源:FE 23 可访问性协议 · §MUST**
173
+
174
+ - 默认目标必须达到 WCAG 2.2 AA;未满足项必须记录适用成功准则、影响、替代路径、Owner 和修复期限。
175
+ - 所有交互元素必须可通过键盘到达并操作;Tab 顺序与视觉顺序一致(WCAG 2.1.1 / 2.4.3)。
176
+ - 页面使用 header、nav、main、aside、footer、section、article 等语义元素;存在唯一的 main 地标(WCAG 2.4.1 / 1.3.1)。
177
+ - 主导航和重复块必须可被跳过(skip link 或地标跳转);标题层级 h1–h6 与视觉层级一致,不跳过层级(WCAG 2.4.6)。
178
+ - 使用原生 HTML 语义可承载时优先使用原生元素;不得用无语义 div/span 模拟按钮、链接、表单控件(WCAG 4.1.2)。
179
+ - 弹层、抽屉、对话框打开后必须接管焦点,关闭后返回触发元素;背景不得保持可 Tab(WCAG 2.4.3 / 2.1.2)。
180
+ - 焦点必须可见,且不得被吸顶栏、浮层、sticky 元素完全遮挡(WCAG 2.4.7 / 2.4.11)。
181
+ - 所有非装饰图像必须提供等效 alt 文本;复杂图像提供 longer description 或 aria-describedby(WCAG 1.1.1)。
182
+ - 表单控件必须通过 label、aria-label 或 aria-labelledby 提供可见/可访问名称;placeholder 不得作为唯一标签(WCAG 3.3.2 / 1.3.1)。
183
+ - 错误必须与字段关联,并以文本描述提供纠错建议;提交时提供错误摘要并聚焦第一个错误字段(WCAG 3.3.1 / 3.3.3)。
184
+ - 颜色不得作为唯一信息来源;文本对比度至少 4.5:1,大文本至少 3:1,UI 组件/图标边界至少 3:1(WCAG 1.4.1 / 1.4.3 / 1.4.11)。
185
+ - 内容在 320 CSS px 宽度下可纵向阅读,不出现横向滚动;不得禁用浏览器缩放或固定视口(WCAG 1.4.10 / 1.4.4)。
186
+ - 触控目标尺寸至少 24×24 CSS px,且目标之间提供足够间距(WCAG 2.5.8);建议达到 44×44(AAA)。
187
+ - 依赖拖拽的操作必须提供无需拖拽的等价路径(WCAG 2.5.7)。
188
+ - 动态状态、异步结果、进度变化必须可在不抢夺焦点的前提下被辅助技术识别;使用 aria-live 区域并区分 polite/assertive(WCAG 4.1.3)。
189
+ - 路由/页面切换后必须更新 document.title 并宣布页面变化(如聚焦到 h1 或 live region)。
190
+ - 自动播放音频超过 3 秒必须提供暂停/停止/音量控制;自动播放视频必须可被控制且不得禁用 reduced-motion(WCAG 1.4.2 / 2.3.3)。
191
+ - 尊重 prefers-reduced-motion:动画、滚动、过渡在减少动效模式下关闭或降级;闪烁内容不超过每秒 3 次(WCAG 2.3.1 / 2.3.3)。
192
+ - 登录、认证、会话超时流程必须兼容密码管理器和粘贴;超时前至少提供 20 秒警告并允许延长(WCAG 2.2.1 / 2.2.6 / 3.3.8)。
193
+ - 同一流程已输入的信息不得无理由要求重复录入;高风险操作必须提供确认、复核、撤销或等效防错机制(WCAG 3.3.4 / 3.3.7)。
194
+ - 页面 html 必须声明主语言 lang;内容中局部语言变化使用 lang 属性(WCAG 3.1.1 / 3.1.2)。
195
+ - 必须建立并维护 vendor_a11y_matrix:每个第三方组件(Ant Design、Vant、图表库、编辑器、地图等)记录已知 a11y 能力、缺陷、版本限制与替代策略;升级前进行破坏性变更评估。
196
+ - 自造组件或无 vendor 可引用时,必须写完整 a11y spec:role、keyboard map、focus entry/return、live announcement、contrast、target size、reduced-motion(WCAG 2.2 AA)。
197
+
198
+ ### 分层责任(按目录层级)
199
+
200
+ 可访问性是架构期约束,按目录层级分担责任;每层有明确的检查点与禁止行为。层级划分与 09-module-boundary-protocol 一致。
201
+
202
+ - **app 层 — 应用级可访问性骨架**:提供唯一的 main 地标、skip link、lang 声明、document.title 更新策略、全局 reduced-motion 开关和 focus indicator token。MUST NOT 在 body 或顶层容器使用 aria-hidden="true";MUST NOT 禁用浏览器缩放或锁定视口。
203
+ - **platform 层 — 状态/会话可访问性**:认证/会话超时状态必须通过文本或 live region 宣布;全局错误/通知必须使用统一的 live region 策略。MUST NOT 在超时或认证失败后无警告地丢失已输入数据;MUST NOT 要求用户仅靠记忆、转录或解谜完成认证。
204
+ - **api 层 — 后端契约与错误可读性**:API 错误 message 必须可映射到可读文本和修复建议;auth/session 接口必须支持密码管理器、粘贴和超时延长。MUST NOT 返回仅依赖颜色或错误码的内部错误文本。
205
+ - **domain 层 — 领域语义与 a11y 映射**:领域实体状态(如审核结果、风险等级)不得仅用颜色/图标表达;必须提供文本标签和 aria 等价描述。MUST NOT 把业务语义隐藏在无标签的图标或图表元素中。
206
+ - **feature 层 — 页面级可访问性**:每个页面必须声明 WCAG 目标、skip link、焦点策略、live region 策略和错误聚焦行为;页面内组合组件(tabs、grid、listbox)必须实现 ARIA APG 键盘模式。MUST NOT 页面内存在无法通过键盘到达的交互;MUST NOT 路由切换无标题更新/读屏宣布。
207
+ - **shared 层 — 公共组件可访问性**:Table / Tree / Select / Form / Modal / Virtual List / Tabs / Grid 等公共组件必须有文档化的 role、keyboard map、focus entry/return、live announcement 和 contrast 要求;第三方组件必须引用 vendor_a11y_ref。MUST NOT 使用无 a11y spec 的自造组件;MUST NOT 用自定义 ARIA 覆盖破坏 vendor 默认键盘/焦点行为。
208
+
209
+ > 注(结构事实,非规则):上文「分层责任」H3 为 FE 23 源内 §MUST 的自有子结构,原样保留于本源块;其对 09-module-boundary-protocol 的引用在重组后指向 T00 主题文档(跨主题引用随迁;重组后指向 T00 架构与模块边界主题文档)。
210
+
211
+ **源:FE 24 组件协议 · §MUST**
212
+
213
+ - 新建前搜索现有组件并记录不能复用的原因。
214
+ - 组件归属、Owner、目的和非目标明确。
215
+ - Public Component 有类型化 Props、Events、Slots、状态、文档、测试和公开入口。
216
+ - 状态至少考虑 loading、empty、error、disabled、readonly 和 focus。
217
+ - 第二个消费者出现时重新评估提升层级。
218
+
219
+ **源:FE 26 样式与布局协议 · §MUST**
220
+
221
+ - 明确全局、组件、主题和第三方样式边界。
222
+ - 外层负责布局与 overflow,内层不得反向撑爆。
223
+ - 固定格式控件定义稳定尺寸、min/max 或比例。
224
+ - 文本换行、截断、tooltip 和横向滚动有统一规则。
225
+ - z-index 只能来自层级 token。
226
+ - 响应式断点和密度切换有验收矩阵。
227
+
228
+ **源:FE 30 数据表格协议 · §MUST**
229
+
230
+ - 表格通过统一壳和 typed Column Schema 渲染。
231
+ - 每列有稳定 key、标题、值类型、宽度策略、权限和导出规则。
232
+ - 大数据使用服务端分页/筛选/排序及虚拟化。
233
+ - 列配置按页面、表格、用户和 schema 版本隔离。
234
+ - 列宽修复先判断单页、同类型、领域 preset、表格壳或全局 token。
235
+ - 公共壳变更验证全部 Grid Type。
236
+ - 表格的交互状态(行 click / double-click / select / drag-select / 列头排序 click / 单元格 focus 等)MUST 在 `interaction-contract-registry` 中逐项声明,每项绑定触发的 `action_id` 与调用的 `api_requirement_ids`;表格不得存在未声明的交互。并非每个表格都要支持所有交互,但所支持的交互子集 MUST 显式界定并说明触发后果。排斥键盘的交互(drag / drag-select / hover-only)MUST 声明键盘等价路径(协议 23)。
237
+
238
+ ## MUST NOT
239
+
240
+ **源:FE 21 设计系统协议 · §MUST NOT**
241
+
242
+ - MUST NOT 写孤立色值、魔法间距和临时阴影。
243
+ - MUST NOT 用“看起来差不多”代替 token。
244
+ - MUST NOT 在业务页面创建第二套视觉语言。
245
+ - MUST NOT 用设计稿临时样式覆盖 Design Token。
246
+
247
+ **源:FE 22 主题协议 · §MUST NOT**
248
+
249
+ - MUST NOT 在业务组件写死应由主题控制的颜色。
250
+ - MUST NOT 让局部页面自行换肤。
251
+ - MUST NOT 只处理页面背景而遗漏 portal/图表。
252
+ - MUST NOT 用主题切换表达权限或业务状态。
253
+
254
+ **源:FE 23 可访问性协议 · §MUST NOT**
255
+
256
+ - MUST NOT 用无语义 div/span 模拟按钮、链接或表单控件。
257
+ - MUST NOT 移除焦点轮廓而无同等级可见替代。
258
+ - MUST NOT 仅通过颜色、hover 或 tooltip 传递关键信息。
259
+ - MUST NOT 弹层/抽屉焦点泄漏到背景。
260
+ - MUST NOT 在 aria-hidden="true" 下包裹仍可聚焦元素或包含可聚焦子元素。
261
+ - MUST NOT 使用已废弃的 ARIA role(如 directory)或拼写错误的 role。
262
+ - MUST NOT 在 body 上使用 aria-hidden="true"。
263
+ - MUST NOT 禁用浏览器缩放(user-scalable=no / maximum-scale=1.0)或锁定设备方向。
264
+ - MUST NOT 以自动化扫描通过作为可访问性验收的唯一证据。
265
+ - MUST NOT 图标按钮缺少 aria-label 或等效可访问名称。
266
+ - MUST NOT 错误提示仅通过颜色或 tooltip 呈现;不得在输入时无提示提交错误数据。
267
+ - MUST NOT 错误通知自动消失且不可恢复(除非用户可重新查看)。
268
+ - MUST NOT 非关键消息使用 assertive live region;MUST NOT 关键状态不宣布。
269
+ - MUST NOT 装饰图像使用非空 alt;MUST NOT 信息图像缺少 alt。
270
+ - MUST NOT 自动播放带声音的视频且无控制;MUST NOT 使用 blink / marquee 等已废弃元素。
271
+ - MUST NOT 超时/会话在无警告下失效;MUST NOT 认证流程禁用粘贴或仅依赖认知测试。
272
+ - MUST NOT 第三方组件假设开箱即用即符合项目 WCAG 目标;MUST NOT 用自定义 ARIA 覆盖破坏 vendor 默认键盘/焦点行为。
273
+ - MUST NOT 同一路径使用不同文案或图标表示同一功能;MUST NOT 导航/标签在页面内不一致。
274
+
275
+ **源:FE 24 组件协议 · §MUST NOT**
276
+
277
+ - MUST NOT 为减少几行代码创建无职责组件。
278
+ - MUST NOT 传整个 DTO 或万能配置对象。
279
+ - MUST NOT 让展示组件偷偷请求接口、改路由或全局状态。
280
+ - MUST NOT 从其他页面内部目录引用组件。
281
+
282
+ **源:FE 26 样式与布局协议 · §MUST NOT**
283
+
284
+ - MUST NOT 为单页问题修改全局 CSS。
285
+ - MUST NOT 依赖特定父 DOM 才能正常显示。
286
+ - MUST NOT 使用孤立 magic number、无来源 z-index 和随意 `!important`。
287
+ - MUST NOT 通过缩小字体掩盖溢出。
288
+
289
+ **源:FE 30 数据表格协议 · §MUST NOT**
290
+
291
+ - MUST NOT template 手写列或跨页面复制列数组。
292
+ - MUST NOT 为单页列宽修改全局 CSS。
293
+ - MUST NOT 不同类型表格共享污染配置 key。
294
+ - MUST NOT 前端加载全量数据假分页。
295
+
296
+ ## SHOULD
297
+
298
+ **源:FE 21 设计系统协议 · §SHOULD**
299
+
300
+ - SHOULD 使用语义 token 分离品牌值与组件用途。
301
+ - SHOULD 自动校验 token 使用和弃用。
302
+
303
+ **源:FE 22 主题协议 · §SHOULD**
304
+
305
+ - SHOULD 使用 CSS variables 或等价运行时 token。
306
+ - SHOULD 避免主题切换闪烁和布局变化。
307
+
308
+ **源:FE 23 可访问性协议 · §SHOULD**
309
+
310
+ - SHOULD 以 WCAG 2.2 AA 为默认目标,并在关键公开路径追求 AAA 增强项。
311
+ - SHOULD 自动扫描(axe-core / Lighthouse)加人工键盘遍历、屏幕阅读器抽查和触控测试。
312
+ - SHOULD 为复杂组合组件使用 ARIA APG 设计模式(tabs、dialog、menu、treegrid)。
313
+ - SHOULD 提供统一、设计系统级别的 focus indicator token(颜色、宽度、offset、:focus-visible)。
314
+ - SHOULD 支持 prefers-reduced-motion 并关闭/降级动画、滚动、过渡。
315
+ - SHOULD 为长表单、多步骤流程提供进度保存与恢复机制。
316
+ - SHOULD 为复杂图表、媒体提供数据表格、长描述或音频描述。
317
+ - SHOULD 对第三方组件进行 spot check(键盘 + 屏幕阅读器 + axe-core)并记录到组件注册表。
318
+
319
+ **源:FE 24 组件协议 · §SHOULD**
320
+
321
+ - SHOULD 使用受控输入和语义事件。
322
+ - SHOULD 提供可运行示例和弃用策略。
323
+
324
+ **源:FE 26 样式与布局协议 · §SHOULD**
325
+
326
+ - SHOULD 优先使用标准 layout primitives。
327
+ - SHOULD 集中第三方样式适配。
328
+
329
+ **源:FE 30 数据表格协议 · §SHOULD**
330
+
331
+ - SHOULD 固定关键标识/操作列并限制冻结总宽。
332
+ - SHOULD 支持键盘、复制粘贴、冲突和保存视图的明确契约。
333
+
334
+ ## Contract
335
+
336
+ **源:FE 21 设计系统协议 · §Contract**
337
+
338
+ ```text
339
+ TokenName, Layer, SemanticMeaning, ValueByTheme,
340
+ AllowedConsumers, Deprecated?, Owner
341
+ ```
342
+
343
+ **源:FE 22 主题协议 · §Contract**
344
+
345
+ ```text
346
+ ThemeId, TokenSet, Default, Persistence,
347
+ SystemPreference, ThirdPartyAdapters[], Fallback
348
+ ```
349
+
350
+ **源:FE 23 可访问性协议 · §Contract**
351
+
352
+ 组件级 a11y 契约(保留原有字段,用于 component-registry / vendor_api_ref):
353
+
354
+ ```text
355
+ Component, Role, AccessibleName, KeyboardMap,
356
+ FocusEntry, FocusReturn, LiveAnnouncements, ContrastRequirement
357
+ ```
358
+
359
+ 项目级可访问性治理契约(按目录层级):
360
+
361
+ ```text
362
+ Layer, AccessibilityRequirement, WcagTarget, AssistiveTechMatrix,
363
+ KeyboardPolicy, FocusPolicy, TargetSizePolicy, ReducedMotionPolicy, VendorA11yRef
364
+ ```
365
+
366
+ 分层责任契约表(按目录层级,与 09-module-boundary-protocol 一致):
367
+
368
+ ```text
369
+ app, 应用级骨架(地标/skip/lang/缩放/focus token), 2.4.1/2.4.6/1.3.1/1.4.4/2.4.7, 屏幕阅读器/键盘, skip link, focus indicator, 24/44px, prefers-reduced-motion, N/A
370
+ platform, 会话/状态/通知可读性, 2.2.1/2.2.6/3.3.8/4.1.3, 屏幕阅读器, 超时延长, 全局 live region, N/A, N/A, N/A
371
+ api, 后端错误可读性/认证支持, 3.3.1/3.3.2/3.3.8, 屏幕阅读器, 粘贴/密码管理器, 错误关联, N/A, N/A, N/A
372
+ domain, 领域语义/状态文本化, 1.4.1/1.3.1, 屏幕阅读器/色觉, N/A, 图标/图表标签, N/A, N/A, N/A
373
+ feature, 页面级键盘/焦点/路由/表单, 2.1.1/2.4.3/2.4.7/2.4.11/3.3.1/3.3.3, 键盘/屏幕阅读器, roving tabindex, 弹层焦点管理, 24/44px, 动画降级, vendor_a11y_ref
374
+ shared, 公共组件 a11y spec/矩阵, 4.1.2/1.1.1/2.4.7/2.5.8, 键盘/屏幕阅读器/放大, APG 键盘图, focus entry/return, 24/44px, reduced-motion, vendor_a11y_ref
375
+ ```
376
+
377
+ **源:FE 24 组件协议 · §Contract**
378
+
379
+ ```text
380
+ Purpose, Owner, Props, Events, Slots, PublicMethods,
381
+ States, Permissions, Accessibility, Tokens, ReuseRules, ForbiddenChanges
382
+ ```
383
+
384
+ **源:FE 26 样式与布局协议 · §Contract**
385
+
386
+ ```text
387
+ Container, SizeOwner, OverflowPolicy, MinMax,
388
+ BreakpointBehavior, ZIndexToken, TextPolicy
389
+ ```
390
+
391
+ **源:FE 30 数据表格协议 · §Contract**
392
+
393
+ ```text
394
+ GridType, RowKey, ColumnSchema[], ServerOperations,
395
+ Virtualization, SavedViewKey, ExportScope, Permissions,
396
+ InteractionContracts[]
397
+ ```
398
+
399
+ ## Checklist
400
+
401
+ **源:FE 21 设计系统协议 · §Checklist**
402
+
403
+ - [ ] 所有视觉值来自 token。
404
+ - [ ] 状态与断点完整。
405
+ - [ ] 设计和代码来源一致。
406
+ - [ ] 新 token 有复用语义。
407
+
408
+ **源:FE 22 主题协议 · §Checklist**
409
+
410
+ - [ ] 支持范围和默认值明确。
411
+ - [ ] token 覆盖完整。
412
+ - [ ] 第三方与 portal 同步。
413
+ - [ ] 对比度和回退通过。
414
+
415
+ **源:FE 23 可访问性协议 · §Checklist**
416
+
417
+ - [ ] 默认 WCAG 2.2 AA 目标及例外记录完成。
418
+ - [ ] 语义 HTML 与地标(main/nav/header/footer/skip link)正确。
419
+ - [ ] 标题层级与视觉层级一致,无跳过层级。
420
+ - [ ] 键盘路径完整,Tab 顺序与视觉顺序一致,焦点可见且不被遮挡。
421
+ - [ ] 弹层/抽屉焦点管理正确(进入、困住、返回、背景屏蔽)。
422
+ - [ ] ARIA 使用有效,无冗余、无废弃 role、无 aria-hidden 包裹可聚焦元素。
423
+ - [ ] 屏幕阅读器标签、alt 文本、表单 label、错误关联正确。
424
+ - [ ] 对比度、颜色依赖、focus indicator、320px reflow、缩放策略通过。
425
+ - [ ] 表单错误聚焦、摘要、纠正建议、required 标识通过。
426
+ - [ ] 动态内容/通知使用合适的 live region,路由/页面切换有标题更新和宣布。
427
+ - [ ] 触控目标 >=24px、间距合理,响应式/缩放/方向策略合规。
428
+ - [ ] 媒体/动画有控制、字幕/音频描述、reduced-motion、闪烁安全。
429
+ - [ ] 时间限制/会话超时/认证流程支持延长、粘贴、密码管理器、数据保留。
430
+ - [ ] 可读性:lang 声明、局部语言、导航一致性、错误文本可读、缩写解释。
431
+ - [ ] 第三方/自造组件 a11y 矩阵和 spot check 完成;vendor_a11y_ref 正确引用。
432
+ - [ ] 分层责任按 app/platform/api/domain/feature/shared 确认,每层检查点与禁止行为已落地。
433
+
434
+ **源:FE 24 组件协议 · §Checklist**
435
+
436
+ - [ ] 复用搜索完成。
437
+ - [ ] 分层和公开入口正确。
438
+ - [ ] 接口与状态完整。
439
+ - [ ] 测试、示例和 a11y 齐全。
440
+
441
+ **源:FE 26 样式与布局协议 · §Checklist**
442
+
443
+ - [ ] 尺寸责任明确。
444
+ - [ ] 长文本和小屏不破坏布局。
445
+ - [ ] 层级和第三方覆盖集中。
446
+ - [ ] 动态状态无跳动。
447
+
448
+ **源:FE 30 数据表格协议 · §Checklist**
449
+
450
+ - [ ] 表格由 schema 驱动。
451
+ - [ ] 列宽影响层级正确。
452
+ - [ ] 大数据和配置隔离安全。
453
+ - [ ] 导出与当前视图一致。
454
+ - [ ] 每个支持的交互(行点击/双击/拖选/排序/聚焦)在 interaction-contract-registry 声明并绑定 action + API。
455
+
456
+ ## Examples
457
+
458
+ **源:FE 21 设计系统协议 · §Examples**
459
+
460
+ ### 内容示例,可删除
461
+
462
+ 组件使用 `color.action.primary`,而不是直接写品牌蓝十六进制值。
463
+
464
+ **源:FE 22 主题协议 · §Examples**
465
+
466
+ ### 内容示例,可删除
467
+
468
+ 主题切换统一更新页面、弹窗、表格和图表 palette。
469
+
470
+ **源:FE 23 可访问性协议 · §Examples**
471
+
472
+ ### 真实示例(推荐)
473
+
474
+ - 筛选抽屉打开时,焦点进入抽屉内第一个可聚焦元素(如标题或首个字段);关闭时焦点返回到触发按钮,并 polite 宣布“筛选条件已应用,N 个结果”。
475
+ - 表单提交失败时,页面顶部出现错误摘要,并自动聚焦到第一个错误字段;每个错误字段使用 aria-describedby 关联具体错误文本。
476
+ - 数据表格使用 APG 的 grid 模式:方向键在单元格间移动,Enter 进入编辑,Escape 退出编辑,焦点始终停留在表格内,不会泄漏到背景。
477
+ - 页面 html lang="zh-CN";当用户切换到英文内容块时,该块使用 lang="en",屏幕阅读器切换语音。
478
+ - 图表组件同时提供数据表格视图入口和 aria-label 摘要,使屏幕阅读器用户能访问数值和趋势。
479
+ - 认证页面允许粘贴密码,会话超时前弹出 20 秒警告,提供“延长会话”按钮,并自动保存表单草稿以便恢复。
480
+
481
+ **源:FE 24 组件协议 · §Examples**
482
+
483
+ ### 内容示例,可删除
484
+
485
+ 业务状态标签放领域层,基础 Tag 只负责通用视觉和语义。
486
+
487
+ **源:FE 26 样式与布局协议 · §Examples**
488
+
489
+ ### 内容示例,可删除
490
+
491
+ 页面容器管理横向滚动,表格声明最小内容宽度,单元格不硬编码页面宽度。
492
+
493
+ **源:FE 30 数据表格协议 · §Examples**
494
+
495
+ ### 内容示例,可删除
496
+
497
+ 同类型报表共享 column preset;单页例外写在 page contract,不改可编辑宽表。
498
+
499
+ ## Anti-patterns
500
+
501
+ **源:FE 21 设计系统协议 · §Anti-patterns**
502
+
503
+ 页面根据设计截图手写近似颜色和 13px/17px 等孤立间距。
504
+
505
+ **源:FE 22 主题协议 · §Anti-patterns**
506
+
507
+ 仅给 body 加 dark class,而下拉、弹窗和图表仍使用亮色。
508
+
509
+ **源:FE 23 可访问性协议 · §Anti-patterns**
510
+
511
+ - 可点击 div 只支持鼠标,键盘和屏幕阅读器无法触发。
512
+ - 状态仅用红绿颜色区分(如“成功/失败”),未提供文本或图标标签。
513
+ - 移除所有按钮的 outline 而未提供替代 focus indicator,导致键盘用户无法看到焦点。
514
+ - 弹层打开后背景仍可 Tab,或关闭后焦点丢失到 body 而不是触发按钮。
515
+ - 信息图像使用 alt="" 或被 CSS 背景隐藏,屏幕阅读器无法识别。
516
+ - 图标按钮缺少 aria-label,屏幕阅读器只朗读“按钮”或“未标记”。
517
+ - 错误提示仅显示红色边框或 tooltip,未与字段关联,也未提供纠正建议。
518
+ - 禁用缩放导致低视力用户无法放大到 200%。
519
+ - 自动播放的宣传视频无暂停控制,且未响应 prefers-reduced-motion。
520
+ - 超时后立即登出并清空表单,未警告也未保存草稿。
521
+ - 第三方图表库假设开箱即用,未记录其 a11y 缺陷和规避策略。
522
+
523
+ **源:FE 24 组件协议 · §Anti-patterns**
524
+
525
+ 创建 `CommonTable2`,接收任意对象并在内部请求多个业务 API。
526
+
527
+ **源:FE 26 样式与布局协议 · §Anti-patterns**
528
+
529
+ 为修复一个弹窗把全局 z-index 提到极大值,随后所有 dropdown 层级失控。
530
+
531
+ **源:FE 30 数据表格协议 · §Anti-patterns**
532
+
533
+ 为某报表加全局 `.table td { width }`,导致所有列表和宽表一起变化。
534
+
535
+ ## Ownership
536
+
537
+ **源:FE 21 设计系统协议 · §Ownership**
538
+
539
+ Design System Owner 与前端 Owner 共同维护,组件 Owner 消费但不私自改值。
540
+
541
+ **源:FE 22 主题协议 · §Ownership**
542
+
543
+ Design System Owner 维护主题 token,平台 Owner 维护切换,组件 Owner 负责兼容。
544
+
545
+ **源:FE 23 可访问性协议 · §Ownership**
546
+
547
+ - 前端 A11y Owner 维护 WCAG 目标、检查点、vendor_a11y_matrix 和扫描工具链。
548
+ - 设计 Owner 负责颜色对比度、focus indicator、触控目标、reduced-motion 视觉策略。
549
+ - 组件 Owner 负责实现组件级 a11y spec(role、keyboard map、focus entry/return、live announcement)。
550
+ - QA / Accessibility Owner 负责键盘遍历、屏幕阅读器抽查、axe-core 扫描和例外审批。
551
+ - 后端 Owner 配合认证/会话/错误 message 的可读性与超时策略。
552
+
553
+ **源:FE 24 组件协议 · §Ownership**
554
+
555
+ 组件 Owner 维护 contract,调用方遵守公开 API,Design System Owner 维护基础组件视觉。
556
+
557
+ **源:FE 26 样式与布局协议 · §Ownership**
558
+
559
+ Design System Owner 维护 token,Layout Owner 维护区域,组件 Owner 维护内部样式。
560
+
561
+ **源:FE 30 数据表格协议 · §Ownership**
562
+
563
+ 表格平台 Owner 维护壳,领域 Owner 维护列 schema,页面 Owner 维护例外。
564
+
565
+ ## Change Policy
566
+
567
+ **源:FE 21 设计系统协议 · §Change Policy**
568
+
569
+ Token 改名/删除先 deprecated;值变化评估所有组件并执行视觉与对比度回归。
570
+
571
+ **源:FE 22 主题协议 · §Change Policy**
572
+
573
+ 新增主题必须完整覆盖和验收;删除主题需迁移用户偏好并提供回退。
574
+
575
+ **源:FE 23 可访问性协议 · §Change Policy**
576
+
577
+ - 可访问性例外必须记录阻塞原因、适用 WCAG SC、影响、替代路径、Owner 和修复期限。
578
+ - 新增第三方组件或升级第三方组件前,必须对比 vendor_a11y_matrix,评估破坏性 a11y 变更。
579
+ - 新增自造组件必须同步提交组件级 a11y spec,未经 review 不得进入公共组件目录。
580
+ - 页面级 WCAG 目标收紧(如从 AA 到 AAA)或放宽(如特定页面降级)必须走变更治理,并更新 a11y-requirements.yaml。
581
+
582
+ **源:FE 24 组件协议 · §Change Policy**
583
+
584
+ 公共 API 变化遵循影响评估、兼容、deprecated、迁移和删除周期。
585
+
586
+ **源:FE 26 样式与布局协议 · §Change Policy**
587
+
588
+ 全局布局和层级变化必须评估全部页面类型并执行视觉回归。
589
+
590
+ **源:FE 30 数据表格协议 · §Change Policy**
591
+
592
+ 列 schema 和保存视图结构必须版本化;公共行为变化遵循影响评估和视觉回归。
593
+
594
+ ## 语言与栈节(overlay 资产同步区)
595
+
596
+ > 本区各小节 = stacks/ overlay 资产 Scope/Rules/Checklist 的**逐字节同步副本**(标题降 2 级,正文零改动)。资产层为唯一权威;改规则只改 overlay、本区随同步。x-research-anchors(vue3 2026-09-05 实抓 13 锚 / antdesign 2026-09-05 实抓 2 锚 / geist 2026-09-02 实抓 2 锚)留在 overlay 资产 frontmatter,不复制进本主题文档(防双锚漂移)。
597
+
598
+ ### vue3(源:stacks/vue3/vue3-framework-overlay.md · F01 主挂点)
599
+
600
+ #### Scope
601
+
602
+ 本 Overlay 具体化 Vue 3 组件模型、SFC、响应式系统与官方配套(状态 / 路由 / TypeScript 工具链)的选型与版本边界。
603
+
604
+ #### Rules
605
+
606
+ - 必须固定并记录 Vue 3、Pinia、vue-router 与 TypeScript 工具链(vue-tsc / @vue/tsconfig)的版本位与来源;版本位经实抓核实,不得沿用旧主版本记忆(现行线为 pinia 4.x / vue-router 5.x)。
607
+ - 状态与路由必须选官方方案:新应用状态管理选 Pinia(Vue 核心团队维护;Vuex 已是维护模式),SPA 路由选官方 Vue Router——两者是官方口径,不自造替代。
608
+ - 组件、SFC 与响应式写法以官方文档与风格指南优先级(A/B/C 三档)为基准;响应式必须声明 ref / reactive 选型边界(reactive 的 proxy 局限官方有专门小节)。
609
+ - 组合式函数必须遵守官方约定(命名、入参、返回值、副作用、使用限制),生命周期钩子按官方注册时机使用。
610
+ - 不得由 Vue 3 选型推断 UI 组件库、CSS 体系、grid 或构建工具选型;Vue 2 已 EOL,其心智不得带入新项目基线。
611
+
612
+ #### Checklist
613
+
614
+ - [ ] 版本位(vue / pinia / vue-router / typescript)经实抓核实并记录在项目技术基线。
615
+ - [ ] 状态、路由与 TS 类型检查工具链为官方词形(Pinia / Vue Router / vue-tsc)且带实抓日期锚。
616
+
617
+ ### antdesign(源:stacks/antdesign/antdesign-ui-overlay.md · F01 主挂点)
618
+
619
+ #### Scope
620
+
621
+ 本 Overlay 具体化 Ant Design Vue 组件库的引入、按需加载、主题(CSS-in-JS Design Token)与 React 版 antd 的对照边界。
622
+
623
+ #### Rules
624
+
625
+ - 必须固定组件库词形与版本位:Vue 栈为 ant-design-vue 4.x 线;React 版 Ant Design 仅作跨栈对照,其组件 API 与主题机制不得混用。
626
+ - 引入与按需加载必须走官方口径:全局重置用 `import 'ant-design-vue/dist/reset.css'`;按需加载用 unplugin-vue-components + AntDesignVueResolver(官方示例 importStyle: false 旁注 css in js)。
627
+ - 主题定制主通路为 v4 CSS-in-JS:ConfigProvider 的 theme prop(Design Token 三层派生 Seed → Map → Alias、default / dark / compact 三算法、组件级 Component Token),运行时消费用 useToken;v3 less 变量只作构建期静态消费兼容通道(theme.defaultAlgorithm(defaultSeed) + less-loader modifyVars),两条通路不得未声明混装。
628
+ - 不得由组件库选型推断 CSS 作用域体系、预处理器或 utility 方案(css 键独立选型);组件库主题 token 不替代项目 design token 分层协议。
629
+
630
+ #### Checklist
631
+
632
+ - [ ] 版本位经 npm registry 实抓(4.2.6 双源一致)并记录在项目技术基线。
633
+ - [ ] 主题通路(运行时 CSS-in-JS / 构建期 less 兼容)已显式声明且与实际接线一致。
634
+
635
+ ### geist(源:stacks/geist/geist-design-system-overlay.md · F01 主挂点)
636
+
637
+ #### Scope
638
+
639
+ 本 Overlay 具体化以 Vercel Geist 为设计体系参照的 foundations 词形、组件词表与使用规则引用边界。
640
+
641
+ #### Rules
642
+
643
+ - Foundations 词形(colors / typography / materials)必须以实抓现状为准;Geist 现状无 spacing foundation——缺席诚实记录,禁杜撰 foundation 词形。
644
+ - 组件清单与 variant / state 词表以 Geist 组件页为词形锚;项目侧组件命名与变体词形引用时必须与锚一致或在册声明差异。
645
+ - 引用 Best Practices 要点(如 icon-only validator 抛错 = fail-closed 先例)必须带实抓时点;页面内容随后可能变动,过期引用须重新核实。
646
+ - Geist 为设计体系参照而非实现依赖——不得由 geist 参照推断框架、UI 组件库或 CSS 方案选型;与 UI 组件库 overlay 并存时各守各轴。
647
+
648
+ #### Checklist
649
+
650
+ - [ ] 引用的 foundations / 组件词表 / 使用规则带 verified 时点(2026-09-02)且未过期或已重新核实。
651
+ - [ ] 参照边界在册:geist 参照不绑定实现依赖,token 消费与主题协议的衔接已显式声明。
652
+ ### css(源:stacks/css/css-system-overlay.md · F01 主挂点)
653
+
654
+ #### Scope
655
+
656
+ 本 Overlay 具体化项目 CSS 体系选型(裁定 D8 组合词形 scoped-sfc+antdv-cssinjs-tokens+antdv-reset-css)的官方词形与版本边界:SFC scoped 作用域机制、Ant Design Vue CSS-in-JS 主题 token 消费与官方全局重置。
657
+
658
+ #### Rules
659
+
660
+ - 必须固定并记录 CSS 体系组合词形与版本位:scoped-sfc+antdv-cssinjs-tokens+antdv-reset-css(vue 3.5.42 / ant-design-vue 4.2.6,npm registry 实抓双源一致);组合之外的作用域/utility 方案属 css 键改型,不得未声明引入。
661
+ - scoped 作用域以 SFC `<style scoped>` 为项目主机制(编译为 data-v-hash 属性选择器);穿透与例外必须用官方逃逸词形 `:deep()`(子组件穿透)、`:slotted()`(slot 内容)、`:global()`(全局例外);子组件根元素同时受父 scoped 影响为官方口径。
662
+ - antdv 主题 token 消费走 v4 CSS-in-JS 官方通路:ConfigProvider 的 theme prop(Design Token 三层派生 Seed → Map → Alias、default / dark / compact 三算法、组件级 Component Token),运行时消费用 useToken;组件库主题 token 不替代项目 design token 分层协议。
663
+ - 全局重置以官方单一来源承载:`import 'ant-design-vue/dist/reset.css'`;不得未声明引入与之竞争的第二套全局重置。
664
+
665
+ #### Checklist
666
+
667
+ - [ ] css 键组合词形与版本位(vue / ant-design-vue)经 npm registry 实抓并记录在项目技术基线。
668
+ - [ ] scoped 逃逸词形(:deep() / :slotted() / :global())、antdv 主题通路(ConfigProvider theme + useToken)与全局重置(reset.css import)与实际接线一致。
669
+
670
+ > **缺席诚实**:react 无 overlay 资产(无研究锚),不落语言节;css 体系 overlay 已建并入本区(D8 组合词形 scoped-sfc+antdv-cssinjs-tokens+antdv-reset-css)。