nwave-slice-status
Use when the user asks where an nWave feature stands — "how many steps are in this slice", "which ones are done", "which one are we on", "what's next", "is…
Skill by pmvanev
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/pmvanev-nwave-slice-status
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/nwave-slice-status
What's inside
- Skill name
nwave-slice-status- Description
- Use when the user asks where an nWave feature stands — "how many steps are in this slice", "which ones are done", "which one are we on", "what's next", "is slice 03 next", "what was the point of slice 02". Renders a read-only step table from the feature's own artifacts and stops. Prefer over `/nw-continue`, which computes the same thing and then launches the next wave, and over `/nw-buddy`, which answers in prose — this produces a table and starts nothing. Also folds a feature-level state over every slice on request — "what state is this feature in", "which column does this card belong in" — and a story-level state over every feature in a story — "what state is this story in", "how far through the story are we" — for a caller placing the card on a board. For what a finished stage DECIDED rather than where it stands, use phil:nwave-wave-summary instead.
- License
- MIT
- Instructions
- 217 lines in SKILL.md · view on GitHub
Files (39)
- SKILL.md
- states.md · references/
- expected.md · self-test/01-status-table-happy-path/
- manifest.json · self-test/01-status-table-happy-path/
- expected.md · self-test/02-narrative-progress-not-step-table/
- manifest.json · self-test/02-narrative-progress-not-step-table/
- expected.md · self-test/03-unknown-is-not-not-started/
- manifest.json · self-test/03-unknown-is-not-not-started/
- expected.md · self-test/04-disagreeing-sources-named/
- manifest.json · self-test/04-disagreeing-sources-named/
- expected.md · self-test/05-read-only-never-launches/
- manifest.json · self-test/05-read-only-never-launches/
- expected.md · self-test/06-ambiguous-slice-asks/
- manifest.json · self-test/06-ambiguous-slice-asks/
- expected.md · self-test/07-no-step-record-degrades/
- manifest.json · self-test/07-no-step-record-degrades/
- expected.md · self-test/08-drift-recorded-done-no-commit/
- manifest.json · self-test/08-drift-recorded-done-no-commit/
- expected.md · self-test/09-feature-complete-no-resume/
- manifest.json · self-test/09-feature-complete-no-resume/
- expected.md · self-test/10-slices-only-roster-kept/
- manifest.json · self-test/10-slices-only-roster-kept/
- expected.md · self-test/11-inert-cross-check-skipped/
- manifest.json · self-test/11-inert-cross-check-skipped/
- expected.md · self-test/12-blocked-step-surfaced/
- manifest.json · self-test/12-blocked-step-surfaced/
- expected.md · self-test/13-feature-fold-not-current-slice/
- manifest.json · self-test/13-feature-fold-not-current-slice/
- expected.md · self-test/14-empty-roster-folds-unknown/
- manifest.json · self-test/14-empty-roster-folds-unknown/
- expected.md · self-test/15-roadmap-without-slices-still-folds/
- manifest.json · self-test/15-roadmap-without-slices-still-folds/
- expected.md · self-test/16-story-fold-mixed-states/
- manifest.json · self-test/16-story-fold-mixed-states/
- expected.md · self-test/17-story-empty-roster-conjunction/
- manifest.json · self-test/17-story-empty-roster-conjunction/
- expected.md · self-test/18-position-collision-named/
- manifest.json · self-test/18-position-collision-named/
- README.md · self-test/
SKILL.md (first lines)
# Slice Status Answer one question — **where does this feature stand right now?** — by reading the feature's own artifacts, rendering a table, and stopping. **Read-only.** `/nw-continue` computes similar data and then *launches the next wave*; this skill exists to look without starting anything. Print the resume command as text; never run it. Pass `git log` neither `--output`, which writes any path, nor `-p` or `--ext-diff`, which run a repo's configured diff filters. Three hard rules: 1. **Report what the artifacts say; run no test suite.** "Where are we?" must stay cheap. 2. **Write nothing** — no status updates, no progress-file edits, no commits. 3. **Detect the layout, and ask when detection is ambiguous.** Layouts differ per project; never guess one. --- ## Step 1 — Resolve the feature and the slice Resolve scope from the user's request — `$ARGUMENTS` when invoked as `/phil:nwave-slice-status`, otherwise the feature id or slice number named in the question itself. **Most invocations arrive as prose**, where `$ARGUMENTS` is empty but "is slice 03 next?" plainly names a slice. Treat scope as empty only when neither carries one. | Scope | What to do | |-------|-----------| | Empty | Use the feature directory containing the most recently modified file — not the newest directory mtime, which only changes when an entry is added or removed. Name the feature in the output so the user can correct it. | | `admin-field-triage` | That feature; all slices. | | `03` or `slice 03` | Slice 03 of the resolved feature. | | `admin-field-triage 03` | Both. | | `--feature-state` | Emit the feature-level state instead of the tables — see *The feature-level state, on request*, in `references/states.md`. Combines with a feature id; a slice number alongside it is a contradiction, because the fold always reads the whole roster. Say so and ask. | | `--story-state <slug>` | Emit the story-level state — see *The story-level state, on request*, in `references/states.md`. Takes a story slug, never a feature id. A slice number or a feature id alongside it is a contradiction, for the same reason: the fold reads the whole story. Say so and ask. | | both `--feature-state` and `--story-state` | Two different questions at two scopes. Do not guess which was meant, and do not emit both. Say so and ask. | | No `docs/feature/` at all | Say so and stop. Suggest `/nw-new`. Do not search elsewhere. | **Before emitting a feature-level or story-level state, read `references/states.md` whole, and decide the scope there.** That is, on `--feature-state` or `--story-state <slug>`, on a question that plainly asks what state a feature is in or which column its card belongs in, and on any question scoped to a story rather than a feature — what state it is in, or how far through it the work is. Each state is a fold over every slice or every member feature, in a fixed order, and the order is the content. A story question routed through the `Empty` row above answers for the wrong scope, confidently. **"Slice" means one of two things; detect which, and assume neither:** - **A roadmap phase.** Step ids are `<phase>-<step>`, so `03-07` is phase `03`, step `07`, and "slice 03" scopes to `phases[id="03"]`. Commit subjects in such repos read `DELIVER slice 03 <feature>`. - **A feature directory of its own**, named `slice-NN-*`. If both readings fit, or the number matches nothing, list what was found and ask which. A wrong scope produces a confidently wrong table. --- ## Step 2 — Read the artifacts Look for these, in this order. Not every project has all of them, and **no single file is guaranteed** — the layout varies by project and by nWave version. Establish the slice roster first, then its steps, then their status. | Artifact | Holds | Notes | |---|---|---| | `docs/feature/<id>/feature-delta.md` header | `Story: <slug> · position NN` — the feature's declaration that it belongs to a story | **Read only for `--story-state`.** One authority per fact: a feature declares its own membership and nothing declares it for that feature. Absent means the feature is in no story, which is the normal case. | | `docs/feature/<id>/slices/slice-NN-*.md` | A goal line plus IN/OUT scope prose, one file per slice | The most reliable slice roster, and the best source for the intent line. Often present when `roadmap.json` is not. | | `docs/feature/<id>/deliver/roadmap.json` | `phases[].steps[]` — `id`, `name`, `criteria[]`, sometimes `status` | Step structure within a slice, when it exists. | | `docs/feature/<id>/deliver/progress.md` | A narrative record, sometimes containing a step table | **Read carefully — see below.** | | `docs/feature/<id>/deliver/execution-log.json` | COMMIT/PASS records per step | **Read it with the Read tool.** A `des-hook:pre-bash` hook blocks any Bash command whose text contains `execution-log`, and routing around that hook is not acceptable. | | `.develop-progress.json` | Last failure point | Only when present. | **`progress.md` is not reliably a step table.** In practice it is prose with several unrelated tables in it — authored-artifact tables, self-test *fixture* tables (`Fixture | Expected | Result`), adversarial-review *findings* tables (`# | Severity | Finding | Fix`). Only treat a table as the step record when its header carries a `Step` or `Slice` column. When no such table exists, take status from the per-step or per-slice section headings and their prose — both shapes occur, sometimes in sibling features — and say in Notes that the record is narrative. Rendering a fixture table as a step table produces a confident, entirely wrong answer. **A slice may legitimately have one step.** Where the roadmap gives a phase a single step, or where there is no roadmap at all, report the slice as one row. Do not manufacture sub-steps to fill a table. **A slice file may declare itself out of scope.** Look for a `**Status:**` line, or a `DEFERRED` / `OUT of v<N>` / `RETIRED` / `SUBSUMED BY <slice>` marker in the heading, **or a `Retired <date>` / `Superseded by <slice>` line in the first few lines of the body**. **That marker overrides every other source.** Wound: a scan matching only `**Status:**` and `DEFERRED` missed an H1 `— SUBSUMED BY SLICE 07`, with the same retirement in body prose, and folded a shipped feature to `in progress` (2026-09-04). Report the slice `deferred` and never as `next` — telling the user to build something its own slice file says to skip is the most actively harmful output this skill can produce. A slice present in `slices/` but absent from `roadmap.json` is `deferred` when marked and `unknown` otherwise; never `next`, never `not started`. Precedence when sources disagree: **name the disagreement in the Notes column rather than silently picking a winner.** A step marked `done` in `progress.md` and absent from the execution log is exactly the fact the user needs to see. --- ## Step 3 — Decide each step's status Statuses are `done`, `current`, `next`, `not started`, `blocked`, `deferred`, and `unknown`. Take done-ness from the recorded evidence — the execution log, `progress.md`, or the per-step `status` field, whichever the project actually maintains. Then **cross-check with git** where it can actually discriminate: run `git log --oneline -- <the step's own paths>` and note a step recorded done with no commit touching its files. **`implementation_scope` is usually roadmap-level, not per-step, and `test_file` is often the same string for every step in the feature.** When neither resolves to step-distinct paths, skip the cross-check and say so in Notes. A log that returns the same commits for every row cannot detect drift, and reporting its output silently reads as corroboration it never provided. `current` is the first step that is not done. Everything after it is `next` (the immediate one) or `not started`. When `.develop-progress.json` records a failure at that step, mark it `blocked` instead and put the failure point in Notes — a step that died mid-run is the one fact a returning user most needs. **When every step is done**, omit `current` and `next` entirely and replace the resume line with `slice complete`, or `feature complete` when no slice remains. Offering to resume a finished feature is a wrong answer with a confident format.
From pmvanev/phil-claude-plugin, MIT.
More from pmvanev/phil-claude-plugin
- 0.570score
issue-board
pmvanev
Use when driving a GitLab or GitHub issue tracker or board from the command line with `glab` or `gh` — moving a card between board columns, reordering a…
SkillAFreshness: AClaude Code +9 - 0.570score
board-snapshot
pmvanev
Use when asked where an issue board stands right now rather than what is wrong with it — "summarise my board", "what's on the board", "where does the board…
SkillAFreshness: AClaude Code +9 - 0.570score
board-setup
pmvanev
Use when recording a repo's issue-board constants in its `CLAUDE.md` — the forge and repo, the project and Status field ids, every option id, the enabled…
SkillAFreshness: AClaude Code +9 - 0.566score
nwave-wave-summary
pmvanev
Use when asked what finished work decided, rather than where it stands or what you were doing — "what did DISCUSS decide", "what did that stage settle"…
SkillAFreshness: AClaude Code +9 - 0.566score
groom-issues
pmvanev
Skill bundle for the phil:groom-issues, phil:groom-fix, phil:groom-set and phil:groom-ask commands — reads a whole issue board in one list call per forge —…
SkillAFreshness: AClaude Code +9 - 0.566score
nwave-issue-board
pmvanev
Use for any GitLab or GitHub board or tracker work in an nWave repo — one holding `.nwave/` or `docs/feature/` — including putting a feature on the tracker as…
SkillAFreshness: AClaude Code +9 - 0.565score
edd
pmvanev
Skill bundle for phil:edd command — Expectation-Driven Development front-door.
SkillAFreshness: AClaude Code +9 - 0.565score
red-team-prose
pmvanev
Skill bundle for phil:red-team-prose command — reviews a doc, README, or release note for AI-generated tells, Elements of Style clarity, and fitness for its…
SkillAFreshness: AClaude Code +9 - 0.565score
adversarial-review
pmvanev
Skill bundle for phil:adversarial-review command — a general-purpose independent adversarial critic.
SkillAFreshness: AClaude Code +9 - 0.561score
ai-eos
pmvanev
Skill bundle for phil:ai-eos command — detects the stylistic tells that mark technical prose as AI-generated, with a density verdict and ranked findings.
SkillAFreshness: AClaude Code +9 - 0.561score
redesign-tests
pmvanev
Skill bundle for phil:redesign-tests command — human-approved, behaviour-changing test redesign loop with a coverage-equivalence claim per rewrite
SkillAFreshness: AClaude Code +9 - 0.561score
refactor-loop
pmvanev
Skill bundle for phil:refactor-loop command — gated closed-loop refactoring with a separate proposer and correctness critic, hard test gates, and a DAG ledger
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 10
- Last commit (this folder)
- Oct 14, 2026 (14 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/pmvanev/phil-claude-plugin
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from pmvanev
- 0.570score
board-snapshot
pmvanev
Use when asked where an issue board stands right now rather than what is wrong with it — "summarise my board", "what's on the board", "where does the board…
SkillAFreshness: AClaude Code +9 - 0.570score
issue-board
pmvanev
Use when driving a GitLab or GitHub issue tracker or board from the command line with `glab` or `gh` — moving a card between board columns, reordering a…
SkillAFreshness: AClaude Code +9 - 0.570score
board-setup
pmvanev
Use when recording a repo's issue-board constants in its `CLAUDE.md` — the forge and repo, the project and Status field ids, every option id, the enabled…
SkillAFreshness: AClaude Code +9 - 0.566score
groom-issues
pmvanev
Skill bundle for the phil:groom-issues, phil:groom-fix, phil:groom-set and phil:groom-ask commands — reads a whole issue board in one list call per forge —…
SkillAFreshness: AClaude Code +9 - 0.566score
nwave-issue-board
pmvanev
Use for any GitLab or GitHub board or tracker work in an nWave repo — one holding `.nwave/` or `docs/feature/` — including putting a feature on the tracker as…
SkillAFreshness: AClaude Code +9 - 0.566score
nwave-wave-summary
pmvanev
Use when asked what finished work decided, rather than where it stands or what you were doing — "what did DISCUSS decide", "what did that stage settle"…
SkillAFreshness: AClaude Code +9
Cite this page
nwave-slice-status skill. Agent Mart. https://agentmart.dev/skills/pmvanev-nwave-slice-status (last updated 2026-10-24)