/deep-research
Deep, multi-source, fact-checked web research with agy — reach for it when a decision or design depends on getting it right and a single-shot answer is not enough (architecture / tool / vendor choices, thorough landscape scans, anything you will act on). Builds an evidence
$ npx -y skills add MarcosNahuel/antigravity-plugin-cc --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/deep-research
Context preview
What this command does when you run it.
Deep, multi-source, fact-checked web research with agy — reach for it when a decision or design depends on getting it right and a single-shot answer is not enough (architecture / tool / vendor choices, thorough landscape scans, anything you will act on). Builds an evidence
Command definition
deep-research.mddescription: Deep, multi-source, fact-checked web research with agy — reach for it when a decision or design depends on getting it right and a single-shot answer is not enough (architecture / tool / vendor choices, thorough landscape scans, anything you will act on). Builds an evidence matrix + a plan you approve, then agy browses each angle in parallel while Claude reasons convergence across adaptive rounds (--depth L<=2 / H<=4), runs an agy red-team pass, and returns a cited report with evidence/inference/assumption tags + an applied recommendation. Heavier and slower than /agy:research (single-shot) — use it when depth and correctness matter more than speed.
argument-hint: "[--depth L|H] [--background] [--yes] [--engines agy|mixed] <topic>"
context: fork
allowed-tools: Bash, Write, Read, Workflow
Deep research command. Does **not** replace `/agy:research` (that one is a fast single-shot lookup) — this one drives a multi-round loop through the `deep-research-agy` Workflow: agy browses several angles in parallel per round, Claude judges coverage and convergence between rounds, a red-team pass challenges the central/single-source claims, and only then does synthesis produce the final report.
Raw user request: $ARGUMENTS
Step 1 — Parse + preflight (ONE Bash call)
- `--depth L|H` (default `L`). `H` runs up to 4 rounds instead of 2, red-teams up to 10 claims instead
of 5, and allows longer per-angle timeouts (4m vs 3m) — reserve it for topics that need real convergence (contradictory sources, a recommendation that must survive red-teaming), not quick lookups.
- `--background` runs the Workflow with `run_in_background: true` and **implies `--yes`** (you can't
approve a plan you won't be watching).
- `--yes` skips the plan gate (Step 3) and goes straight to Step 4.
- `--engines agy|mixed` (default `agy`). **`mixed` is currently accepted but behaves identically to
`agy`** — there is no second browsing engine wired in yet. If the user asks what `mixed` does, say this plainly; don't imply real engine diversity that doesn't exist.
- Strip all flags above from `$ARGUMENTS`; what remains, trimmed, is `<topic>`. If empty, ask once:
"What should I deep-research?" and stop.
- Build `SLUG` from `<topic>` (lowercase, non-alphanumeric → `-`, collapse repeats, trim to 60 chars)
and `DATE` = today, ISO `YYYY-MM-DD`.
- `WRITE_FILE` = absolute path to `docs/agy/research/<DATE>-<SLUG>.md`.
`DEEP_DIR` = absolute path to `docs/agy/research/.deep/<DATE>-<SLUG>`.
- One Bash call does the preflight + scaffolding together — agy presence check, then both `mkdir -p`:
mkdir -p "docs/agy/research/.deep/<DATE>-<SLUG>"
command -v agy >/dev/null 2>&1 && agy --version || echo "AGY_MISSING"
If the output is `AGY_MISSING`, tell the user to run `/agy:setup` first and **stop** — don't launch a multi-round Workflow (several minutes, several agy calls) against a broken/missing `agy`.
Step 2 — Evidence matrix + angles (Claude reasons, no tool calls)
Decompose `<topic>` yourself into:
1. **Evidence matrix** — rows of `{ id, question, evidenceType, sourceQualityBar, recencyRequirement, contradictionCheck, recommendationChanging }`. `recommendationChanging: true` marks rows whose answer could flip the conclusion — those are the ones convergence and the red-team pass weigh most heavily. 2. **Angles** — `{ label, query, rationale, targetsMatrixIds }`. 3-4 angles at depth `L`, 5-6 at depth `H`. Every angle must target at least one matrix row; every `recommendationChanging` row should be targeted by at least one angle.
Step 3 — Plan gate (skip on `--yes` / `--background`)
Show the user the matrix + angles (a compact table is fine) and wait for an explicit go-ahead or edits. Apply any requested edits and re-show if they were non-trivial. Only proceed to Step 4 once the user is on board. With `--yes` or `--background`, skip this step entirely.
Step 4 — Launch the Workflow
Workflow({
scriptPath: "${CLAUDE_PLUGIN_ROOT:-$PWD}/plugins/antigravity/scripts/deep-research-agy.js",
args: {
question: <topic>,
matrix: <matrix from Step 2>,
angles: <angles from Step 2>,
depth: "L" | "H",
engines: "agy" | "mixed",
deepDir: <DEEP_DIR, absolute>,
date: <DATE>,
title: <topic>
},
run_in_background: <true if --background, else false>
})`args` is passed as a JSON **object** (the workflow parses it defensively either way, but always pass an object here). `deepDir` and `title` must be final, absolute/resolved values — never placeholders.
- **If `--background`**: tell the user it's running and mention `DEEP_DIR` (partial per-angle
transcripts land there as the rounds progress), then stop — do not block waiting for it. Steps 5-6 only run once you have the Workflow's result in hand (a follow-up turn, or the user checking back).
- **If not background**: await the result — `{ report, coverage, rounds, converged }`. `report`
already conforms to the report schema and `report.coverage` is pre-populated (deterministic, code-computed inside the workflow) — do not recompute or second-guess it.
Step 5 — Grounding + render (Claude, after the Workflow returns)
- **Grounding** (only when the topic asks to apply the findings to a known local design — e.g.
capataz/brain, or this repo's own architecture): si el tema pide aplicar los hallazgos a un diseño/proyecto local conocido Y tenés herramientas de memoria o búsqueda local disponibles (p.ej. engram, grep del repo), usalas para traer contexto y completar `appliedRecommendation.groundedContext` — este es el único campo que el workflow deja deliberadamente vacío, ya que no tiene acceso a memoria o archivos locales. Si no hay ninguna herramienta de ese tipo disponible, o el tema es investigación general sin nada local contra qué anclar, saltá este sub-paso y dejá `groundedContext` tal como lo devolvió el workflow (vacío).
- **Render** — do not hand-roll the markd
Read more
description: Deep, multi-source, fact-checked web research with agy — reach for it when a decision or design depends on getting it right and a single-shot answer is not enough (architecture / tool / vendor choices, thorough landscape scans, anything you will act on). Builds an evidence matrix + a plan you approve, then agy browses each angle in parallel while Claude reasons convergence across adaptive rounds (--depth L<=2 / H<=4), runs an agy red-team pass, and returns a cited report with evidence/inference/assumption tags + an applied recommendation. Heavier and slower than /agy:research (single-shot) — use it when depth and correctness matter more than speed. argument-hint: "[--depth L|H] [--background] [--yes] [--engines agy|mixed] <topic>" context: fork allowed-tools: Bash, Write, Read, Workflow
Deep research command. Does **not** replace `/agy:research` (that one is a fast single-shot lookup) — this one drives a multi-round loop through the `deep-research-agy` Workflow: agy browses several angles in parallel per round, Claude judges coverage and convergence between rounds, a red-team pass challenges the central/single-source claims, and only then does synthesis produce the final report.
Raw user request: $ARGUMENTS
Step 1 — Parse + preflight (ONE Bash call)
- `--depth L|H` (default `L`). `H` runs up to 4 rounds instead of 2, red-teams up to 10 claims instead
of 5, and allows longer per-angle timeouts (4m vs 3m) — reserve it for topics that need real convergence (contradictory sources, a recommendation that must survive red-teaming), not quick lookups.
- `--background` runs the Workflow with `run_in_background: true` and **implies `--yes`** (you can't
approve a plan you won't be watching).
- `--yes` skips the plan gate (Step 3) and goes straight to Step 4.
- `--engines agy|mixed` (default `agy`). **`mixed` is currently accepted but behaves identically to
`agy`** — there is no second browsing engine wired in yet. If the user asks what `mixed` does, say this plainly; don't imply real engine diversity that doesn't exist.
- Strip all flags above from `$ARGUMENTS`; what remains, trimmed, is `<topic>`. If empty, ask once:
"What should I deep-research?" and stop.
- Build `SLUG` from `<topic>` (lowercase, non-alphanumeric → `-`, collapse repeats, trim to 60 chars)
and `DATE` = today, ISO `YYYY-MM-DD`.
- `WRITE_FILE` = absolute path to `docs/agy/research/<DATE>-<SLUG>.md`.
`DEEP_DIR` = absolute path to `docs/agy/research/.deep/<DATE>-<SLUG>`.
- One Bash call does the preflight + scaffolding together — agy presence check, then both `mkdir -p`:
mkdir -p "docs/agy/research/.deep/<DATE>-<SLUG>" command -v agy >/dev/null 2>&1 && agy --version || echo "AGY_MISSING"
If the output is `AGY_MISSING`, tell the user to run `/agy:setup` first and **stop** — don't launch a multi-round Workflow (several minutes, several agy calls) against a broken/missing `agy`.
Step 2 — Evidence matrix + angles (Claude reasons, no tool calls)
Decompose `<topic>` yourself into:
1. **Evidence matrix** — rows of `{ id, question, evidenceType, sourceQualityBar, recencyRequirement, contradictionCheck, recommendationChanging }`. `recommendationChanging: true` marks rows whose answer could flip the conclusion — those are the ones convergence and the red-team pass weigh most heavily. 2. **Angles** — `{ label, query, rationale, targetsMatrixIds }`. 3-4 angles at depth `L`, 5-6 at depth `H`. Every angle must target at least one matrix row; every `recommendationChanging` row should be targeted by at least one angle.
Step 3 — Plan gate (skip on `--yes` / `--background`)
Show the user the matrix + angles (a compact table is fine) and wait for an explicit go-ahead or edits. Apply any requested edits and re-show if they were non-trivial. Only proceed to Step 4 once the user is on board. With `--yes` or `--background`, skip this step entirely.
Step 4 — Launch the Workflow
Workflow({
scriptPath: "${CLAUDE_PLUGIN_ROOT:-$PWD}/plugins/antigravity/scripts/deep-research-agy.js",
args: {
question: <topic>,
matrix: <matrix from Step 2>,
angles: <angles from Step 2>,
depth: "L" | "H",
engines: "agy" | "mixed",
deepDir: <DEEP_DIR, absolute>,
date: <DATE>,
title: <topic>
},
run_in_background: <true if --background, else false>
})`args` is passed as a JSON **object** (the workflow parses it defensively either way, but always pass an object here). `deepDir` and `title` must be final, absolute/resolved values — never placeholders.
- **If `--background`**: tell the user it's running and mention `DEEP_DIR` (partial per-angle
transcripts land there as the rounds progress), then stop — do not block waiting for it. Steps 5-6 only run once you have the Workflow's result in hand (a follow-up turn, or the user checking back).
- **If not background**: await the result — `{ report, coverage, rounds, converged }`. `report`
already conforms to the report schema and `report.coverage` is pre-populated (deterministic, code-computed inside the workflow) — do not recompute or second-guess it.
Step 5 — Grounding + render (Claude, after the Workflow returns)
- **Grounding** (only when the topic asks to apply the findings to a known local design — e.g.
capataz/brain, or this repo's own architecture): si el tema pide aplicar los hallazgos a un diseño/proyecto local conocido Y tenés herramientas de memoria o búsqueda local disponibles (p.ej. engram, grep del repo), usalas para traer contexto y completar `appliedRecommendation.groundedContext` — este es el único campo que el workflow deja deliberadamente vacío, ya que no tiene acceso a memoria o archivos locales. Si no hay ninguna herramienta de ese tipo disponible, o el tema es investigación general sin nada local contra qué anclar, saltá este sub-paso y dejá `groundedContext` tal como lo devolvió el workflow (vacío).
- **Render** — do not hand-roll the markd
A local NotebookLM, multi-agent deep research, and 21 more commands — for Claude Code, powered by Google Antigravity (agy / Gemini 3.x), the official CLI that replaces the now-deprecated gemini-cli.
Repo: MarcosNahuel/antigravity-plugin-cc
Other commands on marcosnahuel-antigravity-plugin-cc.
- /ask
One-shot prompt to Antigravity (agy) — quick question, returns response verbatim. No file persistence to docs/.
Open command - /design-review
Run a UX/visual design audit of a URL using Antigravity (agy). Captures desktop + mobile screenshots, scores 10 dimensions (hierarchy, typography, color, spacing, a11y, etc.), benchmarks against industry. Saves to docs/agy/design-reviews/.
Open command - /doc-to-md
Convert a PDF, docx, image, or other document to clean Markdown using Antigravity (agy) multimodal Gemini. Saves to docs/agy/converted/.
Open command - /graph
Build a knowledge GRAPH of a folder (code + docs) with Graphify — tree-sitter ASTs + NetworkX + Leiden communities + an interactive graph.html. The code graph is built LOCALLY and costs zero tokens on any assistant; Gemini via agy only names the communities. Then Claude reads
Open command - /media
Ask a question about an AUDIO, VIDEO or IMAGE file (or a YouTube/remote URL) with Antigravity (agy / Gemini 3.x multimodal). Beyond transcription — "what decisions were made in this meeting?", "what happens at 2:30 in the video?", "what's the tone of this voice note?". Claude
Open command - /model
Show or set the agy (Antigravity / Gemini) model by writing ~/.gemini/antigravity-cli/settings.json — the reliable way to switch models (the unreliable --model flag silently falls back to the default). No agy call; takes effect immediately, no plugin reinstall.
Open command

