Smithy Agent

THE CREW

The six agents

Five for every /smithy run, plus questmaster — the critic who decides when a /smithy-quest loop is done.

prospector

Finds the relevant files and lines. Read-only, fast.

18 tools · 7 search · 4 tome bridge

draftsman

Produces the plan. Read-only.

16 tools · 6 search · 3 tome bridge

inspector

Fresh-instance adversarial review of draftsman's plan. Gates smith until APPROVE. Read-only.

17 tools · 6 search · 4 tome bridge

smith

Builds. Executes the approved plan. Emits [DONE:n] progress markers.

22 tools · edit · write · bash

judge

Verifies smith's work against the plan (runs tests/type-checks). Returns APPROVE / REQUEST CHANGES / REJECT.

20 tools · 7 search · bash · 3 tome bridge

prospector

Finds the relevant files and lines. Read-only, fast.

The scout. Reads the repo and returns the small set of files and line ranges that matter for the goal — never writes. When the knowledge-base MCP bridge is connected, prospector upgrades grep to symbol/relationship queries (mcp_tome_code_search).

Runs when: When the goal touches code the parent model has not already loaded into context — i.e. the case where reading the whole repo would burn the budget before planning starts.

Tools read · grep · find · ls · ast_grep · lsp_query · comment_check · task (3) · web (2) · cached (2) · tome bridge (4)

Example reads repo → returns ["src/calc.js:12-48", "src/format.js:5-22", "package.json:scripts.test"]

Hand off → passes findings

draftsman

Produces the plan. Read-only.

Turns prospector's findings into a numbered, executable plan and writes it to `.smithy/plan.md`. Read-only — draftsman never edits your code, only the ledger. Forces itself into the loop for any open-ended goal or 3+-file change so the build has a blueprint to follow.

Runs when: Always for open-ended goals and 3+-file changes. Skipped only when the goal is trivial enough that a one-line fix doesn't need a plan ceremony.

Tools read · grep · find · ls · ast_grep · lsp_query · task (3) · web (2) · cached (2) · tome bridge (3)

Example findings + goal → 5-step .smithy/plan.md with checkboxes, file paths, and a short rationale per step

Hand off → hands plan

inspector

Fresh-instance adversarial review of draftsman's plan. Gates smith until APPROVE. Read-only.

A fresh-instance critic (no shared context with draftsman — eliminates self-review bias). Re-reads the relevant code and the plan, then issues a verdict in `## Adversarial Reviews`: `approve` / `request changes` / `block`. A `block` sends you back to planning instead of wasting a build.

Runs when: Auto-runs on any non-trivial plan (the kind that warrants a second pair of eyes). You can force it on any plan with `/review`.

Tools read · grep · find · ls · ast_grep · lsp_query · task (3) · web (2) · cached (2) · tome bridge (4)

Example fresh-context read of .smithy/plan.md + repo → "VERDICT: approve" (or REVISE/BLOCK with concrete follow-ups)

Hand off → APPROVE → build

smith

Builds. Executes the approved plan. Emits [DONE:n] progress markers.

The only writer. Under `/smithy`, smith auto-runs in its own git worktree so concurrent builds never race on the same files; on success the branch merges back, on conflict an interactive chooser (judge-auto-fix, manual, or abort). Emits `[DONE:n]` markers so the orchestrator can track progress against the plan. Once done, judge verifies (not draftsman — see Option A in the docs).

Runs when: Once inspector has approved the plan. Skipped for trivial goals where planning is overkill — smith handles the one-line fix directly.

Tools read · grep · find · ls · ast_grep · lsp_query · comment_check · edit · write · bash · apply_patch · todos (2) · hashline (2) · task (3) · web (2) · cached (2)

Example reads approved plan → applies edits → emits [DONE:1] … [DONE:5] → commits on branch

Hand off → hands work → verify

judge

Verifies smith's work against the plan (runs tests/type-checks). Returns APPROVE / REQUEST CHANGES / REJECT.

Runs your test suite and type-checker against the current tree — for the post-`/smithy` judge, smith's branch has already merged so the parent tree IS the verified code; for a standalone `/verify` re-check, judge runs directly against the working tree. Emits a verdict in `## Verification`: `APPROVE` / `REQUEST CHANGES` / `REJECT`. Each run appends to the ledger, so the history of audit accumulates. Re-runnable any time via `/verify`.

Runs when: Automatically after smith finishes a multi-step plan. You can also invoke it manually with `/verify` to re-check the current tree.

Tools read · grep · find · ls · ast_grep · lsp_query · comment_check · bash · hashline_read · todo_read · task (3) · web (2) · cached (2) · tome bridge (3)

Example runs npm test + tsc --noEmit → emits "VERDICT: APPROVE" (or REQUEST CHANGES with concrete follow-ups)

Quest-only /smithy-quest only

This agent only appears during /smithy-quest runs. Questmaster is a fresh-instance critic — it did NOT do the work it evaluates — and decides whether the quest goal is met between iterations of the autonomous loop.

questmaster

Assesses whether the quest goal is met. Fresh instance — did NOT do the work. Returns QUEST_COMPLETE / QUEST_CONTINUE / QUEST_SATURATED.

A /smithy-quest-only agent. After each judge APPROVE, the questmaster (a fresh instance — it did NOT do the work) reads git diff --stat and the .smithy/quest.md history to assess progress. It returns EXACTLY one verdict on its final line: QUEST_COMPLETE (goal met — emit [DONE]), QUEST_CONTINUE: <specific next focus> (loop with a concrete next-iteration target the parent will use as the new goal), or QUEST_SATURATED (diminishing returns — emit [DONE:saturation]). The next-focus contract is what keeps iterations from drifting.

Runs when: Only during /smithy-quest, after each judge APPROVE. Decides whether the quest loops for another iteration or terminates.

Tools read · grep · find · ls · bash · ast_grep · lsp_query · hashline_read · web (2) · cached (2)

Example reads git diff --stat + .smithy/quest.md → "QUEST_CONTINUE" (more valuable work remains)

Six agents total. Five coreprospector, draftsman, inspector, smith, judge — compose every /smithy run. Questmaster is the sixth: a fresh-instance critic who only appears during /smithy-quest to decide whether the quest goal is met between iterations of the autonomous loop.

The model decides when to delegate within a run — trivial tasks skip straight to smith; complex ones get the full treatment. inspector only runs for non-trivial plans (a fresh-eyes critic is wasted on a one-line fix). /verify re-runs judge against the current tree at any time — useful when you've changed the code since the last verification, or want to re-check a plan you marked done a while ago. Each run appends a fresh verdict to .smithy/plan.md.