
cross-modal-review
Quality gate via second model. Spawn a different AI model to review work before committing. Includes refusal routing: if one model refuses, switch silently to the next. Extended in v0.25.1 with structured review-mode gating (when to invoke vs not) and a Codex code-review handoff for the diff-review case.
- Installs
- 242
- Last 24h
- +9
- Trending rank
- #9002
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/garrytan/gbrain --skill cross-modal-review- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads cross-modal-review automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Cross-Modal Review
Convention: see conventions/cross-modal.yaml for the review pairs and refusal routing chain.
Relationship to
gbrain eval cross-modal: This skill is the manual mid-flow gate (one model reviews work product before commit, with refusal routing). Thegbrain eval cross-modalcommand (v0.27.x) is a sibling surface: 3 different-provider frontier models score-and-iterate on a documented dimension list before tests cement behavior. Use this skill for ad-hoc second opinions; usegbrain eval cross-modalfor the skillify Phase 3 quality gate. The two are complementary, not redundant.
Contract
This skill guarantees:
- Work product is reviewed by a different model before finalizing.
- The review is graded against the originating skill's Contract section (what was promised), not vibes.
- Agreement and disagreement are reported transparently.
- Refusal from one model triggers a silent switch to the next in chain.
- The user always makes the final decision (user sovereignty).
When to invoke (v0.25.1 gating)
Invoke this skill when:
- Significant code changes — any commit touching 5+ files or 100+ lines. Architecture decisions, refactors, API changes.
- Security-sensitive changes — auth flows, brain-write trust boundaries, webhook transforms, cross-skill data passing.
- Stuck or churning — 2+ iterations on the same problem without progress.
- Pre-bulk-operation — before running batch enrichment, migrations, or bulk writes (see conventions/test-before-bulk.md).
- Skill creation / modification — new or rewritten skills that affect operational behavior.
- Brain-page quality concerns — when brain writes need validation against the originating skill's Contract.
Do NOT invoke for:
- Simple memory writes or brain-page updates
- Single-file typo fixes
- Routine cron output or heartbeat operations
- Git commit / push of already-reviewed work
Phases
- Capture the work product. The brain page, analysis, code diff, or decision to be reviewed.
- Load the Contract. Read the originating skill's Contract section (what was promised).
- Spawn review model. Send the work + Contract to a different model. Use conventions/model-routing.md for model selection.
- Grade. Model evaluates: did the output follow the Contract? Pass / fail with specific citations.
- Report. Present agreement / disagreement to the user. Never auto-apply the reviewer's suggestions.
Code-review handoff (v0.25.1 extension)
For diff review specifically, gstack ships a /codex skill that wraps
the OpenAI Codex CLI. Two modes:
Codex Review
Independent diff review from a different AI system. The user invokes
/codex review (gstack-shipped); cross-modal-review's job is to
RECOGNIZE when this is the right tool and recommend it explicitly.
When to recommend /codex review:
- After a substantive diff lands and before merge
- When the user wants a second opinion that's NOT another Claude
Output framing (when cross-modal-review surfaces Codex output):
CODEX REVIEW (independent second opinion):
══════════════════════════════════════════
<full codex output, verbatim>
══════════════════════════════════════════
CROSS-MODEL ANALYSIS:
Both found: [overlapping findings]
Only Codex: [findings unique to Codex]
Only Claude: [findings unique to my analysis]
Agreement: X% (N/M findings overlap)
User decides what to act on. Cross-model agreement is signal, not permission.
Adversarial Challenge
Same shape, different prompt. Used on security-sensitive changes: the reviewer is asked to find injection vectors, race conditions, auth bypasses, data leaks, privilege escalation paths.
Output adds an exploitability rating (CRITICAL / HIGH / MEDIUM / LOW) and recommended mitigations.
Refusal routing
If the primary review model refuses:
- Switch silently to the next model in the chain (see
conventions/cross-modal.yaml). - Don't show the refusal to the user.
- Don't announce the switch.
- If ALL models in the chain refuse, escalate to the user.
Output format
Standard review
Cross-Modal Review
==================
Reviewer: {model name}
Contract: {originating skill}
Verdict: PASS | ISSUES FOUND
Findings:
- {finding with evidence}
Agreement with primary: {X}%
Code review
Cross-Modal Review (code)
==========================
Mode: Codex Review | Adversarial Challenge
Files changed: N
Lines changed: +N / -N
{mode-specific output above}
User-sovereignty rule (Iron Law)
Reviewer findings are INFORMATIONAL until the user explicitly approves each one. Do NOT incorporate reviewer recommendations into the work product without presenting each finding and getting explicit approval. This applies even when the reviewer is correct. Cross-model consensus is a strong signal — present it as such — but the user makes the decision.
When it fails
Follow the agent operator protocol for any gbrain error code, exit code, [AGENT] block or notice block. Specific to this skill:
- A review model refuses: switch to the next model in the chain silently; escalate to the user only when every model refuses.
gbrain eval cross-modalfails on a missing provider key orno_pricing: name the missing provider and run with the models that are configured; never report a review that did not run as passed.
Anti-Patterns
- ❌ Auto-applying reviewer suggestions without user approval
- ❌ Showing model refusals to the user
- ❌ Using the same model for review and generation
- ❌ Skipping the Contract reference (reviewing vibes, not guarantees)
- ❌ Code-reviewing trivial changes (typos, formatting)
- ❌ Running code review without git-diff context
Related skills
- gstack
/codex— the actual Codex CLI wrapper this skill hands off to for diff-review mode. Cross-modal-review knows WHEN to invoke; /codex knows HOW. skills/testing/SKILL.md— runs the project test suite; complementary signal for "is this commit safe to land"skills/conventions/cross-modal.yaml— review pairs + refusal routing
Output Format
The skill's output shape is documented inline in the body sections above (see "Output", "Brain page format", or equivalent). The literal section header here exists for the conformance test (test/skills-conformance.test.ts).
FAQ
What does the cross-modal-review skill do?
Quality gate via second model. Spawn a different AI model to review work before committing. Includes refusal routing: if one model refuses, switch silently to the next. Extended in v0.25.1 with structured review-mode gating (when to invoke vs not) and a Codex code-review handoff for the diff-review case.
How do I install cross-modal-review?
Run npx skills add https://github.com/garrytan/gbrain --skill cross-modal-review in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/cross-modal-review/ (personal) or .claude/skills/cross-modal-review/ (project).
Which AI agents can use cross-modal-review?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is cross-modal-review safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains cross-modal-review?
It is published by garrytan in garrytan/gbrain. It has 242 recorded installs.
More from garrytan/gbrain
brain-ops
garrytan/gbrain
Brain knowledge base operations. The core read/write cycle: brain-first lookup, read-enrich-write loop, source attribution, ambient enrichment, back-linking. Read this before any brain interaction.
query
garrytan/gbrain
Answer questions using the brain's knowledge with 3-layer search, synthesis, and citation propagation. Use when the user asks a question, wants a lookup, or needs information from the brain.
maintain
garrytan/gbrain
Brain health checks: back-link enforcement, citation audit, filing validation, stale info detection, orphan pages, and benchmarks. Use when asked to check brain health, run maintenance, or audit quality.
idea-ingest
garrytan/gbrain
Ingest links, articles, tweets, and ideas into the brain. Fetch content, save to brain with analysis, credit the author (people page only when they pass the notability gate), and cross-link. Use when the user shares a link or says "read this", "save this", "think about this".
enrich
garrytan/gbrain
Enrich brain pages with tiered enrichment protocol. Creates and updates person/company pages with compiled truth, timeline, and cross-links. Use when a new entity is mentioned or an existing page needs updating.
meeting-ingestion
garrytan/gbrain
Ingest meeting transcripts from ANY meeting recorder into brain pages with attendee enrichment, entity propagation, and timeline merge. One unified pipeline: normalize the source into a standard transcript record, split multi-meeting recordings, resolve speakers by evidence, create the page, pass every surprising claim through the consistency check (transcript + brain + plausibility), enrich every entity, then run the verification checklist — substance AND sequence. A meeting is NOT fully ingested until the enrich skill has processed every entity AND the verification checklist passes, including the sequence verify (PASS or explicit user waive).
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.