Triad cross-CLI dispatch: single-shot codex/gemini/antigravity dispatch + self-improving classifier + cross-family review.
Repair agent for the Antigravity (agy) dispatch wrapper (antigravity_wrapper.py) failures the dispatch SKILL routes to repair: classification `unknown` (a classifier gap), or `extraction-error` / `timeout` (rc-based failures routed here so this agent can decide whether a vendor pattern is worth a classifier patch or should escalate). Invoked ONLY by name from the dispatch SKILL — never auto-delegated. Input: a run-log file path in the prompt body (read via Read tool) containing exit_code, stderr, stdout, wrapper_cmd, and the failing call's full context. Purpose: progressively improve the engine's classification framework so future calls auto-route correctly without your dispatch — success metric = framework completeness, not fixing the immediate call. Patches the user classifier extension JSON `~/.config/triad-dispatch/classifier-patches.json` (the engine merges it at runtime), then re-runs with `--repair-mode` to verify routing. 3-attempt ceiling, then escalate.
Repair agent for the Codex dispatch wrapper (codex_wrapper.py) failures the dispatch SKILL routes to repair: classification `unknown` (a classifier gap), or `extraction-error` / `timeout` (rc-based failures routed here so this agent can decide whether a vendor pattern is worth a classifier patch or should escalate). Invoked ONLY by name from the dispatch SKILL — never auto-delegated. Input: a run-log file path in the prompt body (read via Read tool) containing exit_code, stderr, stdout, wrapper_cmd, and the failing call's full context. Purpose: progressively improve the engine's classification framework so future calls auto-route correctly without your dispatch — success metric = framework completeness, not fixing the immediate call. Patches the user classifier extension JSON `~/.config/triad-dispatch/classifier-patches.json` (the engine merges it at runtime), then re-runs with `--repair-mode` to verify routing. 3-attempt ceiling, then escalate.
Repair agent for the Gemini dispatch wrapper (gemini_wrapper.py) failures the dispatch SKILL routes to repair: classification `unknown` (a classifier gap), or `extraction-error` / `timeout` (rc-based failures routed here so this agent can decide whether a vendor pattern is worth a classifier patch or should escalate). Invoked ONLY by name from the dispatch SKILL — never auto-delegated. Input: a run-log file path in the prompt body (read via Read tool) containing exit_code, stderr, stdout, wrapper_cmd, and the failing call's full context. Purpose: progressively improve the engine's classification framework so future calls auto-route correctly without your dispatch — success metric = framework completeness, not fixing the immediate call. Patches the user classifier extension JSON `~/.config/triad-dispatch/classifier-patches.json` (the engine merges it at runtime), then re-runs with `--repair-mode` to verify routing. 3-attempt ceiling, then escalate.
3 CLI 에 한 질문을 동시에 던지고 답을 raw + 요약으로 받는 SKILL.
Use when the leader (Triad orchestrator) needs to dispatch a single-shot Antigravity CLI (`agy`) call via the wrapper framework. Triggering signals — leader is about to run `python3 antigravity_wrapper.py` raw; user said "agy 한 번 불러줘" / "antigravity로 X 처리" / "agy CLI 단발 실행" / "안티그래비티 호출"; a higher-level orchestration SKILL needs the agy leg of a fan-out (gemini CLI successor; gemini public EOL 2026-06-18, but 사내 keeps gemini until ~2026-07-31 so both ship in the interim); classification-aware routing with self-improving repair-agent fallback is needed instead of raw subprocess. Symptoms of skipping this SKILL — unknown classification failures don't reach the repair sub-agent, run-log files accumulate uncleaned, the framework's self-improving classifier never grows. Do NOT use for Codex (use `triad-codex-dispatch`), Gemini (use `triad-gemini-dispatch`), multi-turn dialogue / pair-coding (use `triad-pair-brainstorm` or `triad-pair-plan`), or 3-CLI fact-check fan-out (use `triad-3way-question`).
Use when the leader (Triad orchestrator) needs to dispatch a single-shot Codex CLI call via the wrapper framework. Triggering signals — leader is about to run `python3 codex_wrapper.py` raw; user said "codex 한 번 불러줘" / "codex로 X 처리" / "codex CLI 단발 실행" / "코덱스 호출"; a higher-level orchestration SKILL needs the Codex leg of a fan-out; classification-aware routing with self-improving repair-agent fallback is needed instead of raw subprocess. Symptoms of skipping this SKILL — unknown classification failures don't reach the repair sub-agent, run-log files accumulate uncleaned, the framework's self-improving classifier never grows. Do NOT use for Gemini (use `triad-gemini-dispatch`), multi-turn dialogue / pair-coding (use `triad-pair-brainstorm` or `triad-pair-plan`), or 3-CLI fact-check fan-out (use `triad-3way-question`).
Use for the FINAL pre-merge (or review-worthy / security-or-correctness-critical) cross-family review mandated by self-rule
Use when the leader (Triad orchestrator) needs to dispatch a single-shot Gemini CLI call via the wrapper framework. Triggering signals — leader is about to run `python3 gemini_wrapper.py` raw; user said "gemini 한 번 불러줘" / "gemini로 X 처리" / "gemini CLI 단발 실행" / "제미나이 호출"; a higher-level orchestration SKILL needs the Gemini leg of a fan-out; classification-aware routing with self-improving repair-agent fallback is needed instead of raw subprocess. Symptoms of skipping this SKILL — unknown classification failures don't reach the repair sub-agent, run-log files accumulate uncleaned, the framework's self-improving classifier never grows. Do NOT use for Codex (use `triad-codex-dispatch`), multi-turn dialogue / pair-coding (use `triad-pair-brainstorm` or `triad-pair-plan`), or 3-CLI fact-check fan-out (use `triad-3way-question`).
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
🌐 한국어 문서: README.ko.md
Single-shot cross-CLI dispatch for a Claude Code leader: dispatch codex, gemini, and antigravity (agy) as single-shot workers with classification-aware routing, a self-improving classifier, and a cross-family pre-merge review.
codex installed, then codex login.gemini (Gemini CLI) installed, then its sign-in. 사내: available through
2026-07-31; after that the Google-family review leg degrades to claude+codex
(logged, not an error).agy (Antigravity) installed, then its OAuth sign-in. Not used 사내.Agent subagent — no separate install.python3 >= 3.12 on PATH (the bin/ wrappers run via #!/usr/bin/env python3)./plugin marketplace add <internal-git-url>
/plugin install triad-dispatch@triad-internal-tools
Private-repo auth uses your existing git credentials (an SSH key in ssh-agent,
or a gh/git credential helper). Background auto-update needs GITLAB_TOKEN /
GITHUB_TOKEN in your environment.
Local install (from a built folder). To test a locally-built copy before
publishing to the internal repo, point marketplace add at the plugin directory
itself — no git repo required (the directory's .claude-plugin/marketplace.json
is what is read; its relative source resolves for local-directory adds). The
path must be absolute or start with ./:
/plugin marketplace add ~/triad-dispatch-plugin
/plugin install triad-dispatch@triad-internal-tools
Test from a CLEAN working directory — not a checkout that already has its own
.claude/skills/ or .claude/agents/. Plugin skills/agents are namespaced
(e.g. triad-dispatch:triad-codex-dispatch), and a project's own same-named
.claude/skills / .claude/agents override the plugin's — so run from a
directory without those to exercise the plugin's own copies.
A plugin cannot grant Bash permissions, so you add them to your own
.claude/settings.json (or .claude/settings.local.json):
{ "permissions": { "allow": [
"Bash(codex_wrapper.py:*)",
"Bash(gemini_wrapper.py:*)",
"Bash(antigravity_wrapper.py:*)",
"Bash(agy-daily-check.sh:*)",
"Bash(gemini-daily-check.sh:*)"
] } }
Without this you are prompted on every dispatch (or denied when headless). The commands need network egress — the wrappers spawn the vendor CLIs, which make the API calls — so do not run them inside a no-network Bash sandbox.
After install + the permission allowlist, confirm the plugin is live:
command -v codex_wrapper.py resolves
under the installed plugin's bin/ (auto-added to PATH; no user action needed).triad-codex-dispatch (or
triad-gemini-dispatch) on a trivial prompt; expect the answer plus a
[wrapper] <cli> ok … summary line on stderr.~/.config/triad-dispatch/classifier-patches.json (in your home, not the
plugin dir); that file gains an entry and persists across plugin updates.triad-cross-family-review resolves its
Google-family leg at runtime (TRIAD_GOOGLE_REVIEW_CLI, else agy, else gemini)
and runs claude(Agent) + codex + that leg.Link: https://github.com/obra/superpowers . Install it via its marketplace
(/plugin marketplace add https://github.com/obra/superpowers then
/plugin install superpowers), or follow its README.
--task code mirrors a Superpowers implementer subagent, and
triad-cross-family-review is the capstone of
superpowers:subagent-driven-development.gemini skills), so install Superpowers as a companion. The bundled
gemini-daily-check.sh tracks the installed skill set (incl. superpowers).agy-daily-check.sh probes daily for a
"superpowers-for-agy" release.How the leader and the owner actually use the toolkit:
npx claudepluginhub codefoundry-io/triad-dispatch --plugin triad-dispatchMulti-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Unified status line for Claude Code with multi-CLI (Claude, Codex, Gemini, z.ai) usage monitoring, context, rate limits, and cost tracking