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,554 @@
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:page-composition-and-browser-environment
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/25-page-structure-protocol.md
19
+ sha256: 5fb926a798842262d7f87555e3e63e104c868a401eb27f3c1f899e677fdf5f4f
20
+ seed_version: B6B-2
21
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/27-rendering-state-protocol.md
22
+ sha256: a640bacd811e05a35075d96ffb99ba51b8b6e11cc2a5443e3bbca0eb124738e4
23
+ seed_version: B6B-2
24
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/28-form-protocol.md
25
+ sha256: 1359f0b753ece0f633b1aadea11e4ffd03dfc38f5b1f59e8cd869eba502e4807
26
+ seed_version: B6B-2
27
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/29-routing-url-protocol.md
28
+ sha256: 3066c383489e1cb72271fe48d4a716860c58381d90e46ee1b2f114c61010949e
29
+ seed_version: B6B-2
30
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/37-browser-device-compatibility-protocol.md
31
+ sha256: 81c0d4bf8996f6cf6b38d1c8514385065785728011222b524d73d8135703a3b3
32
+ seed_version: B6B-2
33
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/41-design-handoff-protocol.md
34
+ sha256: 335df4991a29eb77222b0596de5db7fcc0bd5d9019ecf9bf882a08cea74c1937
35
+ seed_version: B6B-2
36
+ - seed_source: pomaster/components/frontend-hard-spec/assets/universal/42-browser-runtime-lifecycle-protocol.md
37
+ sha256: b328c8b3bab2006254587143c634e17ff554d2f0103056d07edba5ffaba29fe1
38
+ seed_version: B6B-2
39
+ ---
40
+
41
+ # 页面构成与浏览器环境
42
+
43
+ > **聚合纪律**:本文档 12 节正文规则行逐字取自 frontmatter x-aggregation 所列来源协议(节内按「端 → 源编号升序」以加粗来源行分块,源内标题与层级原样保留),零新增、零改写、零删除;新增文本仅限文档标题、本注记与逐节来源行。
44
+
45
+ ## Scope
46
+
47
+ **源:FE 25 页面结构协议(pomaster/components/frontend-hard-spec/assets/universal/25-page-structure-protocol.md)**
48
+
49
+ P1。定义列表、详情、报表、工作台等页面类型的固定区域、顺序和交互容器。
50
+
51
+ **源:FE 27 渲染状态协议(pomaster/components/frontend-hard-spec/assets/universal/27-rendering-state-protocol.md)**
52
+
53
+ P1。定义 loading、refreshing、empty、error、permission、partial、offline、stale 和大数据状态。
54
+
55
+ **源:FE 28 表单协议(pomaster/components/frontend-hard-spec/assets/universal/28-form-protocol.md)**
56
+
57
+ P1。定义表单布局、模型、校验、联动、提交、回显、草稿、错误和冲突。
58
+
59
+ **源:FE 29 路由与 URL 协议(pomaster/components/frontend-hard-spec/assets/universal/29-routing-url-protocol.md)**
60
+
61
+ P1。定义路由命名、参数、URL 状态、返回恢复、守卫和异常页面。
62
+
63
+ **源:FE 37 浏览器与设备兼容协议(pomaster/components/frontend-hard-spec/assets/universal/37-browser-device-compatibility-protocol.md)**
64
+
65
+ P2。定义支持浏览器、设备、分辨率、缩放、输入方式和不支持环境提示。
66
+
67
+ **源:FE 41 设计交付协议(pomaster/components/frontend-hard-spec/assets/universal/41-design-handoff-protocol.md)**
68
+
69
+ P2。定义设计到代码的组件来源、token、状态、响应式、可访问性和验收交付。
70
+
71
+ **源:FE 42 浏览器运行时资源生命周期协议(pomaster/components/frontend-hard-spec/assets/universal/42-browser-runtime-lifecycle-protocol.md)**
72
+
73
+ P1。定义事件监听、计时器、动画帧、Observer、请求、流、长连接、Worker、对象 URL 和页面生命周期资源的所有权、暂停、恢复与释放。
74
+
75
+ ## Non-Scope
76
+
77
+ **源:FE 25 页面结构协议**
78
+
79
+ 不定义组件内部 API、具体视觉 token 或业务字段。
80
+
81
+ **源:FE 27 渲染状态协议**
82
+
83
+ 不定义后端错误码、业务状态机和具体文案风格。
84
+
85
+ **源:FE 28 表单协议**
86
+
87
+ 不定义具体业务字段和后端权威规则,不替代页面结构。
88
+
89
+ **源:FE 29 路由与 URL 协议**
90
+
91
+ 不定义页面内部布局、权限来源和全局状态库。
92
+
93
+ **源:FE 37 浏览器与设备兼容协议**
94
+
95
+ 不要求所有项目支持移动端或旧浏览器,不替代响应式布局协议。
96
+
97
+ **源:FE 41 设计交付协议**
98
+
99
+ 不允许设计稿覆盖正式组件 API、安全、业务规则和工程边界。
100
+
101
+ **源:FE 42 浏览器运行时资源生命周期协议**
102
+
103
+ 不规定具体框架的生命周期 API,不替代请求重试、缓存新鲜度或后端连接治理。
104
+
105
+ ## Terms
106
+
107
+ **源:FE 25 页面结构协议**
108
+
109
+ - Page Type:有稳定目标和结构的页面类别。
110
+ - Page Contract:页面 key、结构、权限、状态和导航契约。
111
+ - Region:Header、Context、Search、Toolbar、Main、SidePanel、Footer 等区域。
112
+
113
+ **源:FE 27 渲染状态协议**
114
+
115
+ - Initial Loading:首次无可用内容加载。
116
+ - Background Refresh:保留已有内容的刷新。
117
+ - Partial Success:部分对象成功、部分失败。
118
+ - Stale Data:仍可展示但可能过期的数据。
119
+
120
+ **源:FE 28 表单协议**
121
+
122
+ - FormModel:独立于 DTO 的编辑模型。
123
+ - Dirty State:当前值偏离初始值。
124
+ - Field Error:绑定具体字段的错误。
125
+
126
+ **源:FE 29 路由与 URL 协议**
127
+
128
+ - Route Contract:name、path、meta 和页面 key 的稳定定义。
129
+ - Shareable State:刷新、分享、返回后应恢复的状态。
130
+ - Ephemeral State:弹窗、hover、未提交输入等临时状态。
131
+
132
+ **源:FE 37 浏览器与设备兼容协议**
133
+
134
+ - Support Matrix:正式支持并测试的环境组合。
135
+ - Graceful Degradation:能力不足时的安全降级。
136
+ - Unsupported Environment:明确不提供质量承诺的环境。
137
+
138
+ **源:FE 41 设计交付协议**
139
+
140
+ - Design Handoff:可供实现和验收的完整设计交付。
141
+ - State Matrix:默认、加载、空、错误、权限、禁用、长文本和小屏等状态。
142
+ - Design Source:设计系统组件和 token 的唯一来源。
143
+
144
+ **源:FE 42 浏览器运行时资源生命周期协议**
145
+
146
+ - Runtime Resource:必须显式取得并释放的浏览器资源或异步工作。
147
+ - Resource Owner:唯一负责创建、暂停、恢复和销毁资源的作用域。
148
+ - Obsolete Work:页面、参数、身份或权限上下文变化后已不再有效的异步工作。
149
+ - Page Lifecycle:页面可见、隐藏、冻结、恢复、前进后退缓存和销毁等状态。
150
+
151
+ ## MUST
152
+
153
+ **源:FE 25 页面结构协议 · §MUST**
154
+
155
+ - 新页面先选择 Page Type 和 Page Contract。
156
+ - 每类页面定义标题、面包屑、筛选、工具栏、主体、分页和详情位置。
157
+ - 主次操作、批量操作和状态信息位置一致。
158
+ - 抽屉、弹窗和路由跳转有选择规则。
159
+ - 同类页面共性问题在共享结构层修复。
160
+
161
+ **源:FE 27 渲染状态协议 · §MUST**
162
+
163
+ - 页面覆盖非理想状态并定义优先级。
164
+ - 首屏骨架保持主要布局尺寸。
165
+ - empty 区分无数据与筛选无结果。
166
+ - error、permission 和 offline 提供恢复动作。
167
+ - partial success 提供成功/失败/跳过数量和明细。
168
+ - 弹层声明销毁、保留、dirty 和关闭策略。
169
+
170
+ **源:FE 28 表单协议 · §MUST**
171
+
172
+ - 使用独立 FormModel 和 typed schema。
173
+ - 必填、只读、自动计算、回填和无权限字段可区分。
174
+ - 前端先做格式校验,后端字段错误定位并聚焦字段。
175
+ - 提交防重复并保留失败输入。
176
+ - 联动规则集中可测试,隐藏字段清值策略明确。
177
+ - dirty 离开、草稿隔离和版本冲突有策略。
178
+ - 每个输入必须有持久可见且程序化关联的标签、格式说明和必要性提示;placeholder 不得替代标签。
179
+ - 校验错误必须与字段程序化关联,并在可行时给出修复建议;错误摘要必须能导航到对应字段。
180
+ - 姓名、地址、联系方式、认证等常见字段必须使用语义正确的 autocomplete/inputmode 等浏览器提示,除非有明确的安全或业务理由。
181
+ - 同一流程已提供的数据必须复用或允许用户确认,避免重复录入;删除、提交、转账等高风险动作必须提供复核、确认、撤销或等效防错。
182
+
183
+ **源:FE 29 路由与 URL 协议 · §MUST**
184
+
185
+ - 每个页面路由有稳定 name、path、page key、title、权限和布局 meta。
186
+ - 分页、筛选、排序、tab 等 Shareable State 进入 URL。
187
+ - Query 有 schema、默认值、解析失败兜底和版本策略。
188
+ - 返回恢复分页、筛选、排序和必要视图状态。
189
+ - 401、403、404、500 和资源删除有统一路由策略。
190
+
191
+ **源:FE 37 浏览器与设备兼容协议 · §MUST**
192
+
193
+ - 明确浏览器及最低版本、操作系统、设备和输入方式。
194
+ - 明确关键分辨率和 100%/125%/150% 等缩放矩阵。
195
+ - 关键流程在所有支持组合验证。
196
+ - 不支持环境提供可操作说明或安全降级。
197
+ - 使用能力检测而非脆弱 user-agent 业务判断。
198
+ - 支持矩阵必须覆盖关键 Web API 能力与约束,包括存储、权限、Worker、文件/媒体能力和长连接;能力缺失或被策略禁用时提供可测试降级。
199
+ - 页面必须兼容 `pagehide` / `pageshow`、可见性变化和 bfcache 恢复;恢复后重新校验连接、缓存、权限与数据新鲜度。
200
+
201
+ **源:FE 41 设计交付协议 · §MUST**
202
+
203
+ - 交付页面类型、组件来源、token、关键视口和交互流程。
204
+ - 提供完整 State Matrix,不只理想态。
205
+ - 标注响应式、长文本、缩放、键盘和焦点要求。
206
+ - 表格/报表交付列宽、固定列、大数据和导出状态。
207
+ - 设计变更有版本、原因、影响范围和通知。
208
+ - 设计验收同时检查可用性、可访问性和契约。
209
+
210
+ **源:FE 42 浏览器运行时资源生命周期协议 · §MUST**
211
+
212
+ - 每个 Runtime Resource 必须声明 Owner、创建条件、释放动作、暂停/恢复策略和失效触发器。
213
+ - `addEventListener`、计时器、动画帧、Observer、订阅、流、WebSocket、EventSource、BroadcastChannel、Worker 和对象 URL 必须有成对的移除、清除、断开、关闭、终止或撤销动作。
214
+ - 请求、异步计算和回调在作用域结束或上下文变化时必须取消;无法取消时必须在提交结果前验证当前请求、身份、权限和参数版本。
215
+ - 路由离开、组件销毁、注销、切换账号/租户、权限变化和功能关闭必须清理对应资源与敏感上下文。
216
+ - 页面隐藏、冻结或进入前进后退缓存时必须暂停无必要轮询和高频工作;恢复时重新验证数据新鲜度、连接状态和权限上下文。
217
+ - `beforeunload` 只能在确有未保存数据时动态注册,并在风险解除后移除。
218
+ - 重复进入、挂载、恢复或重试必须保持资源数量有界,并有自动化证据证明不会重复订阅或产生开放句柄。
219
+
220
+ ## MUST NOT
221
+
222
+ **源:FE 25 页面结构协议 · §MUST NOT**
223
+
224
+ - MUST NOT 新页面临场创造区域顺序。
225
+ - MUST NOT 把筛选、操作、表格和分页揉成不可复用单体。
226
+ - MUST NOT 让不同页面类型共享含糊结构。
227
+ - MUST NOT 绕过 Page Contract 创建路由页面。
228
+
229
+ **源:FE 27 渲染状态协议 · §MUST NOT**
230
+
231
+ - MUST NOT 只实现成功有数据状态。
232
+ - MUST NOT 后台刷新时清空已有内容。
233
+ - MUST NOT 用 Toast 代替页面或字段状态。
234
+ - MUST NOT 错误后不给恢复入口。
235
+
236
+ **源:FE 28 表单协议 · §MUST NOT**
237
+
238
+ - MUST NOT 直接绑定 DTO。
239
+ - MUST NOT 在 template 临时写业务校验。
240
+ - MUST NOT 提交失败清空输入。
241
+ - MUST NOT 用大量互相触发 watcher 实现联动。
242
+ - MUST NOT 只用颜色、图标、toast 或页面顶部文案表达字段错误。
243
+ - MUST NOT 禁止密码管理器或无理由阻止粘贴。
244
+
245
+ **源:FE 29 路由与 URL 协议 · §MUST NOT**
246
+
247
+ - MUST NOT 把 token、敏感信息、大对象和未提交表单放入 URL。
248
+ - MUST NOT 用标题字符串或 URL 截取判断菜单。
249
+ - MUST NOT 在页面直接修改全局路由表。
250
+ - MUST NOT 改 path/name 而不更新调用方。
251
+
252
+ **源:FE 37 浏览器与设备兼容协议 · §MUST NOT**
253
+
254
+ - MUST NOT 只在开发者默认环境验收。
255
+ - MUST NOT 未测试就宣称支持。
256
+ - MUST NOT 用缩小字体解决小屏。
257
+ - MUST NOT 为旧环境引入无人维护的大型 polyfill。
258
+ - MUST NOT 使用 `unload` 作为保存或清理的可靠信号;`beforeunload` 仅在存在未保存用户输入时按需注册并及时移除。
259
+
260
+ **源:FE 41 设计交付协议 · §MUST NOT**
261
+
262
+ - MUST NOT 未标注来源就要求新建相似组件。
263
+ - MUST NOT 用设计稿临时值覆盖 token。
264
+ - MUST NOT 只交付桌面理想成功态。
265
+ - MUST NOT 通过页面局部 CSS 修补系统问题。
266
+
267
+ **源:FE 42 浏览器运行时资源生命周期协议 · §MUST NOT**
268
+
269
+ - MUST NOT 依赖 `unload` 完成保存、上报、释放或业务提交。
270
+ - MUST NOT 让过期请求、Worker 或订阅结果覆盖新状态。
271
+ - MUST NOT 在隐藏或冻结页面持续无必要轮询、动画或重计算。
272
+ - MUST NOT 创建没有 Owner 和释放路径的全局监听、计时器、Observer、长连接或第三方实例。
273
+ - MUST NOT 在作用域销毁后继续写入 UI、缓存或用户状态。
274
+
275
+ ## SHOULD
276
+
277
+ **源:FE 25 页面结构协议 · §SHOULD**
278
+
279
+ - SHOULD 使用标准 PageShell 和区域组件。
280
+ - SHOULD 让上下文、状态和恢复路径可见。
281
+
282
+ **源:FE 27 渲染状态协议 · §SHOULD**
283
+
284
+ - SHOULD 使用统一状态组件并允许领域化内容。
285
+ - SHOULD 对 stale 和离线数据标识更新时间。
286
+
287
+ **源:FE 28 表单协议 · §SHOULD**
288
+
289
+ - SHOULD 大表单按业务语义分区或分步。
290
+ - SHOULD 提供错误摘要和首错导航。
291
+
292
+ **源:FE 29 路由与 URL 协议 · §SHOULD**
293
+
294
+ - SHOULD 由 Page Contract 生成路由、菜单和埋点关联。
295
+ - SHOULD 使用 typed query parser。
296
+
297
+ **源:FE 37 浏览器与设备兼容协议 · §SHOULD**
298
+
299
+ - SHOULD 优先支持组织真实使用环境。
300
+ - SHOULD 自动运行代表性兼容测试。
301
+
302
+ **源:FE 41 设计交付协议 · §SHOULD**
303
+
304
+ - SHOULD 使用设计系统组件实例和 token 变量。
305
+ - SHOULD 将高风险交互做可点击原型和键盘说明。
306
+
307
+ **源:FE 42 浏览器运行时资源生命周期协议 · §SHOULD**
308
+
309
+ - SHOULD 使用 `AbortSignal` 或等价的统一取消机制聚合作用域内资源。
310
+ - SHOULD 为复杂页面提供资源注册表或诊断计数,便于测试重复挂载、导航和恢复。
311
+ - SHOULD 优先使用 `pagehide`、`pageshow`、`visibilitychange` 等可恢复的页面生命周期信号。
312
+
313
+ ## Contract
314
+
315
+ **源:FE 25 页面结构协议 · §Contract**
316
+
317
+ ```text
318
+ PageKey, PageType, Regions[], PrimaryActions[],
319
+ Permissions[], States[], Navigation, Owner
320
+ ```
321
+
322
+ **源:FE 27 渲染状态协议 · §Contract**
323
+
324
+ ```text
325
+ State, Priority, Presentation, RecoverAction,
326
+ LayoutReservation, AccessibilityAnnouncement
327
+ ```
328
+
329
+ **源:FE 28 表单协议 · §Contract**
330
+
331
+ ```text
332
+ FormModel, Schema, InitialValues, Validation,
333
+ SubmitCommand, DraftPolicy, DirtyPolicy, ConflictPolicy
334
+ ```
335
+
336
+ **源:FE 29 路由与 URL 协议 · §Contract**
337
+
338
+ ```text
339
+ RouteName, Path, PageKey, Meta, ParamsSchema,
340
+ QuerySchema, RestorePolicy, ErrorRoutes
341
+ ```
342
+
343
+ **源:FE 37 浏览器与设备兼容协议 · §Contract**
344
+
345
+ ```text
346
+ Browser, MinVersion, OS, Device, Viewport,
347
+ Zoom, Input, SupportLevel, TestEvidence
348
+ ```
349
+
350
+ **源:FE 41 设计交付协议 · §Contract**
351
+
352
+ ```text
353
+ PageOrComponent, DesignVersion, SourceComponents[],
354
+ Tokens[], States[], Viewports[], Interaction, Accessibility, Owner
355
+ ```
356
+
357
+ **源:FE 42 浏览器运行时资源生命周期协议 · §Contract**
358
+
359
+ ```text
360
+ ResourceId, ResourceType, OwnerScope, AcquireCondition,
361
+ PauseTrigger, ResumeTrigger, DisposeAction, InvalidationTriggers[],
362
+ LateResultGuard, DiagnosticEvidence
363
+ ```
364
+
365
+ ## Checklist
366
+
367
+ **源:FE 25 页面结构协议 · §Checklist**
368
+
369
+ - [ ] 页面已归类。
370
+ - [ ] 区域顺序正确。
371
+ - [ ] 操作、状态和导航完整。
372
+ - [ ] 同类页面使用共享结构。
373
+
374
+ **源:FE 27 渲染状态协议 · §Checklist**
375
+
376
+ - [ ] 状态矩阵完整。
377
+ - [ ] 优先级无冲突。
378
+ - [ ] 恢复动作可用。
379
+ - [ ] 布局和焦点稳定。
380
+
381
+ **源:FE 28 表单协议 · §Checklist**
382
+
383
+ - [ ] 模型和 schema 独立。
384
+ - [ ] 字段错误可定位。
385
+ - [ ] 防重复与冲突完整。
386
+ - [ ] 草稿和离开策略安全。
387
+ - [ ] 标签、说明、错误和字段程序化关联。
388
+ - [ ] 自动填充、重复录入和高风险动作已检查。
389
+
390
+ **源:FE 29 路由与 URL 协议 · §Checklist**
391
+
392
+ - [ ] 路由和页面 key 一致。
393
+ - [ ] URL 状态可分享恢复。
394
+ - [ ] 临时/敏感状态未进入 URL。
395
+ - [ ] 异常路由完整。
396
+
397
+ **源:FE 37 浏览器与设备兼容协议 · §Checklist**
398
+
399
+ - [ ] 支持矩阵明确。
400
+ - [ ] 关键视口与缩放通过。
401
+ - [ ] 不支持提示可用。
402
+ - [ ] polyfill 风险已评估。
403
+ - [ ] 生命周期/bfcache 恢复通过,关键能力降级可验证。
404
+
405
+ **源:FE 41 设计交付协议 · §Checklist**
406
+
407
+ - [ ] 组件和 token 来源明确。
408
+ - [ ] 状态与视口完整。
409
+ - [ ] 表格/长文本/a11y 已覆盖。
410
+ - [ ] 版本和影响可追踪。
411
+
412
+ **源:FE 42 浏览器运行时资源生命周期协议 · §Checklist**
413
+
414
+ - [ ] 每个资源有唯一 Owner 和成对释放动作。
415
+ - [ ] 路由、身份、权限和参数变化会取消旧工作。
416
+ - [ ] 隐藏、冻结和恢复行为已验证。
417
+ - [ ] 重复挂载不会增加订阅或开放句柄。
418
+ - [ ] 不依赖 unload 完成关键行为。
419
+
420
+ ## Examples
421
+
422
+ **源:FE 25 页面结构协议 · §Examples**
423
+
424
+ ### 内容示例,可删除
425
+
426
+ 标准列表页按 Header、Search、Toolbar、Table、Pagination、Drawer 排列。
427
+
428
+ **源:FE 27 渲染状态协议 · §Examples**
429
+
430
+ ### 内容示例,可删除
431
+
432
+ 后台刷新保留表格行,只在工具栏显示轻量进度;失败后仍可查看旧数据。
433
+
434
+ **源:FE 28 表单协议 · §Examples**
435
+
436
+ ### 内容示例,可删除
437
+
438
+ 后端 422 字段错误映射到对应输入,保留用户数据并聚焦第一个错误。
439
+
440
+ **源:FE 29 路由与 URL 协议 · §Examples**
441
+
442
+ ### 内容示例,可删除
443
+
444
+ 列表分页筛选写入 query,返回列表时按 URL 恢复,不依赖全局临时 store。
445
+
446
+ **源:FE 37 浏览器与设备兼容协议 · §Examples**
447
+
448
+ ### 内容示例,可删除
449
+
450
+ 企业桌面项目明确支持受管 Chrome/Edge 版本和关键办公分辨率,不含手机 Safari。
451
+
452
+ **源:FE 41 设计交付协议 · §Examples**
453
+
454
+ ### 内容示例,可删除
455
+
456
+ 设计交付同时包含正常、无权限、错误、长文本、125% 缩放和键盘焦点状态。
457
+
458
+ **源:FE 42 浏览器运行时资源生命周期协议 · §Examples**
459
+
460
+ ### 内容示例,可删除
461
+
462
+ 页面作用域通过同一个取消信号管理请求和事件监听;离开页面时关闭订阅、终止 Worker、撤销对象 URL,并拒绝晚到结果写回。
463
+
464
+ ## Anti-patterns
465
+
466
+ **源:FE 25 页面结构协议 · §Anti-patterns**
467
+
468
+ 每个 CRUD 页面复制一套不同筛选和按钮顺序,逐渐产生不一致。
469
+
470
+ **源:FE 27 渲染状态协议 · §Anti-patterns**
471
+
472
+ 每次翻页都整页白屏,错误后只弹一次 Toast 且无法重试。
473
+
474
+ **源:FE 28 表单协议 · §Anti-patterns**
475
+
476
+ 表单直接修改 DTO,失败后 reset,用户输入全部丢失。
477
+
478
+ **源:FE 29 路由与 URL 协议 · §Anti-patterns**
479
+
480
+ 用中文标题匹配当前菜单,将所有页面筛选永久存入全局状态。
481
+
482
+ **源:FE 37 浏览器与设备兼容协议 · §Anti-patterns**
483
+
484
+ 只在 1920×1080@100% 测试,1366 笔记本上按钮和表格互相遮挡。
485
+
486
+ **源:FE 41 设计交付协议 · §Anti-patterns**
487
+
488
+ 只有一张理想截图,未说明组件来源、错误状态和小屏行为,开发只能猜测。
489
+
490
+ **源:FE 42 浏览器运行时资源生命周期协议 · §Anti-patterns**
491
+
492
+ 每次进入页面都新增轮询和全局监听,离开时不清理;返回页面后同一消息被处理多次,旧请求还覆盖了新筛选结果。
493
+
494
+ ## Ownership
495
+
496
+ **源:FE 25 页面结构协议 · §Ownership**
497
+
498
+ UX/前端架构 Owner 维护 Page Type,领域 Owner 维护具体 Page Contract。
499
+
500
+ **源:FE 27 渲染状态协议 · §Ownership**
501
+
502
+ 页面 Owner 维护状态矩阵,Design System Owner 维护状态组件,API Owner 提供必要信息。
503
+
504
+ **源:FE 28 表单协议 · §Ownership**
505
+
506
+ 领域 Owner 维护字段规则,前端 Owner 维护 FormModel,后端 Owner 维护权威校验。
507
+
508
+ **源:FE 29 路由与 URL 协议 · §Ownership**
509
+
510
+ 平台路由 Owner 维护机制,页面 Owner 维护 Route Contract,权限 Owner 维护守卫语义。
511
+
512
+ **源:FE 37 浏览器与设备兼容协议 · §Ownership**
513
+
514
+ 产品 Owner 定义范围,前端/QA 维护矩阵,平台 Owner 维护构建目标。
515
+
516
+ **源:FE 41 设计交付协议 · §Ownership**
517
+
518
+ Design Owner 负责交付完整性,Frontend Owner 负责可实现性,QA/Accessibility Owner 负责验收。
519
+
520
+ **源:FE 42 浏览器运行时资源生命周期协议 · §Ownership**
521
+
522
+ 平台 Owner 维护资源基础设施,页面/组件 Owner 声明资源边界,测试 Owner 验证释放和恢复行为。
523
+
524
+ ## Change Policy
525
+
526
+ **源:FE 25 页面结构协议 · §Change Policy**
527
+
528
+ 新增 Page Type 需证明现有类型不能覆盖,并评估所有同类页面和迁移。
529
+
530
+ **源:FE 27 渲染状态协议 · §Change Policy**
531
+
532
+ 新增状态必须更新页面 contract、组件、文案、可访问性和测试。
533
+
534
+ **源:FE 28 表单协议 · §Change Policy**
535
+
536
+ 字段或联动变化必须同步 schema、adapter、草稿版本、错误映射和测试。
537
+
538
+ **源:FE 29 路由与 URL 协议 · §Change Policy**
539
+
540
+ 路由破坏性变化必须提供重定向、链接迁移和监控观察期。
541
+
542
+ **源:FE 37 浏览器与设备兼容协议 · §Change Policy**
543
+
544
+ 增加或停止支持环境必须公告、更新构建与测试,并提供升级路径。
545
+
546
+ **源:FE 41 设计交付协议 · §Change Policy**
547
+
548
+ 开发开始后的设计变化必须更新版本和影响范围;公共组件变化走变更治理。
549
+
550
+ **源:FE 42 浏览器运行时资源生命周期协议 · §Change Policy**
551
+
552
+ 新增资源类型或改变生命周期时必须同步 Owner、释放、恢复、身份失效和测试证据,并检查 `universal:performance-protocol`、`universal:state-management-protocol` 与 `universal:security-protocol`。
553
+
554
+ > **语言节**:本主题无语言节挂点(缺席诚实);规则本体即上文通用节。