Pre-Publish Review — 12-Agent Release Gate
Three-agent-layer review before publishing to npm. Every layer covers a different angle, and every result is mapped onto the release layers below.
Release Layer Taxonomy
Every phase classifies evidence and risk across:
Phase 0: Detect Unpublished Changes
Run /get-unpublished-changes FIRST. This is the single source of truth for what changed and must include omo pure components, omo opencode, and omo codex layer-specific version recommendations.
This command automatically:
- Detects published npm version vs local version
- Lists all commits since last release
- Reads actual diffs (not just commit messages) to describe REAL changes
- Groups changes by type (feat/fix/refactor/docs) with scope
- Identifies breaking changes
- Recommends a layer-specific version bump plus one overall workflow bump
Save the full output — it feeds directly into Phase 1 grouping and all agent prompts.
Then capture raw data needed by agent prompts:
If PUBLISHED is "not published", this is a first release — use the full git history instead.
Phase 1: Parse Changes into Groups
Use the /get-unpublished-changes output as the starting point — it already groups by scope and type.
Grouping strategy:
- Start from the
/get-unpublished-changesanalysis which already categorizes by feat/fix/refactor/docs with scope - Further split by module/area — changes touching the same module or feature area belong together
- Target up to 10 groups. If fewer than 10 commits, each commit is its own group. If more than 10 logical areas, merge the smallest groups.
- For each group, extract:
- Group name: Short descriptive label (e.g., "agent-model-resolution", "hook-system-refactor")
- Release layer(s):
omo pure components,omo opencode,omo codex - Commits: List of commit hashes and messages
- Files: Changed files in this group
- Diff: The relevant portion of the full diff (
git diff v${PUBLISHED}..HEAD -- {group files})
Phase 2: Spawn All Agents
Launch ALL agents in a single turn. Every agent uses run_in_background=true. No sequential launches.
Layer 1: Ultrabrain Per-Change Analysis (up to 10)
For each change group, spawn one ultrabrain agent. Each gets only its portion of the diff — not the full changeset.
Layer 2: Holistic Review via /review-work (one gate reviewer)
Spawn a sub-agent that loads the /review-work skill. The review-work skill runs manual QA on the real surface itself, then launches ONE gate reviewer (oracle) that audits goal compliance, code quality, security, missed context, and the QA evidence. The review passes only on a clean QA matrix plus APPROVE.
Layer 3: Oracle Release Synthesis (1 agent)
The oracle gets the full picture — all commits, full diff stat, and changed file list. It provides the final release readiness assessment.
Phase 3: Collect Results
As agents complete (system notifications), collect via background_output(task_id="...").
Track completion in a table:
Do NOT deliver the final report until ALL agents have completed.
Phase 4: Final Verdict
<verdict_logic>
BLOCK if:
- Oracle verdict is BLOCK
- Any ultrabrain found CRITICAL blocking issues
- Review-work failed on any MAIN agent
RISKY if:
- Oracle verdict is RISKY
- Multiple ultrabrains returned CAUTION or FAIL
- Review-work passed but with significant findings
CAUTION if:
- Oracle verdict is CAUTION
- A few ultrabrains flagged minor issues
- Review-work passed cleanly
SAFE if:
- Oracle verdict is SAFE
- All ultrabrains passed
- Review-work passed
</verdict_logic>
Compile the final report:


