Skip to content

Surface codev doctor results (incl. scaffold drift) in the VS Code extension #1207

Description

@amrmelsayed

Problem

Two gaps compound into silent staleness:

  1. 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.)

  2. 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):

  1. The recently added bottom-panel container (codevPanel) alongside Codev Dev.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/cross-cuttingTouches multiple areas — needs coordinated handling

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions