name: oversight description: User-in-the-loop — brief, questionnaire, plan adjustments. The only interactive skill. Pause autonomy. Brief the user on current state. Ask targeted questions. Adjust the plan. Push. Use when the user says "oversight", "let's review the plan", "what's the project status", or wants to make plan adjustments interactively.
Oversight
The user-in-the-loop command. Pause autonomy. Brief the user on current state. Ask targeted questions. Adjust the plan. Push.
Every other skill is autonomous; this one is the exception.
1. Purpose
When the user invokes oversight:
- Synthesis. Read state files, recent commits, deploy state. ~25-line brief.
- Questionnaire. Based on observed flags, ask 1–4 targeted questions directly in chat (present options as numbered lists so the user can reply quickly).
- Adjustment. Apply answers as edits to plan files. One commit.
After this, user re-invokes march (or loops march) to resume.
2. Invocation
The user may provide a bias keyword:
- (no argument) — full audit + general questionnaire
phase— bias toward phase progress / scopecontent— bias toward iterate findings + qualitydeploy— bias toward deploy gate statereset— bias toward scope reduction
3. What oversight reads
In parallel where independent:
git log --oneline -20— recent shipping velocity.git status --short— uncommitted changes.npm run deploy:check— current deploy state (package publishable?).plan/steps/01_build_plan.mdStatus block — pending phases.plan/AUDIT.md— open iterate findings.plan/CRITIQUE.md— critique pending.plan/PHASE_CANDIDATES.md— candidates awaiting promotion.- Last 3 phase briefs — current vs. recent commits.
4. The briefing (~25 lines max)
oversight — <ISO date>
shipping
- last commit: <sha> "<subject>" (<relative time>)
- phases shipped since last oversight: <list with hashes>
- velocity: ~<N> commits/day over last 7 days
state
- pending phases: <count>; next is Phase <N> (<topic>)
- open audit findings: <count>; top score <X>: "<one-liner>"
- pending critique findings: <count>; pass count <N>; last pass <when>
- pending phase candidates: <count>; top score <X>: "<one-liner>"
- working tree: <clean | N modified | N untracked>
- deploy gate: <green / red / not checked>
flags
- <unusual patterns: stuck phase, repeated fix commits,
Knowledge-Gaps items ready to spec, ESLint still broken, etc.>
5. The questionnaire
Generate 1–4 questions and present them in chat. Rules:
- Computed from observed flags, not pre-canned.
- Each question targets a specific observable.
- Present as numbered options with a recommended choice marked.
- Last question is free-form if there's room.
Sample question shapes for this project:
Stuck phase
Phase
<N>has been pending across<K>ticks; last<L>commits werefix:against it. What now?
- (recommended) Refresh the brief.
- Abandon — mark [skipped], move on.
- Continue.
ESLint still broken
Phase 13 (ESLint fix) hasn't shipped. Promote it above current pending phases?
- (recommended) Promote before Phase
<N+1>.- Leave it in current order.
- Skip permanently.
Audit overload
plan/AUDIT.mdhas<N>findings; top 3 are<category>. Bias iterate?
- (recommended) Yes — focus
<category>.- No — keep balanced.
Phase candidates pending
plan/PHASE_CANDIDATES.mdhas<N>candidates. Top: "<title>" (score<X>).
- (recommended) Promote top candidate.
- Review all — show me the list.
- Defer.
Free-form
Anything to adjust before handing back to /march?
6. The procedure
Step 0 — Sync
git pull --ff-only
Step 1 — Audit (§3)
Step 2 — Brief (§4) — print it, no questions yet
Step 3 — Build questionnaire (§5)
Step 4 — Ask
Present the questionnaire directly in chat. Wait for user replies before proceeding.
Step 5 — Apply
- "Refresh brief" → run the plan-a-phase procedure inline.
- "Abandon phase" → flip
[ ]to[skipped]in01_build_plan.mdwith comment(skipped via oversight <date> — <reason>). - "Bias toward category X" → write to top of
plan/AUDIT.md:> Bias: <category> (set via oversight <date>). - "Promote candidate" → move from
## Pendingto## PromotedinPHASE_CANDIDATES.md. Append new phase row in01_build_plan.md. - "Reject candidate" → move to
## Rejectedwith one-line reason. - "Other" free-form → interpret conservatively. If clear plan edit,
apply. If ambiguous, write
[needs-user-call]to AUDIT.md.
Step 6 — Commit + push
git add <modified plan files>
git commit -m "oversight: <one-line summary>
- <bullet per adjustment>
User answers:
- Q: <question> → <answer>"
git push origin main
If no adjustments: no empty commit. Print "no adjustments — handing back to the loop."
Step 7 — Deploy gate
npm run deploy:check
Skip if no commit was made.
Step 8 — Done
oversight complete. <N> adjustments applied.
- ready to resume: march (or loop march)
- next pending phase: Phase <N> (<topic>)
7. Hard rules
- Never edit code. Plan adjustments only.
- No destructive git ops without explicit user confirmation.
- Single commit for the adjustment set.
- No emojis. No
Co-Authored-By:.