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,134 @@
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.PUBLIC_API_BARREL",
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
+ "barrel",
38
+ "public api",
39
+ "no deep import"
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": "deep_import_rule",
61
+ "statement_zh": "任何跨目录引用只允许指向目标目录的公开出口;深入目标目录内部路径或直接引用内部具体文件的写法一律禁止;可引用出口的具名清单属项目基线参数。",
62
+ "provenance": {
63
+ "asset_id": "architecture-constraints",
64
+ "entry_id": "deep_import_rule",
65
+ "decision": "HYBRID",
66
+ "merge_group": "MG-ARCH-BARREL",
67
+ "corpus_batch": "batch-4/ARCHITECTURE",
68
+ "split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
69
+ }
70
+ },
71
+ {
72
+ "rule_id": "naming.barrel",
73
+ "statement_zh": "每个分层根目录、每个切片目录、每个实体目录与每个页面目录都必须提供唯一的公开出口文件,作为该目录对外唯一的可见面。",
74
+ "provenance": {
75
+ "asset_id": "directory-layout",
76
+ "entry_id": "naming.barrel",
77
+ "decision": "UNIVERSAL",
78
+ "merge_group": "MG-ARCH-BARREL",
79
+ "corpus_batch": "batch-4/ARCHITECTURE",
80
+ "split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
81
+ }
82
+ },
83
+ {
84
+ "rule_id": "barrel_rule",
85
+ "statement_zh": "公开出口文件是分层的唯一对外契约面:只转发对外接口,不暴露内部实现;一切跨层引用必须经由目标方的公开出口完成,深入内部目录的引用一律禁止。",
86
+ "provenance": {
87
+ "asset_id": "directory-layout",
88
+ "entry_id": "barrel_rule",
89
+ "decision": "UNIVERSAL",
90
+ "merge_group": "MG-ARCH-BARREL",
91
+ "corpus_batch": "batch-4/ARCHITECTURE",
92
+ "split_ledger": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml"
93
+ }
94
+ }
95
+ ],
96
+ "sources": [
97
+ {
98
+ "type": "design_seed",
99
+ "ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
100
+ "captured_by": "agent:claude/batch-4-catalog-uplift",
101
+ "locator": {
102
+ "asset": "architecture-constraints",
103
+ "entry": "deep_import_rule",
104
+ "corpus_batch": "batch-4/ARCHITECTURE",
105
+ "upstream_source_ref": "outputs/frontend/10_planned/architecture-constraints.yaml"
106
+ },
107
+ "clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
108
+ },
109
+ {
110
+ "type": "design_seed",
111
+ "ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
112
+ "captured_by": "agent:claude/batch-4-catalog-uplift",
113
+ "locator": {
114
+ "asset": "directory-layout",
115
+ "entry": "naming.barrel",
116
+ "corpus_batch": "batch-4/ARCHITECTURE",
117
+ "upstream_source_ref": "outputs/frontend/10_planned/directory-layout.yaml"
118
+ },
119
+ "clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
120
+ },
121
+ {
122
+ "type": "design_seed",
123
+ "ref": "POMaster_VNext/corpus/master/batch-4/split-ledger.yaml",
124
+ "captured_by": "agent:claude/batch-4-catalog-uplift",
125
+ "locator": {
126
+ "asset": "directory-layout",
127
+ "entry": "barrel_rule",
128
+ "corpus_batch": "batch-4/ARCHITECTURE",
129
+ "upstream_source_ref": "outputs/frontend/10_planned/directory-layout.yaml"
130
+ },
131
+ "clean_room_note": "independently rewritten from field corpus batch-4 material; zero verbatim copy"
132
+ }
133
+ ]
134
+ }
@@ -0,0 +1,79 @@
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 正文层(两种落法待裁决,见 candidates-draft.json meta.vocab_findings[0],affected=45)",
6
+ "locked_vocab_untouched": true
7
+ },
8
+ "x-pilot-proposal": {
9
+ "status": "PROPOSAL",
10
+ "package": "语义分解试点送审包(2026-08-28)",
11
+ "human_review_required": true,
12
+ "source_type": "design_seed",
13
+ "evidence": "PLANNED",
14
+ "provenance": "POMaster_VNext/catalog/candidates/candidates-draft.json",
15
+ "enforcement_note": "命中 applies_when 条件时必须遵守;是否升 MUST、接入哪个 gate 由 Human Review 裁决",
16
+ "clean_room_note": "statement_zh 为独立改写(clean-room),零逐字拷贝源协议"
17
+ },
18
+ "x-applicability-review": {
19
+ "status": "human_review_candidate",
20
+ "campaign": "W1-A2 P0.5-1 T3 标注战役(PRD v0.5.2 §5.2/§14;Owner 裁决 8 ②,2026-09-01)",
21
+ "axes": [
22
+ "lanes",
23
+ "applicability_note"
24
+ ],
25
+ "note": "T3 保守派生未见明确词面证据——capabilities/change_classes 留空回退 lane 缺省(O7 行为零变化);列 Human Review 复核议程"
26
+ },
27
+ "id": "POLICY.WEB.CHG.CONTROLLED_CHANGE_TRIGGERS",
28
+ "kind": "policy",
29
+ "axis_profile": "policy_default",
30
+ "classification": "LANE_POLICY",
31
+ "axes": {
32
+ "lifecycle": "PROPOSED",
33
+ "confidence": "UNRESOLVED",
34
+ "evidence": "PLANNED",
35
+ "change": "STABLE"
36
+ },
37
+ "title_zh": "Baseline 冻结后受控变更触发清单",
38
+ "statement_zh": "Baseline 冻结后,凡触及公共组件 API、接口字段、权限码、错误码、Design Token、目录边界、状态模型、金额精度或验收门禁的修改,必须走 Controlled Change(附影响、Owner、迁移与验证证据)。",
39
+ "statement_en_keywords": [
40
+ "controlled change",
41
+ "post-baseline freeze",
42
+ "trigger list",
43
+ "impact evidence"
44
+ ],
45
+ "applies_when": {
46
+ "lane": "frontend",
47
+ "condition": "Baseline 已冻结且修改命中触发清单",
48
+ "lanes": [
49
+ "frontend"
50
+ ],
51
+ "applicability_note": "Baseline 已冻结且修改命中触发清单"
52
+ },
53
+ "enforcement": "required_when_applicable",
54
+ "authority": {
55
+ "owner": "HUMAN_OWNER",
56
+ "delegates": [],
57
+ "write_policy": "EVOLUTION_CHANNEL",
58
+ "escalation_hint": "catalog-pilot-human-review"
59
+ },
60
+ "origin": "ingested",
61
+ "sources": [
62
+ {
63
+ "type": "design_seed",
64
+ "ref": "pomaster/components/frontend-hard-spec/assets/universal/06-change-governance-protocol.md",
65
+ "captured_by": "agent:claude/semantic-decomposition-pilot",
66
+ "locator": {
67
+ "section": "MUST 第7条"
68
+ }
69
+ }
70
+ ],
71
+ "review_notes": [
72
+ "触发清单含 FE 专有对象(Design Token/权限码),故 LANE_POLICY;Controlled Change 概念本身可泛化"
73
+ ],
74
+ "review": {
75
+ "disposition": "ACCEPT",
76
+ "seq": "pilot-0001",
77
+ "ref": "docs/catalog-pilot-report.md:L204(§8.1 #7)"
78
+ }
79
+ }
@@ -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 域段待登记:COPY",
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.COPY.SUPPRESSION_LEDGER_DISCIPLINE",
16
+ "density_rank": 14,
17
+ "density_score": 34.12,
18
+ "pool_statement_sha16": "b0007b3ce4c2905e",
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.COPY.SUPPRESSION_LEDGER_DISCIPLINE",
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
+ "suppression ledger",
43
+ "debt not compliance",
44
+ "new violations hard fail",
45
+ "no list inflation"
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.COPY.SUPPRESSION_LEDGER_DISCIPLINE",
68
+ "source_protocol": ".trellis/spec/frontend/39-copywriting-protocol.md",
69
+ "lines": "L38-L41, L51-L57",
70
+ "section": "项目强制规则·存量清单与收敛 + 项目禁止"
71
+ },
72
+ "clean_room_note": "independently rewritten from SPEC-D decomposition candidate cards; zero verbatim copy"
73
+ }
74
+ ],
75
+ "review_notes": [
76
+ "抑制清单治理在既有 69 条中无对应条目,零语义重复;lane 中性,适用于任何携带抑制清单的静态检查治理。"
77
+ ]
78
+ }
@@ -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)",
5
+ "proposal": "词汇表 PR 登记 policy kind;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(两种落法待裁决,见 candidates-draft.json meta.vocab_findings[0],affected=45)",
6
+ "locked_vocab_untouched": true
7
+ },
8
+ "x-pilot-proposal": {
9
+ "status": "PROPOSAL",
10
+ "package": "语义分解试点送审包(2026-08-28)",
11
+ "human_review_required": true,
12
+ "source_type": "design_seed",
13
+ "evidence": "PLANNED",
14
+ "provenance": "POMaster_VNext/catalog/candidates/candidates-draft.json",
15
+ "enforcement_note": "命中 applies_when 条件时必须遵守;是否升 MUST、接入哪个 gate 由 Human Review 裁决",
16
+ "clean_room_note": "statement_zh 为独立改写(clean-room),零逐字拷贝源协议"
17
+ },
18
+ "x-applicability-review": {
19
+ "status": "human_review_candidate",
20
+ "campaign": "W1-A2 P0.5-1 T3 标注战役(PRD v0.5.2 §5.2/§14;Owner 裁决 8 ②,2026-09-01)",
21
+ "axes": [
22
+ "lanes",
23
+ "applicability_note"
24
+ ],
25
+ "note": "T3 保守派生未见明确词面证据——capabilities/change_classes 留空回退 lane 缺省(O7 行为零变化);列 Human Review 复核议程"
26
+ },
27
+ "id": "POLICY.WEB.GRID.COLUMN_SCHEMA_FIELDS",
28
+ "kind": "policy",
29
+ "axis_profile": "policy_default",
30
+ "classification": "LANE_POLICY",
31
+ "axes": {
32
+ "lifecycle": "PROPOSED",
33
+ "confidence": "UNRESOLVED",
34
+ "evidence": "PLANNED",
35
+ "change": "STABLE"
36
+ },
37
+ "title_zh": "列 schema 六字段必填",
38
+ "statement_zh": "每列必须具备稳定 key、标题、值类型、宽度策略、权限与导出规则六项 schema 字段。",
39
+ "statement_en_keywords": [
40
+ "column schema fields",
41
+ "stable key",
42
+ "width policy",
43
+ "permission",
44
+ "export rule"
45
+ ],
46
+ "applies_when": {
47
+ "lane": "frontend",
48
+ "condition": "定义任何表格列",
49
+ "lanes": [
50
+ "frontend"
51
+ ],
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-pilot-human-review"
60
+ },
61
+ "origin": "ingested",
62
+ "sources": [
63
+ {
64
+ "type": "design_seed",
65
+ "ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md",
66
+ "captured_by": "agent:claude/semantic-decomposition-pilot",
67
+ "locator": {
68
+ "section": "MUST 第2条"
69
+ }
70
+ }
71
+ ],
72
+ "review_notes": [],
73
+ "review": {
74
+ "disposition": "ACCEPT",
75
+ "seq": "pilot-0001",
76
+ "ref": "docs/catalog-pilot-report.md:L254(§8.3 #47)"
77
+ }
78
+ }
@@ -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)",
5
+ "proposal": "词汇表 PR 登记 policy kind;或 Owner 裁决 policy 条目住 catalog/ 而非 truth/objects 正文层(两种落法待裁决,见 candidates-draft.json meta.vocab_findings[0],affected=45)",
6
+ "locked_vocab_untouched": true
7
+ },
8
+ "x-pilot-proposal": {
9
+ "status": "PROPOSAL",
10
+ "package": "语义分解试点送审包(2026-08-28)",
11
+ "human_review_required": true,
12
+ "source_type": "design_seed",
13
+ "evidence": "PLANNED",
14
+ "provenance": "POMaster_VNext/catalog/candidates/candidates-draft.json",
15
+ "enforcement_note": "命中 applies_when 条件时必须遵守;是否升 MUST、接入哪个 gate 由 Human Review 裁决",
16
+ "clean_room_note": "statement_zh 为独立改写(clean-room),零逐字拷贝源协议"
17
+ },
18
+ "x-applicability-review": {
19
+ "status": "human_review_candidate",
20
+ "campaign": "W1-A2 P0.5-1 T3 标注战役(PRD v0.5.2 §5.2/§14;Owner 裁决 8 ②,2026-09-01)",
21
+ "axes": [
22
+ "lanes",
23
+ "applicability_note"
24
+ ],
25
+ "note": "T3 保守派生未见明确词面证据——capabilities/change_classes 留空回退 lane 缺省(O7 行为零变化);列 Human Review 复核议程"
26
+ },
27
+ "id": "POLICY.WEB.GRID.CONFIG_ISOLATION",
28
+ "kind": "policy",
29
+ "axis_profile": "policy_default",
30
+ "classification": "LANE_POLICY",
31
+ "axes": {
32
+ "lifecycle": "PROPOSED",
33
+ "confidence": "UNRESOLVED",
34
+ "evidence": "PLANNED",
35
+ "change": "STABLE"
36
+ },
37
+ "title_zh": "列配置四维隔离",
38
+ "statement_zh": "列配置必须按页面、表格、用户与 schema 版本四维隔离存储。",
39
+ "statement_en_keywords": [
40
+ "column config isolation",
41
+ "per page/grid/user/schema-version"
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-pilot-human-review"
57
+ },
58
+ "origin": "ingested",
59
+ "sources": [
60
+ {
61
+ "type": "design_seed",
62
+ "ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md",
63
+ "captured_by": "agent:claude/semantic-decomposition-pilot",
64
+ "locator": {
65
+ "section": "MUST 第4条"
66
+ }
67
+ }
68
+ ],
69
+ "review_notes": [],
70
+ "review": {
71
+ "disposition": "ACCEPT",
72
+ "seq": "pilot-0001",
73
+ "ref": "docs/catalog-pilot-report.md:L256(§8.3 #49)",
74
+ "absorbed_duplicates": [
75
+ "POLICY.WEB.GRID.NO_SHARED_CONFIG_KEYS"
76
+ ]
77
+ }
78
+ }
@@ -0,0 +1,77 @@
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 正文层(两种落法待裁决,见 candidates-draft.json meta.vocab_findings[0],affected=45)",
6
+ "locked_vocab_untouched": true
7
+ },
8
+ "x-pilot-proposal": {
9
+ "status": "PROPOSAL",
10
+ "package": "语义分解试点送审包(2026-08-28)",
11
+ "human_review_required": true,
12
+ "source_type": "design_seed",
13
+ "evidence": "PLANNED",
14
+ "provenance": "POMaster_VNext/catalog/candidates/candidates-draft.json",
15
+ "enforcement_note": "仅建议:任何 gate 永不因本条目单独 FAIL,至多产生 WARN/HINT 或进入 Human Review 议程",
16
+ "clean_room_note": "statement_zh 为独立改写(clean-room),零逐字拷贝源协议"
17
+ },
18
+ "x-applicability-review": {
19
+ "status": "human_review_candidate",
20
+ "campaign": "W1-A2 P0.5-1 T3 标注战役(PRD v0.5.2 §5.2/§14;Owner 裁决 8 ②,2026-09-01)",
21
+ "axes": [
22
+ "lanes",
23
+ "applicability_note"
24
+ ],
25
+ "note": "T3 保守派生未见明确词面证据——capabilities/change_classes 留空回退 lane 缺省(O7 行为零变化);列 Human Review 复核议程"
26
+ },
27
+ "id": "POLICY.WEB.GRID.FREEZE_KEY_COLUMNS",
28
+ "kind": "policy",
29
+ "axis_profile": "policy_default",
30
+ "classification": "LANE_POLICY",
31
+ "axes": {
32
+ "lifecycle": "PROPOSED",
33
+ "confidence": "UNRESOLVED",
34
+ "evidence": "PLANNED",
35
+ "change": "STABLE"
36
+ },
37
+ "title_zh": "冻结关键列与宽度预算",
38
+ "statement_zh": "建议固定关键标识列与操作列并限制冻结总宽。",
39
+ "statement_en_keywords": [
40
+ "frozen key/action columns",
41
+ "freeze width budget"
42
+ ],
43
+ "applies_when": {
44
+ "lane": "frontend",
45
+ "condition": "宽表列较多时",
46
+ "lanes": [
47
+ "frontend"
48
+ ],
49
+ "applicability_note": "宽表列较多时"
50
+ },
51
+ "enforcement": "advisory",
52
+ "authority": {
53
+ "owner": "HUMAN_OWNER",
54
+ "delegates": [],
55
+ "write_policy": "EVOLUTION_CHANNEL",
56
+ "escalation_hint": "catalog-pilot-human-review"
57
+ },
58
+ "origin": "ingested",
59
+ "sources": [
60
+ {
61
+ "type": "design_seed",
62
+ "ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md",
63
+ "captured_by": "agent:claude/semantic-decomposition-pilot",
64
+ "locator": {
65
+ "section": "SHOULD 第1条"
66
+ }
67
+ }
68
+ ],
69
+ "review_notes": [
70
+ "SHOULD 正确降级 advisory"
71
+ ],
72
+ "review": {
73
+ "disposition": "ACCEPT",
74
+ "seq": "pilot-0001",
75
+ "ref": "docs/catalog-pilot-report.md:L264(§8.3 #57)"
76
+ }
77
+ }
@@ -0,0 +1,80 @@
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 正文层(两种落法待裁决,见 candidates-draft.json meta.vocab_findings[0],affected=45)",
6
+ "locked_vocab_untouched": true
7
+ },
8
+ "x-pilot-proposal": {
9
+ "status": "PROPOSAL",
10
+ "package": "语义分解试点送审包(2026-08-28)",
11
+ "human_review_required": true,
12
+ "source_type": "design_seed",
13
+ "evidence": "PLANNED",
14
+ "provenance": "POMaster_VNext/catalog/candidates/candidates-draft.json",
15
+ "enforcement_note": "命中 applies_when 条件时必须遵守;是否升 MUST、接入哪个 gate 由 Human Review 裁决",
16
+ "clean_room_note": "statement_zh 为独立改写(clean-room),零逐字拷贝源协议"
17
+ },
18
+ "x-applicability-review": {
19
+ "status": "human_review_candidate",
20
+ "campaign": "W1-A2 P0.5-1 T3 标注战役(PRD v0.5.2 §5.2/§14;Owner 裁决 8 ②,2026-09-01)",
21
+ "axes": [
22
+ "lanes",
23
+ "applicability_note"
24
+ ],
25
+ "note": "T3 保守派生未见明确词面证据——capabilities/change_classes 留空回退 lane 缺省(O7 行为零变化);列 Human Review 复核议程"
26
+ },
27
+ "id": "POLICY.WEB.GRID.INTERACTION_REGISTRY",
28
+ "kind": "policy",
29
+ "axis_profile": "policy_default",
30
+ "classification": "LANE_POLICY",
31
+ "axes": {
32
+ "lifecycle": "PROPOSED",
33
+ "confidence": "UNRESOLVED",
34
+ "evidence": "PLANNED",
35
+ "change": "STABLE"
36
+ },
37
+ "title_zh": "表格交互逐项登记绑定",
38
+ "statement_zh": "表格交互(行 click/dblclick/select/drag-select/列头排序/单元格 focus 等)必须逐项登记于 interaction-contract-registry 并绑定 action_id 与 api_requirement_ids;所支持交互子集必须显式界定并说明触发后果;排斥键盘的交互必须声明键盘等价路径。",
39
+ "statement_en_keywords": [
40
+ "interaction contract registry",
41
+ "action binding",
42
+ "api requirement binding",
43
+ "keyboard equivalence",
44
+ "explicit interaction subset"
45
+ ],
46
+ "applies_when": {
47
+ "lane": "frontend",
48
+ "condition": "页面含 data grid 且项目启用 interaction-contract-registry(opt-in:registry 文件存在)",
49
+ "lanes": [
50
+ "frontend"
51
+ ],
52
+ "applicability_note": "页面含 data grid 且项目启用 interaction-contract-registry(opt-in:registry 文件存在)"
53
+ },
54
+ "enforcement": "required_when_applicable",
55
+ "authority": {
56
+ "owner": "HUMAN_OWNER",
57
+ "delegates": [],
58
+ "write_policy": "EVOLUTION_CHANNEL",
59
+ "escalation_hint": "catalog-pilot-human-review"
60
+ },
61
+ "origin": "ingested",
62
+ "sources": [
63
+ {
64
+ "type": "design_seed",
65
+ "ref": "pomaster/components/frontend-hard-spec/assets/universal/30-data-grid-protocol.md",
66
+ "captured_by": "agent:claude/semantic-decomposition-pilot",
67
+ "locator": {
68
+ "section": "MUST 第7条"
69
+ }
70
+ }
71
+ ],
72
+ "review_notes": [
73
+ "opt-in 语义保留:registry 文件不存在时 gate 应报 not-configured 而非静默通过(四态语义,T3——升 MUST 时不得剥离该条件);pilot-0001 R-E:po-master 决议编号引用已剥离,不入 global 正本"
74
+ ],
75
+ "review": {
76
+ "disposition": "ADJUST",
77
+ "seq": "pilot-0001",
78
+ "ref": "docs/catalog-pilot-report.md:L259(§8.3 #52)"
79
+ }
80
+ }