Commands
Upstream
Section titled “Upstream”/flow-next:strategy: create or updateSTRATEGY.md/flow-next:guide: recommend the smallest sufficient next workflow (stateless router)/flow-next:prospect: generate ranked candidate ideas/flow-next:chart: optional decision-map discovery for one oversized unclear idea before capture/flow-next:capture: synthesize conversation into a source-tagged spec/flow-next:interview: refine a spec through structured questions
Planning and work
Section titled “Planning and work”/flow-next:plan: break a spec into dependency-ordered tasks/flow-next:plan-review: cross-model review of plan/spec/flow-next:work: execute tasks with re-anchored worker agents
Review and PR
Section titled “Review and PR”/flow-next:impl-review: cross-model implementation review/flow-next:spec-completion-review: verify combined implementation against spec/flow-next:make-pr: render PR cognitive aid and open PR/flow-next:resolve-pr: resolve PR feedback threads
Maintenance
Section titled “Maintenance”/flow-next:audit: review.flow/memory/against current code/flow-next:memory-migrate: lift legacy memory into categorized schema/flow-next:prime: assess repo agent-readiness/flow-next:ralph-init: scaffold autonomous loop/flow-next:sync: plan-sync downstream task specs after drift/flow-next:tracker-sync: project a spec to a Linear, GitHub, GitLab, or Jira issue, two-way; semantic judgment in the skill, deterministic provider operations inflowctl tracker(Tracker Sync)
Spec ids in commands
Section titled “Spec ids in commands”Every command that takes a spec or task id accepts either id scheme. The default form is fn-NN (/flow-next:work fn-1, /flow-next:plan fn-1.2). A spec linked to a tracker is referenced by its tracker key instead — /flow-next:work wor-17, /flow-next:plan wor-17, tasks as wor-17.1, case-insensitive. See Spec & task ids.
Recommended paths
Section titled “Recommended paths”| Situation | Command path |
|---|---|
| Unsure which stage fits | /flow-next:guide |
| One large idea, still too unclear to capture | /flow-next:chart → briefing → /flow-next:capture → plan → work |
| Conversation already contains the requirement | /flow-next:capture → /flow-next:plan → /flow-next:work |
| Team needs product clarification | /flow-next:interview --scope=business |
| Team needs technical clarification | /flow-next:interview --scope=technical --strategy --docs |
| Plan needs adversarial review | /flow-next:plan-review |
| Implementation needs review before PR | /flow-next:impl-review |
| Spec is done and needs final verification | /flow-next:spec-completion-review |
| PR needs reviewer-focused body | /flow-next:make-pr |
| PR review comments need resolution | /flow-next:resolve-pr |
Most people should not start with flowctl. Slash commands are the product workflow. flowctl is the deterministic state layer those commands call. For the reasoning behind which path fits which shape of work — risk and unknowns, never size — see Pipeline Variations.
flowctl chart is the deterministic store for decision-map discovery. The skill owns grounding, frontier judgment, evidence routes, attended consent, and the terminal CHART_VERDICT. The CLI owns atomic create/claim/resolve/scope/briefing mutations. Full skill: Chart. Full CLI: CLI Reference.
| Subcommand | Purpose |
|---|---|
create --title --outcome [--initial-map-file] [--force-size --reason] | Allocate chart id; optional initial map (validated against chart.maxDecisions) |
show / list | Compact metadata and map body / list with progress |
add-decision --title --type [--attendance] [--blocked-by] [--depends-on] | Allocate next D-ID |
park-question / remove-question | Parked Open Questions (stable keys) |
wire-decision | Atomically replace blocked_by / depends_on |
frontier | Open, unblocked, unclaimed decisions (dependency-ordered) |
claim / release-claim [--break-stale --reason] | Claims; no silent expiry |
attach-asset --asset-file | Safe evidence/prototype asset while decision stays open |
resolve --answer-file [--sharpen-file] [--supersedes] [--keep-dependents] | Close with answer; optional sharpen/cascade. Sharpen notes_append appends a dated correction to ## Notes in the same transaction; unknown sharpen keys fail the resolve |
out-of-scope --reason | Close without ledger answer; write ## Boundaries |
abandon --reason / reopen --reason | Terminal stop or reopen (prior briefings/links staled) |
briefing --proposal-file [--force] | Immutable versioned briefing; --force is draft-only |
locate <selector> | Local ledger re-entry (chart/D-ID, stored tracker id/URL; no network) |
link-spec --briefing --spec --decisions | Record successful capture handoff in produced_specs[] |
JSON envelope: success {success:true, schema_version:1, command, result}; failure {success:false, schema_version:1, command, error:{class,code,message,details}} with class in not_found | conflict | invalid_state | invalid_graph | stale_claim | validation | io.
For tracker integrations and diagnostics, flowctl tracker exposes normalized wire verbs, lifecycle verbs, and the composed sync facade. Chart projection rides the same facade when tracker.charts is on - local mutations never roll back on remote failure. Every tracker command returns the same structured envelope and fixed error-class exit codes.
Command graph
Section titled “Command graph”flowchart LR
Strategy["strategy/prospect"] --> Guide{"clear enough?"}
Guide -->|yes| Capture["capture/interview"]
Guide -->|optional chart| Chart["chart → briefing"]
Chart --> Capture
Capture --> Plan["plan"]
Plan --> PlanReview["plan-review (optional)"]
PlanReview --> Work["work"]
Work --> Impl["impl-review (optional)"]
Impl --> Completion["spec-completion-review"]
Completion --> PR["make-pr"]
PR --> Resolve["resolve-pr"]
plan produces both the spec (with R-IDs) and the task breakdown. plan-review reviews both before any code is written. impl-review checks code quality on the resulting diff. spec-completion-review is the final gate that confirms every R-ID has evidence in the combined implementation.