agentsclimarketplace

Feature resume

Skill telefrek/vallorcine/skills/feature-resume

Show where a feature is and what to run nextFrom its SKILL.md

Install
npx -y skills add telefrek/vallorcine --skill feature-resume

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 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

21.1 KB, ~5.1k tokens by cl100k_base, as published. Nobody here has run it

/feature-resume "<feature-slug>" [--status] [--share] [--list]

Tells you exactly where a feature is and what to run next. Use this after any interruption, crash, or context switch.

Flags:

  • (no flag) — navigation mode: current position, stage progress, next command
  • --status — session briefing mode: what was done, current blockers, next agenda
  • --share — condensed standup/team format (implies --status)
  • --list — list all active features with their current stage (ignores slug argument)

Works for both /feature and /feature-quick slugs.


Step 0 — List mode (--list)

If --list flag is set:

  1. List all directories under .feature/ (excluding _archive/ and project-config.md)
  2. For each directory, read status.md and extract: stage, substage, last updated timestamp. Also check for work_group field or double-dash convention (<group>--<wd>) to identify work-group-sourced features.
  3. If .work/ exists and any features are work-group-sourced, group them by work group. Display:
───────────────────────────────────────────────
📋 ACTIVE FEATURES
───────────────────────────────────────────────

Work group: <group-slug> (N/M complete)
  <slug>            <stage> · <substage>            <last updated>
  <slug>            <stage> · <substage>            <last updated>

Standalone:
  <slug>            <stage> · <substage>            <last updated>
───────────────────────────────────────────────

If no features are work-group-sourced, use the flat format (no grouping):

───────────────────────────────────────────────
📋 ACTIVE FEATURES
───────────────────────────────────────────────
  <slug>            <stage> · <substage>            <last updated>
───────────────────────────────────────────────

Sort by last updated (most recent first) within each group. If no features exist, display: No active features. Start one with /feature "<description>" or /feature-quick "<description>"

Stop. Do not continue to other steps.


Step 0a — Progress tracking

Use TodoWrite to show progress in the Claude Code UI (visible via Ctrl+T). Each TodoWrite call replaces the full list — always include all items.

After reading status.md (Step 1), build a pipeline-level checklist showing where the feature currently is. Mark stages based on status.md data.

If auto-invoke triggers (Step 3), add the invoked command as a new item and let the invoked command take over TodoWrite from there.

Example:

[
  {"id": "pipeline-scoping", "content": "Scoping", "status": "completed", "priority": "medium"},
  {"id": "pipeline-domains", "content": "Domain analysis", "status": "completed", "priority": "medium"},
  {"id": "pipeline-planning", "content": "Work planning", "status": "completed", "priority": "medium"},
  {"id": "pipeline-testing", "content": "Test writing", "status": "completed", "priority": "medium"},
  {"id": "pipeline-implementation", "content": "Implementation", "status": "in_progress", "priority": "high",
   "activeForm": "Resuming — 3/5 tests passing"},
  {"id": "pipeline-refactor", "content": "Refactor & review", "status": "pending", "priority": "medium"},
  {"id": "pipeline-pr", "content": "PR draft", "status": "pending", "priority": "medium"}
]

Step 1 — Read status

Check .feature/<slug>/status.md. If it does not exist:

No status file found for '<slug>'.

Options:
  - If this is a new feature: /feature "<slug description>"
  - If status.md was accidentally deleted: run each stage command — they will
    check for their prerequisite files and tell you what is missing.

Stop.

Reconcile against durable artifacts

.feature/<slug>/ is gitignored. When a sibling WD authors a spec that this WD's produces: declares, the manifest learns about it but this feature's status.md does not — the local cache lives only on whoever ran the spec-authoring session. Re-entering on a fresh machine then misreads "Spec Authoring pending" even though the spec is APPROVED and committed.

Run the reconciler before reading status.md so it reflects durable truth:

bash .claude/scripts/feature-state-reconcile.sh "<slug>"

The script:

  • Detects work-group features (status.md work_group: field or <group>--<wd> slug pattern). No-op for plain features.
  • Reads the WD's produces: list and looks up each spec's state in the manifest.
  • If every produced spec is APPROVED: flips the Spec Authoring row in status.md to complete with today's date, leaving the Estimated/Actual token columns alone.
  • Idempotent — a re-run on already-reconciled state writes nothing and prints "current".

If the script reported drift, surface that one-line summary above the "CURRENT POSITION" header so the user sees what was reconciled.


Step 1b — Mode dispatch

If --share flag: run --status mode, then condense output to share format (see Step 5b). If --status flag: skip to Step 5 — Session briefing. Otherwise: continue to Step 2 — Navigation mode.


