pomaster 0.4.0 → 0.5.1

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 (229) hide show
  1. package/README.md +102 -183
  2. package/catalog/catalog-lock.draft.json +117 -117
  3. package/catalog/policies/policy.ai.change_plan_first.json +1 -1
  4. package/catalog/policies/policy.ai.fact_inference_separation.json +1 -1
  5. package/catalog/policies/policy.ai.read_search_verify_before_write.json +1 -1
  6. package/catalog/policies/policy.ai.rule_relaxation_approval.json +1 -1
  7. package/catalog/policies/policy.arch.adr_immutable_history.json +1 -1
  8. package/catalog/policies/policy.arch.no_convenience_over_boundary.json +1 -1
  9. package/catalog/policies/policy.arch.prefer_verifiable_option.json +2 -2
  10. package/catalog/policies/policy.authz.no_gating_proxy_trust.json +1 -1
  11. package/catalog/policies/policy.authz.permission_scope_expansion_gate.json +1 -1
  12. package/catalog/policies/policy.authz.server_five_factor_verification.json +1 -1
  13. package/catalog/policies/policy.be.conc.prefer_db_constraints.json +1 -1
  14. package/catalog/policies/policy.be.db.expand_migrate_contract.json +1 -1
  15. package/catalog/policies/policy.be.idem.key_payload_conflict.json +1 -1
  16. package/catalog/policies/policy.be.model.single_boundary_conversion.json +1 -1
  17. package/catalog/policies/policy.be.sql.index_for_known_queries.json +1 -1
  18. package/catalog/policies/policy.be.state.single_rule_source.json +1 -1
  19. package/catalog/policies/policy.be.txn.short_locks_compensation.json +1 -1
  20. package/catalog/policies/policy.bound.search_first_entry_only.json +1 -1
  21. package/catalog/policies/policy.boundary.validate_in_encode_out.json +1 -1
  22. package/catalog/policies/policy.cache.failure_mode_guards.json +1 -1
  23. package/catalog/policies/policy.cache.schema_versioning.json +1 -1
  24. package/catalog/policies/policy.cfg.config_attribute_completeness.json +1 -1
  25. package/catalog/policies/policy.cfg.key_rename_dual_read.json +1 -1
  26. package/catalog/policies/policy.cfg.no_secret_dispersal.json +1 -1
  27. package/catalog/policies/policy.cfg.production_safe_defaults.json +1 -1
  28. package/catalog/policies/policy.cfg.schema_backed_config.json +1 -1
  29. package/catalog/policies/policy.chg.no_unrelated_changes.json +1 -1
  30. package/catalog/policies/policy.contract.no_invented_facts.json +1 -1
  31. package/catalog/policies/policy.dep.build_path_supply_chain.json +1 -1
  32. package/catalog/policies/policy.dep.no_untrusted_source_no_lock_bypass.json +1 -1
  33. package/catalog/policies/policy.dep.time_boxed_urgent_exception.json +1 -1
  34. package/catalog/policies/policy.deploy.no_dev_env_as_production_fact.json +1 -1
  35. package/catalog/policies/policy.deploy.operational_capabilities.json +1 -1
  36. package/catalog/policies/policy.deploy.runtime_fact_record.json +1 -1
  37. package/catalog/policies/policy.err.failure_five_part_mapping.json +1 -1
  38. package/catalog/policies/policy.err.no_internal_detail_exposure.json +1 -1
  39. package/catalog/policies/policy.err.published_code_immutable.json +1 -1
  40. package/catalog/policies/policy.evid.acceptance_binds_verifiable_evidence.json +1 -1
  41. package/catalog/policies/policy.evid.no_silent_gate_removal.json +1 -1
  42. package/catalog/policies/policy.evid.no_unverifiable_pass.json +1 -1
  43. package/catalog/policies/policy.flag.cleanup_after_full_rollout.json +1 -1
  44. package/catalog/policies/policy.flag.consistent_off_state.json +1 -1
  45. package/catalog/policies/policy.flag.kill_switch.json +1 -1
  46. package/catalog/policies/policy.flag.lifecycle_metadata.json +1 -1
  47. package/catalog/policies/policy.flag.not_a_permission.json +1 -1
  48. package/catalog/policies/policy.gate.p0_non_bypassable.json +1 -1
  49. package/catalog/policies/policy.gate.risk_factors_confirmed.json +1 -1
  50. package/catalog/policies/policy.guard.no_check_weakening.json +2 -2
  51. package/catalog/policies/policy.integration.call_definition_minimum.json +1 -1
  52. package/catalog/policies/policy.integration.fault_containment.json +1 -1
  53. package/catalog/policies/policy.job.lifecycle_definition.json +1 -1
  54. package/catalog/policies/policy.job.no_unmanaged_execution.json +1 -1
  55. package/catalog/policies/policy.job.operational_features.json +1 -1
  56. package/catalog/policies/policy.obs.actionable_signals.json +1 -1
  57. package/catalog/policies/policy.obs.alert_with_owner.json +1 -1
  58. package/catalog/policies/policy.obs.context_field_baseline.json +1 -1
  59. package/catalog/policies/policy.obs.no_sensitive_or_unbounded_logging.json +1 -1
  60. package/catalog/policies/policy.obs.no_sensitive_raw_values.json +1 -1
  61. package/catalog/policies/policy.obs.signal_change_impact.json +1 -1
  62. package/catalog/policies/policy.obs.source_map_access_control.json +1 -1
  63. package/catalog/policies/policy.obs.telemetry_lifecycle_declared.json +1 -1
  64. package/catalog/policies/policy.obs.trace_correlation.json +1 -1
  65. package/catalog/policies/policy.perf.budget_change_retest.json +1 -1
  66. package/catalog/policies/policy.perf.evidence_binding.json +1 -1
  67. package/catalog/policies/policy.perf.observation_dimensions.json +1 -1
  68. package/catalog/policies/policy.proc.checklist_change_policy.json +2 -2
  69. package/catalog/policies/policy.proc.scope_drift_reclassify.json +1 -1
  70. package/catalog/policies/policy.prv.processing_scope_re_review.json +1 -1
  71. package/catalog/policies/policy.prv.sensitive_data_six_facts.json +1 -1
  72. package/catalog/policies/policy.registry.human_fields_validated_decorrelated.json +1 -1
  73. package/catalog/policies/policy.rel.no_irreversible_unmonitored_full_release.json +1 -1
  74. package/catalog/policies/policy.rel.observability_before_ship.json +1 -1
  75. package/catalog/policies/policy.rel.process_change_needs_drill_audit.json +1 -1
  76. package/catalog/policies/policy.rel.traceable_build.json +1 -1
  77. package/catalog/policies/policy.role.human_signs_for_ai.json +1 -1
  78. package/catalog/policies/policy.sec.authn_policy_unified.json +1 -1
  79. package/catalog/policies/policy.sec.no_client_side_trust.json +4 -1
  80. package/catalog/policies/policy.sec.no_longterm_security_disable.json +1 -1
  81. package/catalog/policies/policy.sec.no_script_readable_credentials.json +1 -1
  82. package/catalog/policies/policy.sec.no_secrets_in_client_surface.json +2 -2
  83. package/catalog/policies/policy.sec.relaxation_approval.json +1 -1
  84. package/catalog/policies/policy.sec.security_relaxation_gate.json +4 -1
  85. package/catalog/policies/policy.sec.trust_boundary_enforcement.json +4 -1
  86. package/catalog/policies/policy.sec.upload_download_server_recheck.json +1 -1
  87. package/catalog/policies/policy.sec.url_source_allowlist.json +1 -1
  88. package/catalog/policies/policy.spec.family_conflict_precedence.json +1 -1
  89. package/catalog/policies/policy.spec.freeze_before_use.json +1 -1
  90. package/catalog/policies/policy.spec.primary_source_basis.json +1 -1
  91. package/catalog/policies/policy.struct.module_entry_dependency_declared.json +1 -1
  92. package/catalog/policies/policy.struct.no_unexplained_top_level_dir.json +1 -1
  93. package/catalog/policies/policy.struct.reuse_proven_structure.json +1 -1
  94. package/catalog/policies/policy.test.control_nondeterminism_keep_diagnosis.json +1 -1
  95. package/catalog/policies/policy.test.isolation_and_cleanup.json +1 -1
  96. package/catalog/policies/policy.test.no_synthetic_stability.json +1 -1
  97. package/catalog/policies/policy.test.pyramid_and_ci_matrix.json +1 -1
  98. package/catalog/policies/policy.test.removal_justification.json +1 -1
  99. package/catalog/policies/policy.test.removal_needs_substitute_evidence.json +1 -1
  100. package/catalog/policies/policy.test.risk_driven_plan.json +1 -1
  101. package/catalog/policies/policy.test.stable_observable_assertions.json +1 -1
  102. package/catalog/policies/policy.tool.discoverable_toolchain.json +1 -1
  103. package/catalog/policies/policy.tool.no_hand_edit_generated_no_ci_drift.json +1 -1
  104. package/catalog/policies/policy.tool.no_vendored_body_edits.json +1 -1
  105. package/catalog/policies/policy.tool.upgrade_verify_lock_rollback.json +1 -1
  106. package/catalog/policies/policy.web.comp.no_trivial_or_god_component.json +1 -1
  107. package/catalog/policies/policy.web.comp.public_contract_completeness.json +1 -1
  108. package/catalog/policies/policy.web.copy.action_object_clarity.json +1 -1
  109. package/catalog/policies/policy.web.copy.enumerable_placement.json +1 -1
  110. package/catalog/policies/policy.web.copy.error_next_step.json +1 -1
  111. package/catalog/policies/policy.web.handoff.state_matrix_full.json +1 -1
  112. package/catalog/policies/policy.web.i18n.copy_key_discipline.json +1 -1
  113. package/catalog/policies/policy.web.i18n.raw_value_for_compute.json +1 -1
  114. package/catalog/policies/policy.web.page.region_consistency.json +1 -1
  115. package/catalog/policies/policy.web.track.attempt_result_correlation.json +1 -1
  116. package/catalog/policies/policy.web.track.no_synthetic_actions.json +1 -1
  117. package/catalog/policies/policy.web.track.typed_client_validation.json +1 -1
  118. package/catalog/policies/policy.wf.no_planned_as_verified.json +1 -1
  119. package/catalog/policies/policy.wf.task_facts_preconfirm.json +1 -1
  120. package/dist/bin.js +11233 -7336
  121. package/legal/THIRD_PARTY_NOTICES.md +461 -35
  122. package/package.json +1 -1
  123. package/seeds/aggregation-manifest.json +691 -0
  124. package/seeds/manifest.json +466 -1043
  125. package/seeds/specs/hard/stacks/antdesign/antdesign-ui-overlay.md +48 -0
  126. package/seeds/specs/hard/stacks/antdesign/index.md +20 -0
  127. package/seeds/specs/hard/stacks/css/css-system-overlay.md +52 -0
  128. package/seeds/specs/hard/stacks/css/index.md +20 -0
  129. package/seeds/specs/hard/stacks/geist/geist-design-system-overlay.md +48 -0
  130. package/seeds/specs/hard/stacks/geist/index.md +20 -0
  131. package/seeds/specs/hard/stacks/vue3/index.md +20 -0
  132. package/seeds/specs/hard/stacks/vue3/vue3-framework-overlay.md +71 -0
  133. package/seeds/specs/hard/themes/ai-generated-code.md +171 -0
  134. package/seeds/specs/hard/themes/api-contract-and-error-semantics.md +532 -0
  135. package/seeds/specs/hard/themes/architecture-and-module-boundaries.md +323 -0
  136. package/seeds/specs/hard/themes/data-and-transactions.md +582 -0
  137. package/seeds/specs/hard/themes/engineering-toolchain-and-dependencies.md +333 -0
  138. package/seeds/specs/hard/themes/environment-and-configuration.md +196 -0
  139. package/seeds/specs/hard/themes/frontend-state-and-client-data.md +342 -0
  140. package/seeds/specs/hard/themes/index.md +374 -0
  141. package/seeds/specs/hard/themes/integration-and-async-runtime.md +331 -0
  142. package/seeds/specs/hard/{frontend/38-internationalization-protocol.md → themes/internationalization-and-copywriting.md} +112 -5
  143. package/seeds/specs/hard/themes/observability-and-analytics.md +305 -0
  144. package/seeds/specs/hard/themes/page-composition-and-browser-environment.md +554 -0
  145. package/seeds/specs/hard/{frontend/31-performance-protocol.md → themes/performance-and-capacity.md} +95 -6
  146. package/seeds/specs/hard/themes/permission-and-authorization.md +168 -0
  147. package/seeds/specs/hard/themes/privacy-and-data-lifecycle.md +176 -0
  148. package/seeds/specs/hard/themes/release-and-feature-flags.md +237 -0
  149. package/seeds/specs/hard/{frontend/04-security-protocol.md → themes/security.md} +95 -6
  150. package/seeds/specs/hard/themes/task-governance-and-acceptance.md +554 -0
  151. package/seeds/specs/hard/themes/testing-and-verification.md +266 -0
  152. package/seeds/specs/hard/themes/ui-presentation-and-design.md +670 -0
  153. package/seeds/specs/hard/themes/value-semantics-and-domain-data.md +339 -0
  154. package/seeds/specs/hard/backend/01-architecture-governance-protocol.md +0 -68
  155. package/seeds/specs/hard/backend/02-project-structure-governance-protocol.md +0 -68
  156. package/seeds/specs/hard/backend/03-directory-boundary-protocol.md +0 -68
  157. package/seeds/specs/hard/backend/04-layering-architecture-protocol.md +0 -68
  158. package/seeds/specs/hard/backend/05-task-workflow-protocol.md +0 -68
  159. package/seeds/specs/hard/backend/06-ai-generated-code-protocol.md +0 -68
  160. package/seeds/specs/hard/backend/07-evidence-acceptance-protocol.md +0 -68
  161. package/seeds/specs/hard/backend/08-contract-change-protocol.md +0 -68
  162. package/seeds/specs/hard/backend/09-role-responsibility-protocol.md +0 -68
  163. package/seeds/specs/hard/backend/10-security-protocol.md +0 -68
  164. package/seeds/specs/hard/backend/11-environment-configuration-protocol.md +0 -67
  165. package/seeds/specs/hard/backend/12-api-contract-protocol.md +0 -68
  166. package/seeds/specs/hard/backend/13-privacy-data-lifecycle-protocol.md +0 -68
  167. package/seeds/specs/hard/backend/14-business-rules-state-protocol.md +0 -68
  168. package/seeds/specs/hard/backend/15-data-model-protocol.md +0 -68
  169. package/seeds/specs/hard/backend/16-error-code-protocol.md +0 -68
  170. package/seeds/specs/hard/backend/17-permission-authorization-protocol.md +0 -68
  171. package/seeds/specs/hard/backend/18-database-schema-migration-protocol.md +0 -68
  172. package/seeds/specs/hard/backend/19-query-index-sql-protocol.md +0 -68
  173. package/seeds/specs/hard/backend/20-transaction-boundary-protocol.md +0 -68
  174. package/seeds/specs/hard/backend/21-concurrency-locking-protocol.md +0 -68
  175. package/seeds/specs/hard/backend/22-idempotency-protocol.md +0 -68
  176. package/seeds/specs/hard/backend/23-cache-redis-consistency-protocol.md +0 -68
  177. package/seeds/specs/hard/backend/24-external-integration-resilience-protocol.md +0 -68
  178. package/seeds/specs/hard/backend/25-async-job-scheduler-protocol.md +0 -68
  179. package/seeds/specs/hard/backend/26-engineering-tooling-protocol.md +0 -68
  180. package/seeds/specs/hard/backend/27-dependency-supply-chain-protocol.md +0 -68
  181. package/seeds/specs/hard/backend/28-testing-protocol.md +0 -68
  182. package/seeds/specs/hard/backend/29-observability-logging-tracing-protocol.md +0 -68
  183. package/seeds/specs/hard/backend/30-performance-capacity-protocol.md +0 -68
  184. package/seeds/specs/hard/backend/31-runtime-deployment-protocol.md +0 -68
  185. package/seeds/specs/hard/backend/32-release-versioning-rollback-protocol.md +0 -68
  186. package/seeds/specs/hard/backend/index.md +0 -177
  187. package/seeds/specs/hard/frontend/01-development-checklist-protocol.md +0 -86
  188. package/seeds/specs/hard/frontend/02-ai-generated-code-protocol.md +0 -82
  189. package/seeds/specs/hard/frontend/03-acceptance-gate-protocol.md +0 -86
  190. package/seeds/specs/hard/frontend/05-environment-configuration-protocol.md +0 -80
  191. package/seeds/specs/hard/frontend/06-change-governance-protocol.md +0 -90
  192. package/seeds/specs/hard/frontend/07-frontend-backend-communication-protocol.md +0 -219
  193. package/seeds/specs/hard/frontend/08-role-responsibility-protocol.md +0 -80
  194. package/seeds/specs/hard/frontend/09-module-boundary-protocol.md +0 -81
  195. package/seeds/specs/hard/frontend/10-engineering-tooling-protocol.md +0 -89
  196. package/seeds/specs/hard/frontend/11-dependency-package-management-protocol.md +0 -87
  197. package/seeds/specs/hard/frontend/12-business-rules-protocol.md +0 -79
  198. package/seeds/specs/hard/frontend/13-monetary-precision-protocol.md +0 -81
  199. package/seeds/specs/hard/frontend/14-data-model-protocol.md +0 -85
  200. package/seeds/specs/hard/frontend/15-request-api-protocol.md +0 -87
  201. package/seeds/specs/hard/frontend/16-error-handling-protocol.md +0 -79
  202. package/seeds/specs/hard/frontend/17-permission-protocol.md +0 -79
  203. package/seeds/specs/hard/frontend/18-state-management-protocol.md +0 -88
  204. package/seeds/specs/hard/frontend/19-cache-protocol.md +0 -79
  205. package/seeds/specs/hard/frontend/20-testing-protocol.md +0 -88
  206. package/seeds/specs/hard/frontend/21-design-system-protocol.md +0 -79
  207. package/seeds/specs/hard/frontend/22-theme-protocol.md +0 -79
  208. package/seeds/specs/hard/frontend/23-accessibility-protocol.md +0 -189
  209. package/seeds/specs/hard/frontend/24-component-protocol.md +0 -80
  210. package/seeds/specs/hard/frontend/25-page-structure-protocol.md +0 -79
  211. package/seeds/specs/hard/frontend/26-style-layout-protocol.md +0 -80
  212. package/seeds/specs/hard/frontend/27-rendering-state-protocol.md +0 -81
  213. package/seeds/specs/hard/frontend/28-form-protocol.md +0 -88
  214. package/seeds/specs/hard/frontend/29-routing-url-protocol.md +0 -79
  215. package/seeds/specs/hard/frontend/30-data-grid-protocol.md +0 -83
  216. package/seeds/specs/hard/frontend/32-file-import-export-protocol.md +0 -80
  217. package/seeds/specs/hard/frontend/33-release-versioning-protocol.md +0 -79
  218. package/seeds/specs/hard/frontend/34-monitoring-logging-protocol.md +0 -128
  219. package/seeds/specs/hard/frontend/35-mock-protocol.md +0 -97
  220. package/seeds/specs/hard/frontend/36-feature-flag-protocol.md +0 -79
  221. package/seeds/specs/hard/frontend/37-browser-device-compatibility-protocol.md +0 -83
  222. package/seeds/specs/hard/frontend/39-copywriting-protocol.md +0 -79
  223. package/seeds/specs/hard/frontend/40-analytics-protocol.md +0 -98
  224. package/seeds/specs/hard/frontend/41-design-handoff-protocol.md +0 -80
  225. package/seeds/specs/hard/frontend/42-browser-runtime-lifecycle-protocol.md +0 -86
  226. package/seeds/specs/hard/frontend/43-time-temporal-protocol.md +0 -86
  227. package/seeds/specs/hard/frontend/44-privacy-data-lifecycle-protocol.md +0 -87
  228. package/seeds/specs/hard/frontend/45-browser-storage-protocol.md +0 -87
  229. package/seeds/specs/hard/frontend/index.md +0 -308
