Install
openclaw skills install @akramovic1/agentic-maestroDelegate coding work to sub-agents efficiently with a strong orchestrator and cheaper executors: when to spawn, how to write a precise brief, how to spawn on Claude Code (Agent tool or claude -p), Codex (codex exec) or OpenCode (opencode run), and how to run build -> review -> fix -> merge with an independent reviewer. Use when spawning or delegating implementation, fixes, integration, reviews or parallel agents, when writing an executor brief, or when running a multi-agent build pipeline.
openclaw skills install @akramovic1/agentic-maestroThe strong model is the maestro: it holds all the context, makes every design decision and writes precise parts. Cheaper models are the players: each executes one part exactly, without the whole score. Precise briefs plus an independent review are the safeguard, not a guarantee; the executor's intelligence changes the cost, not the safeguard.
Files: templates/ (brief, fix-brief, integration-brief, the shared _rules.md, a Claude Code agent
definition, an example brief spec), scripts/ (below), references/harnesses.md (spawn calls per
harness), references/checklist.md (pre-review checklist and how it grows), references/operations.md
(concurrency, lanes, git, reviewer prompts, context, cost ledger).
| Script | Does |
|---|---|
scripts/brief.mjs <spec.json> --out <file> | Assembles a brief from a JSON spec; refuses missing values, excerpts or keywords |
scripts/spawn.mjs --harness claude|codex|opencode ... | Runs one headless agent; writes result.json (session id, exit, tokens) and a ledger row |
scripts/scope-check.sh <worktree> <base> <allowed>... | Lists changed files outside the brief's map |
scripts/excerpt.sh, scripts/conv.sh | A pattern excerpt; the matching convention bullets, verbatim |
scripts/codemap.mjs <repo> [groups] | --generic | Generates docs/CODEMAP.md (JS/TS workspaces, or any git repo) |
scripts/gate.sh <cmd> | Machine-wide lock: at most N heavy checks at once |
A spawn costs a brief (~5–12 KB of orchestrator output), a review and a commit. Do it inline when ANY holds: the change is one file or under ~50 changed lines; writing the brief would take longer than the change; it is a one-line fix to a review finding; the task needs judgement the brief cannot pin down. Spawn when the work is self-contained behind exact rulings, touches several files or packages, or can run in parallel with other lanes. For facts you need to WRITE a brief (where is the pattern, who calls X), a cheap read-only scout that returns paths and facts — not file dumps — is fine; design stays here.
templates/_rules.md, identical in every brief (logging with exit codes, bounded reading,
gates once, stop after 3 identical errors, scope, tests are evidence, safety, blocked questions).conv.sh).references/checklist.md format).docs/CODEMAP.md sections to read.excerpt.sh).gate.sh when lanes run in parallel.Use scripts/brief.mjs (see templates/brief-spec.example.json): it fills the template, pulls
excerpts, conventions and checklist areas, prefixes gates, and refuses on any gap. ~12 KB is a
guideline for context cost, not a limit.
templates/fix-brief.md)templates/integration-brief.md)references/harnesses.md). Record each session id.SendMessage / spawn.mjs --resume <id>) while
its context is small — the executor finished everything else first. Only fix rounds start fresh.scope-check.sh <worktree> <base> <map...>; out-of-map files are
reverted or ruled on BEFORE review. Check git status, commit (the orchestrator commits).references/checklist.md).Gates pass on the exact commit being merged; no unresolved P1/P2 findings; every deferral has a written reason; the approval is tied to one immutable commit SHA.
Every review receives the original requirements/acceptance text, the brief's rulings, read access to the
repository and the dependency contracts, and explicit permission to challenge a ruling ("if a ruling
itself is wrong, say so"). Prompt shape: references/operations.md.
references/operations.md) and let it move component classes between executors.Read the report block and result.json, not transcripts; read the full report and logs only when the
status is not done, an exit code is non-zero or the verdict is not PASS. Use excerpt.sh and the code
map instead of opening large files.