Step 1c — Work group context

If this feature is work-group-sourced (status.md has work_group field, or slug matches <group>--<wd> pattern), show work group progress after the header in Step 2:

Work group: <group-slug> · <complete>/<total> work definitions complete

This is a single line of context — don't run the full resolver here, just count WD files and their statuses via work_fm on each WD file.


Step 2 — Display the full status report

───────────────────────────────────────────────
🔄 FEATURE RESUME · <slug>
───────────────────────────────────────────────

CURRENT POSITION
Stage:      <stage>
Substage:   <substage>
Last checkpoint: <last successful checkpoint>
Last updated:    <timestamp>
Automation: <autonomous | manual | not-set (will ask on next /feature-implement)>
<If execution_strategy is balanced or speed:>
EXECUTION: parallel (<balanced|speed>)

STAGE PROGRESS
  ✓ Scoping        complete    <date>
  ✓ Domains        complete    <date>
  ✓ Planning       complete    <date>
  ↻ Testing        in-progress  cycle 1 — tests written, verifying failures
  · Implementation not-started
  · Refactor       not-started

TOKEN USAGE (from Stage Completion table in status.md)
  Read the Stage Completion table and display estimated vs actual:

  | Stage          | Est.   | Actual         | Δ       |
  |----------------|--------|----------------|---------|
  | Scoping        | ~5K    | 4.2K in / 3K out | -16%  |
  | Domains        | ~6K    | 8.1K in / 2K out | +35%  |
  | Planning       | ~8K    | 7.5K in / 5K out | -6%   |
  | Testing        | ~5K    | —              | —       |
  | Implementation | —      | —              | —       |
  | Refactor       | —      | —              | —       |
  | **Total**      | **~24K** | **19.8K in / 10K out** | |

  The Δ column compares estimated tokens to actual input tokens.
  Calculate as: ((actual_input - estimate) / estimate × 100), rounded.
  Only show for completed stages with both values present.

  If token-log.md also exists, additionally run:
  `bash -c '[[ -f .claude/scripts/token-usage.sh ]] && source .claude/scripts/token-usage.sh && token_report ".feature/<slug>"'`
  and display below the comparison table.

DOMAIN STATUS (if domains stage was reached)
  ✓ <domain>   resolved    ADR: .decisions/<adr>/adr.md
  ✓ <domain>   resolved    KB: .kb/<topic>/<cat>/<subject>.md
  ✗ <domain>   pending     commissioned <date> — not yet complete

TDD CYCLES (if testing was reached)
  Cycle 1: tests <date> | passing <date or "—"> | refactor <date or "—"> | missing: <n>
  Cycle 2: ...

<If .decisions/.decision-candidates has status: new entries:>
  ℹ <n> decision candidates pending review (/decisions candidates)
───────────────────────────────────────────────

Step 2b — Work unit next-command resolution

If work_units: none in status.md: skip this section.

If work units are defined, determine the precise next command:

  1. Find the first unit that is in-progress → that unit needs its current stage continued (check substage in status.md)
  2. If no in-progress unit, find the first not-started unit → that unit needs /feature-test "<slug>" --unit WU-<n>
  3. If all units are complete → feature is ready for /feature-pr
  4. If a unit is blocked → its dependencies need to complete first

If execution_strategy is balanced or speed: read per-unit units/WU-N/status.md for each unit's current stage/substage and display with batch grouping:

Work units:
  Batch 1 (complete):
    ✓ WU-1: <name>
  Batch 2 (in-progress):
    ↻ WU-2: <name> — implementing (cycle 1)
    ↻ WU-3: <name> — testing (cycle 1)
  Batch 3 (waiting):
    ○ WU-4: <name> — blocked (waiting on WU-2, WU-3)

Otherwise (sequential/cost mode): display the work unit table with dependency info as part of the resume output:

Work units:
  ✓ WU-1: <name> — complete
  → WU-2: <name> — in-progress (implementing, cycle 1)   ← active
    └─ depends on: WU-1
  ○ WU-3: <name> — blocked (waiting on WU-2)
    └─ depends on: WU-1, WU-2

  Progress: <n complete> / <n total>

The "Next command" line must include the --unit flag (sequential mode) or use the coordinator (parallel mode):

<sequential:> Next: /feature-implement "<slug>" --unit WU-2
<parallel:>   Next: /feature-coordinate "<slug>"

Step 3 — Determine and display what to run next

Read the Pipeline mode field from status.md (default: full).

Full mode routing (pipeline_mode: full)