@@ -0,0 +1,331 @@
1
+ ---
2
+ seed_source: packages/cli/seeds/aggregation-manifest.json
3
+ seed_source_sha256: 039b637ccffacdfe3ce30d85e193f4b38928fcdfb16efdc4eb255e35e05af91f
4
+ seed_version: B7-THEME
5
+ lane: [backend]
6
+ status: CURRENT
7
+ authority_scope: mixed_required_and_advisory
8
+ applies_to: [backend]
9
+ related_evidence_specs: []
10
+ related_tools: []
11
+ legacy_id: theme:integration-and-async-runtime
12
+ criticality: critical # 聚合注记:取源最高;info 性注记非执行语义
13
+ injection_mode: triggered # 聚合注记:来源同值;info 性注记非执行语义
14
+ stages: [prepare, implement, check, release] # 聚合注记:来源 stages 并集;info 性注记非执行语义
15
+ triggers: [external-integration, resilience, async-job, scheduler, import-export, runtime, deployment, configuration] # 聚合注记:来源 triggers 并集;info 性注记非执行语义
16
+ requires: [] # 聚合注记:来源 requires 并集(全空)
17
+ x-aggregation: # 聚合来源(D6):逐源 vendor pin(sha256 与卡 vendor_pin 同值)
18
+ - seed_source: pomaster/components/backend-hard-spec/assets/universal/24-external-integration-resilience-protocol.md
19
+ sha256: e6b0626c9169e9126319bd08ee5d5bdbe38421cfa175509524145aee30ff539a
20
+ seed_version: B6C
21
+ - seed_source: pomaster/components/backend-hard-spec/assets/universal/25-async-job-scheduler-protocol.md
22
+ sha256: 36af3b4466b4e617a9c552a404d98ab74604752b7410e15756d7f132394fb980
23
+ seed_version: B6C
24
+ - seed_source: pomaster/components/backend-hard-spec/assets/universal/31-runtime-deployment-protocol.md
25
+ sha256: c791451de0be3aa0629fd562e2b43cc54066e4b10d786264fa7a333c561ef23a
26
+ seed_version: B6C
27
+ x-language-sections: # 语言节同步源(R-J 资产层唯一权威;注入面为同步副本)
28
+ - overlay: pomaster/components/backend-hard-spec/assets/stacks/spring-webflux/spring-webflux-reactive-overlay.md
29
+ sha256: 4d2045c5bfa66004516dffa55e965e90958270adba9599f116990ac27cc489f8
30
+ attach: primary
31
+ - overlay: pomaster/components/backend-hard-spec/assets/stacks/spring-batch/spring-batch-job-overlay.md
32
+ sha256: 58f710fcfeeaeafcaa19fd4ef27bce22c3c34d8d1ef7992f95f65a3e1bd9cd78
33
+ attach: primary
34
+ - overlay: pomaster/components/backend-hard-spec/assets/stacks/tomcat/tomcat-runtime-overlay.md
35
+ sha256: 133f15dbb7866e9e06cecf4e2cfcc2b2f14eeb06d9ea3d29be68c9e11cdd1e11
36
+ attach: primary
37
+ - overlay: pomaster/components/backend-hard-spec/assets/stacks/nginx/nginx-proxy-overlay.md
38
+ sha256: 442da24b2bb5274003978636cf793bae02b25f24aa080fcc926c5347da39ce19
39
+ attach: primary
40
+ - overlay: pomaster/components/backend-hard-spec/assets/stacks/kubernetes-ingress/kubernetes-ingress-overlay.md
41
+ sha256: 4369b51a677453c24b5ec4d4b97001c91932918fc779c55562012ebc6b312bf5
42
+ attach: primary
43
+ - overlay: pomaster/components/backend-hard-spec/assets/stacks/messaging/messaging-reliability-overlay.md
44
+ sha256: ed7f82208521675510ab4a42b229f9be269a52514cf5188c9bf83323d7590572
45
+ attach: primary
46
+ ---
47
+
48
+ # 集成与异步运行时
49
+
50
+ > **聚合纪律**:本文档 12 节正文规则行逐字取自 frontmatter x-aggregation 所列来源协议(节内按「端 → 源编号升序」以加粗来源行分块,源内标题与层级原样保留),零新增、零改写、零删除;新增文本仅限文档标题、本注记与逐节来源行。
51
+ 文末「语言与栈节」为 stacks overlay 资产 Scope/Rules/Checklist 的逐字节同步副本(标题降 2 级,正文零改动)——资产层为唯一权威,改规则只改 overlay、本区随同步。
52
+
53
+ ## Scope
54
+
55
+ **源:BE 24 外部集成与韧性协议(pomaster/components/backend-hard-spec/assets/universal/24-external-integration-resilience-protocol.md)**
56
+
57
+ 规范外部契约、超时、重试、熔断、补偿、对账和供应方故障。
58
+
59
+ **源:BE 25 异步任务与调度协议(pomaster/components/backend-hard-spec/assets/universal/25-async-job-scheduler-protocol.md)**
60
+
61
+ 规范 Job 生命周期、进度、取消、重试、调度锁、结果与保留。
62
+
63
+ **源:BE 31 运行时与部署协议(pomaster/components/backend-hard-spec/assets/universal/31-runtime-deployment-protocol.md)**
64
+
65
+ 规范部署单元、实例、网络、TLS、代理头、健康检查、容器与运行时加固。
66
+
67
+ ## Non-Scope
68
+
69
+ **源:BE 24 外部集成与韧性协议**
70
+
71
+ 不发明供应方 SLA、字段或错误语义。
72
+
73
+ **源:BE 25 异步任务与调度协议**
74
+
75
+ 不绑定具体调度器、队列或批处理框架。
76
+
77
+ **源:BE 31 运行时与部署协议**
78
+
79
+ 不默认选择 Nginx、Ingress、Tomcat、容器平台或具体 JVM 参数。
80
+
81
+ ## Terms
82
+
83
+ **源:BE 24 外部集成与韧性协议**
84
+
85
+ 补偿用于处理无法由单一原子事务覆盖的已发生副作用。
86
+
87
+ **源:BE 25 异步任务与调度协议**
88
+
89
+ Job instance 是由稳定业务参数标识的一次可追踪执行意图。
90
+
91
+ **源:BE 31 运行时与部署协议**
92
+
93
+ 部署拓扑描述入口链路、信任边界、运行单元、状态依赖与观测链路。
94
+
95
+ ## MUST
96
+
97
+ **源:BE 24 外部集成与韧性协议 · §MUST**
98
+
99
+ - 每个外部调用必须定义超时、重试条件、幂等、失败映射和恢复路径。
100
+
101
+ **源:BE 25 异步任务与调度协议 · §MUST**
102
+
103
+ - 任务必须定义身份、状态、幂等、重试、取消、超时和结果访问。
104
+
105
+ **源:BE 31 运行时与部署协议 · §MUST**
106
+
107
+ - 必须记录真实打包、启动、端口、协议、实例、状态依赖和配置来源。
108
+
109
+ ## MUST NOT
110
+
111
+ **源:BE 24 外部集成与韧性协议 · §MUST NOT**
112
+
113
+ - 不得无限重试、重试非幂等操作或在事务内执行无界调用。
114
+
115
+ **源:BE 25 异步任务与调度协议 · §MUST NOT**
116
+
117
+ - 不得用固定 sleep、无主线程或无状态记录的后台执行承载关键任务。
118
+
119
+ **源:BE 31 运行时与部署协议 · §MUST NOT**
120
+
121
+ - 不得把开发机拓扑、默认端口或未验证容器行为当作生产事实。
122
+
123
+ ## SHOULD
124
+
125
+ **源:BE 24 外部集成与韧性协议 · §SHOULD**
126
+
127
+ - 应采用隔离、熔断、限流、降级与对账控制故障扩散。
128
+
129
+ **源:BE 25 异步任务与调度协议 · §SHOULD**
130
+
131
+ - 应支持进度、心跳、并发限制、失败恢复和过期清理。
132
+
133
+ **源:BE 31 运行时与部署协议 · §SHOULD**
134
+
135
+ - 应支持优雅启动停止、健康检查、滚动发布、最小权限和故障隔离。
136
+
137
+ ## Contract
138
+
139
+ **源:BE 24 外部集成与韧性协议 · §Contract**
140
+
141
+ 集成契约必须记录版本、认证、请求响应、错误、限额、追踪与所有者。
142
+
143
+ **源:BE 25 异步任务与调度协议 · §Contract**
144
+
145
+ 任务契约必须包含触发源、参数、状态机、输出、错误、保留和权限。
146
+
147
+ **源:BE 31 运行时与部署协议 · §Contract**
148
+
149
+ 部署设计必须包含入口、网络、信任、依赖、扩缩容、恢复和证据。
150
+
151
+ ## Checklist
152
+
153
+ **源:BE 24 外部集成与韧性协议 · §Checklist**
154
+
155
+ - [ ] 超时、限流、部分失败、重复响应和供应方中断已测试。
156
+
157
+ **源:BE 25 异步任务与调度协议 · §Checklist**
158
+
159
+ - [ ] 重复触发、节点崩溃、接管、取消、重跑与过期已测试。
160
+
161
+ **源:BE 31 运行时与部署协议 · §Checklist**
162
+
163
+ - [ ] 多实例、代理链、TLS、健康、配置、日志与回滚已演练。
164
+
165
+ ## Examples
166
+
167
+ **源:BE 24 外部集成与韧性协议 · §Examples**
168
+
169
+ - 写入本地意图后异步调用供应方,并通过状态机与对账收敛。
170
+
171
+ **源:BE 25 异步任务与调度协议 · §Examples**
172
+
173
+ - 导出任务返回 job ID,调用方查询状态并从受权地址下载结果。
174
+
175
+ **源:BE 31 运行时与部署协议 · §Examples**
176
+
177
+ - 明确 Ingress 到 Service 再到应用的代理头与健康检查责任。
178
+
179
+ ## Anti-patterns
180
+
181
+ **源:BE 24 外部集成与韧性协议 · §Anti-patterns**
182
+
183
+ - 捕获外部异常后记录日志并返回业务成功。
184
+
185
+ **源:BE 25 异步任务与调度协议 · §Anti-patterns**
186
+
187
+ - 调度表达式重叠时并发执行同一不可重入任务。
188
+
189
+ **源:BE 31 运行时与部署协议 · §Anti-patterns**
190
+
191
+ - 应用无条件信任任意来源的 `X-Forwarded-*`。
192
+
193
+ ## Ownership
194
+
195
+ **源:BE 24 外部集成与韧性协议 · §Ownership**
196
+
197
+ 集成 Owner 维护供应方契约,业务 Owner 决定降级与补偿语义。
198
+
199
+ **源:BE 25 异步任务与调度协议 · §Ownership**
200
+
201
+ 任务 Owner 定义生命周期,运行平台提供调度与执行证据。
202
+
203
+ **源:BE 31 运行时与部署协议 · §Ownership**
204
+
205
+ Backend 拥有应用运行契约,平台角色拥有受控部署环境。
206
+
207
+ ## Change Policy
208
+
209
+ **源:BE 24 外部集成与韧性协议 · §Change Policy**
210
+
211
+ 供应方版本或认证变化必须经过兼容窗口和演练。
212
+
213
+ **源:BE 25 异步任务与调度协议 · §Change Policy**
214
+
215
+ 参数或状态变化必须兼容历史任务和进行中的执行。
216
+
217
+ **源:BE 31 运行时与部署协议 · §Change Policy**
218
+
219
+ 拓扑或打包变化必须同步技术基线、发布方案与运行验证。
220
+
221
+ ## 语言与栈节(overlay 资产同步区)
222
+
223
+ > 本区各小节 = stacks/ overlay 资产 Scope/Rules/Checklist 的**逐字节同步副本**(标题降 2 级,正文零改动)。资产层(overlay 文件,catalog 在册、research 锚、bound 语义挂点)为唯一权威;本区为注入面副本,改规则只改 overlay、本区随同步。x-research-anchors 留在 overlay 资产 frontmatter,不复制进本主题文档(防双锚漂移)。
224
+
225
+ ### spring-webflux(源:stacks/spring-webflux/spring-webflux-reactive-overlay.md · B02 主挂点)
226
+
227
+ #### Scope
228
+
229
+ 本 Overlay 具体化响应式请求链、背压、调度器和非阻塞边界。
230
+
231
+ #### Rules
232
+
233
+ - 必须识别并隔离阻塞 I/O,不得在事件循环中执行不可控阻塞操作。
234
+ - 必须验证取消、超时、背压和上下文传播。
235
+ - 与 Spring MVC 并存时必须记录模块、端口或应用边界。
236
+
237
+ #### Checklist
238
+
239
+ - [ ] Java 与 Spring Boot 依赖已显式选择。
240
+ - [ ] 阻塞边界与容量证据可复核。
241
+
242
+
243
+ ### spring-batch(源:stacks/spring-batch/spring-batch-job-overlay.md · B02 主挂点)
244
+
245
+ #### Scope
246
+
247
+ 本 Overlay 具体化 Job、Step、重启、分片、元数据和批处理事务边界。
248
+
249
+ #### Rules
250
+
251
+ - 作业参数、实例身份、重启语义和幂等边界必须稳定。
252
+ - 分片、重试、跳过和失败恢复必须有数据一致性证据。
253
+ - 调度系统与 Spring Batch 的职责必须分开记录。
254
+
255
+ #### Checklist
256
+
257
+ - [ ] Java 与 Spring Boot 依赖已显式选择。
258
+ - [ ] 重跑、取消、并发和结果保留策略已验证。
259
+
260
+
261
+ ### tomcat(源:stacks/tomcat/tomcat-runtime-overlay.md · B02 主挂点)
262
+
263
+ #### Scope
264
+
265
+ 本 Overlay 具体化 embedded 与 external Tomcat 的连接器、线程、部署和加固边界。
266
+
267
+ #### Rules
268
+
269
+ - 必须在技术基线中明确 embedded 或 external,以及 JAR 或 WAR。
270
+ - 连接器、代理头、线程和请求限制必须与入口及容量方案一致。
271
+ - 不得把本地启动形态当作生产运行事实。
272
+
273
+ #### Checklist
274
+
275
+ - [ ] Java 依赖已显式选择。
276
+ - [ ] 容器版本、打包、配置来源和运行证据一致。
277
+
278
+
279
+ ### nginx(源:stacks/nginx/nginx-proxy-overlay.md · B02 主挂点)
280
+
281
+ #### Scope
282
+
283
+ 本 Overlay 具体化 TLS 终止、代理头、超时、上传限制和入口路由边界。
284
+
285
+ #### Rules
286
+
287
+ - 必须声明可信代理链、原始客户端地址与协议头的处理方式。
288
+ - 超时、body 限制和缓冲策略必须与应用行为一致。
289
+ - 与 Kubernetes Ingress 并存时必须记录完整入口链路与各自责任。
290
+
291
+ #### Checklist
292
+
293
+ - [ ] 配置语法、路由、TLS 与健康检查有可复核证据。
294
+ - [ ] 默认页、管理面和敏感头未意外暴露。
295
+
296
+
297
+ ### kubernetes-ingress(源:stacks/kubernetes-ingress/kubernetes-ingress-overlay.md · B02 主挂点)
298
+
299
+ #### Scope
300
+
301
+ 本 Overlay 具体化集群入口、Service 路由、TLS、annotation 与健康检查边界。
302
+
303
+ #### Rules
304
+
305
+ - 必须记录实际 Ingress Controller、入口类和可信代理链。
306
+ - annotation 与超时不得依赖未审计的集群默认值。
307
+ - 与 Nginx 并存时必须记录完整入口链路与各自责任。
308
+
309
+ #### Checklist
310
+
311
+ - [ ] manifest、路由、证书和回滚路径可复核。
312
+ - [ ] 控制器特有行为已在项目技术基线中声明。
313
+
314
+
315
+ ### messaging(源:stacks/messaging/messaging-reliability-overlay.md · B02 主挂点)
316
+
317
+ #### Scope
318
+
319
+ 本 Overlay 具体化消息契约、投递、消费、重试、死信与可观测边界。
320
+
321
+ #### Rules
322
+
323
+ - topic、事件 schema、版本、顺序和重复投递语义必须明确。
324
+ - 消费者必须按契约处理幂等、毒消息、重试和死信。
325
+ - 不得把 broker 可用性等同于业务处理成功。
326
+
327
+ #### Checklist
328
+
329
+ - [ ] 生产、消费、补偿和对账证据可关联。
330
+ - [ ] 敏感数据、保留期和权限符合安全与隐私协议。
331
+
@@ -1,37 +1,73 @@
1
1
  ---
