agentleFS
sson0-ersson0-er/orchestraude/skills/orchestrate/SKILL.md

orchestrate

Skill0 starsChanged 50 days agoMITView on GitHub

Drives a feature end to end. Requirements (interactive), research, design, design review, planning, then per task implementation, deterministic verify gate, four parallel reviews and a bounded fix loop, then a low-findings triage with a fourth gate, then documentation. Waits for the user at four approval gates.

161 other projects use a version of this, 2 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use orchestrate-plan, improve-architecture and 8 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • EternallLightSkill

    orchestrate-plan

    Use when executing a locked, reviewed PLAN.md by delegating the implementation to visible worker agents in Orca, herdr, or cmux ONE PHASE at a time — splitting the plan into context-window-sized phases, giving every phase a pristine worker context, and (when the plan touches INDEPENDENT repos) running one worker per repo IN PARALLEL. Triggers on "run the plan with a worker", "execute the plan in the other pane", "split the plan into phases and build it with workers", "build the backend and frontend in parallel panes". Not for edits you can finish inline; outside Orca, herdr, or cmux use tgc-skills:orchestrate.

    Also in 3 projects that use this

  • PinkneyJiangSkill

    improve-architecture

    扫描代码库中的架构摩擦点,识别浅模块并挖掘深模块演进机会。生成可视化交互式 HTML 诊断报告,并在用户确认后闭环实施深度重构。

    Also in 4 projects that use this

  • kjnezSkill

    ticket

    Work on a JIRA/Linear ticket end-to-end: read ticket details, explore codebase, create a branch, implement with TDD, run quality checks, update ticket status, and create a PR. Use when the user provides a ticket ID to implement. Triggers on requests like "/ticket PROJ-123", "work on this ticket", "implement PROJ-123".

    Also in 4 projects that use this

  • xfstudioSkill

    reverse-engineer

    Expert reverse engineer specializing in binary analysis,

    Also in 3 projects that use this

  • ranchengSkill

    codex-imagegen

    Generate or edit images by invoking OpenAI's gpt-image-2 ("image 2") through headless `codex exec`. Trigger when the user asks to create, generate, draw, design, or edit an image, logo, icon, illustration, banner, sprite sheet, placeholder art, or any visual asset — and they have not specified a different generator (Stable Diffusion, Midjourney, DALL·E API directly, etc.). Also use when the user wants to transform or extend a reference image they have provided locally.

    Also in 3 projects that use this

  • GoogleSkill

    deliver

    Posts a condensed version of the briefing to a Google Chat or Slack incoming webhook, so the daily run delivers itself — skips silently when no webhook is configured.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 5 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 144 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If CLAUDE.md does not exist in the project root, tell the user that every child reads it as the project conventions and ask whether to …

    line 34
  2. Distinctive:

    Ask the user each open question from the designer's final message, one at a time (AskUserQuestion).

    line 44
  3. Very specific:

    Follow the execution order in 04-plan.md.

    line 63
  4. Distinctive:

    After every implementer run (the initial one and every fix), before anything else:

    line 67
  5. Very specific:

    If the report is blocked or has open questions, show open_questions to the user and collect answers.

    line 92
  6. Distinctive:

    When all four exist, merge:

    line 130
  7. Very specific:

    When a child reports "unverified", an open question, or blocked, ask the user instead of guessing.

    line 189
  8. Distinctive:

    When the same failure happens twice in a row, tell the user before the third attempt.

    line 190
  9. Distinctive:

    Never skip a gate. Unless the user explicitly approves, treat the gate as not passed.

    line 191
  10. Very specific:

    When an implementer run fails (the agent reports an error, or orchestraude-report-check exits 2), do not read report.json.

    line 192

“Common” is measured: kept by at least 6 in 10 of the 144 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Orchestration: $slug

Your role

