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.
- package/COMMERCIAL_LICENSE.md +35 -0
- package/LICENSE +83 -0
- package/README.md +396 -0
- package/SECURITY.md +22 -0
- package/TRADEMARKS.md +12 -0
- package/catalog/candidates/candidates-draft.json +198 -0
- package/catalog/candidates/rejected.json +422 -0
- package/catalog/catalog-lock.draft.json +822 -0
- package/catalog/gates/gate.be.api.contract_checks.json +138 -0
- package/catalog/gates/gate.be.chg.contract_change_checks.json +138 -0
- package/catalog/gates/gate.chg.prechange_checks.json +155 -0
- package/catalog/gates/gate.web.api.request_checks.json +149 -0
- package/catalog/gates/gate.web.grid.checks.json +149 -0
- package/catalog/knowledge/knowledge.api.example_stable_error_code.json +80 -0
- package/catalog/knowledge/knowledge.chg.example_compat_window.json +87 -0
- package/catalog/knowledge/knowledge.chg.example_prop_migration.json +87 -0
- package/catalog/knowledge/knowledge.fp.api.field_drift_no_contract.json +83 -0
- package/catalog/knowledge/knowledge.fp.api.per_page_http_client.json +83 -0
- package/catalog/knowledge/knowledge.fp.be.contract_drift.json +87 -0
- package/catalog/knowledge/knowledge.fp.chg.page_local_padding.json +88 -0
- package/catalog/knowledge/knowledge.fp.grid.global_td_width.json +87 -0
- package/catalog/knowledge/knowledge.web.api.example_get_entity_list.json +83 -0
- package/catalog/knowledge/knowledge.web.grid.example_column_preset.json +83 -0
- package/catalog/policies/authority.be.api_contract_ownership.json +77 -0
- package/catalog/policies/authority.be.contract_ownership.json +73 -0
- package/catalog/policies/authority.chg.change_owners.json +75 -0
- package/catalog/policies/authority.web.api.request_owners.json +82 -0
- package/catalog/policies/authority.web.grid.ownership.json +78 -0
- package/catalog/policies/policy.api.backward_compat_defaults.json +83 -0
- package/catalog/policies/policy.api.contract_impl_consistency.json +81 -0
- package/catalog/policies/policy.api.no_informal_contract.json +82 -0
- package/catalog/policies/policy.arch.decision_tradeoff_record.json +78 -0
- package/catalog/policies/policy.cache.lifecycle_definition.json +79 -0
- package/catalog/policies/policy.chg.affect_templates.json +79 -0
- package/catalog/policies/policy.chg.breaking_versioning.json +81 -0
- package/catalog/policies/policy.chg.compat_migration_rollback.json +82 -0
- package/catalog/policies/policy.chg.deprecate_before_delete.json +82 -0
- package/catalog/policies/policy.chg.fix_at_root_cause_level.json +78 -0
- package/catalog/policies/policy.chg.observable_evolution.json +78 -0
- package/catalog/policies/policy.chg.prechange_consumer_scan.json +83 -0
- package/catalog/policies/policy.chg.staged_rollout.json +79 -0
- package/catalog/policies/policy.chg.sync_contract_docs_tests.json +81 -0
- package/catalog/policies/policy.conflict.priority_ladder.json +79 -0
- package/catalog/policies/policy.dep.admission_six_dimension_check.json +84 -0
- package/catalog/policies/policy.dep.change_surface_review.json +82 -0
- package/catalog/policies/policy.dep.introduction_review.json +83 -0
- package/catalog/policies/policy.derived.single_implementation.json +77 -0
- package/catalog/policies/policy.obs.correlation_context_minimum.json +81 -0
- package/catalog/policies/policy.obs.rum_dimension_whitelist.json +77 -0
- package/catalog/policies/policy.proc.pre_code_declaration.json +78 -0
- package/catalog/policies/policy.rel.pre_release_confirmation.json +77 -0
- package/catalog/policies/policy.role.domain_decision_authority.json +77 -0
- package/catalog/policies/policy.sec.third_party_execution_register.json +78 -0
- package/catalog/policies/policy.spec.admission_criteria.json +79 -0
- package/catalog/policies/policy.spec.derived_view_regeneration.json +79 -0
- package/catalog/policies/policy.spec.draft_not_baseline.json +77 -0
- package/catalog/policies/policy.spec.file_structure_contract.json +76 -0
- package/catalog/policies/policy.spec.metadata_required.json +76 -0
- package/catalog/policies/policy.spec.post_dev_backfill_classify.json +74 -0
- package/catalog/policies/policy.spec.procedural_record_not_surrogate.json +76 -0
- package/catalog/policies/policy.spec.semantic_identity.json +77 -0
- package/catalog/policies/policy.spec.unresolved_ledger_gate.json +79 -0
- package/catalog/policies/policy.stack.no_implicit_selection.json +77 -0
- package/catalog/policies/policy.tool.scoped_scan_boundary.json +78 -0
- package/catalog/policies/policy.web.api.auth_app_client_split.json +93 -0
- package/catalog/policies/policy.web.api.client_change_impact.json +86 -0
- package/catalog/policies/policy.web.api.domain_api_only.json +84 -0
- package/catalog/policies/policy.web.api.error_normalization.json +82 -0
- package/catalog/policies/policy.web.api.generated_client.json +82 -0
- package/catalog/policies/policy.web.api.late_result_guard.json +80 -0
- package/catalog/policies/policy.web.api.mutation_idempotency.json +84 -0
- package/catalog/policies/policy.web.api.no_network_optimism.json +82 -0
- package/catalog/policies/policy.web.api.query_cancel_stale_drop.json +80 -0
- package/catalog/policies/policy.web.api.request_infrastructure.json +95 -0
- package/catalog/policies/policy.web.api.retry_discipline.json +87 -0
- package/catalog/policies/policy.web.api.session_recovery_split.json +94 -0
- package/catalog/policies/policy.web.api.single_http_client.json +88 -0
- package/catalog/policies/policy.web.api.single_loading_source.json +81 -0
- package/catalog/policies/policy.web.api.transport_vs_business.json +81 -0
- package/catalog/policies/policy.web.api.trusted_endpoint_source.json +82 -0
- package/catalog/policies/policy.web.api.typed_domain_naming.json +79 -0
- package/catalog/policies/policy.web.arch.layer_isolation.json +376 -0
- package/catalog/policies/policy.web.arch.naming_conventions.json +207 -0
- package/catalog/policies/policy.web.arch.public_api_barrel.json +134 -0
- package/catalog/policies/policy.web.chg.controlled_change_triggers.json +79 -0
- package/catalog/policies/policy.web.copy.suppression_ledger_discipline.json +78 -0
- package/catalog/policies/policy.web.grid.column_schema_fields.json +78 -0
- package/catalog/policies/policy.web.grid.config_isolation.json +78 -0
- package/catalog/policies/policy.web.grid.freeze_key_columns.json +77 -0
- package/catalog/policies/policy.web.grid.interaction_registry.json +80 -0
- package/catalog/policies/policy.web.grid.keyboard_clipboard.json +79 -0
- package/catalog/policies/policy.web.grid.schema_driven_shell.json +81 -0
- package/catalog/policies/policy.web.grid.schema_versioning.json +78 -0
- package/catalog/policies/policy.web.grid.server_ops_virtualization.json +81 -0
- package/catalog/policies/policy.web.grid.shell_change_matrix.json +76 -0
- package/catalog/policies/policy.web.grid.width_fix_ladder.json +79 -0
- package/catalog/policies/policy.web.perf.budget_skeleton.json +110 -0
- package/catalog/policies/policy.web.style.ownership_matrix.json +207 -0
- package/catalog/policies/policy.web.track.consent_lifecycle.json +78 -0
- package/catalog/policies/policy.web.track.privacy_default_deny.json +81 -0
- package/catalog/policies/policy.web.track.stable_event_keys.json +78 -0
- package/catalog/policies/policy.web.uiux.provider_evidence_not_business_truth.json +86 -0
- package/catalog/projection-presets/registry-tree.yaml +307 -0
- package/catalog/sensors/sensor.browser.deterministic.json +53 -0
- package/catalog/sensors/sensor.browser.interactive.json +58 -0
- package/catalog/sensors/sensor.build.static.json +45 -0
- package/catalog/sensors/sensor.contract.conformance.json +47 -0
- package/catalog/sensors/sensor.performance.budget.json +46 -0
- package/catalog/sensors/sensor.production.metric.json +44 -0
- package/catalog/tools/apply_human_review_pilot_0001.py +488 -0
- package/catalog/tools/materialize_batch4_uplift.py +776 -0
- package/catalog/tools/materialize_catalog_pilot.py +784 -0
- package/dist/bin.js +52362 -0
- package/legal/THIRD_PARTY_NOTICES.md +336 -0
- package/package.json +36 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world)",
|
|
5
|
+
"proposal": "词汇表 PR 登记 policy kind;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45 条同因同请,合并进同一 vocab PR)",
|
|
6
|
+
"locked_vocab_untouched": true
|
|
7
|
+
},
|
|
8
|
+
"x-batch4-uplift": {
|
|
9
|
+
"status": "PROPOSAL",
|
|
10
|
+
"package": "batch-4 语料批 Universal 上提(工程策略族 split-ledger 驱动)",
|
|
11
|
+
"human_review_required": true,
|
|
12
|
+
"evidence": "PLANNED",
|
|
13
|
+
"provenance": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
14
|
+
},
|
|
15
|
+
"x-applicability-review": {
|
|
16
|
+
"status": "human_review_candidate",
|
|
17
|
+
"campaign": "W1-A2 P0.5-1 T3 标注战役(PRD v0.5.2 §5.2/§14;Owner 裁决 8 ②,2026-09-01)",
|
|
18
|
+
"axes": [
|
|
19
|
+
"lanes",
|
|
20
|
+
"applicability_note"
|
|
21
|
+
],
|
|
22
|
+
"note": "T3 保守派生未见明确词面证据——capabilities/change_classes 留空回退 lane 缺省(O7 行为零变化);列 Human Review 复核议程"
|
|
23
|
+
},
|
|
24
|
+
"id": "POLICY.WEB.STYLE.OWNERSHIP_MATRIX",
|
|
25
|
+
"kind": "policy",
|
|
26
|
+
"axis_profile": "policy_default",
|
|
27
|
+
"classification": "UNIVERSAL_POLICY",
|
|
28
|
+
"axes": {
|
|
29
|
+
"lifecycle": "PROPOSED",
|
|
30
|
+
"confidence": "UNRESOLVED",
|
|
31
|
+
"evidence": "PLANNED",
|
|
32
|
+
"change": "STABLE"
|
|
33
|
+
},
|
|
34
|
+
"title_zh": "样式所有权五域矩阵",
|
|
35
|
+
"statement_zh": "样式按五域所有权矩阵管理:全局重置、设计令牌、共享组件、页面局部、第三方适配各设唯一所有者并绑定禁止行为类别;任何样式写入必须落在所属域的所有者路径内,owner 路径与扫描器禁用词表由项目基线登记。",
|
|
36
|
+
"statement_en_keywords": [
|
|
37
|
+
"style ownership",
|
|
38
|
+
"five domains",
|
|
39
|
+
"forbidden behavior",
|
|
40
|
+
"scoped style"
|
|
41
|
+
],
|
|
42
|
+
"applies_when": {
|
|
43
|
+
"lane": "frontend",
|
|
44
|
+
"condition": "编写或评审样式代码时",
|
|
45
|
+
"lanes": [
|
|
46
|
+
"frontend"
|
|
47
|
+
],
|
|
48
|
+
"applicability_note": "编写或评审样式代码时"
|
|
49
|
+
},
|
|
50
|
+
"enforcement": "required_when_applicable",
|
|
51
|
+
"authority": {
|
|
52
|
+
"owner": "HUMAN_OWNER",
|
|
53
|
+
"delegates": [],
|
|
54
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
55
|
+
"escalation_hint": "catalog-batch4-uplift"
|
|
56
|
+
},
|
|
57
|
+
"origin": "ingested",
|
|
58
|
+
"origin_note": "batch-4 语料批 split-ledger UNIVERSAL/HYBRID universal 半上提;词面独立改写(clean-room),零逐字拷贝源文本",
|
|
59
|
+
"sub_rules": [
|
|
60
|
+
{
|
|
61
|
+
"rule_id": "layers.global-reset",
|
|
62
|
+
"statement_zh": "全局重置域:重置样式的唯一所有者是全局样式入口;页面域禁止局部重置、禁止内联改写根元素样式、禁止私挂全局样式文件。",
|
|
63
|
+
"provenance": {
|
|
64
|
+
"asset_id": "style-ownership-registry",
|
|
65
|
+
"entry_id": "layers.global-reset",
|
|
66
|
+
"decision": "HYBRID",
|
|
67
|
+
"merge_group": "MG-STYLE-MATRIX",
|
|
68
|
+
"corpus_batch": "batch-4/STYLE",
|
|
69
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"rule_id": "layers.design-token",
|
|
74
|
+
"statement_zh": "设计令牌域:令牌源文件的唯一所有者是令牌事实源;页面域禁止私定局部令牌、禁止硬编码颜色与像素值、禁止引用不存在的幽灵令牌、禁止手改令牌源文件。",
|
|
75
|
+
"provenance": {
|
|
76
|
+
"asset_id": "style-ownership-registry",
|
|
77
|
+
"entry_id": "layers.design-token",
|
|
78
|
+
"decision": "HYBRID",
|
|
79
|
+
"merge_group": "MG-STYLE-MATRIX",
|
|
80
|
+
"corpus_batch": "batch-4/STYLE",
|
|
81
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"rule_id": "layers.shared-component",
|
|
86
|
+
"statement_zh": "共享组件域:共享组件样式的唯一所有者是共享组件层;页面域禁止书写组件级样式、禁止覆盖基础组件视觉、禁止私造共享类名。",
|
|
87
|
+
"provenance": {
|
|
88
|
+
"asset_id": "style-ownership-registry",
|
|
89
|
+
"entry_id": "layers.shared-component",
|
|
90
|
+
"decision": "HYBRID",
|
|
91
|
+
"merge_group": "MG-STYLE-MATRIX",
|
|
92
|
+
"corpus_batch": "batch-4/STYLE",
|
|
93
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"rule_id": "layers.page-local",
|
|
98
|
+
"statement_zh": "页面局部域:scoped 样式块是页面局部样式的唯一容器;块内禁止声明全局类、禁止使用强制覆盖标记、禁止滥用深选择器穿透。",
|
|
99
|
+
"provenance": {
|
|
100
|
+
"asset_id": "style-ownership-registry",
|
|
101
|
+
"entry_id": "layers.page-local",
|
|
102
|
+
"decision": "HYBRID",
|
|
103
|
+
"merge_group": "MG-STYLE-MATRIX",
|
|
104
|
+
"corpus_batch": "batch-4/STYLE",
|
|
105
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"rule_id": "layers.vendor-adapter",
|
|
110
|
+
"statement_zh": "第三方适配域:第三方主题样式的唯一所有者是适配目录;页面域禁止直接引入第三方样式、禁止局部覆盖第三方主题、禁止局部改写主题参数。",
|
|
111
|
+
"provenance": {
|
|
112
|
+
"asset_id": "style-ownership-registry",
|
|
113
|
+
"entry_id": "layers.vendor-adapter",
|
|
114
|
+
"decision": "HYBRID",
|
|
115
|
+
"merge_group": "MG-STYLE-MATRIX",
|
|
116
|
+
"corpus_batch": "batch-4/STYLE",
|
|
117
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"rule_id": "scoped_style_rule",
|
|
122
|
+
"statement_zh": "页面内 scoped 样式块只承载本页局部样式;全局样式类只允许声明在共享组件层,页面禁止声明全局类名或向页面外泄漏全局类名。",
|
|
123
|
+
"provenance": {
|
|
124
|
+
"asset_id": "style-ownership-registry",
|
|
125
|
+
"entry_id": "scoped_style_rule",
|
|
126
|
+
"decision": "UNIVERSAL",
|
|
127
|
+
"merge_group": "MG-STYLE-MATRIX",
|
|
128
|
+
"corpus_batch": "batch-4/STYLE",
|
|
129
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"sources": [
|
|
134
|
+
{
|
|
135
|
+
"type": "design_seed",
|
|
136
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
137
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
138
|
+
"locator": {
|
|
139
|
+
"asset": "style-ownership-registry",
|
|
140
|
+
"entry": "layers.global-reset",
|
|
141
|
+
"corpus_batch": "batch-4/STYLE",
|
|
142
|
+
"upstream_source_ref": "outputs/frontend/10_planned/style-ownership-registry.yaml"
|
|
143
|
+
},
|
|
144
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"type": "design_seed",
|
|
148
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
149
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
150
|
+
"locator": {
|
|
151
|
+
"asset": "style-ownership-registry",
|
|
152
|
+
"entry": "layers.design-token",
|
|
153
|
+
"corpus_batch": "batch-4/STYLE",
|
|
154
|
+
"upstream_source_ref": "outputs/frontend/10_planned/style-ownership-registry.yaml"
|
|
155
|
+
},
|
|
156
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"type": "design_seed",
|
|
160
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
161
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
162
|
+
"locator": {
|
|
163
|
+
"asset": "style-ownership-registry",
|
|
164
|
+
"entry": "layers.shared-component",
|
|
165
|
+
"corpus_batch": "batch-4/STYLE",
|
|
166
|
+
"upstream_source_ref": "outputs/frontend/10_planned/style-ownership-registry.yaml"
|
|
167
|
+
},
|
|
168
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"type": "design_seed",
|
|
172
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
173
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
174
|
+
"locator": {
|
|
175
|
+
"asset": "style-ownership-registry",
|
|
176
|
+
"entry": "layers.page-local",
|
|
177
|
+
"corpus_batch": "batch-4/STYLE",
|
|
178
|
+
"upstream_source_ref": "outputs/frontend/10_planned/style-ownership-registry.yaml"
|
|
179
|
+
},
|
|
180
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"type": "design_seed",
|
|
184
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
185
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
186
|
+
"locator": {
|
|
187
|
+
"asset": "style-ownership-registry",
|
|
188
|
+
"entry": "layers.vendor-adapter",
|
|
189
|
+
"corpus_batch": "batch-4/STYLE",
|
|
190
|
+
"upstream_source_ref": "outputs/frontend/10_planned/style-ownership-registry.yaml"
|
|
191
|
+
},
|
|
192
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"type": "design_seed",
|
|
196
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
197
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
198
|
+
"locator": {
|
|
199
|
+
"asset": "style-ownership-registry",
|
|
200
|
+
"entry": "scoped_style_rule",
|
|
201
|
+
"corpus_batch": "batch-4/STYLE",
|
|
202
|
+
"upstream_source_ref": "outputs/frontend/10_planned/style-ownership-registry.yaml"
|
|
203
|
+
},
|
|
204
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world);新 id 域段待登记:TRACK",
|
|
5
|
+
"proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+9 条同因同请,合并进同一 vocab PR)",
|
|
6
|
+
"locked_vocab_untouched": true
|
|
7
|
+
},
|
|
8
|
+
"x-spec-d-materialization": {
|
|
9
|
+
"status": "PROPOSAL",
|
|
10
|
+
"package": "SPEC-D 语义分解汇总(consolidated-pool D5 精选,cap=25)",
|
|
11
|
+
"human_review_required": true,
|
|
12
|
+
"evidence": "PLANNED",
|
|
13
|
+
"provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
|
|
14
|
+
"group": "FE-G4",
|
|
15
|
+
"candidate_id": "POLICY.WEB.TRACK.CONSENT_LIFECYCLE",
|
|
16
|
+
"density_rank": 20,
|
|
17
|
+
"density_score": 33.81,
|
|
18
|
+
"pool_statement_sha16": "cf1effc3bac21b1d",
|
|
19
|
+
"curated_rule": "UNIVERSAL + UNIVERSAL_POLICY + required_when_applicable + 无 uncertainty + 非 project_scope + 非重复 + 与既有 69 条零语义重复;按信息密度排序取前 25"
|
|
20
|
+
},
|
|
21
|
+
"x-applicability-review": {
|
|
22
|
+
"status": "human_review_candidate",
|
|
23
|
+
"campaign": "W1-A2 P0.5-1 T3 标注战役(PRD v0.5.2 §5.2/§14;Owner 裁决 8 ②,2026-09-01)",
|
|
24
|
+
"axes": [
|
|
25
|
+
"applicability_note"
|
|
26
|
+
],
|
|
27
|
+
"note": "T3 保守派生未见明确词面证据——capabilities/change_classes 留空回退 lane 缺省(O7 行为零变化);列 Human Review 复核议程"
|
|
28
|
+
},
|
|
29
|
+
"id": "POLICY.WEB.TRACK.CONSENT_LIFECYCLE",
|
|
30
|
+
"kind": "policy",
|
|
31
|
+
"axis_profile": "policy_default",
|
|
32
|
+
"classification": "UNIVERSAL_POLICY",
|
|
33
|
+
"axes": {
|
|
34
|
+
"lifecycle": "PROPOSED",
|
|
35
|
+
"confidence": "UNRESOLVED",
|
|
36
|
+
"evidence": "PLANNED",
|
|
37
|
+
"change": "STABLE"
|
|
38
|
+
},
|
|
39
|
+
"title_zh": "采集同意生命周期纪律",
|
|
40
|
+
"statement_zh": "采集必须遵循同意与授权状态:同意未知或已被撤回时不得发送任何非必要分析事件;撤回后立即停止采集并清理或隔离尚未发出的数据。",
|
|
41
|
+
"statement_en_keywords": [
|
|
42
|
+
"consent lifecycle",
|
|
43
|
+
"withdrawal stops collection",
|
|
44
|
+
"pending queue cleanup"
|
|
45
|
+
],
|
|
46
|
+
"applies_when": {
|
|
47
|
+
"lane": "any",
|
|
48
|
+
"condition": "处理同意状态变化时",
|
|
49
|
+
"applicability_note": "处理同意状态变化时"
|
|
50
|
+
},
|
|
51
|
+
"enforcement": "required_when_applicable",
|
|
52
|
+
"authority": {
|
|
53
|
+
"owner": "HUMAN_OWNER",
|
|
54
|
+
"delegates": [],
|
|
55
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
56
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
57
|
+
},
|
|
58
|
+
"origin": "ingested",
|
|
59
|
+
"origin_note": "SPEC-D 汇总池 D5 精选物化;statement 沿用候选卡独立措辞(clean-room),零逐字拷贝上游源文本",
|
|
60
|
+
"sources": [
|
|
61
|
+
{
|
|
62
|
+
"type": "design_seed",
|
|
63
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G4.yaml",
|
|
64
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
65
|
+
"locator": {
|
|
66
|
+
"candidate": "POLICY.WEB.TRACK.CONSENT_LIFECYCLE",
|
|
67
|
+
"source_protocol": ".trellis/spec/frontend/40-analytics-protocol.md",
|
|
68
|
+
"lines": "L25, L35",
|
|
69
|
+
"section": "MUST + MUST NOT"
|
|
70
|
+
},
|
|
71
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"review_notes": [
|
|
75
|
+
"同意状态采集时序在既有 69 条中无对应条目,零语义重复。",
|
|
76
|
+
"与同批物化的 POLICY.WEB.TRACK.PRIVACY_DEFAULT_DENY 为不同义务维度(同意状态时序 vs 载荷与目的地边界),互引不合并。"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world);新 id 域段待登记:TRACK",
|
|
5
|
+
"proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+9 条同因同请,合并进同一 vocab PR)",
|
|
6
|
+
"locked_vocab_untouched": true
|
|
7
|
+
},
|
|
8
|
+
"x-spec-d-materialization": {
|
|
9
|
+
"status": "PROPOSAL",
|
|
10
|
+
"package": "SPEC-D 语义分解汇总(consolidated-pool D5 精选,cap=25)",
|
|
11
|
+
"human_review_required": true,
|
|
12
|
+
"evidence": "PLANNED",
|
|
13
|
+
"provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
|
|
14
|
+
"group": "FE-G4",
|
|
15
|
+
"candidate_id": "POLICY.WEB.TRACK.PRIVACY_DEFAULT_DENY",
|
|
16
|
+
"density_rank": 7,
|
|
17
|
+
"density_score": 37.94,
|
|
18
|
+
"pool_statement_sha16": "62ca0e14b8c14cae",
|
|
19
|
+
"curated_rule": "UNIVERSAL + UNIVERSAL_POLICY + required_when_applicable + 无 uncertainty + 非 project_scope + 非重复 + 与既有 69 条零语义重复;按信息密度排序取前 25"
|
|
20
|
+
},
|
|
21
|
+
"x-applicability-review": {
|
|
22
|
+
"status": "human_review_candidate",
|
|
23
|
+
"campaign": "W1-A2 P0.5-1 T3 标注战役(PRD v0.5.2 §5.2/§14;Owner 裁决 8 ②,2026-09-01)",
|
|
24
|
+
"axes": [
|
|
25
|
+
"applicability_note"
|
|
26
|
+
],
|
|
27
|
+
"note": "T3 保守派生未见明确词面证据——capabilities/change_classes 留空回退 lane 缺省(O7 行为零变化);列 Human Review 复核议程"
|
|
28
|
+
},
|
|
29
|
+
"id": "POLICY.WEB.TRACK.PRIVACY_DEFAULT_DENY",
|
|
30
|
+
"kind": "policy",
|
|
31
|
+
"axis_profile": "policy_default",
|
|
32
|
+
"classification": "UNIVERSAL_POLICY",
|
|
33
|
+
"axes": {
|
|
34
|
+
"lifecycle": "PROPOSED",
|
|
35
|
+
"confidence": "UNRESOLVED",
|
|
36
|
+
"evidence": "PLANNED",
|
|
37
|
+
"change": "STABLE"
|
|
38
|
+
},
|
|
39
|
+
"title_zh": "分析上报默认最小化",
|
|
40
|
+
"statement_zh": "分析上报默认最小化:敏感字段、搜索原文与业务原值默认不上传;权限范围之外的数据一律不得进入上报;事件目的地与载荷字段一律走白名单;抓取页面结构、可见文本、地址参数或用户输入临时拼装分析数据一律禁止;第三方分析脚本、转发规则与数据出境必须经安全与隐私评审。",
|
|
41
|
+
"statement_en_keywords": [
|
|
42
|
+
"privacy default deny",
|
|
43
|
+
"payload whitelist",
|
|
44
|
+
"no reporting beyond permission scope",
|
|
45
|
+
"no dom scraping",
|
|
46
|
+
"third party review",
|
|
47
|
+
"data transfer review"
|
|
48
|
+
],
|
|
49
|
+
"applies_when": {
|
|
50
|
+
"lane": "any",
|
|
51
|
+
"condition": "配置事件载荷或接入第三方分析时",
|
|
52
|
+
"applicability_note": "配置事件载荷或接入第三方分析时"
|
|
53
|
+
},
|
|
54
|
+
"enforcement": "required_when_applicable",
|
|
55
|
+
"authority": {
|
|
56
|
+
"owner": "HUMAN_OWNER",
|
|
57
|
+
"delegates": [],
|
|
58
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
59
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
60
|
+
},
|
|
61
|
+
"origin": "ingested",
|
|
62
|
+
"origin_note": "SPEC-D 汇总池 D5 精选物化;statement 沿用候选卡独立措辞(clean-room),零逐字拷贝上游源文本",
|
|
63
|
+
"sources": [
|
|
64
|
+
{
|
|
65
|
+
"type": "design_seed",
|
|
66
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G4.yaml",
|
|
67
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
68
|
+
"locator": {
|
|
69
|
+
"candidate": "POLICY.WEB.TRACK.PRIVACY_DEFAULT_DENY",
|
|
70
|
+
"source_protocol": ".trellis/spec/frontend/40-analytics-protocol.md",
|
|
71
|
+
"lines": "L23, L26, L33-L34",
|
|
72
|
+
"section": "MUST + MUST NOT"
|
|
73
|
+
},
|
|
74
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"review_notes": [
|
|
78
|
+
"埋点隐私面在既有 69 条中无对应条目,零语义重复。",
|
|
79
|
+
"与同批物化的 POLICY.WEB.TRACK.CONSENT_LIFECYCLE 为不同义务维度(载荷与目的地边界 vs 同意状态时序),互引不合并。"
|
|
80
|
+
]
|
|
81
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world);新 id 域段待登记:TRACK",
|
|
5
|
+
"proposal": "词汇表 PR 登记 policy kind 及新域段;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45+9 条同因同请,合并进同一 vocab PR)",
|
|
6
|
+
"locked_vocab_untouched": true
|
|
7
|
+
},
|
|
8
|
+
"x-spec-d-materialization": {
|
|
9
|
+
"status": "PROPOSAL",
|
|
10
|
+
"package": "SPEC-D 语义分解汇总(consolidated-pool D5 精选,cap=25)",
|
|
11
|
+
"human_review_required": true,
|
|
12
|
+
"evidence": "PLANNED",
|
|
13
|
+
"provenance": "POMaster_VNext/corpus/spec-knowledge/candidates/consolidated-pool.yaml",
|
|
14
|
+
"group": "FE-G4",
|
|
15
|
+
"candidate_id": "POLICY.WEB.TRACK.STABLE_EVENT_KEYS",
|
|
16
|
+
"density_rank": 10,
|
|
17
|
+
"density_score": 35.44,
|
|
18
|
+
"pool_statement_sha16": "83c5747328a75340",
|
|
19
|
+
"curated_rule": "UNIVERSAL + UNIVERSAL_POLICY + required_when_applicable + 无 uncertainty + 非 project_scope + 非重复 + 与既有 69 条零语义重复;按信息密度排序取前 25"
|
|
20
|
+
},
|
|
21
|
+
"x-applicability-review": {
|
|
22
|
+
"status": "human_review_candidate",
|
|
23
|
+
"campaign": "W1-A2 P0.5-1 T3 标注战役(PRD v0.5.2 §5.2/§14;Owner 裁决 8 ②,2026-09-01)",
|
|
24
|
+
"axes": [
|
|
25
|
+
"applicability_note"
|
|
26
|
+
],
|
|
27
|
+
"note": "T3 保守派生未见明确词面证据——capabilities/change_classes 留空回退 lane 缺省(O7 行为零变化);列 Human Review 复核议程"
|
|
28
|
+
},
|
|
29
|
+
"id": "POLICY.WEB.TRACK.STABLE_EVENT_KEYS",
|
|
30
|
+
"kind": "policy",
|
|
31
|
+
"axis_profile": "policy_default",
|
|
32
|
+
"classification": "UNIVERSAL_POLICY",
|
|
33
|
+
"axes": {
|
|
34
|
+
"lifecycle": "PROPOSED",
|
|
35
|
+
"confidence": "UNRESOLVED",
|
|
36
|
+
"evidence": "PLANNED",
|
|
37
|
+
"change": "STABLE"
|
|
38
|
+
},
|
|
39
|
+
"title_zh": "分析事件稳定键纪律",
|
|
40
|
+
"statement_zh": "分析事件必须使用稳定事件键与受控公共字段,禁止拿显示文案充当事件名;同一行为不得重复上报或多名称并存;新事件必须登记责任人、用途与保留策略;页面不得自行扩展不受控的公共字段。",
|
|
41
|
+
"statement_en_keywords": [
|
|
42
|
+
"stable event keys",
|
|
43
|
+
"controlled common fields",
|
|
44
|
+
"single name single report",
|
|
45
|
+
"owner purpose retention"
|
|
46
|
+
],
|
|
47
|
+
"applies_when": {
|
|
48
|
+
"lane": "any",
|
|
49
|
+
"condition": "埋设分析事件时",
|
|
50
|
+
"applicability_note": "埋设分析事件时"
|
|
51
|
+
},
|
|
52
|
+
"enforcement": "required_when_applicable",
|
|
53
|
+
"authority": {
|
|
54
|
+
"owner": "HUMAN_OWNER",
|
|
55
|
+
"delegates": [],
|
|
56
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
57
|
+
"escalation_hint": "catalog-spec-decomposition"
|
|
58
|
+
},
|
|
59
|
+
"origin": "ingested",
|
|
60
|
+
"origin_note": "SPEC-D 汇总池 D5 精选物化;statement 沿用候选卡独立措辞(clean-room),零逐字拷贝上游源文本",
|
|
61
|
+
"sources": [
|
|
62
|
+
{
|
|
63
|
+
"type": "design_seed",
|
|
64
|
+
"ref": "POMaster_VNext/corpus/spec-knowledge/candidates/FE-G4.yaml",
|
|
65
|
+
"captured_by": "agent:claude/spec-d-consolidation",
|
|
66
|
+
"locator": {
|
|
67
|
+
"candidate": "POLICY.WEB.TRACK.STABLE_EVENT_KEYS",
|
|
68
|
+
"source_protocol": ".trellis/spec/frontend/40-analytics-protocol.md",
|
|
69
|
+
"lines": "L19-L20, L24, L30-L31",
|
|
70
|
+
"section": "MUST + MUST NOT"
|
|
71
|
+
},
|
|
72
|
+
"clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"review_notes": [
|
|
76
|
+
"事件命名与公共字段治理在既有 69 条中无对应条目,零语义重复。"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"x-vocab-pr": {
|
|
3
|
+
"status": "vocab_pr_candidate",
|
|
4
|
+
"finding": "kind='policy' 不在 vocab-lock kinds_registry.truth_bodies(POLICY. 前缀已冻结注册,closed-world)",
|
|
5
|
+
"proposal": "词汇表 PR 登记 policy kind;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(与前批 45 条同因同请,合并进同一 vocab PR)",
|
|
6
|
+
"locked_vocab_untouched": true
|
|
7
|
+
},
|
|
8
|
+
"x-batch4-uplift": {
|
|
9
|
+
"status": "PROPOSAL",
|
|
10
|
+
"package": "batch-4 语料批 Universal 上提(工程策略族 split-ledger 驱动)",
|
|
11
|
+
"human_review_required": true,
|
|
12
|
+
"evidence": "PLANNED",
|
|
13
|
+
"provenance": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
14
|
+
},
|
|
15
|
+
"x-applicability-review": {
|
|
16
|
+
"status": "human_review_candidate",
|
|
17
|
+
"campaign": "W1-A2 P0.5-1 T3 标注战役(PRD v0.5.2 §5.2/§14;Owner 裁决 8 ②,2026-09-01)",
|
|
18
|
+
"axes": [
|
|
19
|
+
"lanes",
|
|
20
|
+
"applicability_note"
|
|
21
|
+
],
|
|
22
|
+
"note": "T3 保守派生未见明确词面证据——capabilities/change_classes 留空回退 lane 缺省(O7 行为零变化);列 Human Review 复核议程"
|
|
23
|
+
},
|
|
24
|
+
"id": "POLICY.WEB.UIUX.PROVIDER_EVIDENCE_NOT_BUSINESS_TRUTH",
|
|
25
|
+
"kind": "policy",
|
|
26
|
+
"axis_profile": "policy_default",
|
|
27
|
+
"classification": "UNIVERSAL_POLICY",
|
|
28
|
+
"axes": {
|
|
29
|
+
"lifecycle": "PROPOSED",
|
|
30
|
+
"confidence": "UNRESOLVED",
|
|
31
|
+
"evidence": "PLANNED",
|
|
32
|
+
"change": "STABLE"
|
|
33
|
+
},
|
|
34
|
+
"title_zh": "原型抽取证据非业务事实",
|
|
35
|
+
"statement_zh": "由外部工具从设计原型视觉稿中抽取的内容一律定性为可选参考证据,永不构成业务事实;业务真值的唯一来源是已登记的契约面。",
|
|
36
|
+
"statement_en_keywords": [
|
|
37
|
+
"prototype extraction",
|
|
38
|
+
"optional evidence",
|
|
39
|
+
"not business truth"
|
|
40
|
+
],
|
|
41
|
+
"applies_when": {
|
|
42
|
+
"lane": "frontend",
|
|
43
|
+
"condition": "登记或消费原型抽取证据时",
|
|
44
|
+
"lanes": [
|
|
45
|
+
"frontend"
|
|
46
|
+
],
|
|
47
|
+
"applicability_note": "登记或消费原型抽取证据时"
|
|
48
|
+
},
|
|
49
|
+
"enforcement": "required_when_applicable",
|
|
50
|
+
"authority": {
|
|
51
|
+
"owner": "HUMAN_OWNER",
|
|
52
|
+
"delegates": [],
|
|
53
|
+
"write_policy": "EVOLUTION_CHANNEL",
|
|
54
|
+
"escalation_hint": "catalog-batch4-uplift"
|
|
55
|
+
},
|
|
56
|
+
"origin": "ingested",
|
|
57
|
+
"origin_note": "batch-4 语料批 split-ledger UNIVERSAL/HYBRID universal 半上提;词面独立改写(clean-room),零逐字拷贝源文本",
|
|
58
|
+
"sub_rules": [
|
|
59
|
+
{
|
|
60
|
+
"rule_id": "authority",
|
|
61
|
+
"statement_zh": "由外部工具从设计原型视觉稿中抽取的内容一律定性为可选参考证据,任何情况下不得当作业务事实;业务真值的唯一来源是已登记的契约面。",
|
|
62
|
+
"provenance": {
|
|
63
|
+
"asset_id": "uiux-provider-overlay",
|
|
64
|
+
"entry_id": "authority",
|
|
65
|
+
"decision": "UNIVERSAL",
|
|
66
|
+
"merge_group": null,
|
|
67
|
+
"corpus_batch": "batch-4/UIUX_OVERLAY",
|
|
68
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"sources": [
|
|
73
|
+
{
|
|
74
|
+
"type": "design_seed",
|
|
75
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
76
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
77
|
+
"locator": {
|
|
78
|
+
"asset": "uiux-provider-overlay",
|
|
79
|
+
"entry": "authority",
|
|
80
|
+
"corpus_batch": "batch-4/UIUX_OVERLAY",
|
|
81
|
+
"upstream_source_ref": "outputs/frontend/10_planned/uiux-provider-overlay.yaml"
|
|
82
|
+
},
|
|
83
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|