agentleFS
johnarksjohnarks/helix-loop/skills/orchestrator/SKILL.md

orchestrator

Skill9 starsChanged 48 days agoMITView on GitHub

Runs the full Helix-style build loop for a feature or migration. Splits work into checkpoints, enforces four gates per checkpoint (behavior tests, UI review, adversarial code review, human approval), and stops for the human only twice: checkpoint-plan approval and final review. Use when the user wants a feature built or a screen/app migrated with enforced quality gates.

80 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use worker, reviewer and 10 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.
  • stotihvSkill

    worker

    Execute beads autonomously within a track. Handles bead-to-bead context persistence via Agent Mail, uses preferred tools from AGENTS.md, and reports progress to orchestrator.

    Also in 3 projects that use this

  • MicrosoftSkill

    reviewer

    ASP.NET Core ハンドブックの記事をレビューする。Use when: 記事をレビューする、ドキュメントを校正する、コードレビューする、PRをレビューする。技術ドキュメントのレビュー、品質チェック、校正。

    Also in 4 projects that use this

  • am-willSkill

    planner

    Create comprehensive, phased implementation plans with sprints and atomic tasks. Use when user says: "make a plan", "create a plan", "plan this out", "plan the implementation", "help me plan", "design a plan", "draft a plan", "write a plan", "outline the steps", "break this down into tasks", "what's the plan for", or any similar planning request. Also triggers on explicit "/planner" or "/plan" commands.

    Also in 4 projects that use this

  • yakatotechSkill

    advisor

    Provide improvement suggestions and advice on work content. Use for document review, efficiency suggestions, and best practices

    Also in 3 projects that use this

  • AWSSkill

    planning

    Discovers user intent and generates a structured, step-by-step plan for model customization workflows. This skill must always be activated alongside any other skill when the user's request relates to model customization — including fine-tuning, training, building, customizing, reviewing data, or getting advice on approach, regardless of domain. Do not skip this skill even if the immediate ask is narrow (e.g., reviewing data format or a single workflow step), because planning discovers the full scope of work needed. Also activate when the user wants to resume, continue, or modify an existing plan.

    Also in 3 projects that use this

  • OpenAISkill

    observability

    Vercel Observability expert guidance — Drains (logs, traces, speed insights, web analytics), Web Analytics, Speed Insights, runtime logs, custom events, OpenTelemetry integration, and monitoring dashboards. Use when instrumenting, debugging, or optimizing application performance and user experience on Vercel.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 4 are distinctive, and 8 are very specific to this project.

  • 0

    Common

    Most of the 66 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 8

    Very specific

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

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

    App-state checker: verify the project builds and runs right now.

    line 24
  2. Distinctive:

    If the planner has questions it cannot resolve from the reference, ask the human now — an hour of planning questions is cheaper than a …

    line 27
  3. Very specific:

    Wait for approval. If the human requests changes, update checkpoints.json (and the test plan if scope changed) and re-present.

    line 51
  4. Very specific:

    All checkpoint test cases pass.

    line 64
  5. Very specific:

    Use the ui-reviewer skill.

    line 67
  6. Very specific:

    Use the adversarial-review skill: two independent, context-isolated reviewer subagents check the checkpoint's code against the architecture …

    line 75
  7. Distinctive:

    Every finding must be fixed by the builder (a fresh subagent, not the reviewers).

    line 76
  8. Distinctive:

    After fixes: re-run the affected behavior tests.

    line 77
  9. Very specific:

    Commit: Every finished checkpoint ends in a commit: helix(cp-<id>): <short title>.

    line 86
  10. Very specific:

    When all checkpoints are done, hand the human the running feature/app.

    line 90
  11. Very specific:

    Never skip a gate: Not for "small" checkpoints, not when you're confident, not in autonomous mode.

    line 94
  12. Distinctive:

    One decision per human interruption: When you stop for the human, ask for the decision you need — don't dump ten pages.

    line 96

“Common” is measured: kept by at least 6 in 10 of the 66 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

Orchestrator

You run the entire build loop. The human prompts you once with the work to do. You stop for them exactly twice: (1) to approve the checkpoint plan, (2) for final review of the finished work. Everything else, you handle via subagents.

Governing principle: an attempt is allowed to be wrong; it is not allowed to ship until it isn't. Gates block. You do not move to the next checkpoint until every gate on the current one passes. You do not stop until the loop is complete — the stop hook enforces this structurally, but you must also honor it intentionally.

Environments without hook support (e.g. Codex, or any agent that can't run a Stop hook): there is no structural backstop, so enforcement is on you. Before ending any turn, read .helix/state.json; if any gate on the current checkpoint is open, keep working — fix and re-run, never declare the checkpoint done. Treat "I can't stop with open gates" as a hard rule, not a suggestion.

0. Read before anything else

  1. The project's architecture/standards doc (ARCHITECTURE.md, design.md, or equivalent — ask the human where it lives if you can't find it). This is the standard every reviewer enforces. If none exists, run the design-planner skill first to create one.
  2. .helix/learnings.md if it exists. This is accumulated human feedback. It overrides your defaults. If it doesn't exist, create it from the template at the end of this run's first human review.
  3. The task: either a reference (existing screen/app to migrate — "the reference is the spec") or a feature description + designs/docs (for new work).

1. Planning phase

Launch two subagents in parallel:

  • App-state checker: verify the project builds and runs right now. Report the exact commands that work (npm run dev, pytest, etc.). If it doesn't build, stop and tell the human — do not plan work on a broken base.
  • Checkpoint planner (use the checkpoint-planner skill): reads the reference or feature description and produces .helix/checkpoints.json following schemas/checkpoints.schema.json. Checkpoints must be ordered by increasing complexity — skeleton/foundation first, details later. Each checkpoint gets a short title (a few words — the human reviews the sequence, not an essay), done-criteria, and a needs_ui_gate flag (false for logic-only checkpoints).

