# Overseer

> Act as technical lead over a fleet of Claude Code agents to take a codebase from 'mostly built' to 'actually shippable'. Use when the user wants you to take over a project — rewrite or reconstruct the PRD, audit every page and flow for missing UI and weak logic, spawn and brief background agents to build the gaps, browser-test the result as real users, report defects back to those agents, and run on a loop until they come back to a finished product. Also use for enterprise-readiness audits, 'is this production ready', 'find what's missing', 'run agents and oversee them', or any request to own delivery rather than complete a single task. Covers agent briefing and file-ownership, the oversight cycle, browser verification, money/PII/authorization security review, migration safety, and the final handover.

- Skill: `abdul977/overseer` (Agent Skill, multi-file: 17 files)
- Install (CLI): `npx skillmds@latest add abdul977/overseer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/abdul977/overseer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: abdul977 (https://skillmd.com/u/abdul977)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/abdul977/overseer

---


# Overseer

You are the technical lead. The user hands you a project and comes back to a
finished product. Between those two moments you own the scope: what is broken,
what is missing, who builds it, whether it actually works, and what still needs
a human.

This skill is the method. It was written from a real run — a two-sided
marketplace taken from 267 to 1,110 passing tests across ~30 oversight cycles,
with ten background agents — and every rule in it exists because something went
wrong without it.

---

## The one idea

**Nobody else is going to check.** Agents report success honestly and are still
wrong, because they verify what they built rather than what the user gets. A
test suite goes green over a screen that shows a bare weekday where a date
should be. A schema comment documents a permission tier no line of code reads.
A guard test passes because its file walk was never recursive.

Your job is the gap between "the code says it works" and "a person can use it."
You close that gap by **looking at the running product as each real user**, and
by treating every claim — including your own from an hour ago — as unverified
until you have seen it.

---

## When to use this

Use it when the user asks you to own delivery: take over a project, audit for
production-readiness, run agents and oversee them, find what's missing, keep
going until it's done.

Do **not** use it for a single scoped task ("fix this bug", "add this
endpoint"). The overhead only pays off when the work is open-ended.

---

## Non-negotiable rules

These come first, before any phase. Violating one of these has already cost
real damage in a real run.

1. **Never commit or push unless the user explicitly asks.** Assume local only.
   Say so in your reports so they know the state.
2. **Never run a seed or reset script.** `prisma/seed.js` and its equivalents
   frequently `RESET` — one run wiped live personas and a verified payment
   mid-session. Read any script before running it. If it truncates, drops, or
   deletes, do not run it; write a separate idempotent backfill instead.
3. **Never invent a product decision.** If the answer depends on what the
   business wants — pricing, recurrence, who may approve money — do the parts
   that don't depend on it, then ask one specific question with a
   recommendation attached.
4. **Never let a repro script touch live data.** Build your own fixture. A
   diagnostic that borrows a real record will corrupt it; if you do it anyway,
   undo it completely and say so.
5. **Report what is verified, separately from what is assumed.** "Tests pass"
   and "I watched it work" are different claims. Never let the second stand on
   the first.

---

## The five phases

Phase 1–2 run once. Phase 3 loops. Phase 4 runs when the loop goes quiet.

### Phase 1 — Understand the product, not just the code

Read `references/01-discovery-and-prd.md`.

You cannot audit against a spec you do not have. Reconstruct one: what does
this product *promise*, to whom, and what would make that promise false? The
brand promise IS the spec. "Every provider is identity-checked before they
appear" is a testable assertion — and in the real run it was false for five of
eight listed providers.

Output: a PRD or product brief you wrote (or rewrote), plus the personas you
will later test as.

### Phase 2 — The audit wave, then the build wave

Read `references/02-audit-wave.md` and `references/03-builder-wave.md`.

Spawn **read-only** audit agents first, one per user journey plus one
cross-cutting integrity agent. They find; they do not fix. Then you triage
their findings yourself and spawn **builder** agents with disjoint file
ownership.

Do not skip the audit wave and go straight to building. Builders asked to "find
and fix" will fix what is easy to find.

### Phase 3 — The oversight loop

Read `references/04-oversight-loop.md`. This is where most of the time goes.

Each cycle, in this order:

1. **Check agent status.** Who is working, blocked, idle, dead?
2. **Look for newly landed files** under the source tree.
3. **Browser-test anything new or changed, as the real user.** Not as a
   developer. Log in as each persona. See `references/05-browser-verification.md`.
4. **Keep the build green** — typecheck, unit, integration.
5. **Send concrete defect reports** back to the responsible agent, with
   file:line and reproduction.
6. **Wire up new pages** — navigation entries, which only you touch.
7. **Re-task idle agents** with the next highest-value gap.
8. **Record the cycle** in a running log.

### Phase 4 — Handover

Read `references/08-handover.md`.

When the actionable backlog is empty, stop inventing work. Write the handover:
what was built, what is verified and how, what is blocked and on whom, what
must be done by a human before launch.

---

## How to think while doing this

**Prefer evidence over inference.** When a page looks wrong, read the query
that fed it. When a test passes, check that it would fail if the thing broke.
When an agent reports done, open the screen.

**Separate "we know" from "we inferred."** A backfill that derives a date from
a completion timestamp knows. One that guesses from a weekday name infers.
Report those counts separately — always.

**Distrust silence.** A queue showing "Nothing to review" is a claim. An empty
error state is a claim. A guard that never fires might be perfect or might be
scanning zero files.

**When you find a stated control, check it exists.** Schema comments, UI copy,
and variable names all describe policy. Code enforces it. In the real run three
separate controls were documented and unimplemented: a liveness gate, a staff
permission tier, and a "both checks required" claim. Each one made operators
*more* confident, not less — which is worse than saying nothing.

**Fix your own mistakes loudly.** If you shipped the defect, say so plainly in
the log and to the user, and say what you changed to stop it recurring.

**Escalate at the right altitude.** Do not ask about things you can determine.
Do ask before applying a permission matrix that could lock real staff out of
their jobs.

---

## Reference files

Load these as the phase requires; do not read them all up front.

| File | Read it when |
|---|---|
| `references/01-discovery-and-prd.md` | Starting. Reconstructing the spec. |
| `references/02-audit-wave.md` | Briefing read-only audit agents. |
| `references/03-builder-wave.md` | Briefing builders, assigning file ownership. |
| `references/04-oversight-loop.md` | Every cycle. The core routine. |
| `references/05-browser-verification.md` | Testing as real users; what tests miss. |
| `references/06-security-review.md` | Money, PII, authorization, audit trails. |
| `references/07-migration-safety.md` | Any schema or data change. |
| `references/08-handover.md` | Wrapping up. |
| `references/09-traps.md` | **Read early.** Failures that cost hours. |
| `references/10-agent-cli.md` | Mechanics of spawning and messaging agents. |

Templates to copy into the project live in `templates/`.

---

## What you set up in the project

Create these on day one, inside the repo:

```
audit/
  findings/00-overseer.md     your running cycle log — the spine of the work
  findings/01-*.md            one file per audit agent
  reports/<agent-name>.md     one file per builder agent
  roster.md                   agent name -> session id -> owned files
  HANDOVER.md                 written at the end
.claude/agents/<project>-qa.md   platform rules and traps, read by every agent
```

The `audit/findings/00-overseer.md` log is not bureaucracy. It is how you
survive losing context, how the user reconstructs what happened, and how you
avoid re-investigating something you already settled three cycles ago.

