skills/flow-skills/SKILL.md
Display the FLOW skill catalog grouped by user role. Maintainer and Private buckets render only when invoked inside the FLOW plugin repo.
npx skillsauth add benkruger/flow flow-skillsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/flow:flow-skills
Display-only skill. Reads no state. Reports the FLOW skill catalog segmented by user role. The Maintainer and Private sections render only when the current repo is the FLOW plugin source.
Read-only and concurrent-safe. The skill touches no state files, acquires no locks, and reads only the local git remote URL. Multiple invocations on the same machine or across machines do not interact.
At the very start, output the following banner in your response (not via Bash) inside a fenced code block:
```text
──────────────────────────────────────────────────
FLOW v2.6.1 — flow:flow-skills — STARTING
──────────────────────────────────────────────────
```
This step decides whether the session is running inside the FLOW plugin source repository itself. The decision gates two extra sections (Maintainer and Private) that surface release tooling and phase-internal helpers — content that only applies to FLOW plugin development. Default-deny: the FLOW-only sections render only when the repo identity match succeeds; every other case (including a remote URL that is missing, malformed, or names a fork) is treated as not the FLOW plugin source.
Run a single Bash call to read the configured remote URL:
git remote get-url origin
If the command exits non-zero, treat the repo as not the FLOW plugin source and proceed to Step 2 with the FLOW-only sections suppressed.
If the command exits zero, normalize stdout: strip trailing
whitespace and an optional trailing .git suffix. The repo is the
FLOW plugin source ONLY when the normalized URL ends with the
exact owner/repo path component benkruger/flow — equivalently,
when the URL matches one of these literal forms (plus optional
.git):
[email protected]:benkruger/flowhttps://github.com/benkruger/flowssh://[email protected]/benkruger/flowA URL like [email protected]:benkruger/flow-fork, [email protected]:benkruger/flow-experiments, or https://github.com/anyone/benkruger-flow-clone MUST be treated as not the FLOW plugin source — the leading owner/repo segment must equal benkruger/flow, not merely contain it. A bare substring match would over-include forks and similarly-named repos.
This step prints the skill catalog directly in the response so users can read it without leaving the conversation. The catalog is grouped by user role — Planning, Work, Health, Admin — so the most relevant skills surface first for the reader's context. The two FLOW-repo-only sections appear at the bottom because they are maintainer-internal: surfacing them in target projects would name private skills the user cannot invoke.
Output the skill catalog as text in your response (not via Bash). Always render Planning, Work, Health, and Admin. Render Maintainer and Private only when Step 1 identified this repo as the FLOW plugin source.
| Skill | Purpose |
|-------|---------|
| /flow:flow-issues | Group open issues by label into four sections (Blocked, Other, Vanilla, Decomposed) with mechanical sort and a copy-pasteable command per row |
| /flow:flow-triage-issue | PM-lens triage of a single open issue — verdict in {close, decompose} |
| /flow:flow-explore | Open a problem-statement conversation (PM voice) — discussion-mode by default, files a vanilla ## What / ## Why / ## Acceptance Criteria issue on user signal |
| /flow:flow-plan | Decompose a vanilla problem-statement issue into a decomposed issue ready for the start phase (or one child decomposed issue per disconnected DAG component when multi-track applies per AC#4). Tech Lead voice, mandatory decompose:decompose pass, files with --label decomposed and links cross-component dependencies via bin/flow link-blocked-by |
| /flow:flow-orchestrate | Process decomposed issues sequentially overnight via flow-start |
| Skill | Purpose |
|-------|---------|
| /flow:flow-start | Begin a new feature — worktree, PR, state file, plan extraction from issue body sentinels |
| /flow:flow-config | Display the per-skill autonomy configuration from .flow.json |
| /flow:flow-skills | Display this skill catalog grouped by user role |
| Skill | Purpose |
|-------|---------|
| /flow:flow-doc-sync | Full codebase documentation accuracy review — reports drift between code and docs |
| /flow:flow-hygiene | Audit instruction corpus health — CLAUDE.md, rules, and memory for staleness, duplication, and contradictions |
| Skill | Purpose |
|-------|---------|
| /flow:flow-prime | One-time project setup — configure permissions, install bin/* stubs, write the version marker |
| /flow:flow-abort | Abort the current feature — close the PR, delete the remote branch, remove the worktree, delete the state file |
| /flow:flow-continue | Resume a halted autonomous flow — clears _halt_pending so the next assistant turn proceeds |
| /flow:flow-reset | Wipe .flow-states/ on this machine — PRs, worktrees, and branches are NOT touched (those need a per-flow abort) |
The Admin skills above are user-only: the model never invokes them on your behalf. Type the slash command directly. Inside the FLOW plugin source, the Maintainer skills below are also user-only.
The remaining sections render only when this repo is the FLOW plugin source. If Step 1 identified the repo otherwise, stop here and skip to the COMPLETE banner.
| Skill | Purpose |
|-------|---------|
| /flow-qa | File a pre-decomposed QA issue against the FLOW plugin repo for end-to-end lifecycle regression testing |
| /flow-release | Bump version in plugin.json and marketplace.json, commit, tag, push, and create a GitHub Release |
| /flow-changelog-audit | Audit the Claude Code CHANGELOG.md for plugin-relevant changes; categorize as Adopt/Remove/Adapt and file issues |
| Skill | Invoked by | Purpose |
|-------|------------|---------|
| /flow:flow-code | Phase skill auto-chained from flow-start | Phase 2 — execute plan tasks one at a time with TDD |
| /flow:flow-review | Phase skill auto-chained from flow-code | Phase 3 — six tenants assessed by four cognitively isolated agents |
| /flow:flow-learn | Phase skill auto-chained from flow-review | Phase 4 — capture learnings, route to permanent homes |
| /flow:flow-complete | Phase skill auto-chained from flow-learn | Phase 5 — merge the PR, remove the worktree, delete the state file |
| /flow:flow-commit | Phase skill at every commit checkpoint | Review the full diff, then stage, commit, and push through finalize-commit |
| /flow:flow-note | Claude on user correction | Capture a correction or learning to the FLOW state file |
The Private skills are invoked by other FLOW skills or hooks, not by the user directly.
Output the following banner in your response (not via Bash) inside a fenced code block:
```text
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ FLOW v2.6.1 — flow:flow-skills — COMPLETE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
cd <path> && git — use git -C <path> for git commands in other directoriesbin/flow — it detects the project root internallydata-ai
Clear the autonomous-flow halt set when the user spoke mid-flow. Invokes `bin/flow clear-halt` so the next assistant turn resumes execution. User-only: the model cannot invoke this skill.
data-ai
Open a problem-statement conversation. Stays in discussion mode with PM as default voice; on user signal, files a vanilla What/Why/Acceptance Criteria issue against the current repo. Usage: /flow:flow-explore <topic>
documentation
Phase 3: Review — six tenants assessed by four cognitively isolated agents (reviewer, pre-mortem, adversarial, documentation) launched in parallel. Parent session gathers context, triages findings, and fixes.
development
Triage a single open GitHub issue from a PM lens. Applies a 'Triage In-Progress' label during triage; reads code, checks for already-shipped work, returns a verdict in {close, decompose} with confidence and a flip-condition. Renders and stops — no other side effects.