If the planner has questions it cannot resolve from the reference, ask the human now — an hour of planning questions is cheaper than a wasted build.

Then launch a third subagent:

  • Test planner (use the test-planner skill): for each checkpoint, generate behavior test cases from the user's perspective, including edge cases outside the happy path. These define what "proven" means for Gate 1. Store the plan at .helix/test-plan.md.

Initialize .helix/state.json:

{
  "current_checkpoint": "<first checkpoint id>",
  "checkpoints": {
    "<id>": {
      "status": "planned",
      "gates": { "behavior": "pending", "ui": "pending", "adversarial": "pending", "human": "pending" }
    }
  }
}

2. Human Input #1 — plan approval (MANDATORY STOP)

Tell the human: "Open viewer/index.html in your browser and load .helix/checkpoints.json to review the plan." Summarize the checkpoint sequence in a few short lines (titles only — respect the "one decision, not ten pages" rule).

Wait for approval. If the human requests changes, update checkpoints.json (and the test plan if scope changed) and re-present. Do not start building on an unapproved plan.

3. Build loop — one checkpoint at a time, in order

For the current checkpoint:

3a. Tests first. Spawn subagents to write the checkpoint's tests (from the test plan). They must FAIL initially — the feature doesn't exist yet. If any test passes before implementation, the test is wrong; fix the test.

3b. Implement. Spawn a fresh subagent to write the checkpoint code. Fresh context per checkpoint: the implementer gets the checkpoint description, done-criteria, relevant reference excerpt, architecture doc, and learnings — not the entire conversation history.

3c. Run tests. Spawn a subagent to run the full checkpoint test suite. Iterate on failures (implementer fixes, runner re-runs) until green.

Gate 1 — Behavior

All checkpoint test cases pass. These are code/integration-level tests — no browser, no screenshots. Fast loop: iterate dozens of times here before any visual check. Mark gates.behavior = "passed" in state.json.

Gate 2 — UI review (skip if needs_ui_gate is false)

Use the ui-reviewer skill. Requirements:

  • There must be a visual reference: the reference app (migration) or the HTML prototype (new feature — build it with the prototype-builder skill before this gate, per design.md).
  • Capture implementation and reference in matching states (e.g., both showing the unsubmitted form). If the reviewer flags a state mismatch as INVALID, re-capture and re-run.
  • Limit the review scope to what this checkpoint built (a skeleton checkpoint reviews only the nav bar and title, not the whole screen).
  • The reviewer lists every difference with severity and on-screen location. Any difference fixable in code is a blocker by default.
  • Fix blockers, re-run. Mark gates.ui = "passed" (or "skipped" with reason for logic-only checkpoints).

Gate 3 — Adversarial review

Use the adversarial-review skill: two independent, context-isolated reviewer subagents check the checkpoint's code against the architecture doc (including UI-code guidelines). Rules:

  • Every finding must be fixed by the builder (a fresh subagent, not the reviewers).
  • After fixes: re-run the affected behavior tests. If anything visibly changed, re-run Gate 2.
  • Reviewers re-examine the changed code. Repeat until both reviewers approve.
  • Mark gates.adversarial = "passed".

Gate 4 — Human review of the checkpoint

Present: what was built, test results, UI review summary, reviewer verdicts. The human approves or gives feedback.

  • Approval → mark gates.human = "passed".
  • Feedback → append it to .helix/learnings.md (this is the memory that makes later checkpoints more autonomous), address it via the builder, and re-run every gate the change could affect.

Commit. Every finished checkpoint ends in a commit: helix(cp-<id>): <short title>. Include the evidence (test report, UI review, verdicts) under .helix/evidence/<id>/ in the commit. Advance current_checkpoint in state.json.

4. Human Input #2 — final review (MANDATORY STOP)

When all checkpoints are done, hand the human the running feature/app. They test it as a user. Change requests become new checkpoints appended to checkpoints.json and go through the full loop (all four gates). Their feedback goes into learnings.md.

Operating rules

  • Never skip a gate. Not for "small" checkpoints, not when you're confident, not in autonomous mode. Logic-only checkpoints skip Gate 2 with an explicit "skipped" reason — that is the only exception.
  • Never work two checkpoints at once in the same thread of the loop. (Parallel screens, each with their own loop and gates, are fine.)
  • One decision per human interruption. When you stop for the human, ask for the decision you need — don't dump ten pages.
  • Update state.json at every gate transition. The stop hook reads it. If your session ends unexpectedly, the next session resumes from state.
  • Autonomous mode (only if the human explicitly requests it): "run the next N checkpoints" or "run to completion." Gates are unchanged. Human gate becomes recorded self-review against the learnings file, and all evidence must be archived for later human audit. Some checkpoints may skip Human Input #1-style approval only if the human said so.
  • Keep contexts small. Subagents get the minimum they need: checkpoint scope, done-criteria, relevant reference excerpt, architecture doc, learnings. Never paste the whole plan or history into a worker.
  • The reference is the spec (migrations). Don't invent behavior the reference doesn't have; don't drop behavior it does. Discrepancies → ask the human.

Failure handling

  • Gate fails → fix → re-run that gate. Unlimited retries; zero overrides.
  • Reviewer marks UI comparison INVALID → re-capture in matching states, re-run.
  • Tests pass before implementation → the tests are wrong; fix them.
  • App doesn't build at phase 1 → stop, report to human, do not plan.
  • Human rejects the plan twice → ask what outcome they actually want; don't thrash.

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.