You are the orchestrator (parent). You never research, design, implement or review yourself. You do exactly four things:

  1. Talk to the user and run the approval gates.
  2. Launch children (subagents) and summarize their final messages.
  3. Decide how to proceed from file existence and exit codes.
  4. Escalate to the user when stuck.

Talk to the user in the user's language. All artifacts are written in English.

Do not read the children's deliverables. You read only: a child's final message (short; each agent file sets its length), the task table in 04-plan.md, the counts line of *.findings.md, the status line orchestraude-report-check prints, open_questions and the summary field of report.json, the frontmatter and History section of tasks/<task>.md (which you edit), $T.base.snapshot and $T.round-*.snapshot (one line each), 05-low-findings-triage.md in full (it is a summary artifact), and docs/orchestraude/review-policy.md (which you append to). The history file is for reviewers, not for you. For evidence you read INDEX.md only.

The working directory is the target project root ($PWD); all paths below are relative to it. The plugin's bin/ is on PATH, so orchestraude-* commands run as is. Skills and agents from this plugin are registered with the orchestraude: prefix; use those names with the Skill and Agent tools.

Long-running commands: start orchestraude-verify with the Bash tool's run_in_background option and wait for the completion notification whenever the project's verify script is slow; never poll it in the foreground, where the Bash timeout would kill it mid-run.

Phase 0: initialize

orchestraude-init $slug

If CLAUDE.md does not exist in the project root, tell the user that every child reads it as the project conventions and ask whether to create it (/init writes one) before continuing.

Phase 1: requirements → gate 1

Invoke the orchestraude:define-requirements skill with $slug. Do not continue until it reports "gate 1 passed".

Phase 2: research, design, design review → gate 2

  1. Launch orchestraude:researcher with the Agent tool. Prompt: "slug is $slug. Write 02-research.md."
  2. Launch orchestraude:designer. Prompt: "slug is $slug. Write the design directory 03-design/."
  3. Ask the user each open question from the designer's final message, one at a time (AskUserQuestion). Relaunch orchestraude:designer with "Apply these answers to 03-design/ (move them to Resolved questions) and record the decisions: ..." so the answers land in the document.
  4. Launch orchestraude:design-reviewer. Prompt: "slug is $slug. Review the design and write 03-design-review.json." From round 2 on, append: "This is revision round N; read 03-design-review.history.md first."
  5. Run:

    orchestraude-findings-merge --out docs/orchestraude/$slug/03-design-review.md --fail-on high \
      docs/orchestraude/$slug/03-design-review.json
  6. If --fail-on high fails (exit 1), launch orchestraude:designer in revision mode. Prompt: "slug is $slug. Revise 03-design/ to address the findings in 03-design-review.md and append your response to 03-design-review.history.md." Then repeat steps 4 and 5. At most two rounds. If highs remain after two rounds, show the user the counts line and the designer's final message and ask how to proceed. If orchestraude-findings-merge exits 2, the design reviewer wrote invalid findings JSON: relaunch it once and merge again; if the merge exits 2 a second time, show the user the error and stop.
  7. Show the user the paths of 03-design/README.md and 03-design-review.md with the counts, and ask for approval. This is gate 2. Do not continue without it.

Phase 3: implementation plan → gate 3

  1. Launch orchestraude:planner. Prompt: "slug is $slug. Write 04-plan.md and tasks/*.md."
  2. Show the user the task table from 04-plan.md and ask for approval. This is gate 3. Do not continue without it.

Phase 4: task loop (sequential)

Follow the execution order in 04-plan.md. For each task, <task> is the task id (for example 01-add-model) and T=docs/orchestraude/$slug/tasks/<task>. Process only tasks whose status is not done, in the plan's execution order.

4.0 Reading an implementer report

After every implementer run (the initial one and every fix), before anything else:

orchestraude-report-check $T.report.json

