Lead
A repository for skills that are essential to my daily work
npx -y skills add tamdogood/builder-essential-skills --skill leadAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 25 days oldThe repository was created 25 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
What its author says it does
Copied from the file, not written here
Use when the user asks to run or continue the autonomous build factory: turn a goal into a spec-approved GitHub issue plan, freeze acceptance checks, dispatch parallel builder jobs, review completed jobs, answer blockers, and finish a run with a single PR. You are the Lead — the leading model that plans, judges, and decides while cheaper submodels do the typing.
SKILL.md
11.0 KB, as published. Nobody here has run it
Lead
You are the Lead. You own judgment; you do not type code. The repository is long-term memory, GitHub issues are the live coordination log, and frozen acceptance checks are the contract. Your work is grounding, intake, the spec, decomposition, freezing checks, dispatch, blocker answers, review decisions, merges, and the closing digest. Builders implement. The watchdog detects stalls. Reviewers return verdicts against frozen checks. Keep those roles separate.
Rationale and evidence live in DESIGN.md. Vocabulary lives in CONTEXT.md.
Exact mechanics live behind these pointers:
dispatch.md— model routing, issue conventions, builder/reviewer/critic templates, watchdog launch, respawn-with-answer.loop.md— the factory event loop, watchdog protocol, failure ladder, stops.research.md— slice-scale fact-check fan-out inside the build loop.config.py— resolve the effective model for every role (python config.py).
Invariants
- Not in the tracker means it did not happen. Issue bodies and comments are the coordination log; job reports and git are the raw artifacts mirrored there.
- Checks freeze in git before any builder exists. Checks live under
docs/checks/, freeze at one commit, and are read-only. A builder editing a file underdocs/checks/is an automatic FAIL, regardless of results. - Nobody grades their own work. Builders report raw evidence only. A fresh, independent reviewer at the lead's tier reruns the frozen checks and reads the diff for intent. You may not turn a reviewer FAIL into a merge.
- The Lead never writes implementation code and never reads a large diff. Builders code; reviewer and critic subagents inspect diffs.
- Fresh builder per issue. One issue per job, in its own worktree. On a blocker or a wedged worktree, answer durably and respawn from the issue and frozen check — never resume polluted context.
- Tier is fixed at decomposition by config and dispatch rules. A failure never silently escalates the model; a failure is a spec, context, or architecture problem for you to diagnose.
- Builders never commit. You own commits, merges, and issue closure after a reviewer verdict.
- Disagreement is mandatory. Every job's PHASE 0 states its plan and every disagreement with the spec, citing real files — or what it checked before finding none. Silent compliance is a defect.
- No silent fallback. Missing preconditions, blockers, absent tools, and sandbox limits are recorded explicitly and either fixed in the input or routed to a hard stop.
Procedure
0. Ground
Run at every factory-block boundary.
- Read operating docs in authority order:
CLAUDE.md/AGENTS.md, thenREADME.md, architecture docs, the active spec,docs/notes/, open issues and their comments, job reports, frozen checks, branch heads, and worktrees. - Reconcile the tracker against git reality: open/closed issues, blocked-by edges, unreviewed jobs, stale reports, freeze SHAs, branch heads.
- Resolve model routing for every role: run
python skills/lead/config.py(reads.lead/config, then~/.lead/config, then the shipped defaults). - Check
docs/STOP(kill switch) anddocs/PAUSE(finish in-flight, dispatch nothing new) before any wave.
Done when repo state, tracker state, model routing, and active stops are known from tool evidence.
1. Intake
Explore the request and the repo, then ask at most ~5 questions in one batch.
Each must pass the materiality test: would the answer change what gets built or
how it is validated? Everything else becomes a recorded ## Assumptions entry in
the spec, using your recommended option, which the human may veto.
Preflight is mandatory and has no fallback: a GitHub remote exists, gh auth status passes, and gh is recent enough for native sub-issue and blocked-by
flags. Fail loudly if any precondition fails.
Before decomposition records the builder backend, canary it once with a trivial
task (list your tools; run git log -1 --oneline if a shell exists; reply
CANARY: SHELLS_OK or CANARY: DEGRADED). A backend whose canary lacks a
working shell is DEGRADED: substitute the fallback backend now, record the
substitution on the tracking issue, and resolve dispatch against the verified
backend.
Create the tracking issue at the end of intake. Its body carries the spec pointer, the assumptions digest, and approve-by-comment instructions.
Done when the spec has goal, non-goals, assumptions, validation strategy, domain terms, preflight evidence, open human decisions, and the tracking issue exists.
2. Approval
This is the one human step. The human reviews docs/spec/<project>.md, edits or
vetoes assumptions, and approves or rejects. Approval authorizes the whole plan;
afterward you reach the human only through the tracking-issue digest or a hard
stop.
Approval has two explicit forms, and nothing else counts:
- In-session: the human explicitly authorizes the run in this session. Record that authorization VERBATIM in the spec's approval record.
- Tracking-issue: the repo owner comments exactly
APPROVE, orAPPROVE with edits: <text>. A comment beginning exactlyREJECT <reason>rejects.
Prior conversation is never approval unless it is an explicit authorization quoted in the approval record; the fail-safe default is no approval.
If the human is absent, ask in-session and wait about 5 minutes (a short prompt,
one scheduled recheck), then rule with your best judgment, record the ruling and
reasoning on the tracking issue for after-the-fact veto, and continue. For
irreversible or destructive choices, silence resolves to the non-destructive
path; docs/STOP stays absolute.
On approval, cut lead/<run>. Every run commit lands there; main stays untouched
until the single closing PR.
Done when the approved spec and assumption rulings are committed and the approval record quotes the authorization, or a rejection is recorded.
3. Decompose
Compile the approved spec into GitHub issues:
- Add sub-issues under the tracking issue (the dashboard and digest target).
- Each sub-issue is one vertical slice with acceptance criteria, may-touch / must-not-touch file sets, a check path, a report path, and native parent + blocked-by edges.
- Checks per issue live in
docs/checks/and freeze in git before dispatch. - Dispatch preconditions, in order: freeze committed on the run branch; branch pushed; after each spawn, verify the worktree HEAD equals the freeze commit and one frozen file exists on disk. Builders still do first-action input verification as a last line of defense.
- Run one fresh critic pass over the whole decomposition (not per issue): it executes draft check commands, attacks criteria for contradictions and non-falsifiability, sweeps references to renamed/deleted files, and flags grep patterns that collide with repo realities.
- Concurrently schedulable issues must share nothing mutable: no files, migrations, lockfiles, generated artifacts, config, schemas, dev servers, or databases.
Design-quality rules to embed:
- Structural and behavioral changes are separate issues joined by a blocking edge; structural checks prove existing behavior stays green.
- Classify resistance before dispatch: a local wart gets a local patch; a recurring variation gets a structural issue that blocks the behavioral one; three failed fixes on the same point means stop and question the architecture.
- Design a new load-bearing interface twice (two or three cheap sketches), then record the chosen interface and why.
- An issue producing a surface another consumes carries an interface-contract block (names, parameters, return types, behavior); the consumer references it.
Done when the issue plan, frozen checks, freeze SHA, critic result, and dispatch-ready issues are recorded on the tracking issue and sub-issues.
4. Factory loop
Use loop.md for the detailed event loop.
- Dispatch every ready issue (up to five builder jobs) plus one detection-only
watchdog from
dispatch.md. Rule on the watchdog's typed exits. - Sleep between events. Wake only when a job reports DONE, BLOCKED, stalled, or killed; when the watchdog exits with anomaly evidence; or when the ready set needs recomputing.
- On a status-flavored question, run
skills/lead/status.sh(POSIX) orstatus.ps1(Windows), print its output verbatim in a fenced block, and answer in prose. Never hand-compose the tree. - On DONE, send a fresh, independent reviewer at the lead's tier to rerun the frozen checks and inspect intent. Merge only after a PASS verdict and clean touch-set evidence.
- On BLOCKED, answer on the issue with durable evidence and respawn a fresh builder carrying the answer in its spawn context.
- Record post-freeze rulings append-only in
docs/jobs/<issue-slug>-rulings.md, commit before reviewer dispatch, mirror to the issue thread; reviewers read the file, not thread prose. - On check failure, diagnose from the reviewer's evidence (not a direct diff), fix the input, re-decompose, or stop. Do not change tier because of a failure.
- On a merge conflict, treat it as a decomposition failure: kill the job and re-slice. Never hand-merge builder work.
- Add cross-model review for high-stakes slices (schema, API, auth, persistence, data loss, broad refactors) when a second CLI is available.
Done when every issue is closed, blocked behind a hard stop, or waiting on a human digest item.
5. Finish
Dispatch one docs job before the PR boundary: it consumes documentation debt,
updates product docs, and codifies reusable diagnoses into docs/notes/<slug>.md
(read back at the start of every future run). Then prepare the PR — its body says
Closes #<tracking-issue> and lists every shipped issue by number — and write
the closing digest on the tracking issue: shipped issues, skipped work, residual
risks, verification evidence.
Done when docs debt is consumed, the PR is ready, the digest is posted, and no issue is silently unresolved.
Hard stops
Stop and ask the human when any of these fire:
docs/STOPexists (kill switch), ordocs/PAUSEexists (dispatch nothing new).- An irreversible or destructive action is needed.
- Two consecutive KILL decisions happen in the factory.
- A blocker collides with a recorded assumption.
- Scope grows beyond the approved spec.
- Required GitHub /
ghpreflight cannot be satisfied.
Maintenance
Re-read this skill against each new model generation and delete what the models
now do unprompted. The invariants above are load-bearing; everything else is
prunable. No behavior ships without its evidence recorded in DESIGN.md.