2
- seed_source: pomaster/components/frontend-hard-spec/assets/universal/38-internationalization-protocol.md
3
- seed_source_sha256: 68ed4e126042eee191f071786d58983b3b2df94a826a13b50fc52aaa6536c7fa
4
- seed_version: B6B-2
5
- lane: frontend
2
+ seed_source: packages/cli/seeds/aggregation-manifest.json
3
+ seed_source_sha256: 039b637ccffacdfe3ce30d85e193f4b38928fcdfb16efdc4eb255e35e05af91f
4
+ seed_version: B7-THEME
5
+ lane: [frontend]
6
6
  status: CURRENT
7
7
  authority_scope: mixed_required_and_advisory
8
8
  applies_to: [frontend]
9
9
  related_evidence_specs: []
10
10
  related_tools: []
11
+ legacy_id: theme:internationalization-and-copywriting
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/38-internationalization-protocol.md
19
+ sha256: 68ed4e126042eee191f071786d58983b3b2df94a826a13b50fc52aaa6536c7fa
20
+ seed_version: B6B-2
21
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/39-copywriting-protocol.md
22
+ sha256: 5df3a2ddcd1140b2e62dd80f547cf6c0197c44a91ebbdda02ded44bcaefed351
23
+ seed_version: B6B-2
11
24
  ---
