Orchestrate Grok Build CLI for headless code implementation
Orchestrates delegating well-specified implementation tasks to xAI's Grok Build CLI headlessly, with a mandatory diff review gate.
Why it matters
Delegate well-specified implementation tasks to xAI's Grok Build CLI running headlessly while maintaining control over planning, specification, diff review, and final acceptance, enabling fast execution of boilerplate, scaffolding, tests, and mechanical refactors without surrendering architectural decisions or security-sensitive work.
Outcomes
What it gets done
Write self-contained task specifications and dispatch them to Grok Build CLI with proper safety gates
Review every diff produced by Grok against acceptance criteria before committing changes
Execute Markdown implementation plans task-by-task with clean state management and git workflow
Handle failures, retries, and fallbacks while preserving diffs for user review and recovery decisions
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/ag-grok-build | bash Overview
Grok Build Orchestration
Orchestrates delegating well-specified implementation tasks to xAI's Grok Build CLI headlessly: writes a self-contained spec, dispatches with --always-approve, then runs a mandatory diff review and acceptance check before committing. Use it for plan tasks with clear acceptance criteria, boilerplate, or mechanical refactors. Keep architecture decisions, security-sensitive code, and production-infrastructure work with the orchestrator instead.
What it does
Orchestrates delegating well-specified implementation tasks to xAI's Grok Build CLI running headlessly: the coding assistant plans, writes self-contained task specs, dispatches them to Grok Build, reviews every diff, and owns the final result, while Grok itself is the fast, cheap executor. Full CLI details and verified behaviors live in references/cli.md.
When to use - and when NOT to
Use it when delegating a well-specified implementation task to Grok Build headlessly, when executing a Markdown implementation plan task-by-task with a diff review after each task, or when the user says "use grok," "grok build," "have grok implement," or "send to grok." Delegate to Grok: plan tasks with clear acceptance criteria, boilerplate/scaffolding/CRUD, mechanical refactors, test writing from clear specs, and UI components from mockups or specs. Keep with the orchestrator instead: ambiguous requirements and architecture decisions, deep cross-file debugging, security-sensitive code, anything touching production infrastructure, and any task where writing the spec is basically equivalent to doing the work - when in doubt, keep it with the orchestrator. Before every dispatch, show the user the exact task specification that will be sent to xAI, the target worktree, and the permission mode, and get explicit approval to disclose that text and let Grok edit the scoped worktree; never include secrets, proprietary source, customer data, or credentials in a task specification, and never run grok update, --always-approve, or a destructive recovery command without separate, explicit approval.
Inputs and outputs
Session preflight runs once before the first dispatch: grok update --check --json (tell the user if updateAvailable is true, and only run grok update after explicit approval, confirming with grok --version), then grok models (if it errors or reports logged out, stop and ask the user to run grok login). The default per-task loop is sequential: write a self-contained task spec to a temp directory outside the target repo (Grok has zero conversation context, so no one-liner prompts, ever); ensure clean state with no uncommitted source changes so the post-run diff is exactly Grok's work; then dispatch:
grok --prompt-file <task-file> \
--output-format json \
--always-approve \
--max-turns 30 \
--cwd <repo>
parsing the JSON output and saving sessionId (--always-approve is required for headless runs, since --permission-mode acceptEdits silently cancels edits with no interactive approver, and should only be used after explicit approval for that exact scoped worktree; add --check for a high-stakes task so Grok self-verifies first, at roughly double the latency). The review gate is non-negotiable: read the diff yourself, run the acceptance commands from the spec, commit with a clear message on pass, and on failure ask the user before any fix-up or reset - never run git checkout -- . or git clean -fd automatically. The task spec itself follows a fixed template with Task, Context, Files, Task description, Constraints, and Acceptance criteria sections. Default model is grok-4.5, with -m grok-composer-2.5-fast reserved for trivial mechanical tasks only.
Integrations
Executing a Markdown implementation plan dispatches one plan task at a time in order, checking off the plan's task checkboxes (- [ ] to - [x]) as each task lands and passes the review gate; only when a plan explicitly marks tasks independent does parallel dispatch apply, using --worktree=<task-slug> per task, running concurrently, then reviewing and merging one worktree at a time through the same review gate - merge conflicts usually eat the savings, so sequential remains the preferred default. Failure handling: a cancelled, empty, or diff-less result usually means a missing --always-approve, retry with it; a CLI error or timeout gets one retry, then the orchestrator does the task itself and notes the fallback; an expired auth means stop and ask the user to run grok login; two exhausted fix-up rounds mean preserving the diff and asking the user for a recovery decision; and a dirty tree at dispatch time is refused outright, requiring a commit or stash first. As a third-party service, Grok should never receive secrets, proprietary material, personal data, or customer data, and --always-approve must stay limited to a clean, explicitly approved worktree and never substitute for the orchestrator's own review - the skill does not authorize installations, updates, commits, pushes, deployments, or destructive cleanup on its own.
Who it's for
Coding orchestrators and developers who want to hand well-scoped implementation tasks to a fast, cheap headless executor while keeping architecture decisions, security-sensitive code, and final diff review firmly with a human or the orchestrating agent.
Source README
Grok Build Orchestration
When to Use
- Use when delegating a well-specified implementation task to xAI's Grok Build CLI running headlessly
- Use when executing a Markdown implementation plan task-by-task with a diff review after each task
- Use when the user says "use grok", "grok build", "have grok implement", or "send to grok"
The coding assistant is the orchestrator: it plans, writes self-contained task specs,
dispatches them to Grok Build headlessly, reviews every diff, and owns the final result.
Grok is the fast, cheap executor. Full CLI details and verified behaviors: references/cli.md.
Safety Gate
Before every dispatch, show the user the exact task specification that will be sent to xAI,
the target worktree, and the permission mode. Obtain explicit approval to disclose that text
and to let Grok edit the scoped worktree. Never include secrets, proprietary source, customer
data, or credentials in a task specification. Do not run grok update, --always-approve,
or a destructive recovery command without separate, explicit approval.
When to delegate vs keep with the orchestrator
| Delegate to Grok | Keep with the orchestrator |
|---|---|
| Plan tasks with clear acceptance criteria | Ambiguous requirements, architecture decisions |
| Boilerplate, scaffolding, CRUD | Deep cross-file debugging |
| Mechanical refactors | Security-sensitive code |
| Test writing from clear specs | Anything touching production infrastructure |
| UI components from mockups/specs | Tasks where writing the spec ≈ doing the work |
When in doubt, keep it with the orchestrator.
Session preflight (once, before the first dispatch)
grok update --check --json- ifupdateAvailableis true, tell the user. Rungrok updateonly after explicit approval, then confirm withgrok --version.grok models- if it errors or reports logged out, STOP and ask the user to rungrok login.
Per-task loop (sequential - the default)
Spec. Write a self-contained task file (template below) to a temp directory
OUTSIDE the target repo - the harness scratchpad if one is available, else the OS
temp dir. Never write it inside the target repo. Grok has zero conversation context:
no one-liner prompts, ever.- POSIX:
mkdir -p "${TMPDIR:-/tmp}/grok-specs", then writetask.mdthere. - Windows (PowerShell):
New-Item -ItemType Directory -Force "$env:TEMP\grok-specs",
then writetask.mdthere.
- POSIX:
Clean state. No uncommitted source changes - commit or stash first, so the
post-run diff is exactly Grok's work. Ignore build artifacts (__pycache__,dist/,
etc.); if they show ingit status, they're usually just un-gitignored, not your
concern. Never dispatch on a dirty source tree.Dispatch.
POSIX:
grok --prompt-file <task-file> \ --output-format json \ --always-approve \ --max-turns 30 \ --cwd <repo>Windows (PowerShell) - backtick line-continuation:
grok --prompt-file <task-file> ` --output-format json ` --always-approve ` --max-turns 30 ` --cwd <repo>Parse the JSON output and save
sessionId. (--always-approveis required for
headless runs ---permission-mode acceptEditssilently cancels edits with no
interactive approver. Use it only after the user explicitly approves Grok editing this
exact scoped worktree. Seereferences/cli.md.) For a high-stakes task, add--check
so Grok self-verifies before you review; skip it otherwise (it ~doubles latency).Review gate - non-negotiable.
- Read the diff yourself (
git diff -- <files from the spec>to skip artifact noise):
does it do the task, only the task, and match repo conventions? - Run the acceptance commands from the spec.
- Pass → commit with a clear message following the repo's convention → next task.
- Fail → ask the user before a fix-up or any reset. Never run
git checkout -- .orgit clean -fdautomatically; preserve the diff for review and use a non-destructive
recovery plan unless the user explicitly authorizes otherwise.
- Read the diff yourself (
Task spec template
### Task: <one-line title>
### Context
- Repo: <path> — <one line on what the project is>
- Conventions: <test runner, formatter, a good example file to imitate>
### Files
- Modify: <path>
- Create: <path>
### Task
<precise description of the change>
### Constraints
- Do not modify any files other than those listed above.
- <other constraints>
### Acceptance criteria
- `<exact command>` <expected result>
Executing a Markdown implementation plan
- One plan task per dispatch, in order.
- Check off the plan's task checkboxes (
- [ ]→- [x]) as each task lands and passes
the review gate. - If the plan explicitly marks tasks as independent, see Parallel dispatch below;
otherwise stay sequential.
Parallel dispatch (opt-in exception, not the default)
Only when a plan explicitly marks tasks independent: dispatch each with--worktree=<task-slug>, run concurrently, then review and merge one worktree at a
time through the same review gate. Merge conflicts usually eat the savings - prefer
sequential.
Failure handling
| Failure | Action |
|---|---|
stopReason: "Cancelled", empty text, no diff |
Missing --always-approve - retry with it |
| CLI error / timeout | Retry once; then do the task yourself and note the fallback |
| Auth expired | Stop; ask the user to run grok login |
| 2 fix-up rounds exhausted | Preserve the diff, ask the user for a recovery decision, then finish the task manually if authorized |
| Dirty tree at dispatch | Refuse; commit/stash first |
Limitations
- Grok receives the approved task specification; it is a third-party service and should not
receive secrets, proprietary material, personal data, or customer data. --always-approveallows edits without an interactive approval prompt. It must be limited to
a clean, explicitly approved worktree and never substitutes for the orchestrator's review.- Model output can be incorrect, insecure, incomplete, or out of scope. Review the diff and
run the acceptance checks before accepting any change. - This skill does not authorize installations, updates, commits, pushes, deployments, or
destructive cleanup.
Models
Default grok-4.5. Add -m grok-composer-2.5-fast only for trivial mechanical tasks.
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.