Problem
Two gaps compound into silent staleness:
-
Scaffolded artifacts go stale silently. Files that must physically live in a project (.claude/skills/, CLAUDE.md/AGENTS.md managed content, other scaffold-copied files) only refresh when someone manually runs codev update in that project. Nothing tells the user their project is behind the installed package. Concrete case (2026-07-19): the /arch-init skill shipped in the skeleton with Spec 1134, but no existing project can see it until its owner happens to run codev update after a package upgrade, and nothing prompts them to. This friction compounds with every skill or scaffold file we ship. (Runtime-resolved files like protocols are immune: they fall through the four-tier resolver to the installed skeleton.)
-
codev doctor can't detect this, and its results are invisible unless run by hand. Doctor today is a dependency checker only (CLI presence, versions, AI model auth). It has no scaffold-drift check and no machine-readable output, and its findings surface nowhere except the terminal of whoever ran it.
Proposal
A. Extend codev doctor with a scaffold-drift check. Compare the project's scaffold-copied artifacts against the installed package skeleton: missing skills, outdated skill content, stale managed CLAUDE.md/AGENTS.md sections, and whatever else init/adopt/update owns. Report missing / out-of-date / ok per artifact.
B. Machine-readable output. codev doctor --json emitting structured results (existing dependency checks + new drift checks), so programmatic consumers don't scrape terminal text.
C. Surface it in the VS Code extension. The extension runs the check (on activation, and perhaps on a slow interval or after detecting a package upgrade) and makes drift visible without the user asking:
- A results view listing findings, with a one-click remediation action that runs
codev update (and reminds the user that open Claude sessions need a restart to pick up new skills).
- Attention cue when drift exists (view badge and/or notification), quiet when clean.
Hosting options for the view (Amr's lean is the first):
- The recently added bottom-panel container (
codevPanel) alongside Codev Dev.
- The existing collapsed
codev.status sidebar view, which is already a status-shaped surface.
Open design questions
- Who executes doctor: the extension shelling out to
codev doctor --json, or Tower running it and serving results (which would let the same data reach web/mobile later)?
- Check triggers: activation-only vs interval vs on-upgrade detection.
- Whether drift severity should distinguish "missing entirely" from "present but older than skeleton".
- Scope of A: exact list of artifacts doctor should own checking, and how it detects "outdated" (byte-compare vs version marker).
Origin
Filed from main-architect session 2026-07-19 after the /arch-init distribution question; Amr requested filing and suggested the panel-area hosting.
Problem
Two gaps compound into silent staleness:
Scaffolded artifacts go stale silently. Files that must physically live in a project (
.claude/skills/, CLAUDE.md/AGENTS.md managed content, other scaffold-copied files) only refresh when someone manually runscodev updatein that project. Nothing tells the user their project is behind the installed package. Concrete case (2026-07-19): the/arch-initskill shipped in the skeleton with Spec 1134, but no existing project can see it until its owner happens to runcodev updateafter a package upgrade, and nothing prompts them to. This friction compounds with every skill or scaffold file we ship. (Runtime-resolved files like protocols are immune: they fall through the four-tier resolver to the installed skeleton.)codev doctorcan't detect this, and its results are invisible unless run by hand. Doctor today is a dependency checker only (CLI presence, versions, AI model auth). It has no scaffold-drift check and no machine-readable output, and its findings surface nowhere except the terminal of whoever ran it.Proposal
A. Extend
codev doctorwith a scaffold-drift check. Compare the project's scaffold-copied artifacts against the installed package skeleton: missing skills, outdated skill content, stale managed CLAUDE.md/AGENTS.md sections, and whatever else init/adopt/update owns. Report missing / out-of-date / ok per artifact.B. Machine-readable output.
codev doctor --jsonemitting structured results (existing dependency checks + new drift checks), so programmatic consumers don't scrape terminal text.C. Surface it in the VS Code extension. The extension runs the check (on activation, and perhaps on a slow interval or after detecting a package upgrade) and makes drift visible without the user asking:
codev update(and reminds the user that open Claude sessions need a restart to pick up new skills).Hosting options for the view (Amr's lean is the first):
codevPanel) alongside Codev Dev.codev.statussidebar view, which is already a status-shaped surface.Open design questions
codev doctor --json, or Tower running it and serving results (which would let the same data reach web/mobile later)?Origin
Filed from main-architect session 2026-07-19 after the /arch-init distribution question; Amr requested filing and suggested the panel-area hosting.