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,376 @@
|
|
|
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.ARCH.LAYER_ISOLATION",
|
|
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
|
+
"layer responsibility",
|
|
38
|
+
"one-way dependency",
|
|
39
|
+
"directory anatomy",
|
|
40
|
+
"colocation",
|
|
41
|
+
"new file declaration"
|
|
42
|
+
],
|
|
43
|
+
"applies_when": {
|
|
44
|
+
"lane": "frontend",
|
|
45
|
+
"condition": "创建分层结构、新增目录或放置新文件时",
|
|
46
|
+
"lanes": [
|
|
47
|
+
"frontend"
|
|
48
|
+
],
|
|
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-batch4-uplift"
|
|
57
|
+
},
|
|
58
|
+
"origin": "ingested",
|
|
59
|
+
"origin_note": "batch-4 语料批 split-ledger UNIVERSAL/HYBRID universal 半上提;词面独立改写(clean-room),零逐字拷贝源文本",
|
|
60
|
+
"sub_rules": [
|
|
61
|
+
{
|
|
62
|
+
"rule_id": "layers.app",
|
|
63
|
+
"statement_zh": "应用外壳层只负责装配:路由表、全局注入器、路由级错误兜底与访问守卫都挂在这一层;本层不持有业务状态,也不渲染业务内容;单个页面内的数据失败必须被就地吸收,不得穿透到其他页面。",
|
|
64
|
+
"provenance": {
|
|
65
|
+
"asset_id": "architecture-constraints",
|
|
66
|
+
"entry_id": "layers.app",
|
|
67
|
+
"decision": "HYBRID",
|
|
68
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
69
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
70
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"rule_id": "layers.pages",
|
|
75
|
+
"statement_zh": "路由页面层只做布局编排与装配消费:禁止把业务或异步数据留在组件本地状态里,禁止直接发起网络请求;页面所需数据一律经由下层状态通道获取。",
|
|
76
|
+
"provenance": {
|
|
77
|
+
"asset_id": "architecture-constraints",
|
|
78
|
+
"entry_id": "layers.pages",
|
|
79
|
+
"decision": "HYBRID",
|
|
80
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
81
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
82
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"rule_id": "layers.features",
|
|
87
|
+
"statement_zh": "能力切片层负责单个业务能力的组件组织与交互编排:切片之间禁止互引内部实现;切片内部错误用局部边界吸收、不外溢到相邻切片;本层不持有跨页共享的全局数据。",
|
|
88
|
+
"provenance": {
|
|
89
|
+
"asset_id": "architecture-constraints",
|
|
90
|
+
"entry_id": "layers.features",
|
|
91
|
+
"decision": "HYBRID",
|
|
92
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
93
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
94
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"rule_id": "layers.entities",
|
|
99
|
+
"statement_zh": "服务端数据层持有远端数据的请求生命周期:逐查询的缓存与逐查询的错误都归这一层;禁止把远端状态复制进客户端仓库做手工双向同步;查询错误先归一化再上抛。",
|
|
100
|
+
"provenance": {
|
|
101
|
+
"asset_id": "architecture-constraints",
|
|
102
|
+
"entry_id": "layers.entities",
|
|
103
|
+
"decision": "HYBRID",
|
|
104
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
105
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
106
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"rule_id": "layers.shared-state",
|
|
111
|
+
"statement_zh": "客户端状态层按页面隔离存放表单态与视图模式态:未做页面隔离的状态禁止跨页共享;全局仓库只保留身份、权限范围这类稳定且真正跨页面的状态。",
|
|
112
|
+
"provenance": {
|
|
113
|
+
"asset_id": "architecture-constraints",
|
|
114
|
+
"entry_id": "layers.shared-state",
|
|
115
|
+
"decision": "HYBRID",
|
|
116
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
117
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
118
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"rule_id": "layers.shared-ui",
|
|
123
|
+
"statement_zh": "设计系统组件层只承载纯展示组件:不携带业务状态,不感知业务语义。",
|
|
124
|
+
"provenance": {
|
|
125
|
+
"asset_id": "architecture-constraints",
|
|
126
|
+
"entry_id": "layers.shared-ui",
|
|
127
|
+
"decision": "HYBRID",
|
|
128
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
129
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
130
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"rule_id": "layers.shared-grid",
|
|
135
|
+
"statement_zh": "表格视图层只承载表格列定义与视图配置的组装:可依赖展示组件层令牌与基础工具层,不依赖任何业务上层。",
|
|
136
|
+
"provenance": {
|
|
137
|
+
"asset_id": "architecture-constraints",
|
|
138
|
+
"entry_id": "layers.shared-grid",
|
|
139
|
+
"decision": "HYBRID",
|
|
140
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
141
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
142
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"rule_id": "layers.shared-lib",
|
|
147
|
+
"statement_zh": "基础工具层不反向依赖任何上层:格式化、精确计算、网络客户端、错误规整、枚举映射等与框架无关的设施都住在这一层,供所有上层调用。",
|
|
148
|
+
"provenance": {
|
|
149
|
+
"asset_id": "architecture-constraints",
|
|
150
|
+
"entry_id": "layers.shared-lib",
|
|
151
|
+
"decision": "HYBRID",
|
|
152
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
153
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
154
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"rule_id": "new_file_rule",
|
|
159
|
+
"statement_zh": "新建任何文件之前,必须先写明它归属哪一层哪个切片,以及为什么不能通过扩展既有文件达成;页面需要新状态时优先扩展该页已有的状态载体,而不是另起全局仓库;新组件优先归入设计系统层或对应能力切片,避免持续堆积在页面层。",
|
|
160
|
+
"provenance": {
|
|
161
|
+
"asset_id": "architecture-constraints",
|
|
162
|
+
"entry_id": "new_file_rule",
|
|
163
|
+
"decision": "UNIVERSAL",
|
|
164
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
165
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
166
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"rule_id": "layers.pages",
|
|
171
|
+
"statement_zh": "页面目录解剖模板:每页一个目录,目录内提供该页唯一公开出口、路由级页面组件与仅本页使用的局部子组件;局部子组件禁止被其他页面引用。",
|
|
172
|
+
"provenance": {
|
|
173
|
+
"asset_id": "directory-layout",
|
|
174
|
+
"entry_id": "layers.pages",
|
|
175
|
+
"decision": "HYBRID",
|
|
176
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
177
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
178
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"rule_id": "layers.features",
|
|
183
|
+
"statement_zh": "能力切片目录解剖模板:每切片一个目录,目录内提供公开出口、组合组件目录与交互逻辑目录;只为可独立复用的能力建切片,禁止按页面一对一碎片化划分;切片之间禁止互引内部实现。",
|
|
184
|
+
"provenance": {
|
|
185
|
+
"asset_id": "directory-layout",
|
|
186
|
+
"entry_id": "layers.features",
|
|
187
|
+
"decision": "HYBRID",
|
|
188
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
189
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
190
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"rule_id": "layers.entities",
|
|
195
|
+
"statement_zh": "实体目录解剖模板:每实体一个目录,目录内提供公开出口、领域接口目录、数据钩子目录、校验结构与类型定义;领域接口调用经由统一网络客户端发出,禁止直连网络库。",
|
|
196
|
+
"provenance": {
|
|
197
|
+
"asset_id": "directory-layout",
|
|
198
|
+
"entry_id": "layers.entities",
|
|
199
|
+
"decision": "HYBRID",
|
|
200
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
201
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
202
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"rule_id": "colocation_rule",
|
|
207
|
+
"statement_zh": "组件按复用范围就近放置:仅单页使用的留在该页目录内;跨页复用的进入能力切片;只有稳定共享且不携带业务语义的组件才下沉到设计系统层;禁止把带业务语义的组件放进设计系统层。",
|
|
208
|
+
"provenance": {
|
|
209
|
+
"asset_id": "directory-layout",
|
|
210
|
+
"entry_id": "colocation_rule",
|
|
211
|
+
"decision": "UNIVERSAL",
|
|
212
|
+
"merge_group": "MG-ARCH-LAYER",
|
|
213
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
214
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
],
|
|
218
|
+
"sources": [
|
|
219
|
+
{
|
|
220
|
+
"type": "design_seed",
|
|
221
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
222
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
223
|
+
"locator": {
|
|
224
|
+
"asset": "architecture-constraints",
|
|
225
|
+
"entry": "layers.app",
|
|
226
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
227
|
+
"upstream_source_ref": "outputs/frontend/10_planned/architecture-constraints.yaml"
|
|
228
|
+
},
|
|
229
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"type": "design_seed",
|
|
233
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
234
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
235
|
+
"locator": {
|
|
236
|
+
"asset": "architecture-constraints",
|
|
237
|
+
"entry": "layers.pages",
|
|
238
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
239
|
+
"upstream_source_ref": "outputs/frontend/10_planned/architecture-constraints.yaml"
|
|
240
|
+
},
|
|
241
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"type": "design_seed",
|
|
245
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
246
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
247
|
+
"locator": {
|
|
248
|
+
"asset": "architecture-constraints",
|
|
249
|
+
"entry": "layers.features",
|
|
250
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
251
|
+
"upstream_source_ref": "outputs/frontend/10_planned/architecture-constraints.yaml"
|
|
252
|
+
},
|
|
253
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"type": "design_seed",
|
|
257
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
258
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
259
|
+
"locator": {
|
|
260
|
+
"asset": "architecture-constraints",
|
|
261
|
+
"entry": "layers.entities",
|
|
262
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
263
|
+
"upstream_source_ref": "outputs/frontend/10_planned/architecture-constraints.yaml"
|
|
264
|
+
},
|
|
265
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"type": "design_seed",
|
|
269
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
270
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
271
|
+
"locator": {
|
|
272
|
+
"asset": "architecture-constraints",
|
|
273
|
+
"entry": "layers.shared-state",
|
|
274
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
275
|
+
"upstream_source_ref": "outputs/frontend/10_planned/architecture-constraints.yaml"
|
|
276
|
+
},
|
|
277
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"type": "design_seed",
|
|
281
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
282
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
283
|
+
"locator": {
|
|
284
|
+
"asset": "architecture-constraints",
|
|
285
|
+
"entry": "layers.shared-ui",
|
|
286
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
287
|
+
"upstream_source_ref": "outputs/frontend/10_planned/architecture-constraints.yaml"
|
|
288
|
+
},
|
|
289
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"type": "design_seed",
|
|
293
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
294
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
295
|
+
"locator": {
|
|
296
|
+
"asset": "architecture-constraints",
|
|
297
|
+
"entry": "layers.shared-grid",
|
|
298
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
299
|
+
"upstream_source_ref": "outputs/frontend/10_planned/architecture-constraints.yaml"
|
|
300
|
+
},
|
|
301
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"type": "design_seed",
|
|
305
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
306
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
307
|
+
"locator": {
|
|
308
|
+
"asset": "architecture-constraints",
|
|
309
|
+
"entry": "layers.shared-lib",
|
|
310
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
311
|
+
"upstream_source_ref": "outputs/frontend/10_planned/architecture-constraints.yaml"
|
|
312
|
+
},
|
|
313
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"type": "design_seed",
|
|
317
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
318
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
319
|
+
"locator": {
|
|
320
|
+
"asset": "architecture-constraints",
|
|
321
|
+
"entry": "new_file_rule",
|
|
322
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
323
|
+
"upstream_source_ref": "outputs/frontend/10_planned/architecture-constraints.yaml"
|
|
324
|
+
},
|
|
325
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"type": "design_seed",
|
|
329
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
330
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
331
|
+
"locator": {
|
|
332
|
+
"asset": "directory-layout",
|
|
333
|
+
"entry": "layers.pages",
|
|
334
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
335
|
+
"upstream_source_ref": "outputs/frontend/10_planned/directory-layout.yaml"
|
|
336
|
+
},
|
|
337
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"type": "design_seed",
|
|
341
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
342
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
343
|
+
"locator": {
|
|
344
|
+
"asset": "directory-layout",
|
|
345
|
+
"entry": "layers.features",
|
|
346
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
347
|
+
"upstream_source_ref": "outputs/frontend/10_planned/directory-layout.yaml"
|
|
348
|
+
},
|
|
349
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
"type": "design_seed",
|
|
353
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
354
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
355
|
+
"locator": {
|
|
356
|
+
"asset": "directory-layout",
|
|
357
|
+
"entry": "layers.entities",
|
|
358
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
359
|
+
"upstream_source_ref": "outputs/frontend/10_planned/directory-layout.yaml"
|
|
360
|
+
},
|
|
361
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
"type": "design_seed",
|
|
365
|
+
"ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
|
|
366
|
+
"captured_by": "agent:claude/batch-4-catalog-uplift",
|
|
367
|
+
"locator": {
|
|
368
|
+
"asset": "directory-layout",
|
|
369
|
+
"entry": "colocation_rule",
|
|
370
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
371
|
+
"upstream_source_ref": "outputs/frontend/10_planned/directory-layout.yaml"
|
|
372
|
+
},
|
|
373
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
374
|
+
}
|
|
375
|
+
]
|
|
376
|
+
}
|
|
@@ -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.ARCH.NAMING_CONVENTIONS",
|
|
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
|
+
"naming convention",
|
|
38
|
+
"composable prefix",
|
|
39
|
+
"page component suffix",
|
|
40
|
+
"kebab directory"
|
|
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": "naming.composable",
|
|
62
|
+
"statement_zh": "组合式函数文件名统一为 use 前缀接驼峰主体的形式,且一个文件只承载一个组合式函数。",
|
|
63
|
+
"provenance": {
|
|
64
|
+
"asset_id": "directory-layout",
|
|
65
|
+
"entry_id": "naming.composable",
|
|
66
|
+
"decision": "UNIVERSAL",
|
|
67
|
+
"merge_group": "MG-ARCH-NAMING",
|
|
68
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
69
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"rule_id": "naming.page_component",
|
|
74
|
+
"statement_zh": "路由级页面组件的文件名由页面语义名接帕斯卡式页面后缀构成。",
|
|
75
|
+
"provenance": {
|
|
76
|
+
"asset_id": "directory-layout",
|
|
77
|
+
"entry_id": "naming.page_component",
|
|
78
|
+
"decision": "UNIVERSAL",
|
|
79
|
+
"merge_group": "MG-ARCH-NAMING",
|
|
80
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
81
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"rule_id": "naming.feature_component",
|
|
86
|
+
"statement_zh": "切片内的组合组件以 Widget 或 Panel 一类视图组合后缀命名,与路由级页面组件相区分。",
|
|
87
|
+
"provenance": {
|
|
88
|
+
"asset_id": "directory-layout",
|
|
89
|
+
"entry_id": "naming.feature_component",
|
|
90
|
+
"decision": "UNIVERSAL",
|
|
91
|
+
"merge_group": "MG-ARCH-NAMING",
|
|
92
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
93
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"rule_id": "naming.entity_dir",
|
|
98
|
+
"statement_zh": "实体目录名采用单数名词加小写中划线的形式。",
|
|
99
|
+
"provenance": {
|
|
100
|
+
"asset_id": "directory-layout",
|
|
101
|
+
"entry_id": "naming.entity_dir",
|
|
102
|
+
"decision": "UNIVERSAL",
|
|
103
|
+
"merge_group": "MG-ARCH-NAMING",
|
|
104
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
105
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"rule_id": "naming.feature_dir",
|
|
110
|
+
"statement_zh": "能力标识转目录名时统一取小写中划线形式。",
|
|
111
|
+
"provenance": {
|
|
112
|
+
"asset_id": "directory-layout",
|
|
113
|
+
"entry_id": "naming.feature_dir",
|
|
114
|
+
"decision": "HYBRID",
|
|
115
|
+
"merge_group": "MG-ARCH-NAMING",
|
|
116
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
117
|
+
"split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"rule_id": "naming.page_dir",
|
|
122
|
+
"statement_zh": "页面标识转目录名时统一取小写中划线形式。",
|
|
123
|
+
"provenance": {
|
|
124
|
+
"asset_id": "directory-layout",
|
|
125
|
+
"entry_id": "naming.page_dir",
|
|
126
|
+
"decision": "HYBRID",
|
|
127
|
+
"merge_group": "MG-ARCH-NAMING",
|
|
128
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
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": "directory-layout",
|
|
140
|
+
"entry": "naming.composable",
|
|
141
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
142
|
+
"upstream_source_ref": "outputs/frontend/10_planned/directory-layout.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": "directory-layout",
|
|
152
|
+
"entry": "naming.page_component",
|
|
153
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
154
|
+
"upstream_source_ref": "outputs/frontend/10_planned/directory-layout.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": "directory-layout",
|
|
164
|
+
"entry": "naming.feature_component",
|
|
165
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
166
|
+
"upstream_source_ref": "outputs/frontend/10_planned/directory-layout.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": "directory-layout",
|
|
176
|
+
"entry": "naming.entity_dir",
|
|
177
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
178
|
+
"upstream_source_ref": "outputs/frontend/10_planned/directory-layout.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": "directory-layout",
|
|
188
|
+
"entry": "naming.feature_dir",
|
|
189
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
190
|
+
"upstream_source_ref": "outputs/frontend/10_planned/directory-layout.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": "directory-layout",
|
|
200
|
+
"entry": "naming.page_dir",
|
|
201
|
+
"corpus_batch": "batch-4/ARCHITECTURE",
|
|
202
|
+
"upstream_source_ref": "outputs/frontend/10_planned/directory-layout.yaml"
|
|
203
|
+
},
|
|
204
|
+
"clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
}
|