12
25
 
13
- # 38 国际化协议
26
+ # 国际化与文案
27
+
28
+ > **聚合纪律**:本文档 12 节正文规则行逐字取自 frontmatter x-aggregation 所列来源协议(节内按「端 → 源编号升序」以加粗来源行分块,源内标题与层级原样保留),零新增、零改写、零删除;新增文本仅限文档标题、本注记与逐节来源行。
14
29
 
15
30
  ## Scope
16
31
 
32
+ **源:FE 38 国际化协议(pomaster/components/frontend-hard-spec/assets/universal/38-internationalization-protocol.md)**
33
+
17
34
  P2。定义前端多语言机制:locale 标识与切换、文案外置与 key 命名、ICU MessageFormat、日期/时间/时区/相对时间、数字/货币/百分比/单位、列表/排序/搜索、RTL 与双向文本、文本膨胀与排版、图片/图标/颜色文化适配、翻译工作流与字典管理、SSR hydration 一致性、第三方 SDK / 浏览器原生文案 / 后端错误文案的本地化。
18
35
 
36
+ **源:FE 39 文案协议(pomaster/components/frontend-hard-spec/assets/universal/39-copywriting-protocol.md)**
37
+
38
+ P2。定义按钮、确认、成功、错误、空态、删除、导入导出和高风险操作文案。
39
+
19
40
  ## Non-Scope
