pomaster 0.1.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 (115) hide show
  1. package/COMMERCIAL_LICENSE.md +35 -0
  2. package/LICENSE +83 -0
  3. package/README.md +396 -0
  4. package/SECURITY.md +22 -0
  5. package/TRADEMARKS.md +12 -0
  6. package/catalog/candidates/candidates-draft.json +198 -0
  7. package/catalog/candidates/rejected.json +422 -0
  8. package/catalog/catalog-lock.draft.json +822 -0
  9. package/catalog/gates/gate.be.api.contract_checks.json +138 -0
  10. package/catalog/gates/gate.be.chg.contract_change_checks.json +138 -0
  11. package/catalog/gates/gate.chg.prechange_checks.json +155 -0
  12. package/catalog/gates/gate.web.api.request_checks.json +149 -0
  13. package/catalog/gates/gate.web.grid.checks.json +149 -0
  14. package/catalog/knowledge/knowledge.api.example_stable_error_code.json +80 -0
  15. package/catalog/knowledge/knowledge.chg.example_compat_window.json +87 -0
  16. package/catalog/knowledge/knowledge.chg.example_prop_migration.json +87 -0
  17. package/catalog/knowledge/knowledge.fp.api.field_drift_no_contract.json +83 -0
  18. package/catalog/knowledge/knowledge.fp.api.per_page_http_client.json +83 -0
  19. package/catalog/knowledge/knowledge.fp.be.contract_drift.json +87 -0
  20. package/catalog/knowledge/knowledge.fp.chg.page_local_padding.json +88 -0
  21. package/catalog/knowledge/knowledge.fp.grid.global_td_width.json +87 -0
  22. package/catalog/knowledge/knowledge.web.api.example_get_entity_list.json +83 -0
  23. package/catalog/knowledge/knowledge.web.grid.example_column_preset.json +83 -0
  24. package/catalog/policies/authority.be.api_contract_ownership.json +77 -0
  25. package/catalog/policies/authority.be.contract_ownership.json +73 -0
  26. package/catalog/policies/authority.chg.change_owners.json +75 -0
  27. package/catalog/policies/authority.web.api.request_owners.json +82 -0
  28. package/catalog/policies/authority.web.grid.ownership.json +78 -0
  29. package/catalog/policies/policy.api.backward_compat_defaults.json +83 -0
  30. package/catalog/policies/policy.api.contract_impl_consistency.json +81 -0
  31. package/catalog/policies/policy.api.no_informal_contract.json +82 -0
  32. package/catalog/policies/policy.arch.decision_tradeoff_record.json +78 -0
  33. package/catalog/policies/policy.cache.lifecycle_definition.json +79 -0
  34. package/catalog/policies/policy.chg.affect_templates.json +79 -0
  35. package/catalog/policies/policy.chg.breaking_versioning.json +81 -0
  36. package/catalog/policies/policy.chg.compat_migration_rollback.json +82 -0
  37. package/catalog/policies/policy.chg.deprecate_before_delete.json +82 -0
  38. package/catalog/policies/policy.chg.fix_at_root_cause_level.json +78 -0
  39. package/catalog/policies/policy.chg.observable_evolution.json +78 -0
  40. package/catalog/policies/policy.chg.prechange_consumer_scan.json +83 -0
  41. package/catalog/policies/policy.chg.staged_rollout.json +79 -0
  42. package/catalog/policies/policy.chg.sync_contract_docs_tests.json +81 -0
  43. package/catalog/policies/policy.conflict.priority_ladder.json +79 -0
  44. package/catalog/policies/policy.dep.admission_six_dimension_check.json +84 -0
  45. package/catalog/policies/policy.dep.change_surface_review.json +82 -0
  46. package/catalog/policies/policy.dep.introduction_review.json +83 -0
  47. package/catalog/policies/policy.derived.single_implementation.json +77 -0
  48. package/catalog/policies/policy.obs.correlation_context_minimum.json +81 -0
  49. package/catalog/policies/policy.obs.rum_dimension_whitelist.json +77 -0
  50. package/catalog/policies/policy.proc.pre_code_declaration.json +78 -0
  51. package/catalog/policies/policy.rel.pre_release_confirmation.json +77 -0
  52. package/catalog/policies/policy.role.domain_decision_authority.json +77 -0
  53. package/catalog/policies/policy.sec.third_party_execution_register.json +78 -0
  54. package/catalog/policies/policy.spec.admission_criteria.json +79 -0
  55. package/catalog/policies/policy.spec.derived_view_regeneration.json +79 -0
  56. package/catalog/policies/policy.spec.draft_not_baseline.json +77 -0
  57. package/catalog/policies/policy.spec.file_structure_contract.json +76 -0
  58. package/catalog/policies/policy.spec.metadata_required.json +76 -0
  59. package/catalog/policies/policy.spec.post_dev_backfill_classify.json +74 -0
  60. package/catalog/policies/policy.spec.procedural_record_not_surrogate.json +76 -0
  61. package/catalog/policies/policy.spec.semantic_identity.json +77 -0
  62. package/catalog/policies/policy.spec.unresolved_ledger_gate.json +79 -0
  63. package/catalog/policies/policy.stack.no_implicit_selection.json +77 -0
  64. package/catalog/policies/policy.tool.scoped_scan_boundary.json +78 -0
  65. package/catalog/policies/policy.web.api.auth_app_client_split.json +93 -0
  66. package/catalog/policies/policy.web.api.client_change_impact.json +86 -0
  67. package/catalog/policies/policy.web.api.domain_api_only.json +84 -0
  68. package/catalog/policies/policy.web.api.error_normalization.json +82 -0
  69. package/catalog/policies/policy.web.api.generated_client.json +82 -0
  70. package/catalog/policies/policy.web.api.late_result_guard.json +80 -0
  71. package/catalog/policies/policy.web.api.mutation_idempotency.json +84 -0
  72. package/catalog/policies/policy.web.api.no_network_optimism.json +82 -0
  73. package/catalog/policies/policy.web.api.query_cancel_stale_drop.json +80 -0
  74. package/catalog/policies/policy.web.api.request_infrastructure.json +95 -0
  75. package/catalog/policies/policy.web.api.retry_discipline.json +87 -0
  76. package/catalog/policies/policy.web.api.session_recovery_split.json +94 -0
  77. package/catalog/policies/policy.web.api.single_http_client.json +88 -0
  78. package/catalog/policies/policy.web.api.single_loading_source.json +81 -0
  79. package/catalog/policies/policy.web.api.transport_vs_business.json +81 -0
  80. package/catalog/policies/policy.web.api.trusted_endpoint_source.json +82 -0
  81. package/catalog/policies/policy.web.api.typed_domain_naming.json +79 -0
  82. package/catalog/policies/policy.web.arch.layer_isolation.json +376 -0
  83. package/catalog/policies/policy.web.arch.naming_conventions.json +207 -0
  84. package/catalog/policies/policy.web.arch.public_api_barrel.json +134 -0
  85. package/catalog/policies/policy.web.chg.controlled_change_triggers.json +79 -0
  86. package/catalog/policies/policy.web.copy.suppression_ledger_discipline.json +78 -0
  87. package/catalog/policies/policy.web.grid.column_schema_fields.json +78 -0
  88. package/catalog/policies/policy.web.grid.config_isolation.json +78 -0
  89. package/catalog/policies/policy.web.grid.freeze_key_columns.json +77 -0
  90. package/catalog/policies/policy.web.grid.interaction_registry.json +80 -0
  91. package/catalog/policies/policy.web.grid.keyboard_clipboard.json +79 -0
  92. package/catalog/policies/policy.web.grid.schema_driven_shell.json +81 -0
  93. package/catalog/policies/policy.web.grid.schema_versioning.json +78 -0
  94. package/catalog/policies/policy.web.grid.server_ops_virtualization.json +81 -0
  95. package/catalog/policies/policy.web.grid.shell_change_matrix.json +76 -0
  96. package/catalog/policies/policy.web.grid.width_fix_ladder.json +79 -0
  97. package/catalog/policies/policy.web.perf.budget_skeleton.json +110 -0
  98. package/catalog/policies/policy.web.style.ownership_matrix.json +207 -0
  99. package/catalog/policies/policy.web.track.consent_lifecycle.json +78 -0
  100. package/catalog/policies/policy.web.track.privacy_default_deny.json +81 -0
  101. package/catalog/policies/policy.web.track.stable_event_keys.json +78 -0
  102. package/catalog/policies/policy.web.uiux.provider_evidence_not_business_truth.json +86 -0
  103. package/catalog/projection-presets/registry-tree.yaml +307 -0
  104. package/catalog/sensors/sensor.browser.deterministic.json +53 -0
  105. package/catalog/sensors/sensor.browser.interactive.json +58 -0
  106. package/catalog/sensors/sensor.build.static.json +45 -0
  107. package/catalog/sensors/sensor.contract.conformance.json +47 -0
  108. package/catalog/sensors/sensor.performance.budget.json +46 -0
  109. package/catalog/sensors/sensor.production.metric.json +44 -0
  110. package/catalog/tools/apply_human_review_pilot_0001.py +488 -0
  111. package/catalog/tools/materialize_batch4_uplift.py +776 -0
  112. package/catalog/tools/materialize_catalog_pilot.py +784 -0
  113. package/dist/bin.js +52362 -0
  114. package/legal/THIRD_PARTY_NOTICES.md +336 -0
  115. package/package.json +36 -0
