Status
Skill IncommensurableHubris/fullstack-director/.agents/skills/status
The project's read-only 'where am I / what's next' oracle - scans the artifact chain, INTEGRITY-CHECKS the spine, counts the governance blockers 06-release gates on, DERIVES live state, and routes the NEXT COMMAND. READ-ONLY with respect to truth: never edits the spine or realizations; the only writes are two generated views, keeping docs/spec/** byte-identical. SEQUENTIAL - no subagents (a single derive-only read). Graded value: the DETERMINISTIC verdict (PASS, or FAIL naming the REQ-ID), pending/deferred amendment + [NEEDS CLARIFICATION] counts, and the routed next command. Use when the user says 'status', 'where are we', or 'what's next', or at session start. Reads docs/spec/** and the artifact chain + git state. Writes ONLY CLAUDE.md Current State + AGENTS.md. Do NOT plan/design/architect/build/review/ship/secure/refactor - it ROUTES to the owning skill. Do NOT edit the spine to fix findings - an integrity FAIL is REPORTED (repair via /00-discovery), never silently corrected.From its SKILL.md
npx -y skills add IncommensurableHubris/fullstack-director --skill statusAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
15.6 KB, ~3.9k tokens by cl100k_base, as published. Nobody here has run it
status · Project GPS — scan, integrity-check, derive, route
The framework's "where am I / what's next" oracle. It is a cross-cutting meta activity (named by function, not
an SDLC seat — prefix-less, like 08-refactor), and per the master plan it is built and run last: it scans
everything, so it is correct only once every other skill's shape is final. Give any project to /status and it
answers three questions from the files on disk — never from memory:
- Is the spine sound? — the integrity verdict (PASS, or FAIL naming the offending REQ-ID).
- What's blocking? — the
pending/deferredamendment + surviving[NEEDS CLARIFICATION]counts that06-releasegates on, surfaced early. - What do I run next? — the single exact next command, in the framework's vocabulary.
Its graded value is not "a nice summary" — a strong reader summarizes a repo too. It is the deterministic derived
state: the integrity verdict + the governance counts + the routed command, computed from the files and emitted
machine-readably into CLAUDE.md § Current State so the next seat — and 06's release gate, and the next /status
— can act on it, not re-derive it.
The seat's two defining properties
- Sequential — no subagents.
shared/subagent-protocol.md: subagents exist for context-isolated verification and a few bounded parallel reads.statusis neither — it is a single derive-only read. There is nothing to relax in the harness<SUBAGENT-STOP>(the04/06/08precedent, not the03/05/07one). Nothing here spawns. - Non-appender + non-mutator of truth — the honesty gate.
statusis absent from the amendment-protocol's appender list (00/02/03/08). It never edits the spine or a realization. It writes only generated views —CLAUDE.md § Current Stateand theAGENTS.mdemission — both pure regenerable projections (shared/spine-boundary.md: a generated view is safe to overwrite because its source lives elsewhere). Its correctness proxy is the inverse of every other skill: after it runs,docs/spec/**and every realization are byte-identical. This isstatus's analog of05's EXECUTED /08's behavior-preserved — truth is unchanged.
Operating principle — read the files, derive the state, route the command, touch no truth
- Derive from disk, never from memory. Every claim — the phase, the integrity verdict, the counts, the route —
traces to a file that exists (or is absent). If a file is unreadable, say
UNKNOWNand name it; never guess, never edit a source to make the picture tidy. - Report a break; never fix it. An integrity FAIL is surfaced with the offending ID and routed to repair
(
/00-discoveryowns the spine write-path).statusediting the spine to "fix" corruption would itself corrupt the declaration boundary — the one thing this seat must never do. - Route, don't do. The next command names the owning skill;
statusnever plans, designs, builds, reviews, ships, secures, or refactors. It is the GPS, not the driver. (A demonstrably wrong route — the router, not the project — is framework friction: FB entry via thefeedbackskill;shared/feedback-loop.md§ Activation.)
The flow — one mode, one sequential pass, no gate
/status takes no arguments (one repo = one spine). It runs one pass; because it mutates no truth, there is no
user-decision gate — it scans and reports. Craft lives in the references; load each as its step begins.
- SCAN. Enumerate the artifact chain against
shared/artifact-map.md— spec → planning (incl.docs/planning/patches/+ the backlog's## Patchesledger) → design → architecture →src→ quality → release → security → refactoring — recording present/absent per sprint. Read-only. Determine the current sprint (the highestsprint-NNwith any artifact), the earliest missing phase within it, and any patch in flight (an openplanned/in-progressPatches row). - INTEGRITY. Run the load-bearing checks → the PASS/FAIL verdict; run the advisory checks → the
WARN list. A FAIL names the specific offending entry. (
references/integrity-and-governance.md.) - GOVERN. Count
amendment-log.jsonrows by disposition (pending·deferred·approved·auto-applied) and the surviving[NEEDS CLARIFICATION]markers in the spine.pending+deferred+ markers are the release-blockers —06-releaseblocks on any of them; surface the counts tied to that fact. When a## Verify-liveblock is declared (WS6), also derive the verify-live coverage (verified / stale / missing) from the declared techs vs theirdocs/verification/<tech>.mdrecords —06G11 blocks on any missing/uncited (this is L7's data, re-read for the human line). No block declared ⇒ omit the line (the on-demand pattern). - DERIVE + ROUTE. Apply the priority-ordered router (
references/next-command.md): P0 no-spine → P1 integrity-halt → patch-in-flight → the patch's next seat → P2 governance-blocker override → P3 earliest-missing-phase in the current sprint → P4 advisories. First match wins. Produce the single next command. - REGENERATE VIEWS. Write the machine-readable derived state into
CLAUDE.md § Current State(the emission the grader and06read) and re-emitAGENTS.mdfrom the spine Constitution + summary. Both are generated views — never a source of truth. Then print the human report. (references/generated-views.md.)
The integrity verdict — load-bearing vs advisory (the spine write-path's rule #4)
The verdict is PASS / FAIL. Only load-bearing checks flip it — the spine's ID→file→block map is internally consistent and the amendment log is machine-readable (what every skill and the release gate depend on). Advisory findings WARN but never fail the verdict (they are realization drift, owned elsewhere). Full assertions in the reference; the split:
Load-bearing (FAIL the verdict, naming the offending entry): L1 every registry File resolves · L2 each registry
REQ's leaf contains its delimited block (### REQ-NNN: … <!-- /REQ-NNN -->) · L3 no orphan blocks (every block has a
registry row) · L4 no duplicate REQ-IDs · L5 amendment-log.json is valid JSON with an amendments array · L6 every
REQ eval-block dataset: path resolves (agent-system; vacuously PASS with no eval block) · L7 verify-live
records resolve (WS6: every ## Verify-live tech has a resolving, cited docs/verification/<tech>.md; no orphan
record; no uncited claim; vacuously PASS when nothing is declared). The load-bearing set mirrors the emitted
verify-spine.py FAIL checks — the two must never diverge on the integrity verdict.
Advisory (WARN only — realization drift, not spine corruption): A1 ID zero-padding/well-formedness · A2 ADR index
(adr/README.md) ↔ ADR-NNN.md files in sync (03's) · A3 backlog ledger ↔ registry exactly-once (01's) · A4 registry
Status (stated/derived) ↔ each block's <!-- source --> line (00's) · A5 an approved Tier-2's resolved_by
resolves to an existing ADR · A6 patch-lane pressure — ≥3 consecutive done patches since the last planned sprint,
or any escalated row → "this cadence is a sprint — run /01-planner plan-sprint N / consider /08-refactor assess" (advisory, never a block).
The next command — the priority-ordered router (first match wins)
The full table is references/next-command.md; the shape:
- P0 no
docs/spec/specification.md→/00-discovery(no spine — start the chain). - P1 integrity FAIL → halt normal routing; lead with the broken entry; repair routes to
/00-discovery. - Patch-in-flight (after P1, before P2) — an open
## Patchesrow routes to the patch's next seat:planned→/04-builder(the funnel) ·in-progress+ noqa-report-patch-NNN.md→ a fresh/05-reviewer· qaFIX/BLOCK→/04-builder(fix pass) · qaSHIP+ norelease-report-patch-NNN.md→/06-release·escalated→/01-planner plan-sprint N//00-discovery reflect(+ the A6 advisory). One patch in flight finishes before sprint routing resumes. - P2 otherwise ship-ready and a governance blocker exists → route to resolve it (
/00-discovery reflectfor apending/deferredamendment;/00-discoveryfor a surviving marker) instead of/06-release. - P3 the normal chain — route to the earliest missing phase in the current sprint (this one rule subsumes
forward progress and gap/backfill): no backlog →
/01-planner· no design →/02-designer sprint N· nosystem.md→/03-architect init· no specs →/03-architect sprint N· nosrc→/04-builder sprint N· no qa →/05-reviewer sprint N· qaFIX/BLOCK→/04-builder sprint N· qaSHIP, no release →/06-release sprint N· no security →/07-security sprint N· sprint complete →/01-planner plan-sprint N+1(or project complete →/00-discovery reflect). - P4 advisories (surfaced, primary only when a sprint is otherwise complete) — refactor signals →
/08-refactor assess; reflection overdue →/00-discovery reflect.
The machine-readable emission (what the grader and 06 read)
CLAUDE.md § Current State carries the derived state — derived status only (methodology is framework-level, never
restated here). Exact shape in templates/current-state.md; the graded fields:
## Current State
<!-- GENERATED by /status — derived status only. Do not hand-edit; re-run /status. -->
- **Spine integrity:** PASS <!-- or: FAIL — REQ-014: registry File `capabilities/x.md` does not resolve -->
- **Sprint:** 2 · **Phase:** quality (qa verdict: SHIP)
- **Amendments:** 0 pending · 0 deferred (2 approved · 1 auto-applied) <!-- 06-release blocks on any pending/deferred -->
- **Open [NEEDS CLARIFICATION]:** 0
- **Verify-live:** 2 verified · 0 stale · 0 missing <!-- WS6: ONLY when a `## Verify-live` block is declared; omit the whole line otherwise (the on-demand pattern) -->
- **Next command:** `/06-release sprint 2`
*Derived by /status from docs/spec/ + the artifact chain. Not a source of truth.*
Write-path (the read-only guarantee — follow exactly)
- Writes ONLY two generated views:
CLAUDE.md § Current State(derived status) andAGENTS.md(re-emitted from the spine Constitution + summary — full re-emit each run: idempotent in-sync, self-healing on drift, perreferences/generated-views.md). - Never writes
docs/spec/**(the spine) or any realization (docs/planning/**,docs/design/**,docs/architecture/**,src/**,docs/quality|release|security|refactoring/**). An integrity break is reported, not repaired. - Reference, never copy. The report and the emission cite
REQ-NNN/ADR-NNN; they never paste requirement prose (shared/spine-boundary.md). - The honesty invariant: after
/status,git diffshows onlyCLAUDE.mdandAGENTS.mdchanged — the spine and every realization are byte-identical. If you cannot honor that, you are doing somethingstatusmust not do.
Progress checklist (copy this and track as you go)
- SCAN — artifact chain enumerated vs
shared/artifact-map.md; current sprint + earliest-missing-phase determined (read-only) - INTEGRITY — load-bearing checks → PASS/FAIL (FAIL names the offending REQ-ID); advisory checks → WARN list
- GOVERN — amendment dispositions counted (
pending/deferred/approved/auto-applied) + surviving markers;pending+deferred+markers surfaced as the06-release blockers; verify-live coverage (verified/stale/missing) derived iff a## Verify-liveblock is declared (else the line is omitted) - DERIVE + ROUTE — the priority router applied (P0 → P1 halt → P2 blocker-override → P3 earliest-missing → P4 advisory); one exact next command produced
- REGENERATE VIEWS —
CLAUDE.md § Current Statewritten (the machine emission: integrity · sprint/phase · counts · next command);AGENTS.mdre-emitted from the spine (Constitution verbatim + recomputed summary) - Human report printed (Spine · Governance · Sprint History matrix · Integrity · Advisories · Next command)
- Honesty:
git diffshows onlyCLAUDE.md+AGENTS.mdchanged —docs/spec/**+ every realization byte-identical (the read-only proxy); no source edited to "fix" a finding
Reads / Writes
Reads: docs/spec/specification.md + capabilities/** + design-intent.md + architecture-constraints.md +
amendment-log.json · docs/planning/backlog.md (incl. the ## Patches ledger) + sprints/** + patches/** ·
docs/design/** · docs/architecture/system.md + adr/** + specs/** · src/** · docs/quality/** ·
docs/release/** · docs/security/** · docs/refactoring/** · .claude/rules/*-guardrails.md · git state. Writes (generated views ONLY): CLAUDE.md § Current State ·
AGENTS.md. Never docs/spec/** or any realization.
References (load when the step needs them)
references/next-command.md— the full P0–P4 decision table + the routing craft + the Sprint History render.references/integrity-and-governance.md— the load-bearing (L) + advisory (A) assertion tables + the governance counts (dispositions + surviving markers) and how they tie to06's block.references/generated-views.md— theCLAUDE.md § Current State+AGENTS.mdre-emission contracts (read-only to truth; the generated-view-vs-maintained-artifact rule).shared/artifact-map.md— the cross-skill indexstatusverifies reality against; repo-root-relative.shared/spec-amendment-protocol.md— the dispositions counted + the write-path rule #4 (/statusintegrity-checks the spine); repo-root-relative.shared/spine-boundary.md— generated view vs maintained artifact (why writing the two views is not mutating truth); repo-root-relative.shared/subagent-protocol.md— whystatusstays sequential (it is neither verification nor a parallel read); repo-root-relative.shared/live-source-verification.md— L7 (verify-live records) joins the load-bearing set (the parity contract); the conditional verify-live coverage line; repo-root-relative.
Next skill
status is informational — the report's Next command is what you run next. There is no downstream artifact and no
gate; re-run /status anytime to re-orient.
What ships with it: 44 files
123.9 KB alongside SKILL.md, 4 of them executable
evals/
- build_fixture.pyruns12.0 KB
- check_status.pyruns25.9 KB
- evals.json13.8 KB
- fixtures/base/docs/architecture/adr/ADR-001.md642 B
- fixtures/base/docs/architecture/adr/ADR-002.md529 B
- fixtures/base/docs/architecture/adr/README.md339 B
- fixtures/base/docs/architecture/specs/http-api.md624 B
- fixtures/base/docs/architecture/system.md1.1 KB
- fixtures/base/docs/design/approved/sprint-02/manifest.md565 B
- fixtures/base/docs/planning/backlog.md1.3 KB
- fixtures/base/docs/planning/sprints/sprint-01.md943 B
- fixtures/base/docs/planning/sprints/sprint-02.md1.2 KB
- fixtures/base/docs/quality/qa-report-sprint-02.md550 B
- fixtures/base/docs/README.md439 B
- fixtures/base/docs/spec/amendment-log.json659 B
- fixtures/base/docs/spec/architecture-constraints.md618 B
- fixtures/base/docs/spec/capabilities/api.md1.3 KB
- fixtures/base/docs/spec/capabilities/digest.md1.5 KB
- fixtures/base/docs/spec/capabilities/standups.md686 B
- fixtures/base/docs/spec/design-intent.md494 B
- fixtures/base/docs/spec/specification.md2.9 KB
- fixtures/base/src/digest.jsruns351 B
- fixtures/base/src/server.jsruns466 B
- fixtures/cases/backlog-gap/.gitkeep0 B
- fixtures/cases/blocked/docs/spec/amendment-log.json978 B
- fixtures/cases/blocked/docs/spec/architecture-constraints.md738 B
- fixtures/cases/corrupted/docs/spec/capabilities/api.md1.3 KB
- fixtures/cases/healthy/.gitkeep0 B
- fixtures/cases/patch-deadlock/docs/planning/backlog.md2.0 KB
- fixtures/cases/patch-deadlock/docs/planning/patches/patch-001.md964 B
- fixtures/cases/patch-deadlock/docs/planning/patches/patch-002.md954 B
- fixtures/cases/patch-deadlock/docs/planning/patches/patch-003.md958 B
- fixtures/cases/patch-deadlock/docs/security/security-audit-sprint-02.md850 B
- fixtures/cases/patch-in-flight/docs/planning/backlog.md1.7 KB
- fixtures/cases/patch-in-flight/docs/planning/patches/patch-001.md962 B
- fixtures/cases/patch-pressure/docs/planning/backlog.md1.7 KB
- fixtures/cases/patch-pressure/docs/planning/patches/patch-001.md964 B
- fixtures/cases/patch-pressure/docs/planning/patches/patch-002.md954 B
- fixtures/cases/patch-pressure/docs/planning/patches/patch-003.md958 B
- README.md11.8 KB
4 more files not listed here. See all 44 in the repository.