Skip to content

Commit ac5e3b8

Browse files
committed
w2.9: reclassify protocol-verified hosts — DEEP_VERIFIED → PROTOCOL_VERIFIED
Rename SupportTier.DEEP_VERIFIED to PROTOCOL_VERIFIED across 5 files: installer/models.py (enum), installer/hosts/{codex,claude}.py (tier ref), scripts/check-enhancement-declaration.py (governance expectations + warning), tests/test_installer_status_doctor.py (assertion strings). Preserve Codex/Claude adapters, 5 verified_features, 3 declared_enhancements. PROTOCOL_VERIFIED covers protocol entry + payload + bootstrap + handoff-first; does not imply receipt/finalize write API (W2.9b/W3 scope). Rewrite plan.md/tasks.md W2.9 section: "Remove Deep Host Adapters" → "Reclassify Protocol-Verified Hosts" with boundary note. 163 passed / 0 failed. rg deep_verified in installer/scripts/tests → 0 hits.
1 parent 395c9e0 commit ac5e3b8

7 files changed

Lines changed: 28 additions & 20 deletions

File tree

.sopify-skills/plan/20260605_p8_protocol_kernel_runtime_retirement/plan.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ depends_on: [P7 (payload_only_onboarding_mainline), P6 (writer_cutover), P5 (con
1313
## Plan Snapshot
1414

1515
- **Goal**: 把 AI 开发过程中的方案、决策、交接、执行/验证证据收敛为可追溯审计资产;真相源从 runtime 切到 protocol.md + sopify_writer,并用 Qoder 证明这些资产可跨宿主接续
16-
- **Status**: W1 完成 / W2 进行中(W2.0a-W2.8 done,W2.9 next)
17-
- **Next**: W2.9Rename DEEP_VERIFIED → PROTOCOL_VERIFIED, preserve Codex/Claude install
18-
- **Task**: W2.9 tier 重命名(5 文件),然后 W2.9b writer receipt API → W2.10 删 runtime/ → ...
16+
- **Status**: W1 完成 / W2 进行中(W2.0a-W2.9 done,W2.10 next)
17+
- **Next**: W2.10Delete runtime/ full directory (~16K LOC / 37 files)
18+
- **Task**: W2.10 删 runtime/ 全目录,然后 W2.11 dogfood smoke → ...
1919

2020
## Context / Why
2121

@@ -126,7 +126,7 @@ Qoder 接续写入优先走 `sopify_writer` 库 API;如果宿主限制导致
126126
- W2.6 Registry 退场:删除 `plan/_registry.yaml`、registry 生产/消费代码、priority 建议渲染与 registry 测试
127127
- W2.7 ✅ Tests 重分类:删 20 个 runtime 镜像测试 + 外科修 installer/status/release 测试 + 新增 sopify_writer 测试锚点(163 passed / 0 failed)
128128
- W2.8 ✅ 删 runtime entry/smoke 脚本 + 清 validate.py smoke helper + 修 CONTRIBUTING 文档引用
129-
- W2.9 删除 `installer/hosts/{codex,claude}/` deep adapter(保留 copilot/
129+
- W2.9 ✅ Reclassify Protocol-Verified Hosts: `DEEP_VERIFIED``PROTOCOL_VERIFIED`(5 文件 tier 重命名,保留 Codex/Claude adapter)。边界:PROTOCOL_VERIFIED 验证 protocol entry + payload + bootstrap + handoff-first,不承诺 receipt/finalize write API(W2.9b/W3 scope
130130
- W2.10 删除 `runtime/` 全目录(~16K LOC / 37 文件)
131131
- W2.11 Dogfood smoke:当前 repo 跑 new-plan / continuation / finalize 三场景各 1 次
132132

.sopify-skills/plan/20260605_p8_protocol_kernel_runtime_retirement/tasks.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -348,14 +348,22 @@ created: 2026-06-05
348348
- [x] Verify: `scripts/check-bundle-smoke.sh``scripts/check-prompt-runtime-gate-smoke.py` 不存在
349349
- [x] Verify: `installer/validate.py``run_bundle_smoke_check` / `subprocess` / `shlex` 引用
350350

351-
### W2.9 Remove Deep Host Adapters
352-
353-
- [ ] Depends: W2.2 / W2.8
354-
- [ ] Input: `installer/hosts/{codex,claude}.py`
355-
- [ ] Output: delete deep adapters for Codex/Claude
356-
- [ ] Output: keep payload-capable host path, including Copilot if still useful
357-
- [ ] Output: installer host exports updated
358-
- [ ] Verify: `rg "deep_verified|hosts.codex|hosts.claude|runtime gate" installer docs README.md README.zh-CN.md` returns no active deep path
351+
### W2.9 Reclassify Protocol-Verified Hosts
352+
353+
- [x] Depends: W2.2 / W2.8
354+
- [x] Input: `SupportTier.DEEP_VERIFIED` enum value + all references
355+
- [x] Output: rename `DEEP_VERIFIED` / `"deep_verified"``PROTOCOL_VERIFIED` / `"protocol_verified"` in 5 files:
356+
- `installer/models.py` (enum definition)
357+
- `installer/hosts/codex.py` (support_tier reference)
358+
- `installer/hosts/claude.py` (support_tier reference)
359+
- `scripts/check-enhancement-declaration.py` (TIER_EXPECTATIONS + warning string)
360+
- `tests/test_installer_status_doctor.py` (assertion strings)
361+
- [x] Output: preserve `installer/hosts/codex.py` and `installer/hosts/claude.py` — Codex/Claude remain installable targets
362+
- [x] Output: preserve 5 verified_features (PROMPT_INSTALL, PAYLOAD_INSTALL, WORKSPACE_BOOTSTRAP, HANDOFF_FIRST, HOST_BRIDGE) and 3 declared_enhancements unchanged
363+
- [x] Output: 边界说明 — PROTOCOL_VERIFIED 验证 protocol entry + payload + bootstrap + handoff-first 能力,不承诺 receipt/finalize write API;writer API 属 W2.9b/W3 scope,不在本波新增 FeatureId
364+
- [x] Verify: `rg "deep_verified|DEEP_VERIFIED" installer scripts tests` returns 0 active hits
365+
- [x] Verify: Codex/Claude still installable (`install-sopify --target codex:zh-CN` does not error)
366+
- [x] Verify: `pytest tests -q` → 163 passed / 0 failed
359367

360368
### W2.10 Delete runtime/ Directory
361369

installer/hosts/claude.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
CLAUDE_CAPABILITY = HostCapability(
1717
host_id="claude",
18-
support_tier=SupportTier.DEEP_VERIFIED,
18+
support_tier=SupportTier.PROTOCOL_VERIFIED,
1919
install_enabled=True,
2020
declared_features=(
2121
FeatureId.PROMPT_INSTALL,

installer/hosts/codex.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
CODEX_CAPABILITY = HostCapability(
1717
host_id="codex",
18-
support_tier=SupportTier.DEEP_VERIFIED,
18+
support_tier=SupportTier.PROTOCOL_VERIFIED,
1919
install_enabled=True,
2020
declared_features=(
2121
FeatureId.PROMPT_INSTALL,

installer/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class InstallError(RuntimeError):
3737
class SupportTier(StrEnum):
3838
"""Stable product-support tiers for host registry declarations."""
3939

40-
DEEP_VERIFIED = "deep_verified"
40+
PROTOCOL_VERIFIED = "protocol_verified"
4141
BASELINE_SUPPORTED = "baseline_supported"
4242
DOCUMENTED_ONLY = "documented_only"
4343
EXPERIMENTAL = "experimental"

scripts/check-enhancement-declaration.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
ALL_GROUPS = frozenset(EnhancementGroup)
2424

2525
TIER_EXPECTATIONS: dict[SupportTier, frozenset[EnhancementGroup]] = {
26-
SupportTier.DEEP_VERIFIED: ALL_GROUPS,
26+
SupportTier.PROTOCOL_VERIFIED: ALL_GROUPS,
2727
SupportTier.BASELINE_SUPPORTED: frozenset({EnhancementGroup.CONTINUATION}),
2828
SupportTier.EXPERIMENTAL: frozenset(),
2929
SupportTier.DOCUMENTED_ONLY: frozenset(),
@@ -40,9 +40,9 @@ def check_host(host_id: str, tier: SupportTier, declared: frozenset[EnhancementG
4040
labels = ", ".join(sorted(g.value for g in missing))
4141
warnings.append(f"[{host_id}] tier={tier.value} expects [{labels}] but not declared")
4242

43-
if tier == SupportTier.DEEP_VERIFIED and declared != ALL_GROUPS:
43+
if tier == SupportTier.PROTOCOL_VERIFIED and declared != ALL_GROUPS:
4444
labels = ", ".join(sorted(g.value for g in ALL_GROUPS - declared))
45-
warnings.append(f"[{host_id}] deep_verified should declare all groups; missing: [{labels}]")
45+
warnings.append(f"[{host_id}] protocol_verified should declare all groups; missing: [{labels}]")
4646

4747
return warnings
4848

tests/test_installer_status_doctor.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ def test_registry_returns_complete_capabilities_for_declared_hosts(self) -> None
4646
codex = get_host_capability("codex")
4747
claude = get_host_capability("claude")
4848

49-
self.assertEqual(codex.support_tier.value, "deep_verified")
50-
self.assertEqual(claude.support_tier.value, "deep_verified")
49+
self.assertEqual(codex.support_tier.value, "protocol_verified")
50+
self.assertEqual(claude.support_tier.value, "protocol_verified")
5151
self.assertTrue(codex.install_enabled)
5252
self.assertTrue(claude.install_enabled)
5353
self.assertIn("handoff_first", [feature.value for feature in claude.verified_features])

0 commit comments

Comments
 (0)