20
41
 
42
+ **源:FE 38 国际化协议**
43
+
21
44
  - 不翻译用户数据、不定义业务文案内容质量(语气/术语/voice)—— 见 `39-copywriting-protocol.md`。
22
45
  - 不定义金额精度、业务时区、合规区域本身。
23
46
  - 不替代 CLDR/Intl API 的实现细节,只规定必须使用的决策、契约和证据。
24
47
 
48
+ **源:FE 39 文案协议**
49
+
50
+ 不定义业务规则和错误码,不允许文案隐藏系统行为。
51
+
25
52
  ## Terms
26
53
 
54
+ **源:FE 38 国际化协议**
55
+
27
56
  - Locale:IETF BCP 47 语言标签(如 `zh-CN`、`en-US`、`ja-JP`、`ar-SA`),决定语言、格式、排序、方向和数字系统。
28
57
  - Translation Key:稳定文案标识,不随目标语言变化。
29
58
  - Formatter Registry:日期、时间、数字、金额、百分比、币种、单位、枚举和空值显示的唯一策略源。
30
59
  - RTL:Right-to-Left 文本方向;LTR:Left-to-Right。
31
60
  - ICU MessageFormat:Unicode ICU MessageFormat 2.0,用于复数、select、ordinal、offset 和命名占位符。