Stage + SubstageWhat to run next
scoping / interviewing/feature "<slug description>" — scoping in progress
scoping / confirming-brief/feature "<slug description>" — confirm the brief
scoping / complete/feature-domains "<slug>"
domains / in-progress (pending commissions)See pending domains below
domains / in-progress (all commissioned)/feature-domains "<slug>" — verify commissions
domains / complete/feature-plan "<slug>"
planning / in-progress/feature-plan "<slug>" — will check stub progress and re-launch subagent for missing work
planning / complete/feature-test "<slug>"
testing / in-progress/feature-test "<slug>" — will resume writing tests
testing / complete (cycle N)/feature-harden "<slug>" — adversarial test hardening
hardening / in-progress/feature-harden "<slug>" — will resume from current lens
hardening / complete/feature-implement "<slug>"
hardening / skipped-no-signals/feature-implement "<slug>"
implementation / in-progress/feature-implement "<slug>" — will resume from failing tests
implementation / escalated/feature-test "<slug>" — contract conflict needs Test Writer
implementation / complete (cycle N)/feature-refactor "<slug>"
refactor / in-progress/feature-refactor "<slug>" — will resume from checklist item
refactor / escalated-missing-tests/feature-test "<slug>" --add-missing
refactor / complete/feature-pr "<slug>"
pr / created (no retro)/feature-retro "<slug>" — retrospective while feature is fresh
pr / created (retro done)/feature-complete "<slug>" — when PR has merged

Specification mode routing (pipeline_mode: specification)

This mode stops after spec authoring. Used when a work definition produces specification artifacts rather than implementing behavior.

Stage + SubstageWhat to run next
scoping / interviewing/feature "<slug description>"
scoping / confirming-brief/feature "<slug description>"
scoping / complete/feature-domains "<slug>"
domains / completeSpec authoring (automatic via /feature-domains)
spec-authoring / completeDone — /work-start for implementation

Note: Planning, Testing, Hardening, Implementation, and Refactor stages are skipped in specification mode. After spec authoring completes, the specification phase is done. Do NOT proceed to /feature-retro or /feature-complete — those run after implementation via /work-start.

Implementation mode routing (pipeline_mode: implementation)

This mode starts at planning. Used when specification was done in a prior phase and artifacts already exist.

Stage + SubstageWhat to run next
planning / in-progress/feature-plan "<slug>"
planning / complete/feature-test "<slug>"
testing / in-progress/feature-test "<slug>"
testing / complete (cycle N)/feature-harden "<slug>"
hardening / in-progress/feature-harden "<slug>"
hardening / complete/feature-implement "<slug>"
hardening / skipped-no-signals/feature-implement "<slug>"
implementation / in-progress/feature-implement "<slug>"
implementation / escalated/feature-test "<slug>"
implementation / complete (cycle N)/feature-refactor "<slug>"
refactor / in-progress/feature-refactor "<slug>"
refactor / escalated-missing-tests/feature-test "<slug>" --add-missing
refactor / complete/feature-pr "<slug>"
pr / created (no retro)/feature-retro "<slug>"
pr / created (retro done)/feature-complete "<slug>"

Note: Scoping, Domains, and Spec Authoring stages are skipped in implementation mode. Planning reads specification artifacts directly.

If automation_mode: autonomous and the feature is mid-implementation or mid-refactor: note this in the Next Step display:

NOTE: This feature is in autonomous mode. Stages will chain automatically.
Type stop at any time during a run to pause.

Display the specific next command clearly:

NEXT STEP
  <command to run>
  <one sentence explaining why>

Auto-invoke rules (apply after displaying the NEXT STEP block):

  • If the next step resolves to /feature-domains (stage is scoping/complete): invoke /feature-domains "<slug>" as a sub-agent immediately. Domain analysis requires no external action to proceed.

  • If the next step resolves to /feature-plan (stage is domains/complete or planning/in-progress): invoke /feature-plan "<slug>" as a sub-agent immediately. Planning requires no external action to proceed.

  • If automation_mode: autonomous AND execution_strategy is balanced or speed AND work units remain incomplete: invoke /feature-coordinate "<slug>" as a sub-agent immediately.

  • If automation_mode: autonomous AND the next step resolves to /feature-implement or /feature-refactor (stages testing/complete, implementation/in-progress, or implementation/complete): invoke the appropriate command as a sub-agent immediately. A crash should not break the autonomous loop — resuming after a crash is equivalent to re-entering the same stage that was interrupted.

  • If the next step resolves to /feature-pr (stage is refactor/complete):

    Feature is ready for PR.
    

    Use AskUserQuestion with options:

    • "Draft PR"
    • "Stop"

    If "Draft PR": invoke /feature-pr "<slug>" as a sub-agent immediately. If "Stop": display Next: /feature-pr "<slug>" and stop.

  • If the next step resolves to /feature-retro (stage is pr/created and cycle-log.md has no retro-complete entry): prompt for retrospective.

    PR is open. A retrospective captures what worked and what didn't while
    the feature is fresh — it writes back to the KB and decisions store.
    

    Use AskUserQuestion with options:

    • "Run retrospective"
    • "Skip"

    If "Run retrospective": invoke /feature-retro "<slug>" as a sub-agent immediately. If "Skip": display When the PR merges: /feature-complete "<slug>" and stop.

    If cycle-log.md already has a retro-complete entry: skip the retro prompt and display When the PR merges: /feature-complete "<slug>" instead.