@@ -0,0 +1,422 @@
1
+ {
2
+ "_record_type": "rejected_archive",
3
+ "seq": "pilot-0001",
4
+ "date": "2026-08-28",
5
+ "generated_by": "catalog/tools/apply_human_review_pilot_0001.py(pilot-0001 Human Review 落账)",
6
+ "basis": "docs/catalog-pilot-report.md §8 Human Review Checklist 逐行 REJECT + §3.1/§3.2 合并表;REJECT 语义=驳回独立入册(合并指针维持于正本 review.absorbed_duplicates),非丢弃内容;本档案为留档副本,条目仍保留于 candidates-draft.json(含 disposition=REJECT)",
7
+ "count": 17,
8
+ "rejected": [
9
+ {
10
+ "candidate_id": "POLICY.CHG.NO_SILENT_DEFAULT",
11
+ "source": "design_seed",
12
+ "evidence": "PLANNED",
13
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md",
14
+ "source_section": "MUST NOT 第1条",
15
+ "classification": "DUPLICATE",
16
+ "statement_zh": "禁止静默改变公共默认行为。",
17
+ "statement_en_keywords": "no silent default change",
18
+ "applies_when": {
19
+ "lane": "frontend",
20
+ "condition": "同合并目标"
21
+ },
22
+ "enforcement": "advisory",
23
+ "vocab_pr_needed": false,
24
+ "notes": "合并指针:POLICY.CHG.COMPAT_MIGRATION_ROLLBACK 的禁止形态,语义被其覆盖;enforcement 由合并目标继承",
25
+ "review": {
26
+ "disposition": "REJECT",
27
+ "seq": "pilot-0001",
28
+ "ref": "docs/catalog-pilot-report.md:L206(§8.1 #9)",
29
+ "reject_reason": "极性反转 DUPLICATE:并入正本禁止形态段(报告 §8.1 #9;§3.1 表)",
30
+ "duplicate_of": "POLICY.CHG.COMPAT_MIGRATION_ROLLBACK"
31
+ }
32
+ },
33
+ {
34
+ "candidate_id": "POLICY.CHG.NO_SINGLE_CONSUMER_API",
35
+ "source": "design_seed",
36
+ "evidence": "PLANNED",
37
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md",
38
+ "source_section": "MUST NOT 第2条",
39
+ "classification": "DUPLICATE",
40
+ "statement_zh": "禁止为满足单页临时需求而修改公共 API。",
41
+ "statement_en_keywords": "no public API change for single-page need",
42
+ "applies_when": {
43
+ "lane": "frontend",
44
+ "condition": "同合并目标"
45
+ },
46
+ "enforcement": "advisory",
47
+ "vocab_pr_needed": false,
48
+ "notes": "合并指针:POLICY.CHG.PRECHANGE_CONSUMER_SCAN + FIX_AT_ROOT_CAUSE_LEVEL 联合覆盖",
49
+ "review": {
50
+ "disposition": "REJECT",
51
+ "seq": "pilot-0001",
52
+ "ref": "docs/catalog-pilot-report.md:L207(§8.1 #10)",
53
+ "reject_reason": "极性反转 DUPLICATE:由正本与根因修复条款联合覆盖(报告 §8.1 #10;§3.1 表)",
54
+ "duplicate_of": "POLICY.CHG.PRECHANGE_CONSUMER_SCAN",
55
+ "duplicate_of_secondary": "POLICY.CHG.FIX_AT_ROOT_CAUSE_LEVEL"
56
+ }
57
+ },
58
+ {
59
+ "candidate_id": "POLICY.CHG.NO_LOCAL_MASK_FIX",
60
+ "source": "design_seed",
61
+ "evidence": "PLANNED",
62
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md",
63
+ "source_section": "MUST NOT 第3条",
64
+ "classification": "DUPLICATE",
65
+ "statement_zh": "禁止只修一个页面来掩盖公共问题。",
66
+ "statement_en_keywords": "no local mask fix, page-level patch hiding public defect",
67
+ "applies_when": {
68
+ "lane": "frontend",
69
+ "condition": "同合并目标"
70
+ },
71
+ "enforcement": "advisory",
72
+ "vocab_pr_needed": false,
73
+ "notes": "合并指针:POLICY.CHG.FIX_AT_ROOT_CAUSE_LEVEL 的禁止形态",
74
+ "review": {
75
+ "disposition": "REJECT",
76
+ "seq": "pilot-0001",
77
+ "ref": "docs/catalog-pilot-report.md:L208(§8.1 #11)",
78
+ "reject_reason": "极性反转 DUPLICATE:正本禁止形态(报告 §8.1 #11;§3.1 表)",
79
+ "duplicate_of": "POLICY.CHG.FIX_AT_ROOT_CAUSE_LEVEL"
80
+ }
81
+ },
82
+ {
83
+ "candidate_id": "POLICY.CHG.NO_DELETE_WITHOUT_MIGRATION",
84
+ "source": "design_seed",
85
+ "evidence": "PLANNED",
86
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md",
87
+ "source_section": "MUST NOT 第4条",
88
+ "classification": "DUPLICATE",
89
+ "statement_zh": "禁止无迁移地删除 props、事件、字段或状态。",
90
+ "statement_en_keywords": "no delete without migration",
91
+ "applies_when": {
92
+ "lane": "frontend",
93
+ "condition": "同合并目标"
94
+ },
95
+ "enforcement": "advisory",
96
+ "vocab_pr_needed": false,
97
+ "notes": "合并指针:POLICY.CHG.DEPRECATE_BEFORE_DELETE 的 FE 具体形态",
98
+ "review": {
99
+ "disposition": "REJECT",
100
+ "seq": "pilot-0001",
101
+ "ref": "docs/catalog-pilot-report.md:L209(§8.1 #12)",
102
+ "reject_reason": "极性反转 DUPLICATE:正本 FE 具体形态(报告 §8.1 #12;§3.1 表)",
103
+ "duplicate_of": "POLICY.CHG.DEPRECATE_BEFORE_DELETE"
104
+ }
105
+ },
106
+ {
107
+ "candidate_id": "POLICY.SPEC.DRAFT_NOT_BASELINE_2",
108
+ "source": "design_seed",
109
+ "evidence": "PLANNED",
110
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md",
111
+ "source_section": "MUST NOT 第6条",
112
+ "classification": "DUPLICATE",
113
+ "statement_zh": "与上一条逐字重复(源文件 37/38 行同文)。",
114
+ "statement_en_keywords": "verbatim duplication in source",
115
+ "applies_when": {
116
+ "lane": "any",
117
+ "condition": "不适用"
118
+ },
119
+ "enforcement": "advisory",
120
+ "vocab_pr_needed": false,
121
+ "notes": "源内逐字重复实证:合并至 POLICY.SPEC.DRAFT_NOT_BASELINE;源文件自身质量缺陷样本",
122
+ "review": {
123
+ "disposition": "REJECT",
124
+ "seq": "pilot-0001",
125
+ "ref": "docs/catalog-pilot-report.md:L211(§8.1 #14)",
126
+ "reject_reason": "源内逐字重复实证(源协议 37/38 行同文)(报告 §8.1 #14;§3.1)",
127
+ "duplicate_of": "POLICY.SPEC.DRAFT_NOT_BASELINE"
128
+ }
129
+ },
130
+ {
131
+ "candidate_id": "POLICY.WEB.API.NO_RAW_FETCH",
132
+ "source": "design_seed",
133
+ "evidence": "PLANNED",
134
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md",
135
+ "source_section": "MUST NOT 第1条",
136
+ "classification": "DUPLICATE",
137
+ "statement_zh": "禁止在页面直接写 fetch/axios 或手工拼 endpoint。",
138
+ "statement_en_keywords": "no raw fetch/axios in pages",
139
+ "applies_when": {
140
+ "lane": "frontend",
141
+ "condition": "同合并目标"
142
+ },
143
+ "enforcement": "advisory",
144
+ "vocab_pr_needed": false,
145
+ "notes": "合并指针:DOMAIN_API_ONLY + SINGLE_HTTP_CLIENT 的禁止形态",
146
+ "review": {
147
+ "disposition": "REJECT",
148
+ "seq": "pilot-0001",
149
+ "ref": "docs/catalog-pilot-report.md:L235(§8.2 #33)",
150
+ "reject_reason": "极性反转 DUPLICATE:两正本联合覆盖(报告 §8.2 #33;§3.1 表)",
151
+ "duplicate_of": "POLICY.WEB.API.DOMAIN_API_ONLY",
152
+ "duplicate_of_secondary": "POLICY.WEB.API.SINGLE_HTTP_CLIENT"
153
+ }
154
+ },
155
+ {
156
+ "candidate_id": "POLICY.WEB.API.NO_LOGIC_DUPLICATION",
157
+ "source": "design_seed",
158
+ "evidence": "PLANNED",
159
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md",
160
+ "source_section": "MUST NOT 第2条",
161
+ "classification": "DUPLICATE",
162
+ "statement_zh": "禁止多模块重复 token、错误码与重试逻辑。",
163
+ "statement_en_keywords": "no duplicated token/error/retry logic",
164
+ "applies_when": {
165
+ "lane": "frontend",
166
+ "condition": "同合并目标"
167
+ },
168
+ "enforcement": "advisory",
169
+ "vocab_pr_needed": false,
170
+ "notes": "合并指针:SINGLE_HTTP_CLIENT 单点统一的症候表述",
171
+ "review": {
172
+ "disposition": "REJECT",
173
+ "seq": "pilot-0001",
174
+ "ref": "docs/catalog-pilot-report.md:L236(§8.2 #34)",
175
+ "reject_reason": "极性反转 DUPLICATE:单点统一的症候表述(报告 §8.2 #34;§3.1 表)",
176
+ "duplicate_of": "POLICY.WEB.API.SINGLE_HTTP_CLIENT"
177
+ }
178
+ },
179
+ {
180
+ "candidate_id": "POLICY.WEB.API.NO_AUTO_RETRY_NONIDEM",
181
+ "source": "design_seed",
182
+ "evidence": "PLANNED",
183
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md",
184
+ "source_section": "MUST NOT 第3条",
185
+ "classification": "DUPLICATE",
186
+ "statement_zh": "禁止对非幂等 mutation 默认自动重试。",
187
+ "statement_en_keywords": "no auto retry on non-idempotent mutation",
188
+ "applies_when": {
189
+ "lane": "frontend",
190
+ "condition": "同合并目标"
191
+ },
192
+ "enforcement": "advisory",
193
+ "vocab_pr_needed": false,
194
+ "notes": "合并指针:RETRY_DISCIPLINE + MUTATION_IDEMPOTENCY 的禁止形态",
195
+ "review": {
196
+ "disposition": "REJECT",
197
+ "seq": "pilot-0001",
198
+ "ref": "docs/catalog-pilot-report.md:L237(§8.2 #35)",
199
+ "reject_reason": "极性反转 DUPLICATE:与幂等条款并读,合并后消除 T4 表面冲突(报告 §8.2 #35;§3.1 表)",
200
+ "duplicate_of": "POLICY.WEB.API.RETRY_DISCIPLINE",
201
+ "duplicate_of_secondary": "POLICY.WEB.API.MUTATION_IDEMPOTENCY"
202
+ }
203
+ },
204
+ {
205
+ "candidate_id": "POLICY.WEB.API.NO_ENVELOPE_IN_COMPONENT",
206
+ "source": "design_seed",
207
+ "evidence": "PLANNED",
208
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md",
209
+ "source_section": "MUST NOT 第4条",
210
+ "classification": "DUPLICATE",
211
+ "statement_zh": "禁止组件层解析原始响应 envelope。",
212
+ "statement_en_keywords": "no envelope parsing in components, layering",
213
+ "applies_when": {
214
+ "lane": "frontend",
215
+ "condition": "同合并目标"
216
+ },
217
+ "enforcement": "advisory",
218
+ "vocab_pr_needed": false,
219
+ "notes": "合并指针:DOMAIN_API_ONLY + ERROR_NORMALIZATION 的越层禁止形态",
220
+ "review": {
221
+ "disposition": "REJECT",
222
+ "seq": "pilot-0001",
223
+ "ref": "docs/catalog-pilot-report.md:L238(§8.2 #36)",
224
+ "reject_reason": "极性反转 DUPLICATE:越层禁止形态(报告 §8.2 #36;§3.1 表)",
225
+ "duplicate_of": "POLICY.WEB.API.DOMAIN_API_ONLY",
226
+ "duplicate_of_secondary": "POLICY.WEB.API.ERROR_NORMALIZATION"
227
+ }
228
+ },
229
+ {
230
+ "candidate_id": "POLICY.WEB.GRID.NO_TEMPLATE_COLUMNS",
231
+ "source": "design_seed",
232
+ "evidence": "PLANNED",
233
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md",
234
+ "source_section": "MUST NOT 第1条",
235
+ "classification": "DUPLICATE",
236
+ "statement_zh": "禁止 template 手写列或跨页面复制列数组。",
237
+ "statement_en_keywords": "no template columns, no copied column arrays",
238
+ "applies_when": {
239
+ "lane": "frontend",
240
+ "condition": "同合并目标"
241
+ },
242
+ "enforcement": "advisory",
243
+ "vocab_pr_needed": false,
244
+ "notes": "合并指针:SCHEMA_DRIVEN_SHELL 的禁止形态",
245
+ "review": {
246
+ "disposition": "REJECT",
247
+ "seq": "pilot-0001",
248
+ "ref": "docs/catalog-pilot-report.md:L260(§8.3 #53)",
249
+ "reject_reason": "极性反转 DUPLICATE:正本禁止形态(报告 §8.3 #53;§3.1 表)",
250
+ "duplicate_of": "POLICY.WEB.GRID.SCHEMA_DRIVEN_SHELL"
251
+ }
252
+ },
253
+ {
254
+ "candidate_id": "POLICY.WEB.GRID.NO_GLOBAL_WIDTH_CSS",
255
+ "source": "design_seed",
256
+ "evidence": "PLANNED",
257
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md",
258
+ "source_section": "MUST NOT 第2条",
259
+ "classification": "DUPLICATE",
260
+ "statement_zh": "禁止为单页列宽修改全局 CSS。",
261
+ "statement_en_keywords": "no global css for single-page width",
262
+ "applies_when": {
263
+ "lane": "frontend",
264
+ "condition": "同合并目标"
265
+ },
266
+ "enforcement": "advisory",
267
+ "vocab_pr_needed": false,
268
+ "notes": "合并指针:WIDTH_FIX_LADDER 的禁止形态",
269
+ "review": {
270
+ "disposition": "REJECT",
271
+ "seq": "pilot-0001",
272
+ "ref": "docs/catalog-pilot-report.md:L261(§8.3 #54)",
273
+ "reject_reason": "极性反转 DUPLICATE:正本禁止形态(报告 §8.3 #54;§3.1 表)",
274
+ "duplicate_of": "POLICY.WEB.GRID.WIDTH_FIX_LADDER"
275
+ }
276
+ },
277
+ {
278
+ "candidate_id": "POLICY.WEB.GRID.NO_SHARED_CONFIG_KEYS",
279
+ "source": "design_seed",
280
+ "evidence": "PLANNED",
281
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md",
282
+ "source_section": "MUST NOT 第3条",
283
+ "classification": "DUPLICATE",
284
+ "statement_zh": "禁止不同类型表格共享污染性配置 key。",
285
+ "statement_en_keywords": "no polluted shared config keys across grid types",
286
+ "applies_when": {
287
+ "lane": "frontend",
288
+ "condition": "同合并目标"
289
+ },
290
+ "enforcement": "advisory",
291
+ "vocab_pr_needed": false,
292
+ "notes": "合并指针:CONFIG_ISOLATION 的禁止形态",
293
+ "review": {
294
+ "disposition": "REJECT",
295
+ "seq": "pilot-0001",
296
+ "ref": "docs/catalog-pilot-report.md:L262(§8.3 #55)",
297
+ "reject_reason": "极性反转 DUPLICATE:正本禁止形态(报告 §8.3 #55;§3.1 表)",
298
+ "duplicate_of": "POLICY.WEB.GRID.CONFIG_ISOLATION"
299
+ }
300
+ },
301
+ {
302
+ "candidate_id": "POLICY.WEB.GRID.NO_FAKE_PAGINATION",
303
+ "source": "design_seed",
304
+ "evidence": "PLANNED",
305
+ "source_protocol": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md",
306
+ "source_section": "MUST NOT 第4条",
307
+ "classification": "DUPLICATE",
308
+ "statement_zh": "禁止前端加载全量数据做假分页。",
309
+ "statement_en_keywords": "no fake pagination, no full data load",
310
+ "applies_when": {
311
+ "lane": "frontend",
312
+ "condition": "同合并目标"
313
+ },
314
+ "enforcement": "advisory",
315
+ "vocab_pr_needed": false,
316
+ "notes": "合并指针:SERVER_OPS_VIRTUALIZATION 的禁止形态",
317
+ "review": {
318
+ "disposition": "REJECT",
319
+ "seq": "pilot-0001",
320
+ "ref": "docs/catalog-pilot-report.md:L263(§8.3 #56)",
321
+ "reject_reason": "极性反转 DUPLICATE:正本禁止形态(报告 §8.3 #56;§3.1 表)",
322
+ "duplicate_of": "POLICY.WEB.GRID.SERVER_OPS_VIRTUALIZATION"
323
+ }
324
+ },
325
+ {
326
+ "candidate_id": "POLICY.CHG.PRECHANGE_SCAN_BE",
327
+ "source": "design_seed",
328
+ "evidence": "PLANNED",
329
+ "source_protocol": "pomaster/components/backend-hard-spec/assets/universal/08-contract-change-protocol.md",
330
+ "source_section": "MUST",
331
+ "classification": "DUPLICATE",
332
+ "statement_zh": "契约变更前必须识别消费者、兼容窗口、迁移、回滚与版本策略。",
333
+ "statement_en_keywords": "pre-change scan, consumers, compatibility window, migration, rollback, version strategy",
334
+ "applies_when": {
335
+ "lane": "backend",
336
+ "condition": "同合并目标"
337
+ },
338
+ "enforcement": "advisory",
339
+ "vocab_pr_needed": false,
340
+ "notes": "跨车道重复:与 FE06 POLICY.CHG.PRECHANGE_CONSUMER_SCAN + COMPAT_MIGRATION_ROLLBACK 同构 → 合并为单一 UNIVERSAL 正本,本条为 BE 侧让位副本",
341
+ "review": {
342
+ "disposition": "REJECT",
343
+ "seq": "pilot-0001",
344
+ "ref": "docs/catalog-pilot-report.md:L277(§8.4 #65)",
345
+ "reject_reason": "M1 让位副本:六要素已并入正本(报告 §8.4 #65;§3.2 M1 合并稿)",
346
+ "duplicate_of": "POLICY.CHG.PRECHANGE_CONSUMER_SCAN"
347
+ }
348
+ },
349
+ {
350
+ "candidate_id": "POLICY.CHG.NO_DELETE_NO_MIGRATION_BE",
351
+ "source": "design_seed",
352
+ "evidence": "PLANNED",
353
+ "source_protocol": "pomaster/components/backend-hard-spec/assets/universal/08-contract-change-protocol.md",
354
+ "source_section": "MUST NOT",
355
+ "classification": "DUPLICATE",
356
+ "statement_zh": "无迁移说明不得删除、重命名或改变已发布语义。",
357
+ "statement_en_keywords": "no removal/rename/semantic change without migration note",
358
+ "applies_when": {
359
+ "lane": "backend",
360
+ "condition": "同合并目标"
361
+ },
362
+ "enforcement": "advisory",
363
+ "vocab_pr_needed": false,
364
+ "notes": "跨车道重复:POLICY.CHG.DEPRECATE_BEFORE_DELETE 的 BE 形态 → 让位合并",
365
+ "review": {
366
+ "disposition": "REJECT",
367
+ "seq": "pilot-0001",
368
+ "ref": "docs/catalog-pilot-report.md:L278(§8.4 #66)",
369
+ "reject_reason": "M2 让位:BE 禁止形态已并入正本(报告 §8.4 #66;§3.2 M2 合并稿)",
370
+ "duplicate_of": "POLICY.CHG.DEPRECATE_BEFORE_DELETE"
371
+ }
372
+ },
373
+ {
374
+ "candidate_id": "POLICY.CHG.BREAKING_VERSIONING_BE",
375
+ "source": "design_seed",
376
+ "evidence": "PLANNED",
377
+ "source_protocol": "pomaster/components/backend-hard-spec/assets/universal/08-contract-change-protocol.md",
378
+ "source_section": "Change Policy",
379
+ "classification": "DUPLICATE",
380
+ "statement_zh": "破坏性变更必须经显式审批、版本升级并附可执行回退方案。",
381
+ "statement_en_keywords": "breaking change, explicit approval, version upgrade, executable rollback",
382
+ "applies_when": {
383
+ "lane": "backend",
384
+ "condition": "同合并目标"
385
+ },
386
+ "enforcement": "advisory",
387
+ "vocab_pr_needed": false,
388
+ "notes": "跨车道重复:POLICY.CHG.BREAKING_VERSIONING 的 BE 形态;『显式审批』『可执行回退』两个子句建议 Human Review 时并入正本",
389
+ "review": {
390
+ "disposition": "REJECT",
391
+ "seq": "pilot-0001",
392
+ "ref": "docs/catalog-pilot-report.md:L285(§8.4 #73)",
393
+ "reject_reason": "M3 让位:显式审批+可执行回退两子句已并入正本(报告 §8.4 #73;§3.2 M3 合并稿)",
394
+ "duplicate_of": "POLICY.CHG.BREAKING_VERSIONING"
395
+ }
396
+ },
397
+ {
398
+ "candidate_id": "POLICY.API.DELEGATE_TO_CHG_PROTOCOL",
399
+ "source": "design_seed",
400
+ "evidence": "PLANNED",
401
+ "source_protocol": "pomaster/components/backend-hard-spec/assets/universal/12-api-contract-protocol.md",
402
+ "source_section": "Change Policy",
403
+ "classification": "DUPLICATE",
404
+ "statement_zh": "破坏性 API 变化必须按契约变更协议执行版本与迁移。",
405
+ "statement_en_keywords": "breaking api change delegates to contract change protocol",
406
+ "applies_when": {
407
+ "lane": "any",
408
+ "condition": "同合并目标"
409
+ },
410
+ "enforcement": "advisory",
411
+ "vocab_pr_needed": false,
412
+ "notes": "指针条款:委托至 POLICY.CHG.BREAKING_VERSIONING,无独立语义 → 让位合并",
413
+ "review": {
414
+ "disposition": "REJECT",
415
+ "seq": "pilot-0001",
416
+ "ref": "docs/catalog-pilot-report.md:L299(§8.5 #82)",
417
+ "reject_reason": "指针条款并入 BREAKING_VERSIONING,无独立语义(报告 §8.5 #82)",
418
+ "duplicate_of": "POLICY.CHG.BREAKING_VERSIONING"
419
+ }
420
+ }
421
+ ]
422
+ }