32
61
 
62
+ **源:FE 39 文案协议**
63
+
64
+ - Actionable Copy:说明发生什么、影响什么和下一步的文案。
65
+ - Risk Copy:明确不可逆性、对象和后果的文案。
66
+
33
67
  ## MUST
34
68
 
69
+ **源:FE 38 国际化协议 · §MUST**
70
+
35
71
  - 明确支持 locale 列表、默认 locale 和完整回退链(如 `zh-CN` → `zh` → `en-US`)。
36
72
  - 使用 IETF BCP 47 语言标签标识 locale;禁止手写 `zh`、`cn`、`en` 等不精确别名。
37
73
  - locale 切换后所有已渲染的格式化值同步刷新,不允许旧 locale 残留。
@@ -89,8 +125,19 @@ P2。定义前端多语言机制:locale 标识与切换、文案外置与 key
89
125
  - **feature 层 — 页面级 i18n 契约**:页面声明支持的 locale、RTL 需求、key namespace、第三方 SDK locale 矩阵。MUST NOT 页面本地拼接日期/货币/列表格式。
90
126
  - **shared 层 — 组件级 i18n 内置**:公共组件内置文案外置、RTL 兼容、logical properties、图标方向翻转、可本地化空态。MUST NOT 组件内部硬编码自然语言或假设 LTR。
