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,822 @@
1
+ {
2
+ "catalog_version": "0.1.0-pilot",
3
+ "profile": "web-standard@0",
4
+ "generated_by": "catalog/tools/materialize_catalog_pilot.py(pilot-0001 60 条;entries 按 id 排序)+ catalog/tools/materialize_batch4_uplift.py(batch-4 语料批 Universal 上提追加 9 条)+ corpus/spec-knowledge/materialize-curated.py(SPEC-D 汇总池 D5 精选追加 25 条)+ catalog/sensors/(P1-5 Sensor Capability Catalog Lite 六条目登记,裁决 8 D6/D7)+ W1-A2 P0.5-1 T3 标注战役(机器 applicability 字段批量标注 + 幂等重锁;PRD v0.5.2 §5.2/§14,裁决 8 ②)",
5
+ "x-digest-ethics": {
6
+ "basis": "D24 / vocab-lock.digest_ethics",
7
+ "write_blocking": false,
8
+ "side": "read_only_service",
9
+ "usage": "identity / upgrade-diff / tamper-audit 抽验",
10
+ "human_touch": "forbidden"
11
+ },
12
+ "controlled_children": {
13
+ "note": "catalog-lock 管辖面(vocab-lock PR-0001 catalog_layer_vocab 同段语义):allowed=登记在册可存在;required=必须存在。新增 catalog 文件须同步 allowed+required 两处(batch-4 split-ledger catalog_scope_note 纪律;沿 pomaster directory-lock controlled_children 语义移植)。",
14
+ "allowed": [
15
+ "gates/gate.be.api.contract_checks.json",
16
+ "gates/gate.be.chg.contract_change_checks.json",
17
+ "gates/gate.chg.prechange_checks.json",
18
+ "gates/gate.web.api.request_checks.json",
19
+ "gates/gate.web.grid.checks.json",
20
+ "knowledge/knowledge.api.example_stable_error_code.json",
21
+ "knowledge/knowledge.chg.example_compat_window.json",
22
+ "knowledge/knowledge.chg.example_prop_migration.json",
23
+ "knowledge/knowledge.fp.api.field_drift_no_contract.json",
24
+ "knowledge/knowledge.fp.api.per_page_http_client.json",
25
+ "knowledge/knowledge.fp.be.contract_drift.json",
26
+ "knowledge/knowledge.fp.chg.page_local_padding.json",
27
+ "knowledge/knowledge.fp.grid.global_td_width.json",
28
+ "knowledge/knowledge.web.api.example_get_entity_list.json",
29
+ "knowledge/knowledge.web.grid.example_column_preset.json",
30
+ "policies/authority.be.api_contract_ownership.json",
31
+ "policies/authority.be.contract_ownership.json",
32
+ "policies/authority.chg.change_owners.json",
33
+ "policies/authority.web.api.request_owners.json",
34
+ "policies/authority.web.grid.ownership.json",
35
+ "policies/policy.api.backward_compat_defaults.json",
36
+ "policies/policy.api.contract_impl_consistency.json",
37
+ "policies/policy.api.no_informal_contract.json",
38
+ "policies/policy.arch.decision_tradeoff_record.json",
39
+ "policies/policy.cache.lifecycle_definition.json",
40
+ "policies/policy.chg.affect_templates.json",
41
+ "policies/policy.chg.breaking_versioning.json",
42
+ "policies/policy.chg.compat_migration_rollback.json",
43
+ "policies/policy.chg.deprecate_before_delete.json",
44
+ "policies/policy.chg.fix_at_root_cause_level.json",
45
+ "policies/policy.chg.observable_evolution.json",
46
+ "policies/policy.chg.prechange_consumer_scan.json",
47
+ "policies/policy.chg.staged_rollout.json",
48
+ "policies/policy.chg.sync_contract_docs_tests.json",
49
+ "policies/policy.conflict.priority_ladder.json",
50
+ "policies/policy.dep.admission_six_dimension_check.json",
51
+ "policies/policy.dep.change_surface_review.json",
52
+ "policies/policy.dep.introduction_review.json",
53
+ "policies/policy.derived.single_implementation.json",
54
+ "policies/policy.obs.correlation_context_minimum.json",
55
+ "policies/policy.obs.rum_dimension_whitelist.json",
56
+ "policies/policy.proc.pre_code_declaration.json",
57
+ "policies/policy.rel.pre_release_confirmation.json",
58
+ "policies/policy.role.domain_decision_authority.json",
59
+ "policies/policy.sec.third_party_execution_register.json",
60
+ "policies/policy.spec.admission_criteria.json",
61
+ "policies/policy.spec.derived_view_regeneration.json",
62
+ "policies/policy.spec.draft_not_baseline.json",
63
+ "policies/policy.spec.file_structure_contract.json",
64
+ "policies/policy.spec.metadata_required.json",
65
+ "policies/policy.spec.post_dev_backfill_classify.json",
66
+ "policies/policy.spec.procedural_record_not_surrogate.json",
67
+ "policies/policy.spec.semantic_identity.json",
68
+ "policies/policy.spec.unresolved_ledger_gate.json",
69
+ "policies/policy.stack.no_implicit_selection.json",
70
+ "policies/policy.tool.scoped_scan_boundary.json",
71
+ "policies/policy.web.api.auth_app_client_split.json",
72
+ "policies/policy.web.api.client_change_impact.json",
73
+ "policies/policy.web.api.domain_api_only.json",
74
+ "policies/policy.web.api.error_normalization.json",
75
+ "policies/policy.web.api.generated_client.json",
76
+ "policies/policy.web.api.late_result_guard.json",
77
+ "policies/policy.web.api.mutation_idempotency.json",
78
+ "policies/policy.web.api.no_network_optimism.json",
79
+ "policies/policy.web.api.query_cancel_stale_drop.json",
80
+ "policies/policy.web.api.request_infrastructure.json",
81
+ "policies/policy.web.api.retry_discipline.json",
82
+ "policies/policy.web.api.session_recovery_split.json",
83
+ "policies/policy.web.api.single_http_client.json",
84
+ "policies/policy.web.api.single_loading_source.json",
85
+ "policies/policy.web.api.transport_vs_business.json",
86
+ "policies/policy.web.api.trusted_endpoint_source.json",
87
+ "policies/policy.web.api.typed_domain_naming.json",
88
+ "policies/policy.web.arch.layer_isolation.json",
89
+ "policies/policy.web.arch.naming_conventions.json",
90
+ "policies/policy.web.arch.public_api_barrel.json",
91
+ "policies/policy.web.chg.controlled_change_triggers.json",
92
+ "policies/policy.web.copy.suppression_ledger_discipline.json",
93
+ "policies/policy.web.grid.column_schema_fields.json",
94
+ "policies/policy.web.grid.config_isolation.json",
95
+ "policies/policy.web.grid.freeze_key_columns.json",
96
+ "policies/policy.web.grid.interaction_registry.json",
97
+ "policies/policy.web.grid.keyboard_clipboard.json",
98
+ "policies/policy.web.grid.schema_driven_shell.json",
99
+ "policies/policy.web.grid.schema_versioning.json",
100
+ "policies/policy.web.grid.server_ops_virtualization.json",
101
+ "policies/policy.web.grid.shell_change_matrix.json",
102
+ "policies/policy.web.grid.width_fix_ladder.json",
103
+ "policies/policy.web.perf.budget_skeleton.json",
104
+ "policies/policy.web.style.ownership_matrix.json",
105
+ "policies/policy.web.track.consent_lifecycle.json",
106
+ "policies/policy.web.track.privacy_default_deny.json",
107
+ "policies/policy.web.track.stable_event_keys.json",
108
+ "policies/policy.web.uiux.provider_evidence_not_business_truth.json",
109
+ "sensors/sensor.browser.deterministic.json",
110
+ "sensors/sensor.browser.interactive.json",
111
+ "sensors/sensor.build.static.json",
112
+ "sensors/sensor.contract.conformance.json",
113
+ "sensors/sensor.performance.budget.json",
114
+ "sensors/sensor.production.metric.json"
115
+ ],
116
+ "required": [
117
+ "gates/gate.be.api.contract_checks.json",
118
+ "gates/gate.be.chg.contract_change_checks.json",
119
+ "gates/gate.chg.prechange_checks.json",
120
+ "gates/gate.web.api.request_checks.json",
121
+ "gates/gate.web.grid.checks.json",
122
+ "knowledge/knowledge.api.example_stable_error_code.json",
123
+ "knowledge/knowledge.chg.example_compat_window.json",
124
+ "knowledge/knowledge.chg.example_prop_migration.json",
125
+ "knowledge/knowledge.fp.api.field_drift_no_contract.json",
126
+ "knowledge/knowledge.fp.api.per_page_http_client.json",
127
+ "knowledge/knowledge.fp.be.contract_drift.json",
128
+ "knowledge/knowledge.fp.chg.page_local_padding.json",
129
+ "knowledge/knowledge.fp.grid.global_td_width.json",
130
+ "knowledge/knowledge.web.api.example_get_entity_list.json",
131
+ "knowledge/knowledge.web.grid.example_column_preset.json",
132
+ "policies/authority.be.api_contract_ownership.json",
133
+ "policies/authority.be.contract_ownership.json",
134
+ "policies/authority.chg.change_owners.json",
135
+ "policies/authority.web.api.request_owners.json",
136
+ "policies/authority.web.grid.ownership.json",
137
+ "policies/policy.api.backward_compat_defaults.json",
138
+ "policies/policy.api.contract_impl_consistency.json",
139
+ "policies/policy.api.no_informal_contract.json",
140
+ "policies/policy.arch.decision_tradeoff_record.json",
141
+ "policies/policy.cache.lifecycle_definition.json",
142
+ "policies/policy.chg.affect_templates.json",
143
+ "policies/policy.chg.breaking_versioning.json",
144
+ "policies/policy.chg.compat_migration_rollback.json",
145
+ "policies/policy.chg.deprecate_before_delete.json",
146
+ "policies/policy.chg.fix_at_root_cause_level.json",
147
+ "policies/policy.chg.observable_evolution.json",
148
+ "policies/policy.chg.prechange_consumer_scan.json",
149
+ "policies/policy.chg.staged_rollout.json",
150
+ "policies/policy.chg.sync_contract_docs_tests.json",
151
+ "policies/policy.conflict.priority_ladder.json",
152
+ "policies/policy.dep.admission_six_dimension_check.json",
153
+ "policies/policy.dep.change_surface_review.json",
154
+ "policies/policy.dep.introduction_review.json",
155
+ "policies/policy.derived.single_implementation.json",
156
+ "policies/policy.obs.correlation_context_minimum.json",
157
+ "policies/policy.obs.rum_dimension_whitelist.json",
158
+ "policies/policy.proc.pre_code_declaration.json",
159
+ "policies/policy.rel.pre_release_confirmation.json",
160
+ "policies/policy.role.domain_decision_authority.json",
161
+ "policies/policy.sec.third_party_execution_register.json",
162
+ "policies/policy.spec.admission_criteria.json",
163
+ "policies/policy.spec.derived_view_regeneration.json",
164
+ "policies/policy.spec.draft_not_baseline.json",
165
+ "policies/policy.spec.file_structure_contract.json",
166
+ "policies/policy.spec.metadata_required.json",
167
+ "policies/policy.spec.post_dev_backfill_classify.json",
168
+ "policies/policy.spec.procedural_record_not_surrogate.json",
169
+ "policies/policy.spec.semantic_identity.json",
170
+ "policies/policy.spec.unresolved_ledger_gate.json",
171
+ "policies/policy.stack.no_implicit_selection.json",
172
+ "policies/policy.tool.scoped_scan_boundary.json",
173
+ "policies/policy.web.api.auth_app_client_split.json",
174
+ "policies/policy.web.api.client_change_impact.json",
175
+ "policies/policy.web.api.domain_api_only.json",
176
+ "policies/policy.web.api.error_normalization.json",
177
+ "policies/policy.web.api.generated_client.json",
178
+ "policies/policy.web.api.late_result_guard.json",
179
+ "policies/policy.web.api.mutation_idempotency.json",
180
+ "policies/policy.web.api.no_network_optimism.json",
181
+ "policies/policy.web.api.query_cancel_stale_drop.json",
182
+ "policies/policy.web.api.request_infrastructure.json",
183
+ "policies/policy.web.api.retry_discipline.json",
184
+ "policies/policy.web.api.session_recovery_split.json",
185
+ "policies/policy.web.api.single_http_client.json",
186
+ "policies/policy.web.api.single_loading_source.json",
187
+ "policies/policy.web.api.transport_vs_business.json",
188
+ "policies/policy.web.api.trusted_endpoint_source.json",
189
+ "policies/policy.web.api.typed_domain_naming.json",
190
+ "policies/policy.web.arch.layer_isolation.json",
191
+ "policies/policy.web.arch.naming_conventions.json",
192
+ "policies/policy.web.arch.public_api_barrel.json",
193
+ "policies/policy.web.chg.controlled_change_triggers.json",
194
+ "policies/policy.web.copy.suppression_ledger_discipline.json",
195
+ "policies/policy.web.grid.column_schema_fields.json",
196
+ "policies/policy.web.grid.config_isolation.json",
197
+ "policies/policy.web.grid.freeze_key_columns.json",
198
+ "policies/policy.web.grid.interaction_registry.json",
199
+ "policies/policy.web.grid.keyboard_clipboard.json",
200
+ "policies/policy.web.grid.schema_driven_shell.json",
201
+ "policies/policy.web.grid.schema_versioning.json",
202
+ "policies/policy.web.grid.server_ops_virtualization.json",
203
+ "policies/policy.web.grid.shell_change_matrix.json",
204
+ "policies/policy.web.grid.width_fix_ladder.json",
205
+ "policies/policy.web.perf.budget_skeleton.json",
206
+ "policies/policy.web.style.ownership_matrix.json",
207
+ "policies/policy.web.track.consent_lifecycle.json",
208
+ "policies/policy.web.track.privacy_default_deny.json",
209
+ "policies/policy.web.track.stable_event_keys.json",
210
+ "policies/policy.web.uiux.provider_evidence_not_business_truth.json",
211
+ "sensors/sensor.browser.deterministic.json",
212
+ "sensors/sensor.browser.interactive.json",
213
+ "sensors/sensor.build.static.json",
214
+ "sensors/sensor.contract.conformance.json",
215
+ "sensors/sensor.performance.budget.json",
216
+ "sensors/sensor.production.metric.json"
217
+ ]
218
+ },
219
+ "entries": [
220
+ {
221
+ "id": "AUTHORITY.BE.API_CONTRACT_OWNERSHIP",
222
+ "path": "policies/authority.be.api_contract_ownership.json",
223
+ "content_sha256": "sha256:ea32fd4f036903543c2e2242b635a7dc7edceee8cac72c20bed0062ace05a912",
224
+ "source_ref": "pomaster/components/backend-hard-spec/assets/universal/12-api-contract-protocol.md"
225
+ },
226
+ {
227
+ "id": "AUTHORITY.BE.CONTRACT_OWNERSHIP",
228
+ "path": "policies/authority.be.contract_ownership.json",
229
+ "content_sha256": "sha256:85f643c6687d9e7dc1910197ae555e218d145c3d4a8f0f821d5367ce49c2e694",
230
+ "source_ref": "pomaster/components/backend-hard-spec/assets/universal/08-contract-change-protocol.md"
231
+ },
232
+ {
233
+ "id": "AUTHORITY.CHG.CHANGE_OWNERS",
234
+ "path": "policies/authority.chg.change_owners.json",
235
+ "content_sha256": "sha256:967a41d84d4ee1511a51def82af90b8b42a5939d096d54daaf7d5658cdf9c9f1",
236
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
237
+ },
238
+ {
239
+ "id": "AUTHORITY.WEB.API.REQUEST_OWNERS",
240
+ "path": "policies/authority.web.api.request_owners.json",
241
+ "content_sha256": "sha256:c6e2d913af5eb5eefb5ea0cf9af6adc1e96bdbd95f49024eee47cf3ae3c1eef4",
242
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
243
+ },
244
+ {
245
+ "id": "AUTHORITY.WEB.GRID.OWNERSHIP",
246
+ "path": "policies/authority.web.grid.ownership.json",
247
+ "content_sha256": "sha256:f2bcb074de783d1ff6bab5c2a7e36c1aa97cc520e550b08da8dd277660e4129c",
248
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
249
+ },
250
+ {
251
+ "id": "GATE.BE.API.CONTRACT_CHECKS",
252
+ "path": "gates/gate.be.api.contract_checks.json",
253
+ "content_sha256": "sha256:4b8938397ee1c5abdd1395435e31ee5442e243123b05dff7b3e7e9b562069442",
254
+ "source_ref": "pomaster/components/backend-hard-spec/assets/universal/12-api-contract-protocol.md"
255
+ },
256
+ {
257
+ "id": "GATE.BE.CHG.CONTRACT_CHANGE_CHECKS",
258
+ "path": "gates/gate.be.chg.contract_change_checks.json",
259
+ "content_sha256": "sha256:6b53322302fa40a73d276c40cc8f2ca0fce6e5e9d1a33f88635331fc94dda3dc",
260
+ "source_ref": "pomaster/components/backend-hard-spec/assets/universal/08-contract-change-protocol.md"
261
+ },
262
+ {
263
+ "id": "GATE.CHG.PRECHANGE_CHECKS",
264
+ "path": "gates/gate.chg.prechange_checks.json",
265
+ "content_sha256": "sha256:86f0fdcb146ecad551d5cc561cdce0f3280c22ad5adc9ab5886bb83d3cdad5f0",
266
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
267
+ },
268
+ {
269
+ "id": "GATE.WEB.API.REQUEST_CHECKS",
270
+ "path": "gates/gate.web.api.request_checks.json",
271
+ "content_sha256": "sha256:6b49d5111634ceb768a5e426db7ff34231a91943f0c1b2117d4986e1564e0cf3",
272
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
273
+ },
274
+ {
275
+ "id": "GATE.WEB.GRID.CHECKS",
276
+ "path": "gates/gate.web.grid.checks.json",
277
+ "content_sha256": "sha256:cf7e571efd93f8ae29334ad0bc1445033ece680a51835ce474d40d8a31d07619",
278
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
279
+ },
280
+ {
281
+ "id": "KNOWLEDGE.API.EXAMPLE_STABLE_ERROR_CODE",
282
+ "path": "knowledge/knowledge.api.example_stable_error_code.json",
283
+ "content_sha256": "sha256:8def854ff85f5448b231a82fabfb63cb4ecdf3c51661d4551e386dd667dbc5c6",
284
+ "source_ref": "pomaster/components/backend-hard-spec/assets/universal/12-api-contract-protocol.md"
285
+ },
286
+ {
287
+ "id": "KNOWLEDGE.CHG.EXAMPLE_COMPAT_WINDOW",
288
+ "path": "knowledge/knowledge.chg.example_compat_window.json",
289
+ "content_sha256": "sha256:31e4a6a1a0898e319fd341535e11c71ef7d55183059e8d7c96a4628c54245448",
290
+ "source_ref": "pomaster/components/backend-hard-spec/assets/universal/08-contract-change-protocol.md"
291
+ },
292
+ {
293
+ "id": "KNOWLEDGE.CHG.EXAMPLE_PROP_MIGRATION",
294
+ "path": "knowledge/knowledge.chg.example_prop_migration.json",
295
+ "content_sha256": "sha256:d372a4941abecaafd6d53331d5eac8fe13595333276ae8350f16aac29df94de0",
296
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
297
+ },
298
+ {
299
+ "id": "KNOWLEDGE.FP.API.FIELD_DRIFT_NO_CONTRACT",
300
+ "path": "knowledge/knowledge.fp.api.field_drift_no_contract.json",
301
+ "content_sha256": "sha256:e2182eb5b67c6c71e82ca37cb17a6d063541fc3d7f8f5e778ecfaea47d0207ca",
302
+ "source_ref": "pomaster/components/backend-hard-spec/assets/universal/12-api-contract-protocol.md"
303
+ },
304
+ {
305
+ "id": "KNOWLEDGE.FP.API.PER_PAGE_HTTP_CLIENT",
306
+ "path": "knowledge/knowledge.fp.api.per_page_http_client.json",
307
+ "content_sha256": "sha256:627907901169077da6d53a5b52162445b18cc5671afb4bcdb6be3571567f1aeb",
308
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
309
+ },
310
+ {
311
+ "id": "KNOWLEDGE.FP.BE.CONTRACT_DRIFT",
312
+ "path": "knowledge/knowledge.fp.be.contract_drift.json",
313
+ "content_sha256": "sha256:871eba9fbf646b43dec353e8b66d9a9a8153c2dbd7803617f3ee8ff46dcdb93a",
314
+ "source_ref": "pomaster/components/backend-hard-spec/assets/universal/08-contract-change-protocol.md"
315
+ },
316
+ {
317
+ "id": "KNOWLEDGE.FP.CHG.PAGE_LOCAL_PADDING",
318
+ "path": "knowledge/knowledge.fp.chg.page_local_padding.json",
319
+ "content_sha256": "sha256:74c2e8fad33ad38af354d8bcf9ce5b9a4c4285605361dc5768f5d1cd89e65bc3",
320
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
321
+ },
322
+ {
323
+ "id": "KNOWLEDGE.FP.GRID.GLOBAL_TD_WIDTH",
324
+ "path": "knowledge/knowledge.fp.grid.global_td_width.json",
325
+ "content_sha256": "sha256:3bf580c79d851921c227fc8fabb57b9dce8e8a4e73cc30f54a22d9972ef7031d",
326
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
327
+ },
328
+ {
329
+ "id": "KNOWLEDGE.WEB.API.EXAMPLE_GET_ENTITY_LIST",
330
+ "path": "knowledge/knowledge.web.api.example_get_entity_list.json",
331
+ "content_sha256": "sha256:e179dacbb1ba29a80c88a7ca812ddc463a31d8dcf835e87ffd2fd32e9a0ef755",
332
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
333
+ },
334
+ {
335
+ "id": "KNOWLEDGE.WEB.GRID.EXAMPLE_COLUMN_PRESET",
336
+ "path": "knowledge/knowledge.web.grid.example_column_preset.json",
337
+ "content_sha256": "sha256:131424299e976c0bafaa70f38fcc338469b6ace06600fa78164c5a124eefd3ee",
338
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
339
+ },
340
+ {
341
+ "id": "POLICY.API.BACKWARD_COMPAT_DEFAULTS",
342
+ "path": "policies/policy.api.backward_compat_defaults.json",
343
+ "content_sha256": "sha256:9391d1e52b2f32e4f93c8691790d9c04b34614538a15c78636e7db1436fb8271",
344
+ "source_ref": "pomaster/components/backend-hard-spec/assets/universal/12-api-contract-protocol.md"
345
+ },
346
+ {
347
+ "id": "POLICY.API.CONTRACT_IMPL_CONSISTENCY",
348
+ "path": "policies/policy.api.contract_impl_consistency.json",
349
+ "content_sha256": "sha256:482986487e479e8ea5828a33e14913dd0b8fa71ec18f6201cbc491acd26b26b9",
350
+ "source_ref": "pomaster/components/backend-hard-spec/assets/universal/12-api-contract-protocol.md"
351
+ },
352
+ {
353
+ "id": "POLICY.API.NO_INFORMAL_CONTRACT",
354
+ "path": "policies/policy.api.no_informal_contract.json",
355
+ "content_sha256": "sha256:51e62f446a9a09904b15409cbf532430d2b2afab35f67788e4421e76913456cb",
356
+ "source_ref": "pomaster/components/backend-hard-spec/assets/universal/12-api-contract-protocol.md"
357
+ },
358
+ {
359
+ "id": "POLICY.ARCH.DECISION_TRADEOFF_RECORD",
360
+ "path": "policies/policy.arch.decision_tradeoff_record.json",
361
+ "content_sha256": "sha256:05d9895b333a5c0245628f7986b81095e0a77b90705d005a9ee5c2a3af6344d2",
362
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G1.yaml"
363
+ },
364
+ {
365
+ "id": "POLICY.CACHE.LIFECYCLE_DEFINITION",
366
+ "path": "policies/policy.cache.lifecycle_definition.json",
367
+ "content_sha256": "sha256:41935230c5eb30609e28d5e164b99815acc2ada90a67f70543adfa3855ac1b3b",
368
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G4.yaml"
369
+ },
370
+ {
371
+ "id": "POLICY.CHG.AFFECT_TEMPLATES",
372
+ "path": "policies/policy.chg.affect_templates.json",
373
+ "content_sha256": "sha256:b4d113bcef7a428d4ab9c6f0179f19f7fde3f9abf0ef7640bcf14bf75fe69b40",
374
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
375
+ },
376
+ {
377
+ "id": "POLICY.CHG.BREAKING_VERSIONING",
378
+ "path": "policies/policy.chg.breaking_versioning.json",
379
+ "content_sha256": "sha256:19cae0081fca61d2b54348b88b4a2b4b456727de7f0cd4effcbdf2f1bb85451e",
380
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
381
+ },
382
+ {
383
+ "id": "POLICY.CHG.COMPAT_MIGRATION_ROLLBACK",
384
+ "path": "policies/policy.chg.compat_migration_rollback.json",
385
+ "content_sha256": "sha256:9940a8a608e276a1d1a855086cfce4a25ef0dfbf0b15ad994ff1bbdc783e8cf7",
386
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
387
+ },
388
+ {
389
+ "id": "POLICY.CHG.DEPRECATE_BEFORE_DELETE",
390
+ "path": "policies/policy.chg.deprecate_before_delete.json",
391
+ "content_sha256": "sha256:b9f87998d5400b0af2e2a9fcfe9eecaacd2d92c4b4fef4fa45a7189e11bbcdfc",
392
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
393
+ },
394
+ {
395
+ "id": "POLICY.CHG.FIX_AT_ROOT_CAUSE_LEVEL",
396
+ "path": "policies/policy.chg.fix_at_root_cause_level.json",
397
+ "content_sha256": "sha256:e5ddc6242ebd9d611c382f20a294b4a172f28b98700bd89ad49cc59ec99f0961",
398
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
399
+ },
400
+ {
401
+ "id": "POLICY.CHG.OBSERVABLE_EVOLUTION",
402
+ "path": "policies/policy.chg.observable_evolution.json",
403
+ "content_sha256": "sha256:51bc1e3ea738a2c4a277f1195484b24bb410b9f4a21ace0cb3668b958b04122d",
404
+ "source_ref": "pomaster/components/backend-hard-spec/assets/universal/08-contract-change-protocol.md"
405
+ },
406
+ {
407
+ "id": "POLICY.CHG.PRECHANGE_CONSUMER_SCAN",
408
+ "path": "policies/policy.chg.prechange_consumer_scan.json",
409
+ "content_sha256": "sha256:e2e625878f81f282f2ddfe6f547bbce3d1414f377a80a1f7b7eb2b1aa692f6ea",
410
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
411
+ },
412
+ {
413
+ "id": "POLICY.CHG.STAGED_ROLLOUT",
414
+ "path": "policies/policy.chg.staged_rollout.json",
415
+ "content_sha256": "sha256:3a44137a8de1ed95db7da427c3ae7d78a8fe808b2bbfac25ebc2d713ed8ad986",
416
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
417
+ },
418
+ {
419
+ "id": "POLICY.CHG.SYNC_CONTRACT_DOCS_TESTS",
420
+ "path": "policies/policy.chg.sync_contract_docs_tests.json",
421
+ "content_sha256": "sha256:d8a7b163e10d0de226b6eefa1f74fcaec2b1225fa61c3df682e759f5944c1fc2",
422
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
423
+ },
424
+ {
425
+ "id": "POLICY.CONFLICT.PRIORITY_LADDER",
426
+ "path": "policies/policy.conflict.priority_ladder.json",
427
+ "content_sha256": "sha256:c0f3e8fc8d6c9a767cb3568c84bf01aa48f9cf18cdf6a7f4ed956b3f394b7191",
428
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml"
429
+ },
430
+ {
431
+ "id": "POLICY.DEP.ADMISSION_SIX_DIMENSION_CHECK",
432
+ "path": "policies/policy.dep.admission_six_dimension_check.json",
433
+ "content_sha256": "sha256:789c44b7a661fc60c6785eea4c68c0d5337ca35525602ee0d90cecdf8a1f9ec1",
434
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G1.yaml"
435
+ },
436
+ {
437
+ "id": "POLICY.DEP.CHANGE_SURFACE_REVIEW",
438
+ "path": "policies/policy.dep.change_surface_review.json",
439
+ "content_sha256": "sha256:ba8e31a76c2e6dbddeb75294e8a77720bf225f761cd277a4d5cbabfde56aa48b",
440
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml"
441
+ },
442
+ {
443
+ "id": "POLICY.DEP.INTRODUCTION_REVIEW",
444
+ "path": "policies/policy.dep.introduction_review.json",
445
+ "content_sha256": "sha256:a1f14397d363055d40444af6d356024fc4c47bfaa7115242959eff111f981bb7",
446
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml"
447
+ },
448
+ {
449
+ "id": "POLICY.DERIVED.SINGLE_IMPLEMENTATION",
450
+ "path": "policies/policy.derived.single_implementation.json",
451
+ "content_sha256": "sha256:46b442c851ba903e165740d92162453408295c2dde8a0a358ca1de414a14d5b6",
452
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/GUIDES.yaml"
453
+ },
454
+ {
455
+ "id": "POLICY.OBS.CORRELATION_CONTEXT_MINIMUM",
456
+ "path": "policies/policy.obs.correlation_context_minimum.json",
457
+ "content_sha256": "sha256:50069a77ebef43041521a26808137b8d2cf5fdc5e85b2457df5687ed0c805473",
458
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G4.yaml"
459
+ },
460
+ {
461
+ "id": "POLICY.OBS.RUM_DIMENSION_WHITELIST",
462
+ "path": "policies/policy.obs.rum_dimension_whitelist.json",
463
+ "content_sha256": "sha256:991ef5189f8ae6c15e730e7aa0873f44524e516bc2bbaa7d840271d59f17a0fa",
464
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml"
465
+ },
466
+ {
467
+ "id": "POLICY.PROC.PRE_CODE_DECLARATION",
468
+ "path": "policies/policy.proc.pre_code_declaration.json",
469
+ "content_sha256": "sha256:d32e2bf8c544aa203f46d4880181c3a4fd0b65fbfb80a940902dc73b1b0a6943",
470
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml"
471
+ },
472
+ {
473
+ "id": "POLICY.REL.PRE_RELEASE_CONFIRMATION",
474
+ "path": "policies/policy.rel.pre_release_confirmation.json",
475
+ "content_sha256": "sha256:1837323cd3674f5a01a29b13422b877ea03e8a5a00829cff0d6a75024f907f6d",
476
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G1.yaml"
477
+ },
478
+ {
479
+ "id": "POLICY.ROLE.DOMAIN_DECISION_AUTHORITY",
480
+ "path": "policies/policy.role.domain_decision_authority.json",
481
+ "content_sha256": "sha256:635a7607dd0305046fbe42431ae6e97b41665acea94fad6af80395339f23278a",
482
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml"
483
+ },
484
+ {
485
+ "id": "POLICY.SEC.THIRD_PARTY_EXECUTION_REGISTER",
486
+ "path": "policies/policy.sec.third_party_execution_register.json",
487
+ "content_sha256": "sha256:a87b0f4ffbd1a7eb3b2fca73d94c4cca51925379b0348fa67ac28e241c33feef",
488
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml"
489
+ },
490
+ {
491
+ "id": "POLICY.SPEC.ADMISSION_CRITERIA",
492
+ "path": "policies/policy.spec.admission_criteria.json",
493
+ "content_sha256": "sha256:8512e88b7003040c6d176345ffbe4e077435ea166b7b358a5c580e8f3c37d58f",
494
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml"
495
+ },
496
+ {
497
+ "id": "POLICY.SPEC.DERIVED_VIEW_REGENERATION",
498
+ "path": "policies/policy.spec.derived_view_regeneration.json",
499
+ "content_sha256": "sha256:c979686e6f2dcc5857644b1c151b2099b697af512335c7bda37123155e2594b4",
500
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G4.yaml"
501
+ },
502
+ {
503
+ "id": "POLICY.SPEC.DRAFT_NOT_BASELINE",
504
+ "path": "policies/policy.spec.draft_not_baseline.json",
505
+ "content_sha256": "sha256:abfcca9c3730a08454f1adaebf6ef8c9d2d2b92b24683b3310f8fb74909df3c2",
506
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
507
+ },
508
+ {
509
+ "id": "POLICY.SPEC.FILE_STRUCTURE_CONTRACT",
510
+ "path": "policies/policy.spec.file_structure_contract.json",
511
+ "content_sha256": "sha256:0a2265eee325f1fc748ffc3f649e11e1a54c42a87a18be9aadf57bbabedf1e2b",
512
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml"
513
+ },
514
+ {
515
+ "id": "POLICY.SPEC.METADATA_REQUIRED",
516
+ "path": "policies/policy.spec.metadata_required.json",
517
+ "content_sha256": "sha256:35a16c6ed12adc464c15984cb5cc2277924ef2067b5d851eab79976210140c6e",
518
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
519
+ },
520
+ {
521
+ "id": "POLICY.SPEC.POST_DEV_BACKFILL_CLASSIFY",
522
+ "path": "policies/policy.spec.post_dev_backfill_classify.json",
523
+ "content_sha256": "sha256:b1b014d2f9761141c8066c0907581d8cae4a6e003fa12c8c22dd4132207527f8",
524
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
525
+ },
526
+ {
527
+ "id": "POLICY.SPEC.PROCEDURAL_RECORD_NOT_SURROGATE",
528
+ "path": "policies/policy.spec.procedural_record_not_surrogate.json",
529
+ "content_sha256": "sha256:3d1a3f2a469cd8b13d9b1627bd3730cd3f0080712890bdbfdea1ad619e6dc7c4",
530
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml"
531
+ },
532
+ {
533
+ "id": "POLICY.SPEC.SEMANTIC_IDENTITY",
534
+ "path": "policies/policy.spec.semantic_identity.json",
535
+ "content_sha256": "sha256:aa1122f51aff6ad8097df48121e8a6d5f4e81bf6544f98025ff742318b8b4bb9",
536
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml"
537
+ },
538
+ {
539
+ "id": "POLICY.SPEC.UNRESOLVED_LEDGER_GATE",
540
+ "path": "policies/policy.spec.unresolved_ledger_gate.json",
541
+ "content_sha256": "sha256:a68e15bc4fd2c1a26e54da0175b74c74486680bda24db7db950d635b40e5e120",
542
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G4.yaml"
543
+ },
544
+ {
545
+ "id": "POLICY.STACK.NO_IMPLICIT_SELECTION",
546
+ "path": "policies/policy.stack.no_implicit_selection.json",
547
+ "content_sha256": "sha256:42058339a4e003d8c9765c2d9d5ffde20f7f0528c6ee56eef998ef710f30193b",
548
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/BE-G5.yaml"
549
+ },
550
+ {
551
+ "id": "POLICY.TOOL.SCOPED_SCAN_BOUNDARY",
552
+ "path": "policies/policy.tool.scoped_scan_boundary.json",
553
+ "content_sha256": "sha256:696ec965298e8cce7257875cb0401535a48b4f00527a552404b24d845c60a368",
554
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G1.yaml"
555
+ },
556
+ {
557
+ "id": "POLICY.WEB.API.AUTH_APP_CLIENT_SPLIT",
558
+ "path": "policies/policy.web.api.auth_app_client_split.json",
559
+ "content_sha256": "sha256:0901949ef126bed1ee3f7bbb74c70152ae06e92ca6ce8b5bc600d685df233959",
560
+ "source_ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
561
+ },
562
+ {
563
+ "id": "POLICY.WEB.API.CLIENT_CHANGE_IMPACT",
564
+ "path": "policies/policy.web.api.client_change_impact.json",
565
+ "content_sha256": "sha256:54948aa42fb61af21386c76a88feabf819a33d16cad3bd9417db2f6df5e210d4",
566
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
567
+ },
568
+ {
569
+ "id": "POLICY.WEB.API.DOMAIN_API_ONLY",
570
+ "path": "policies/policy.web.api.domain_api_only.json",
571
+ "content_sha256": "sha256:04003181afc7c7d55cbb44e131ec0d65ae76d4d6f17b00dee8733145a28278d5",
572
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
573
+ },
574
+ {
575
+ "id": "POLICY.WEB.API.ERROR_NORMALIZATION",
576
+ "path": "policies/policy.web.api.error_normalization.json",
577
+ "content_sha256": "sha256:f997c25d8d585934efb151b655735d9cbdee6ceaee6332400f3a11907df100b6",
578
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
579
+ },
580
+ {
581
+ "id": "POLICY.WEB.API.GENERATED_CLIENT",
582
+ "path": "policies/policy.web.api.generated_client.json",
583
+ "content_sha256": "sha256:31f15f21f9d07d53ef031c852957700b0140b29042807434c37cd43a6b1b5ee4",
584
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
585
+ },
586
+ {
587
+ "id": "POLICY.WEB.API.LATE_RESULT_GUARD",
588
+ "path": "policies/policy.web.api.late_result_guard.json",
589
+ "content_sha256": "sha256:63eeaeb1ebc346425752dbc34cec63536300ff6fb4daf1ecfc1f5da5140f166f",
590
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
591
+ },
592
+ {
593
+ "id": "POLICY.WEB.API.MUTATION_IDEMPOTENCY",
594
+ "path": "policies/policy.web.api.mutation_idempotency.json",
595
+ "content_sha256": "sha256:6e02103e00c24453c7224aa9e8a91b01dbb8d46a900bf1130d711911675ff4f3",
596
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
597
+ },
598
+ {
599
+ "id": "POLICY.WEB.API.NO_NETWORK_OPTIMISM",
600
+ "path": "policies/policy.web.api.no_network_optimism.json",
601
+ "content_sha256": "sha256:bc1d7b5b09992ffc1b132f269ffe0af7dcef27068339e0ec58ba241fbd8255dd",
602
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
603
+ },
604
+ {
605
+ "id": "POLICY.WEB.API.QUERY_CANCEL_STALE_DROP",
606
+ "path": "policies/policy.web.api.query_cancel_stale_drop.json",
607
+ "content_sha256": "sha256:ed50ec800f23afb4e7965bc6a560d241d53589aec190dca403310c2b02ebfd5c",
608
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
609
+ },
610
+ {
611
+ "id": "POLICY.WEB.API.REQUEST_INFRASTRUCTURE",
612
+ "path": "policies/policy.web.api.request_infrastructure.json",
613
+ "content_sha256": "sha256:9a9768f1ce73afa70355b3ca0378372654d8be6a418847524eff0eafb89dc797",
614
+ "source_ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
615
+ },
616
+ {
617
+ "id": "POLICY.WEB.API.RETRY_DISCIPLINE",
618
+ "path": "policies/policy.web.api.retry_discipline.json",
619
+ "content_sha256": "sha256:f49013f3bea9763cf86da25ea22c37d8a556496e7a49850c42c9b1ffa596b1a0",
620
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
621
+ },
622
+ {
623
+ "id": "POLICY.WEB.API.SESSION_RECOVERY_SPLIT",
624
+ "path": "policies/policy.web.api.session_recovery_split.json",
625
+ "content_sha256": "sha256:d64abcd2551e1eba5af1ce21d7296733555279682c9b47037eb8f457357d8a16",
626
+ "source_ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
627
+ },
628
+ {
629
+ "id": "POLICY.WEB.API.SINGLE_HTTP_CLIENT",
630
+ "path": "policies/policy.web.api.single_http_client.json",
631
+ "content_sha256": "sha256:2f040f3de18b3776791f911f6564b21bc2b993f7a272b6541588a348d14fac02",
632
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
633
+ },
634
+ {
635
+ "id": "POLICY.WEB.API.SINGLE_LOADING_SOURCE",
636
+ "path": "policies/policy.web.api.single_loading_source.json",
637
+ "content_sha256": "sha256:7070fecdc3d892a3d3d499eec39edae8a2347dafbfecf1fdf65f7aa198044ec0",
638
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
639
+ },
640
+ {
641
+ "id": "POLICY.WEB.API.TRANSPORT_VS_BUSINESS",
642
+ "path": "policies/policy.web.api.transport_vs_business.json",
643
+ "content_sha256": "sha256:323b674d3cb78283da598ed6b26334e4ddee277635a252b4bc7e5b3deaec0e42",
644
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
645
+ },
646
+ {
647
+ "id": "POLICY.WEB.API.TRUSTED_ENDPOINT_SOURCE",
648
+ "path": "policies/policy.web.api.trusted_endpoint_source.json",
649
+ "content_sha256": "sha256:babdb69c717aa9fa90be6f7ac71f64ac2bb1019b5ffb3bc882628824d55f1b19",
650
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
651
+ },
652
+ {
653
+ "id": "POLICY.WEB.API.TYPED_DOMAIN_NAMING",
654
+ "path": "policies/policy.web.api.typed_domain_naming.json",
655
+ "content_sha256": "sha256:6a8dc6389a848e09e9abbd1ec9eba70385c7b3bef4d9b8b59dcb873e853e83b2",
656
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/15-request-api-protocol.md"
657
+ },
658
+ {
659
+ "id": "POLICY.WEB.ARCH.LAYER_ISOLATION",
660
+ "path": "policies/policy.web.arch.layer_isolation.json",
661
+ "content_sha256": "sha256:f22cb344f315360a17f0c8584f78b2b76f7882ad70e3b01b1ffd3ef84952558b",
662
+ "source_ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
663
+ },
664
+ {
665
+ "id": "POLICY.WEB.ARCH.NAMING_CONVENTIONS",
666
+ "path": "policies/policy.web.arch.naming_conventions.json",
667
+ "content_sha256": "sha256:77720ea57bc35bf145338487ae8492cc6d3765a89471f9d74d3c85ffc90eaa33",
668
+ "source_ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
669
+ },
670
+ {
671
+ "id": "POLICY.WEB.ARCH.PUBLIC_API_BARREL",
672
+ "path": "policies/policy.web.arch.public_api_barrel.json",
673
+ "content_sha256": "sha256:7898033964629e6f04f0be3c43d5ebd584f534fd0580084f8d5670906462d6a6",
674
+ "source_ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
675
+ },
676
+ {
677
+ "id": "POLICY.WEB.CHG.CONTROLLED_CHANGE_TRIGGERS",
678
+ "path": "policies/policy.web.chg.controlled_change_triggers.json",
679
+ "content_sha256": "sha256:d14df5908831547b2b9f903d795dc709dcb64d7761325024db698f7776486bf7",
680
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md"
681
+ },
682
+ {
683
+ "id": "POLICY.WEB.COPY.SUPPRESSION_LEDGER_DISCIPLINE",
684
+ "path": "policies/policy.web.copy.suppression_ledger_discipline.json",
685
+ "content_sha256": "sha256:c6e392a87f1bd8f6e55adbe4b975f9c247eeb0f84c5f3227f6acd14a1c5ed589",
686
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G4.yaml"
687
+ },
688
+ {
689
+ "id": "POLICY.WEB.GRID.COLUMN_SCHEMA_FIELDS",
690
+ "path": "policies/policy.web.grid.column_schema_fields.json",
691
+ "content_sha256": "sha256:12b574bf8f7bc19e9826b0beb1bc5fac930c8f038c902fd656e36fb615aa30de",
692
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
693
+ },
694
+ {
695
+ "id": "POLICY.WEB.GRID.CONFIG_ISOLATION",
696
+ "path": "policies/policy.web.grid.config_isolation.json",
697
+ "content_sha256": "sha256:f20e6d69ecfc763194238c75356419c7439b19efbcee5001b80c3bf3e3c7466f",
698
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
699
+ },
700
+ {
701
+ "id": "POLICY.WEB.GRID.FREEZE_KEY_COLUMNS",
702
+ "path": "policies/policy.web.grid.freeze_key_columns.json",
703
+ "content_sha256": "sha256:a38ede2c756f7d97d719f552b492741e72c2f9c3f8c7937cae1f507a130c0efc",
704
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
705
+ },
706
+ {
707
+ "id": "POLICY.WEB.GRID.INTERACTION_REGISTRY",
708
+ "path": "policies/policy.web.grid.interaction_registry.json",
709
+ "content_sha256": "sha256:f8d90f27516359b5728661b97022059a479613fd95dbd2debab220599cdb88c0",
710
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
711
+ },
712
+ {
713
+ "id": "POLICY.WEB.GRID.KEYBOARD_CLIPBOARD",
714
+ "path": "policies/policy.web.grid.keyboard_clipboard.json",
715
+ "content_sha256": "sha256:979a838c1f779a8ab41498c79643ffc18543cb52f4f87f4f82faff118e4bce0d",
716
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
717
+ },
718
+ {
719
+ "id": "POLICY.WEB.GRID.SCHEMA_DRIVEN_SHELL",
720
+ "path": "policies/policy.web.grid.schema_driven_shell.json",
721
+ "content_sha256": "sha256:68b2e00625e342117aa1500e64a365a6b6219755cb80469006f8acfb5d28351c",
722
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
723
+ },
724
+ {
725
+ "id": "POLICY.WEB.GRID.SCHEMA_VERSIONING",
726
+ "path": "policies/policy.web.grid.schema_versioning.json",
727
+ "content_sha256": "sha256:5849dec2842d0f45d9534de2bdbc5d297c1b2db4056935c18505c95282a56f1a",
728
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
729
+ },
730
+ {
731
+ "id": "POLICY.WEB.GRID.SERVER_OPS_VIRTUALIZATION",
732
+ "path": "policies/policy.web.grid.server_ops_virtualization.json",
733
+ "content_sha256": "sha256:6864cfb98d35aba2df6986c9941acc1ce2213ffb2937b1a95eba7b85256145e0",
734
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
735
+ },
736
+ {
737
+ "id": "POLICY.WEB.GRID.SHELL_CHANGE_MATRIX",
738
+ "path": "policies/policy.web.grid.shell_change_matrix.json",
739
+ "content_sha256": "sha256:e1edb0e1def27432ae9433e03a03b49b9331bd55aef435e82538648e5f44ef7d",
740
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
741
+ },
742
+ {
743
+ "id": "POLICY.WEB.GRID.WIDTH_FIX_LADDER",
744
+ "path": "policies/policy.web.grid.width_fix_ladder.json",
745
+ "content_sha256": "sha256:c8d6e84c118e17a7b369b17c0bb84b4cb735544430603ee954f77e4bdb677c01",
746
+ "source_ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md"
747
+ },
748
+ {
749
+ "id": "POLICY.WEB.PERF.BUDGET_SKELETON",
750
+ "path": "policies/policy.web.perf.budget_skeleton.json",
751
+ "content_sha256": "sha256:ef8d31e9a571e1139e3e17a603d03616500364e41aaf12a5601265846df8d872",
752
+ "source_ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
753
+ },
754
+ {
755
+ "id": "POLICY.WEB.STYLE.OWNERSHIP_MATRIX",
756
+ "path": "policies/policy.web.style.ownership_matrix.json",
757
+ "content_sha256": "sha256:24da44f9d446b51cf103c296600b75a7c1a8e2692d3ead932dd49a7741e84572",
758
+ "source_ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
759
+ },
760
+ {
761
+ "id": "POLICY.WEB.TRACK.CONSENT_LIFECYCLE",
762
+ "path": "policies/policy.web.track.consent_lifecycle.json",
763
+ "content_sha256": "sha256:2755b7e87c9aaa00bc558c306886cc5e8a1e57b1efbba3b381204c1b62f7d12f",
764
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G4.yaml"
765
+ },
766
+ {
767
+ "id": "POLICY.WEB.TRACK.PRIVACY_DEFAULT_DENY",
768
+ "path": "policies/policy.web.track.privacy_default_deny.json",
769
+ "content_sha256": "sha256:0f5a8ddcf3c951713601b20d097aeed6ae7ecf5c727083dcc41e5c2a2bc380f4",
770
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G4.yaml"
771
+ },
772
+ {
773
+ "id": "POLICY.WEB.TRACK.STABLE_EVENT_KEYS",
774
+ "path": "policies/policy.web.track.stable_event_keys.json",
775
+ "content_sha256": "sha256:601cb1a5a514cf06398b053e0e76ca0a25f314938d405c814624f7c143a91173",
776
+ "source_ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G4.yaml"
777
+ },
778
+ {
779
+ "id": "POLICY.WEB.UIUX.PROVIDER_EVIDENCE_NOT_BUSINESS_TRUTH",
780
+ "path": "policies/policy.web.uiux.provider_evidence_not_business_truth.json",
781
+ "content_sha256": "sha256:11166f8d112732b605dfcbdff4b72806dd82ebb50259b9dc1e8a54ccc22e53bf",
782
+ "source_ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
783
+ },
784
+ {
785
+ "id": "SENSOR.BROWSER.DETERMINISTIC",
786
+ "path": "sensors/sensor.browser.deterministic.json",
787
+ "content_sha256": "sha256:480456873c0eea565135084aac4f33c3cf7ada7640efba56b8a0163b44d937e5",
788
+ "source_ref": "doc/POMaster-vNext-PRD-v0.5.2-agent-perception.md §14 P1-5(W1-E 线登记;仓库外路径——PRD 住 POMaster 工作区根 doc/,不在本仓;I9① 2026-09-02 修正原悬空词形 POMaster_VNext/doc/…)"
789
+ },
790
+ {
791
+ "id": "SENSOR.BROWSER.INTERACTIVE",
792
+ "path": "sensors/sensor.browser.interactive.json",
793
+ "content_sha256": "sha256:313e2d3ee2ee61c0d9e65a315a764a22675b2d33080f2401de73a14c3950a26b",
794
+ "source_ref": "doc/POMaster-vNext-PRD-v0.5.2-agent-perception.md §14 P1-5(W1-E 线登记;仓库外路径——PRD 住 POMaster 工作区根 doc/,不在本仓;I9① 2026-09-02 修正原悬空词形 POMaster_VNext/doc/…)"
795
+ },
796
+ {
797
+ "id": "SENSOR.BUILD.STATIC",
798
+ "path": "sensors/sensor.build.static.json",
799
+ "content_sha256": "sha256:cd1c965677e08ef3f0b92c9014ee4a3c8fa967419fbfabd1079590b6746ef462",
800
+ "source_ref": "doc/POMaster-vNext-PRD-v0.5.2-agent-perception.md §14 P1-5(W1-E 线登记;仓库外路径——PRD 住 POMaster 工作区根 doc/,不在本仓;I9① 2026-09-02 修正原悬空词形 POMaster_VNext/doc/…)"
801
+ },
802
+ {
803
+ "id": "SENSOR.CONTRACT.CONFORMANCE",
804
+ "path": "sensors/sensor.contract.conformance.json",
805
+ "content_sha256": "sha256:cf961ae80c9472c1e7d5ffc85bc5d3c975a0dd390b1c52986cfccee1c1373194",
806
+ "source_ref": "doc/POMaster-vNext-PRD-v0.5.2-agent-perception.md §14 P1-5(W1-E 线登记;仓库外路径——PRD 住 POMaster 工作区根 doc/,不在本仓;I9① 2026-09-02 修正原悬空词形 POMaster_VNext/doc/…)"
807
+ },
808
+ {
809
+ "id": "SENSOR.PERFORMANCE.BUDGET",
810
+ "path": "sensors/sensor.performance.budget.json",
811
+ "content_sha256": "sha256:6bf3c3a8eeca97f59400fca0217522016d4fbfe8b2de00891a3173d715875798",
812
+ "source_ref": "doc/POMaster-vNext-PRD-v0.5.2-agent-perception.md §14 P1-5(W1-E 线登记;仓库外路径——PRD 住 POMaster 工作区根 doc/,不在本仓;I9① 2026-09-02 修正原悬空词形 POMaster_VNext/doc/…)"
813
+ },
814
+ {
815
+ "id": "SENSOR.PRODUCTION.METRIC",
816
+ "path": "sensors/sensor.production.metric.json",
817
+ "content_sha256": "sha256:969954331cfb8267524e614de72a8605c7cb8195c0f0e5867acf7adf82f52361",
818
+ "source_ref": "doc/POMaster-vNext-PRD-v0.5.2-agent-perception.md §14 P1-5(W1-E 线登记;仓库外路径——PRD 住 POMaster 工作区根 doc/,不在本仓;I9① 2026-09-02 修正原悬空词形 POMaster_VNext/doc/…)"
819
+ }
820
+ ],
821
+ "note": "read-side 指纹(D24):仅用于升级 diff 与防篡改抽验"
822
+ }