A1 progress
Project progress snapshot + routing — scans .a1/ state (roadmap, phases, PLAN/STATUS/VERIFICATION) plus git/test/build state, presents a structured status overview, and recommends the next a1-skill to run. Read-only, no sub-agents, no edits. Works at any level: single phase, milestone, or full project. MUST trigger when the user says: "progress", "status", "what's the state" (alias: "was ist der stand"), "how far are we" (alias: "wie weit sind wir"), "a1-progress", "what's next", "what comes next" (alias: "was kommt als nächstes"), "where do we stand" (alias: "wo stehen wir"), "project status" (alias: "projekt status"), "show progress", "where are we", "what should I do next", "what's running right now" (alias: "was läuft gerade"), "what's blocked" (alias: "was ist blockiert"), "what's done" (alias: "was ist done"), "phase status", or any request to understand the current state of a project or get a next-step recommendation. Do NOT activate for: planning a new project (use a1-roadmap), planning a phase (use a1-plan), executing a phase (use a1-execute), or fixing a bug (use a1-fix). This skill only reports and routes — it never plans, executes, or modifies anything.From its SKILL.md
npx -y skills add N3URAL-A1/a1-specforge --skill a1-progressAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 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
5.6 KB, as published. Nobody here has run it
a1-progress — Project Status & Routing
Language: English-first; German trigger aliases supported.
No sub-agents needed. The orchestrator reads project state directly and presents it.
When to use
Activate when the user wants to understand where a project stands and what to do next.
Works at any level: single phase, full milestone, or overall project.
docs/product as primary source (FR-013)
When docs/product/ exists in the project, this skill reads it as the
primary source of roadmap/feature state — never re-derives it from
.a1/roadmap.md or hand-parses ROADMAP.md frontmatter directly:
node <repo>/_shared/a1-tools.cjs product status
node <repo>/_shared/a1-tools.cjs product markers
product status gives current milestone/feature statuses (read-only, no
mutation); product markers gives the "you are here" marker at project /
milestone / feature level. Fall back to the legacy .a1/roadmap.md-based
scan (below) only when the project has no docs/product/ directory — same
preference order as the roadmap gates in a1-new-feature/a1-execute.
On-touch migration (FR-017): this skill is read-only and never triggers
or offers migration itself. If a project is still on the legacy
.a1/roadmap.md format, just report status from that fallback scan — the
migration offer belongs to a1-new-feature/a1-execute/a1-roadmap (see
their "On-touch Migration Rule — never big-bang" sections), not here.
What it shows
Project: <name>
Branch: <current branch>
Phase: <name> [PLANNING | EXECUTING | VERIFYING | DONE | BLOCKED]
✓ Wave 1 — Foundation (3/3 tasks, committed)
✓ Wave 2 — Core Logic (4/4 tasks, committed)
→ Wave 3 — Integration (0/3 tasks, ready to execute)
Wave 4 — Tests (waiting for Wave 3)
Last commit: <message> (<time ago>)
Tests: <passing/total>
Build: <ok/failing>
→ NEXT ACTION: a1-execute (Wave 3 ready)
Routing decisions
| State | Routing |
|---|---|
No .a1/ exists | → a1-roadmap (start planning) |
.a1/phases/*/PLAN.md exists but no STATUS.md | → a1-execute |
| STATUS.md has incomplete waves | → a1-execute (resume) |
| All waves done, no VERIFICATION.md | → a1-execute (runs verifier) |
| VERIFICATION.md exists with FAIL/PARTIAL | → Show gaps, suggest targeted re-execution |
| VERIFICATION.md PASS | → DONE 🎉 (suggest git tag or deploy) |
| No PLAN.md but goal exists | → a1-plan |
In-flight features (parallel feature lifecycle)
Every run also surfaces in-flight parallel features — reserved code_scope
claims from other features currently being worked on (see the
roadmap-gate-parallel-features convention: _shared/a1-tools.cjs code-scope).
node _shared/a1-tools.cjs code-scope list --stale-days 7
For each code_scope reservation in the JSON output, display:
- id — the
byfield (feature id) - stage — lifecycle stage (
started|complete|review|verify|merge|origin-cleanup|done) - scope — declared
paths - stale —
true/false; whentrue, print the entry'shintfield verbatim (manual release only — never auto-release)
In-flight features:
003-payments-refactor stage: review scope: src/payments/
005-search-index stage: started scope: src/search/, docs/search.md ⚠ stale (14d)
→ release via a1-tools code-scope release --by 005-search-index
This list is directly cross-checkable against .a1/reservations.json (SC-004)
— every id/stage/scope/stale value in the rendered view must match the raw
JSON exactly; no summarization or reinterpretation.
If .a1/reservations.json does not exist or has zero code_scope entries,
show "No in-flight features" and skip the section — this is not an error.
Implementation
- Detect project root (look for
.a1/,docs/product/,CLAUDE.md,.git) - If
docs/product/exists: read roadmap/feature state vianode _shared/a1-tools.cjs product statusandproduct markers(primary source, see above). Otherwise fall back to scanning.a1/structure for phases and their state. - Read PLAN.md for wave structure
- Read STATUS.md for completed tasks
- Run git log for recent commits
- Run test suite briefly (
npm test -- --passWithNoTests 2>/dev/null | tail -5) - Read in-flight features via
node _shared/a1-tools.cjs code-scope list --stale-days 7(see above) - Present status and route