91
127
 
128
+ **源:FE 39 文案协议 · §MUST**
129
+
130
+ - 按钮使用明确动作和对象。
131
+ - 错误说明发生内容、可恢复性和下一步。
132
+ - 空态区分无数据与筛选无结果。
133
+ - 高风险确认明确对象、后果和是否可恢复。
134
+ - 导入导出说明范围、进度、部分成功和结果有效期。
135
+ - 同类操作使用同一名称和语气。
136
+
92
137
  ## MUST NOT
93
138
 
139
+ **源:FE 38 国际化协议 · §MUST NOT**
140
+
94
141
  - MUST NOT 各页面自行格式化数据。
95
142
  - MUST NOT 用中文/英文标题作为程序 key。
96
143
  - MUST NOT 复制组件实现多语言。
@@ -115,8 +162,17 @@ P2。定义前端多语言机制:locale 标识与切换、文案外置与 key
115
162
  - MUST NOT 在服务端 render 中读取 `window.navigator.language`。
116
163
  - MUST NOT 将未本地化的第三方错误文案直接呈现给用户。
117
164
 
165
+ **源:FE 39 文案协议 · §MUST NOT**
166
+
167
+ - MUST NOT 直接展示后端原始 message 或技术堆栈。
168
+ - MUST NOT 高风险操作只写“确定吗”。
169
+ - MUST NOT 用颜色或感叹号代替清晰说明。
170
+ - MUST NOT 用模糊“操作”“处理”隐藏动作。
171
+
118
172
  ## SHOULD
