Contract terms — read first
Before anything else, read your slice of the Plumbline contract at ${CLAUDE_PLUGIN_ROOT}/terms/walkthrough.md — generated from the root TERMS.md, it holds every shared token, status line, and file-naming pattern this skill reads or writes. Reproduce them verbatim. If you cannot load it, stop and report; do not guess the contract.
When to use this skill
When you want to spend a session improving a project without manual oversight.
Run /walkthrough and walk away. It ends with safe fixes applied and a prioritized list of everything else for you to approve.
Setup
Before starting, identify:
- Project root — the folder being walked
- Test command and run/demo command — from the project's CLAUDE.md
- Specs folder —
Planning/specs/ (the convention; fall back to docs/specs/ if that's what the project uses)
- Output folder —
Plumbline/walkthrough/ in the project root (create it if missing). Both this run's files land here, dated.
Rules
- No check-ins. Do not ask for permission. Anything you cannot safely do autonomously goes to Recommendations.
- Spec is truth. If code disagrees with the spec, the spec wins.
- Autonomy is fenced by the Change rules in CLAUDE.md (Quick Path / Full Path). Apply Quick-Path changes yourself (no new/removed files, no schema change, no core-logic change, nothing that needs a decision doc). One explicit file-creation exception: new test files are Quick-Path — adding a test for existing behavior changes nothing a future reader needs explained. Anything that is Full-Path — schema, core logic, new/renamed non-test files, decisions worth recording — goes to Recommendations, not applied. Do not author decision docs unattended.
- Run the test command after every change. If a change breaks tests and you can't fix it within the Quick-Path fence, revert it and log to Recommendations.
- Log everything to
Plumbline/walkthrough/WalkthroughLog_YYYY-MM-DD_HH-MM.md as you go.
- Commit nothing. Leave all changes uncommitted for review.
Execution Order
Phase 1 — Baseline
- Run any health scripts the project has (check
tools/ if it exists).
- Run the test command. Log pass/fail.
- If specs carry "Done when" items, run inspector to learn what is actually proven, not just what compiles. Spawn it as a separate subagent — inspector's value depends on fresh eyes, and running it inline in this session defeats that. Log the result it reports back. If inspector returns
BLOCKED (the run/demo command won't launch — nothing can be verified), log that as "no runtime baseline" and carry it to Recommendations as a HIGH item; do not treat a BLOCKED as a proof result, and don't try to fix the launch yourself if it's Full-Path.
- Record all of this as the baseline in WalkthroughLog.
Phase 2 — Spec drift
Run the surveyor skill to detect drift — do not reimplement detection here. Then act on its report:
- Drift, Quick-Path fix: correct the code to match the spec, run tests, log it.
- Drift, Full-Path fix: log to Recommendations (do not apply).
- Unimplemented / Undocumented / Untested automated criteria: log to Recommendations with priority. (Adding a missing test is Quick-Path — you may do it in Phase 3.)
Phase 3 — Test coverage
- Identify code paths with no coverage (core logic, edge cases, integration seams), plus any
[automated] Done-when items surveyor flagged as having no backing test.
- Add tests for them — adding tests is Quick-Path. Run the full suite after.
Phase 4 — Documentation
Improve project docs for clarity: CLAUDE.md, CONTEXT.md / REFERENCES.md. Remove redundancy and stale info; make file maps scannable.
Walk test — judge the contract as an agent with no memory would:
- From
CLAUDE.md plus at most two more reads, can you answer where am I and where do I go for task X (find the current spec, its blueprint, the latest inspection)?
- Can you state build status purely by scanning
Plumbline/ and the blueprint's checkboxes — no prose summary required?
- Is
CLAUDE.md carrying content that belongs in a spec, reference, or decision doc? Move the payload to its home and leave a pointer (a doc edit — Quick-Path).
- Is any fact stated in two places? Pick one home; link from the other.
A walk-test failure that needs files moved or renamed is Full-Path — route it to Recommendations rather than fixing structure unattended.
- Do not edit skill files or other tooling. If a skill or tool should change, write it to Recommendations — walkthrough does not rewrite its own machinery unattended.
- Never fill a
[pending — architect] contract field. If CLAUDE.md's Stack or Commands are still placeholders, that's not a doc cleanup — it's drift (architect should have filled them at the first spec). Route it to Recommendations ("contract Stack/Commands never filled — run architect"); do not fabricate the stack or a run command yourself.
Phase 5 — Tools
Look for repeatable tasks worth a helper script (health checks, cross-reference validators). If you write one, create tools/ lazily at that point (it is not pre-created). A new tool script is Full-Path — propose it in Recommendations first unless it is a trivial, self-contained check.
Phase 6 — Recommendations
- Read the deviation history first —
Plumbline/deviations/ across all past builds. The
builder model varies run to run, so don't tune grain to a model — read the trends as
plan-quality signals:
- Dense trivial deviations (renames, file moves, tactic swaps) → blueprints are
constraining tactics that don't affect outcomes; recommend foreman pin what matters
(names, interfaces, behavior) and leave tactics free.
- Repeated Stucks / ambiguity stops → steps keep leaving addresses or details thin;
call out what foreman keeps under-specifying.
- A handful of meaningful deviations is healthy — only flag a pattern.
- Compile everything deferred into a prioritized list (format below).
Log Format (Plumbline/walkthrough/WalkthroughLog_YYYY-MM-DD_HH-MM.md)
## Phase N — Title
### [sequence] Action taken
- **Area:** file or module
- **Finding:** what was found
- **Action:** what was done (or "DEFERRED — Full-Path, see Recommendations")
- **Tests:** pass/fail after change
Recommendations Format (Plumbline/walkthrough/Recommendations_YYYY-MM-DD_HH-MM.md)
## Priority: HIGH / MEDIUM / LOW
### Title
- **Area:** file or module
- **What:** description of change
- **Why:** rationale
- **Effort:** small / medium / large
- **Path:** Quick / Full
- **Spec affected:** which spec, if any
1---2name: walkthrough3description: Autonomous maintenance walkthrough — baseline, spec drift (via surveyor), coverage, docs, and a prioritized recommendations list. Applies safe (Quick-Path) fixes; routes anything bigger to recommendations for review. The maintain-mode counterpart to homeowner (build mode).4---56## Contract terms — read first78Before anything else, read your slice of the Plumbline contract at **`${CLAUDE_PLUGIN_ROOT}/terms/walkthrough.md`** — generated from the root `TERMS.md`, it holds every shared token, status line, and file-naming pattern this skill reads or writes. Reproduce them **verbatim**. **If you cannot load it, stop and report; do not guess the contract.**910---1112## When to use this skill13When you want to spend a session improving a project without manual oversight.14Run `/walkthrough` and walk away. It ends with safe fixes applied and a prioritized list of everything else for you to approve.1516---1718## Setup1920Before starting, identify:211. **Project root** — the folder being walked222. **Test command** and **run/demo command** — from the project's CLAUDE.md233. **Specs folder** — `Planning/specs/` (the convention; fall back to `docs/specs/` if that's what the project uses)244. **Output folder** — `Plumbline/walkthrough/` in the project root (create it if missing). Both this run's files land here, dated.2526---2728## Rules29- **No check-ins.** Do not ask for permission. Anything you cannot safely do autonomously goes to Recommendations.30- **Spec is truth.** If code disagrees with the spec, the spec wins.31- **Autonomy is fenced by the Change rules in CLAUDE.md (Quick Path / Full Path).** Apply **Quick-Path** changes yourself (no new/removed files, no schema change, no core-logic change, nothing that needs a decision doc). **One explicit file-creation exception: new *test* files are Quick-Path** — adding a test for existing behavior changes nothing a future reader needs explained. Anything that is **Full-Path** — schema, core logic, new/renamed non-test files, decisions worth recording — goes to **Recommendations**, not applied. Do not author decision docs unattended.32- **Run the test command after every change.** If a change breaks tests and you can't fix it within the Quick-Path fence, revert it and log to Recommendations.33- **Log everything** to `Plumbline/walkthrough/WalkthroughLog_YYYY-MM-DD_HH-MM.md` as you go.34- **Commit nothing.** Leave all changes uncommitted for review.3536---3738## Execution Order3940### Phase 1 — Baseline411. Run any health scripts the project has (check `tools/` if it exists).422. Run the test command. Log pass/fail.433. If specs carry "Done when" items, run **inspector** to learn what is actually *proven*, not just what compiles. **Spawn it as a separate subagent** — inspector's value depends on fresh eyes, and running it inline in this session defeats that. Log the result it reports back. If inspector returns **`BLOCKED`** (the run/demo command won't launch — nothing can be verified), log that as "no runtime baseline" and carry it to Recommendations as a HIGH item; do not treat a `BLOCKED` as a proof result, and don't try to fix the launch yourself if it's Full-Path.444. Record all of this as the baseline in WalkthroughLog.4546### Phase 2 — Spec drift47Run the **surveyor** skill to detect drift — do not reimplement detection here. Then act on its report:48- **Drift, Quick-Path fix:** correct the code to match the spec, run tests, log it.49- **Drift, Full-Path fix:** log to Recommendations (do not apply).50- **Unimplemented / Undocumented / Untested automated criteria:** log to Recommendations with priority. (Adding a missing test is Quick-Path — you may do it in Phase 3.)5152### Phase 3 — Test coverage531. Identify code paths with no coverage (core logic, edge cases, integration seams), plus any `[automated]` Done-when items surveyor flagged as having no backing test.542. Add tests for them — adding tests is Quick-Path. Run the full suite after.5556### Phase 4 — Documentation57Improve project docs for clarity: `CLAUDE.md`, `CONTEXT.md` / `REFERENCES.md`. Remove redundancy and stale info; make file maps scannable.5859**Walk test — judge the contract as an agent with no memory would:**601. From `CLAUDE.md` plus at most two more reads, can you answer *where am I* and *where do I go for task X* (find the current spec, its blueprint, the latest inspection)?612. Can you state build status purely by scanning `Plumbline/` and the blueprint's checkboxes — no prose summary required?623. Is `CLAUDE.md` carrying content that belongs in a spec, reference, or decision doc? Move the payload to its home and leave a pointer (a doc edit — Quick-Path).634. Is any fact stated in two places? Pick one home; link from the other.6465A walk-test failure that needs files moved or renamed is Full-Path — route it to Recommendations rather than fixing structure unattended.66- **Do not edit skill files or other tooling.** If a skill or tool should change, write it to Recommendations — walkthrough does not rewrite its own machinery unattended.67- **Never fill a `[pending — architect]` contract field.** If `CLAUDE.md`'s Stack or Commands are still placeholders, that's not a doc cleanup — it's drift (architect should have filled them at the first spec). Route it to **Recommendations** ("contract Stack/Commands never filled — run architect"); do not fabricate the stack or a run command yourself.6869### Phase 5 — Tools70Look for repeatable tasks worth a helper script (health checks, cross-reference validators). If you write one, create `tools/` lazily at that point (it is not pre-created). A new tool script is Full-Path — propose it in Recommendations first unless it is a trivial, self-contained check.7172### Phase 6 — Recommendations731. **Read the deviation history first** — `Plumbline/deviations/` across all past builds. The74 builder model varies run to run, so don't tune grain to a model — read the trends as75 *plan-quality* signals:76 - **Dense trivial deviations** (renames, file moves, tactic swaps) → blueprints are77 constraining tactics that don't affect outcomes; recommend foreman pin what matters78 (names, interfaces, behavior) and leave tactics free.79 - **Repeated Stucks / ambiguity stops** → steps keep leaving addresses or details thin;80 call out what foreman keeps under-specifying.81 - A handful of meaningful deviations is healthy — only flag a *pattern*.822. Compile everything deferred into a prioritized list (format below).8384---8586## Log Format (Plumbline/walkthrough/WalkthroughLog_YYYY-MM-DD_HH-MM.md)8788```89## Phase N — Title9091### [sequence] Action taken92- **Area:** file or module93- **Finding:** what was found94- **Action:** what was done (or "DEFERRED — Full-Path, see Recommendations")95- **Tests:** pass/fail after change96```9798---99100## Recommendations Format (Plumbline/walkthrough/Recommendations_YYYY-MM-DD_HH-MM.md)101102```103## Priority: HIGH / MEDIUM / LOW104105### Title106- **Area:** file or module107- **What:** description of change108- **Why:** rationale109- **Effort:** small / medium / large110- **Path:** Quick / Full111- **Spec affected:** which spec, if any112```