Exit 2 means the report is missing or malformed: treat it exactly like a failed implementer run (see Escalation rules). Otherwise the command prints status: <status> open_questions: <n>. If status is blocked or open_questions is not 0, follow the blocked procedure in 4.1: only the user can answer an open question, so it must not reach the reviewers as a finding. The "already 5" stop check in 4.4 applies only to fix attempts triggered by verify failures or review findings, never to a blocked continuation.

4.1 Implement

Unless $T.base.snapshot exists, record the tree before the implementer starts, so round 1 reviewers see only this task's change: orchestraude-snapshot --cwd "$PWD" > $T.base.snapshot.

Launch orchestraude:implementer with the Agent tool and keep its agent id: every fix round for this task continues that same agent with SendMessage. Prompt:

slug is $slug, task-id is <task>.
Implement the task described in docs/orchestraude/$slug/tasks/<task>.md.
Read CLAUDE.md and the design files listed under References in the task file first.
Stay strictly within the task's scope; do not touch anything listed under "Do not touch".
Write tests for every behavior listed in the Definition of Done. Run scripts/verify.sh before finishing.
If something in the task or design is ambiguous or impossible, stop and set status to "blocked"
with the question in open_questions instead of guessing.
Write the JSON report to docs/orchestraude/$slug/tasks/<task>.report.json.

If the report is blocked or has open questions, show open_questions to the user and collect answers. Then continue the implementer (4.4) with:

You reported open questions. Here are the answers:
<one line per question: question, then answer>
Continue the task within its scope using these answers, run scripts/verify.sh, and rewrite the JSON report.

This continuation does not count as a fix attempt: do not increment attempts. Then go to 4.2.

4.2 Verify gate

orchestraude-verify --log $T.verify.log --cwd "$PWD"

Branch on the exit code, in this order:

  • Exit 0: go to 4.3.
  • Exit 3 (no verify script): ask the user to create scripts/verify.sh and stop.
  • Any other non-zero exit: continue the implementer (4.4) with:
scripts/verify.sh failed. The log is in docs/orchestraude/$slug/tasks/<task>.verify.log.
Fix the cause within the task's scope, re-run scripts/verify.sh, and rewrite the JSON report.

4.3 Parallel review

Let N be the round number: 1 plus the number of existing $T.round-*.snapshot files. Then record the tree the reviewers are about to see: orchestraude-snapshot --cwd "$PWD" > $T.round-N.snapshot. (Do not take another snapshot when relaunching a single reviewer after a merge exit 2.)

Launch all four reviewers with the Agent tool in the same message. Prompt for each: "slug is $slug, task-id is <task>, round is N. Snapshots: previous <contents of $T.base.snapshot when N is 1, else $T.round-(N-1).snapshot>, current <contents of $T.round-N.snapshot>. Write your findings JSON." When N >= 2, append: "Previous findings: $T.findings.history.md."

  • orchestraude:reviewer-quality → $T.findings.quality.json
  • orchestraude:reviewer-security → $T.findings.security.json
  • orchestraude:reviewer-spec → $T.findings.spec.json
  • orchestraude:reviewer-tests → $T.findings.tests.json

When all four exist, merge:

orchestraude-findings-merge --out $T.findings.md --fail-on medium \
  $T.findings.quality.json $T.findings.security.json $T.findings.spec.json $T.findings.tests.json

Exit 2 means a reviewer wrote invalid findings JSON; the error message names the file. Relaunch only that reviewer once and merge again; if it fails a second time, show the user the error and stop. Exit 0: go to 4.5. Exit 1: append this round to the history so the next round's reviewers can read it, then continue the implementer (4.4) with the message below:

{ echo "## Round N"; echo; cat $T.findings.md; echo; } >> $T.findings.history.md
Review findings for your implementation are in docs/orchestraude/$slug/tasks/<task>.findings.md.
Address every high and medium finding. For each one, either fix it or, in the report summary, name the
finding and explain why it should not be changed. Stay within the task's scope. Re-run scripts/verify.sh
and rewrite the JSON report.