119
173
 
174
+ **源:FE 38 国际化协议 · §SHOULD**
175
+
120
176
  - SHOULD 支持缺失 key 检测和伪本地化。
121
177
  - SHOULD 明确存储时区与显示时区。
122
178
  - SHOULD 提供 locale 协商:URL > 用户显式选择 > Cookie > `Accept-Language` > 默认。
@@ -130,8 +186,15 @@ P2。定义前端多语言机制:locale 标识与切换、文案外置与 key
130
186
  - SHOULD 在关键错误/空态使用自定义组件替代浏览器原生 `alert()` / `confirm()`。
131
187
  - SHOULD 维护第三方 SDK locale/RTL 兼容性矩阵。
132
188
 
189
+ **源:FE 39 文案协议 · §SHOULD**
190
+
191
+ - SHOULD 简洁、专业、可行动。
192
+ - SHOULD 复用文案模板和错误码映射。
193
+
133
194
  ## Contract
134
195
 
196
+ **源:FE 38 国际化协议 · §Contract**
197
+
135
198
  ```text
136
199
  Locale, Fallback, KeyNamespace, DateTimePolicy,
137
200
  NumberPolicy, CurrencyPolicy, UnitPolicy, EnumPolicy, EmptyPolicy,
@@ -160,8 +223,17 @@ Examples, Owner, Version
160
223
  - Category 至少覆盖 date、time、datetime、number、money、percent、currency、unit、enum、empty。
161
224
  - 每个页面或组件必须通过 registry 中声明的 formatter 输出值,禁止本地拼接格式。
162
225
 
226
+ **源:FE 39 文案协议 · §Contract**
227
+
228
+ ```text
229
+ Scenario, Title, Message, PrimaryAction,
230
+ SecondaryAction, Consequence, Recoverability, TraceDisplay
231
+ ```
232
+
163
233
  ## Checklist
164
234
 
235
+ **源:FE 38 国际化协议 · §Checklist**
236
+
165
237
  - [ ] locale 列表、默认 locale、回退链和 locale 协商策略已明确。
166
238
  - [ ] 文案外置,无硬编码自然语言;key 使用稳定命名空间标识。
167
239
  - [ ] 插值使用命名占位符,HTML 输出经显式标记和安全审查。
@@ -177,8 +249,17 @@ Examples, Owner, Version
177
249
  - [ ] 后端错误 message 映射为翻译 key;第三方 SDK locale/RTL 矩阵已维护。
178
250
  - [ ] 分层国际化责任已按 app/platform/api/domain/feature/shared 分担。
179
251
 
252
+ **源:FE 39 文案协议 · §Checklist**
253
+
254
+ - [ ] 动作和对象明确。
255
+ - [ ] 风险与恢复清晰。
256
+ - [ ] 同类文案一致。
257
+ - [ ] 无原始技术信息。
258
+
180
259
  ## Examples
181
260
 
261
+ **源:FE 38 国际化协议 · §Examples**
262
+
182
263
  ### locale 切换保留 URL state
183
264
 
184
265
  ```text
@@ -220,8 +301,16 @@ margin-left: 1rem;
220
301
  前端显示: t('error.ORDER.OUT_OF_STOCK') -> "库存不足,无法完成订单。"
221
302
  ```
222
303
 
304
+ **源:FE 39 文案协议 · §Examples**
305
+
306
+ ### 内容示例,可删除
307
+
308
+ “该数据已被其他人更新。请比较最新版本后重新提交。”
309
+
223
310
  ## Anti-patterns
224
311
 
312
+ **源:FE 38 国际化协议 · §Anti-patterns**
313
+
225
314
  - 模板拼接币种和单位,切换语言后顺序、间距和小数规则错误。
226
315
  - 用 `if (count === 1)` 拼接单复数,阿拉伯语/俄语/波兰语分支错误。
227
316
  - 用 `{0}` 位置占位符,翻译调整语序后插值错位。
@@ -234,10 +323,28 @@ margin-left: 1rem;
234
323
  - 后端错误 message 直接展示给用户,暴露内部术语或英文。
235
324
  - SSR 服务端用默认 locale 渲染,客户端 hydration 后闪烁切换。
236
325
 
326
+ **源:FE 39 文案协议 · §Anti-patterns**
327
+
328
+ 系统异常只显示“失败!”,用户不知道对象、原因或下一步。
329
+
237
330
  ## Ownership
238
331
 
332
+ **源:FE 38 国际化协议 · §Ownership**
333
+
239
334
  产品/内容 Owner 维护语言范围和文化适配清单,i18n Owner 维护工具、key、Formatter Registry 和翻译工作流,领域 Owner 维护枚举语义和后端错误码映射,前端架构 Owner 维护 locale 切换、SSR hydration 和第三方 SDK 矩阵。
240
335
 
336
+ **源:FE 39 文案协议 · §Ownership**
337
+
338
+ 内容/产品 Owner 维护语气,领域 Owner 确认语义,前端负责正确映射。
339
+
241
340
  ## Change Policy
242
341
 
342
+ **源:FE 38 国际化协议 · §Change Policy**
343
+
243
344
  Key 改名先提供别名或迁移;新增 locale 必须补资源、格式、布局回归和 RTL 测试。Formatter Registry 策略变化须评估所有页面/组件影响;第三方 SDK locale/RTL 兼容性矩阵随 SDK 版本更新而更新。
345
+
346
+ **源:FE 39 文案协议 · §Change Policy**
347
+
348
+ 公共文案模板变化需评估全部场景;业务术语变化同步 i18n 和帮助内容。
349
+
350
+ > **语言节**:本主题无语言节挂点(缺席诚实);规则本体即上文通用节。