For pending domain commissions, list each:

PENDING DOMAINS — complete these before re-running /feature-domains:
  1. <domain> — Run: /research "<subject>"
  2. <domain> — Run: /architect "<problem statement>"

Step 4 — Show recent cycle-log entries (last 3)

If cycle-log.md exists, display the last three entries to provide context on what actually happened most recently. This is especially useful after a crash where the substage in status.md might be stale.

RECENT ACTIVITY (from cycle-log.md)
<last 3 entries>

Step 5 — Session briefing (--status mode)

Load additional context beyond status.md:

  1. .feature/<slug>/brief.md or status.md Description (quick tasks)
  2. .feature/<slug>/cycle-log.md — full history
  3. .feature/<slug>/work-plan.md if it exists — construct completion
  4. .feature/<slug>/test-plan.md if it exists — test coverage

Display:

───────────────────────────────────────────────
📊 FEATURE STATUS · <slug>
<YYYY-MM-DD> | <full pipeline / quick task>
───────────────────────────────────────────────

WHAT THIS IS
<2–3 sentences from brief summary.>

── Progress ───────────────────────────────────
  ✓ Scoping        <date>
  ✓ Domains        <date> — <n> domains resolved, <n> ADRs consulted
  ✓ Planning       <date> — <n> constructs
  ↻ Testing        in progress — cycle <n>
  · Implementation not started
  · Refactor       not started

<If work units:>
── Work Units ─────────────────────────────────
  Read the Work Units table from status.md. For each unit, read the
  Depends On column to build the dependency graph.

  Display units grouped by dependency layer (topological order):

  Layer 0 (no dependencies):
    ✓ WU-1: <name> — complete
    ✓ WU-4: <name> — complete

  Layer 1 (depends on layer 0):
    → WU-2: <name> — implementing (cycle 1, 4/7 tests passing)
      └─ depends on: WU-1

  Layer 2 (depends on layer 1):
    ○ WU-3: <name> — blocked (waiting on WU-2)
      └─ depends on: WU-1, WU-2

  If execution_strategy is balanced or speed, also show batch info:
    Batch 1 (complete): WU-1, WU-4
    Batch 2 (in-progress): WU-2
    Batch 3 (waiting): WU-3
    Critical path: <n> sequential batches

  Progress: <n complete> / <n total> units
  Est. remaining sessions: <n>

── What Was Done Last Session ─────────────────
<Synthesise the most recent 3–5 cycle-log entries into plain English.
Not a raw dump — a readable summary of what actually happened.
Example: "The Work Planner identified 4 constructs and wrote stubs.
The Test Writer wrote 12 tests covering the happy path and 3 error
conditions — all verified failing.">

── Current Blocker ────────────────────────────
<If active escalation in cycle-log.md: describe in one paragraph.
If no blocker: "None — ready to continue.">

── Next Session Agenda ────────────────────────
<3–5 concrete bullet points. Not "continue implementation" but
"implement TokenBucket.consume() and RateLimitMiddleware.handle() —
these are the two remaining failing tests.">
  1. <specific task>
  2. <specific task>
  3. ...

TO CONTINUE: <exact command to run>
───────────────────────────────────────────────

<If work-plan.md exists, append construct completion table:>

CONSTRUCTS
  ✓ <ConstructName>   <src/path>   tests passing
  ↻ <ConstructName>   <src/path>   <n> tests failing
  · <ConstructName>   <src/path>   not started

Determine construct status from: work-plan.md (planned), cycle-log.md implemented entries (completed), test-plan.md (test mapping). If results aren't in the log, mark "status unknown — run tests to confirm".


Step 5b — Share format (--share)

Condense the session briefing to standup/team format:

📋 <slug> — <one-line summary>
Stage: <stage> | Cycle: <n><  | Units: <n>/<total>>

Done: <bullet points of completed stages>
Next: <1–2 sentences on what's next>
Blocker: <one sentence or "none">

Full details: .feature/<slug>/

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.