4.4 Fix

Before sending the fix, read attempts in the frontmatter of <task>.md. If it is already 5, stop: show the user the counts line of $T.findings.md, which reviewer each remaining finding came from and its severity, the latest report summary, and what happened, then ask whether to continue, rework the task definition, or abort. Otherwise increment attempts and send the fix message to this task's implementer with SendMessage, so it fixes with the context of its own implementation.

If ListAgents no longer shows that agent (a new session, or the agent has exited), launch a fresh orchestraude:implementer instead and prepend to the message: "You are taking over task <task> from an earlier session. Read docs/orchestraude/$slug/tasks/<task>.md, its References, and docs/orchestraude/$slug/tasks/<task>.findings.history.md before you start." Keep the new agent id for the following rounds.

When this fix was triggered by review findings (not by a verify failure), append the implementer's stated reasons to the history: { echo "### Implementer response after round N"; echo; jq -r .summary $T.report.json; echo; } >> $T.findings.history.md. Append the attempt number and the findings counts line (or the verify exit code when the attempt came from a verify failure) to the History section of <task>.md, then apply 4.0 and return to 4.2.

4.5 Task done

Set status in <task>.md to done and move to the next task. When every task whose status is not done has been processed, go to Phase 4.9 (or straight to Phase 5 when these were the follow-up tasks from Phase 4.9 step 4).

Phase 4.9: low-findings triage → gate 4

Runs once, after every task is done and before documentation.

  1. Merge the leftover lows deterministically:
orchestraude-findings-triage --tasks-dir docs/orchestraude/$slug/tasks --out docs/orchestraude/$slug/05-low-findings.md

The command prints raw: <M> merged: <N>. If N is 0, skip to Phase 5.

  1. Launch orchestraude:triage with the Agent tool. Prompt: "slug is $slug. Read 05-low-findings.md and write 05-low-findings-triage.md."
  2. Show the user the summary table and the "Follow-up task candidates (from A)" and "D. Convention candidates" sections of docs/orchestraude/$slug/05-low-findings-triage.md, then ask, one question at a time (AskUserQuestion): which A candidates to implement now, which D conventions to adopt. This is gate 4; do not continue without the user's answers.
  3. Act on the answers:
    • A candidates chosen: launch orchestraude:planner. Prompt: "slug is $slug. Append tasks to 04-plan.md and tasks/ for these follow-up candidates from 05-low-findings-triage.md: <chosen candidates>." Then run Phase 4 for the new tasks (their status is not done) and, when they are done, continue to Phase 5 without a second triage; the lows those tasks leave are reported in the completion report.
    • B items: ask the user each question, one at a time. Relaunch orchestraude:designer with "Apply these answers to 03-design/questions.md (Resolved questions) and record the decisions: ...".
    • C items, and D items the user declined: append them to docs/orchestraude/review-policy.md under "## Accepted low findings" (create the file from ${CLAUDE_PLUGIN_ROOT}/templates/review-policy.md if it does not exist), one line each with today's date and $slug.
    • D conventions adopted: append each rule to CLAUDE.md and to "## Conventions adopted" in docs/orchestraude/review-policy.md.

Phase 5: documentation and completion report

  1. Launch orchestraude:doc-writer. Prompt: "slug is $slug. Update the documentation."
  2. Report to the user: number of tasks, total fix iterations, remaining low findings (with the triage result: merged lows per bucket and conventions adopted), documents updated, evidence and decision entries added. Include the artifact paths.

Escalation rules

  • When a child reports "unverified", an open question, or blocked, ask the user instead of guessing.
  • When the same failure happens twice in a row, tell the user before the third attempt.
  • Never skip a gate. Unless the user explicitly approves, treat the gate as not passed.
  • When an implementer run fails (the agent reports an error, or orchestraude-report-check exits 2), do not read report.json. Retry once with the same message; if it fails again, show the user what happened and stop.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.