From vibeflow
Shows current VibeFlow project status including SDLC phase, pending tasks, quality metrics, and recent review results. Use when asking about project progress. Renamed from `status` in v2.20.0 to avoid colliding with Claude Code's built-in `/status` (usage/quota).
How this skill is triggered — by the user, by Claude, or both
Slash command
/vibeflow:flow-statusThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read vibeflow.config.json and .vibeflow/ directory to compile project status.
Read vibeflow.config.json and .vibeflow/ directory to compile project status.
If .vibeflow/state/phase-runner-progress.json exists, render a
"Phase-Runner Progress" block from it:
currentStep and status (running / approved / stalled / rejected /
advanced / blocked)attempt of maxConvergenceAttemptssteps[] (e.g. "4 of 6 steps") with each step's
name + status + detailStale-guard — do not show a phantom run. Skip the block entirely when the ledger is stale:
phase ≠ the live currentPhase (a leftover ledger from an
earlier phase), orstartedAt predates the last phase-transition timestamp (the
run finished and the phase already advanced past it).A ledger whose status is terminal (advanced / approved /
rejected) for the current phase may still be shown as the last
completed run, clearly labelled "last run" rather than "in progress".
Run the read-only audit reader and render the autonomous-loop state from its JSON:
bash "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/loop-audit.sh"
It consolidates the scattered telemetry (history.jsonl auto-apply
outcomes, auto-apply/cooldown-* markers, auto-apply/watch.json,
consensus-learning-report.md, learning-apply-decisions.md). Render:
applied / held / reverted over the
loopAudit.window recent rows, with a per-key revert rate. Flag
any key whose revertRate ≥ 0.5 as "candidate for removal from
autoApply.keys" (the same signal the S24-B auto-tune-ineffective
detector raises).autoApply.cooldowns) — won't re-tune this sprint.autoApply.armedWatch) — a tune awaiting next-round
judgement (its keys + phase + primaryArtifact), if any.learning.findingCount findings; remind the
operator to read it via
/vibeflow:learning-loop-engine --mode consensus-history.recentDecisions from
learning-apply.Idle collapse. When the reader returns all zeros / empties (no
applied, no cooldowns, no armedWatch, reportExists:false), render
a single line — Autonomous loop: idle (autoApply off / no activity) —
so projects that don't use auto-apply see no noise.
Run the read-only reader and render a one-liner only when there's debt:
bash "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/ui-verification-debt.sh" .
"never" → ⚠ Web UI never render-verified — run /vibeflow:frontend-render-check"stale" → ⚠ UI changed since last render-verification — re-run /vibeflow:frontend-render-check"verified" / "no-ui" → render nothing (no web UI, or it's verified).This catches a UI built in an earlier cycle that shipped coverage-tested but was never rendered or compared to its design — so it can't stay buried.
Only when streams.enabled is on, run the read-only reader and render a
one-liner naming how many parallel work-streams have local state:
bash "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/streams-audit.sh"
streamsEnabled: false → render nothing (single-stream project).Work-streams: <N> active (current: <currentStreamId>) — /vibeflow:streams
and, if conflicts[] is non-empty, append ⚠ <K> shared-branch conflict(s).This is the quick glance; /vibeflow:streams is the full per-stream dashboard.
If the optional design-guard plugin is in use, its design-auditor
verdicts are recorded into the same history.jsonl as a design-guard-audit
row. Read the latest one and render surface-only (nothing when absent — a
project without design-guard is unaffected):
jq -c 'select(.type=="design-guard-audit")' .vibeflow/state/consensus/history.jsonl 2>/dev/null | tail -1
verdict == "FIXES_REQUIRED" → ⚠ design-guard: FIXES REQUIRED (<blockers> blocker(s)) — run the design-auditor agent on the changed UI.verdict == "SHIPPABLE" → one quiet line UI quality: SHIPPABLE (design-guard, <age>).design-guard is a separate plugin; this section only reads a file it may have written, so VibeFlow never depends on it being installed.
Display a concise status summary directly in the conversation. Do not create a file.
Operator choice (mobile-friendly — see docs/OPERATOR-CHOICES.md). When the
status surfaces a clear next action, present it with the AskUserQuestion
tool as 2–4 tappable options instead of (or right after) a bare "Next step:" line,
so the operator can act with one tap from a phone. Lead with the recommended
option; always include a "Stay / do nothing" option; the built-in "Other"
lets them type. Derive the options from what the report found, e.g.:
<next phase> (/vibeflow:advance) · Stay.never/stale) → Run
/vibeflow:frontend-render-check · Stay./vibeflow:streams · Stay.Put the condensed "why" (the relevant finding) in each option's description so the operator decides without scrolling the full report. When there is no actionable next step, omit the card (don't invent one). This is a read-only surfacing — it never changes state; picking an option just launches the named command.
npx claudepluginhub mytechsonamy/vibeflow --plugin design-guardGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.