원클릭으로
flow-orchestrate
Process decomposed issues sequentially overnight via flow-start, tracking outcomes and generating a morning report.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Process decomposed issues sequentially overnight via flow-start, tracking outcomes and generating a morning report.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Release a new version of the FLOW plugin. Bumps version in plugin.json and marketplace.json, commits, tags, pushes, and creates a GitHub Release.
Abort the current FLOW feature. Closes the PR, deletes the remote branch, removes the worktree, and deletes the state file. Available from any phase. The confirmation prompt is governed by the skills.flow-abort config in the state file.
Phase 2: Code — execute plan tasks one at a time with TDD. Review diff before each commit. bin/flow ci must pass before moving to the next task. Project architecture standards enforced.
Review the full diff, then git add + commit + push. Use at every commit checkpoint in the FLOW workflow.
Phase 4: Complete — merge the PR, remove the worktree, and delete the state file. Final phase.
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.
| name | flow-orchestrate |
| description | Process decomposed issues sequentially overnight via flow-start, tracking outcomes and generating a morning report. |
Fetch all open issues labeled "Decomposed", filter out issues already in progress, and process each sequentially via flow-start. Each invocation runs the full Start → Code → Review → Learn → Complete lifecycle. Autonomy comes from the project's .flow.json skills config — for unattended overnight runs, configure it with the "Fully autonomous" preset from /flow-prime. After all issues are processed, generate a summary report.
/flow:flow-orchestrate
/flow:flow-orchestrate --continue-step
/flow:flow-orchestrate — start a new orchestration run/flow:flow-orchestrate --continue-step — resume after processing an issue (self-invocation)Only one orchestration runs per machine at a time. The state file
(.flow-states/orchestrate.json) acts as a lock — if it exists without
completed_at, another orchestration is in progress.
Individual features within the orchestration use the standard FLOW concurrency model: branch-scoped worktrees and state files, GitHub for shared state coordination.
If --continue-step was passed, skip the Announce banner and Steps 1-2.
Proceed directly to the Resume Check section.
At the very start, output the following banner in your response (not via Bash) inside a fenced code block:
```text
──────────────────────────────────────────────────
FLOW v2.7.0 — flow:flow-orchestrate — STARTING
──────────────────────────────────────────────────
```
gh issue list --state open --label Decomposed --json number,title,labels,body,url --limit 100
Parse the JSON output. Filter out any issues that have the "Flow In-Progress" label — these are already being worked by another FLOW feature.
If no issues remain after filtering, output:
```text
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ FLOW v2.7.0 — flow:flow-orchestrate — COMPLETE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
No decomposed issues to process.
```
Stop.
Build the queue from the filtered issues. Sort by issue number ascending.
.flow-states/orchestrate-queue.json is a machine-level singleton that
may pre-exist from a prior orchestration; route the write through
bin/flow write-rule so Claude Code's Write-tool preflight cannot fire
(see .claude/rules/file-tool-preflights.md). Each item must have
issue_number (integer) and title (string) fields.
Write the queue JSON to .flow-states/orchestrate-queue-content.json
using the Write tool, then apply the write:
${CLAUDE_PLUGIN_ROOT}/bin/flow write-rule --path <project_root>/.flow-states/orchestrate-queue.json --content-file <project_root>/.flow-states/orchestrate-queue-content.json
${CLAUDE_PLUGIN_ROOT}/bin/flow orchestrate-state --create --queue-file .flow-states/orchestrate-queue.json --state-dir .flow-states
If the response indicates an orchestration is already in progress, stop and report.
Log the queue:
${CLAUDE_PLUGIN_ROOT}/bin/flow log orchestrate "[Orchestrate] Started — N issues queued"
Display the queue as a rich markdown table. Every queued issue is
Decomposed (filtered server-side), so categorization, impact, and
priority do not apply. Sort by issue number descending (newest
first), matching the flow-issues Decomposed-section sort order.
Output the table inline with columns: Order, Issue #, Title.
The Issue # column uses a markdown link [#N](issue_url).
Escape |, \, \n, \r in the Title cell before rendering so a
pipe-containing title cannot break the table for downstream rows.
Read the orchestration state to find the next pending issue:
${CLAUDE_PLUGIN_ROOT}/bin/flow orchestrate-state --next --state-file .flow-states/orchestrate.json
"status": "done" — all issues processed. Skip to Done."status": "ok" — process this issue. Continue to Step 3."status": "error" — report and stop.The --next response includes index, issue_number, and title.
Mark issue as started:
${CLAUDE_PLUGIN_ROOT}/bin/flow orchestrate-state --start-issue <index> --state-file .flow-states/orchestrate.json
Log it:
${CLAUDE_PLUGIN_ROOT}/bin/flow log orchestrate "[Orchestrate] Starting #<issue_number> — <title>"
Invoke flow-start:
Invoke flow:flow-start #<issue_number> using the Skill tool.
This runs the full lifecycle: Start, Plan, Code, Review, Learn, Complete.
Each phase resolves its autonomy from the .flow.json skills config.
Detect outcome:
After flow-start returns, determine the outcome by checking GitHub state.
Check the PR state for the branch. Use gh pr view with the branch name:
gh pr view <branch> --json number,state,mergedAt,url
Where <branch> is derived from the issue title (the same branch name flow-start would create).
Determine outcome:
mergedAt is not null → completed.flow-states/<branch>/state.json exists using the Glob tool. If it does, the feature is stuck — record as failed with reason "Feature did not complete"Record outcome:
${CLAUDE_PLUGIN_ROOT}/bin/flow orchestrate-state --record-outcome <index> --outcome <completed|failed> --pr-url <pr_url> --branch <branch> --state-file .flow-states/orchestrate.json
For failed outcomes, add --reason "<reason>".
Clean up stuck features:
If the outcome is failed and a state file still exists for the branch, invoke flow:flow-abort to clean up the worktree, close the PR, and remove the state file.
Log and continue:
${CLAUDE_PLUGIN_ROOT}/bin/flow log orchestrate "[Orchestrate] #<issue_number> — <outcome>"
Self-invoke to process the next issue. Invoke flow:flow-orchestrate --continue-step using the Skill tool as your final action. Do not output anything else after this invocation.
All issues have been processed.
${CLAUDE_PLUGIN_ROOT}/bin/flow orchestrate-state --complete --state-file .flow-states/orchestrate.json
${CLAUDE_PLUGIN_ROOT}/bin/flow orchestrate-report --state-file .flow-states/orchestrate.json --output-dir .flow-states
Read .flow-states/orchestrate-summary.md using the Read tool and render the full content inline in your response.
Output the completion banner:
```text
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ FLOW v2.7.0 — flow:flow-orchestrate — COMPLETE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```