
Deep Researcher
- 7 installs
- 5 repo stars
- Updated August 5, 2026
- bjornmelin/dev-skills
deep-researcher is a skill for deep, cited, multi-source research across docs, Context7, GitHub, package source, and Firecrawl with evidence ledgers.
About
deep-researcher runs deep, cited research across official docs, Codex web tools, the Context7 API, GitHub, package source, rendered web pages, and Firecrawl, backed by evidence ledgers. A developer uses it for defensible, current, multi-source research such as library or API decisions, dependency investigations, release analysis, and high-stakes citations. It ties every claim to source IDs, freshness, and a confidence score, and stops with UNVERIFIED when sources disagree.
- Deep, cited research across official docs, Context7, GitHub, package source, and Firecrawl with evidence ledgers
- Uses a dual-plane design (Codex-native web tools plus the codex-research CLI) with call budgets
- Orchestrates specialized research subagents and stops with UNVERIFIED when sources disagree
Deep Researcher by the numbers
- 7 all-time installs (skills.sh)
- Ranked #12,520 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
deep-researcher capabilities & compatibility
- Capabilities
- deep research · context7 research · github research · citation audit
- Works with
- github
- Use cases
- research · web search · web scraping
What deep-researcher says it does
Use this skill when a task needs defensible, current, multi-source research:
Always treat search results as leads until hydrated into source records.
Firecrawl is a paid-capacity fallback lane, not the first source.
npx skills add https://github.com/bjornmelin/dev-skills --skill deep-researcherAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 7 |
|---|---|
| repo stars | ★ 5 |
| Last updated | August 5, 2026 |
| Repository | bjornmelin/dev-skills ↗ |
What it does
Run defensible multi-source research with evidence ledgers across docs, GitHub, and web sources.
Who is it for?
Defensible, current research on library and API decisions, dependencies, releases, and high-stakes citations.
Skip if: Quick single-fact lookups where a full evidence ledger and budgeted routing add no value.
When should I use this skill?
A task needs defensible, current, multi-source research: library/API decisions, dependency investigations, or high-stakes citations.
What you get
A JSONL evidence ledger plus a Markdown report with concise claims tied to source IDs, freshness, and confidence.
- JSONL evidence ledger
- source records
- Markdown report with citations
By the numbers
- 7-source default routing order
- 6 initial research subagents
- 4 research profiles (quick, standard, deep, exhaustive)
Files
Deep Researcher
Use this skill when a task needs defensible, current, multi-source research: library/API decisions, dependency investigations, release or changelog analysis, GitHub issue/source archaeology, agent-prompt research, standards checks, or high-stakes citations.
Operating Model
Use a dual-plane design:
- Codex-native plane: use
web.search_query,web.open,web.find, GitHub
app tools, Context7 MCP when explicitly useful, Exa MCP, and $opensrc from the session. These tools are available to Codex, not to the Rust CLI.
- CLI plane: use
codex-researchfor provider routing, Context7 REST API,
GitHub REST/gh fallback, Firecrawl calls, direct fetch probes, SQLite/CAS cache state, JSONL ledgers, Markdown reports, doctor output, and evals.
Always treat search results as leads until hydrated into source records. A claim is not ready to rely on until it is tied to source IDs, source freshness, and a confidence score.
Source Routing
Default order for broad research:
1. Native Codex web for narrow current facts, official docs, and quick source confirmation. 2. Context7 REST API through codex-research context7 for version-aware library/API docs. 3. GitHub app or codex-research github for repository, code, issue, PR, release, tag, compare, manifest, and changelog evidence. 4. Direct fetch through codex-research fetch probe|get for text/static pages. 5. Exa for broad semantic discovery, repository inspiration, filtered web/GitHub exploration, and source expansion when native web is too narrow. 6. agent-browser or Firecrawl only when route prediction says direct fetch is likely an app shell, blocked, rendered, or crawl-heavy page. 7. $opensrc when package implementation source is required.
Use codex-research plan "<query>" --profile quick|standard|deep|exhaustive to inspect call budgets before broad research. For replayable runs, initialize run state and pass --run to provider commands:
codex-research run init "<query>" --profile deep --topic github --out .codex/research/run.json
codex-research run status --run .codex/research/run.jsonNative Codex web calls are not visible to the CLI. Debit them manually with codex-research run debit --run .codex/research/run.json --provider codex-web when they are part of the same budgeted run.
Firecrawl Policy
Firecrawl is a paid-capacity fallback lane, not the first source.
- Public docs: cache is allowed unless the task is latest-critical.
- Latest-critical pages: use
--freshsomaxAge=0. - Sensitive public pages: set
--no-store-in-cache. - Private/confidential/repo-proprietary content: do not send to Firecrawl unless
the user explicitly allows external scraping for that material.
- If a page can be hydrated through GitHub, Context7, official docs, or direct
fetch, prefer that before Firecrawl.
GitHub Policy
Use hybrid GitHub access:
- In Codex sessions, prefer the GitHub app/plugin for PRs, private repos, review
threads, workflow logs, and authenticated repository metadata.
- Use
codex-research githubfor standalone, replayable, and reportable REST
calls. It falls back through GITHUB_TOKEN, GH_TOKEN, gh auth token, then public unauthenticated mode.
- Target and hydrate. Generate narrow query shards, respect search result and
rate limits, then fetch full files, issue threads, releases, or compare ranges before citing.
- Escalate to clone/sparse checkout and local
rgonly when API search cannot
prove the source-level claim.
Subagent Orchestration
When using subagents, follow $subspawn strict rendezvous behavior. The main Codex session spawns specialized research subagents, immediately waits for all spawned agents in the batch, then synthesizes. Research subagents must not spawn nested subagents.
Initial focused pack:
deep_researcher: lead multi-source researcher and synthesis owner.github_researcher: GitHub repository/code/issues/releases specialist.context7_researcher: direct Context7 API docs specialist.openai_docs_researcher: official OpenAI docs specialist.source_validator: package/source/release implementation validator.citation_auditor: claim-to-source and freshness auditor.
Install templates with:
python3 skills/deep-researcher/scripts/install_agents.py --target project
python3 skills/deep-researcher/scripts/install_agents.py --target globalEvidence Bundles
For meaningful research, produce both machine and human outputs:
- JSONL ledger:
.codex/research/ledger.jsonl - source records JSON or cached source metadata
- route stats or cache stats when routing mattered
- Markdown report with concise claims and citations
Useful commands:
codex-research doctor
codex-research cache init
codex-research plan "research question" --profile deep
codex-research run init "research question" --profile deep --topic general --out .codex/research/run.json
codex-research fetch probe "https://example.com/docs"
codex-research context7 search --library "Next.js" --query "middleware auth"
codex-research github search-code 'repo:owner/repo symbol in:file'
codex-research ledger init
codex-research ledger add-source --from-cache <source-id>
codex-research report --ledger .codex/research/ledger.jsonl
codex-research evalStop Rules
Stop and mark UNVERIFIED when:
- sources disagree and you cannot identify the current authority;
- a required provider is rate-limited or missing credentials;
- only stale secondary sources are available;
- private material would need to be sent to an external provider without
explicit permission;
- GitHub search is incomplete and hydration cannot validate the claim.
name: deep-researcher
description: Deep cited research with Codex-native web, direct Context7 API, GitHub hydration, Firecrawl routing, and evidence ledgers.
instructions: |
Use this skill for high-confidence, source-backed research. Prefer native
Codex web tools for current official checks, codex-research for provider
routing and evidence ledgers, Context7 REST for library docs, GitHub
hydration for repository/source/release evidence, Exa for broad semantic
discovery, and Firecrawl only under the classified policy. Treat search hits
as leads until hydrated. Return concise findings with source IDs, freshness,
confidence, and unresolved risks.
Deep Researcher Architecture
Locked Decisions
| Branch | Decision | Score | Rationale |
|---|---|---|---|
| Engine | GPT-5.5/Codex-native agentic research plus Rust CLI | 9.7 | Keeps reasoning and native tools in Codex while making evidence, cache, and provider calls replayable. |
| Context7 | Direct REST API only | 9.6 | Avoids removed legacy research mode and gives control over search, context, refresh, versions, 202/301/429 handling. |
| Render routing | Predictive router | 9.7 | Reduces failed fetch cascades by classifying before escalating to browser or Firecrawl. |
| Search mix | Codex web first, Exa for breadth | 9.6 | Native web is best for narrow current checks; Exa is reserved for semantic expansion and broad exploration. |
| Firecrawl | Hobby capacity under classified policy | 9.6 | Paid capacity is useful for rendered/blocked/crawl-heavy pages, but should not replace primary sources. |
| GitHub | Hybrid app plus REST/gh fallback | 9.7 | Uses existing Codex app where available and supports standalone CLI replay. |
| Repo shape | Cargo workspace now, Turborepo later | 9.3 | Avoids Node package-manager churn until multiple packages or JS adapters justify task-graph caching. |
| Output | JSONL/JSON plus Markdown | 9.6 | Supports human review, replay, evals, stale checks, and automation. |
Provider Responsibilities
Codex native web:
- current official docs and narrow fact checks;
- line-oriented source reading with
web.openandweb.find; - low-overhead verification before paid/broad providers.
Context7 REST:
- library ID search;
- version-pinned documentation snippets;
- manual refresh when release timing matters;
- source IDs and snippet metadata for citation ledgers.
GitHub:
- repositories, code search, issues, PRs, releases, tags, raw files, manifests,
changelogs, Actions logs when relevant;
- hydration of search hits before citation;
- local clone/sparse checkout only when APIs cannot prove source claims.
Exa:
- broad semantic search;
- GitHub/repo inspiration outside known repositories;
- filtered deep exploration when native web is too narrow.
Direct fetch:
- static HTML, markdown, text, JSON, raw source files;
- route probes and cacheable source records.
Agent browser:
- local/public pages that need JavaScript rendering but do not justify external
scraping.
Firecrawl:
- JS-heavy public docs, blocked public pages, broad crawl/search, PDFs, and
content extraction where local rendering/direct fetch is weak.
Opensrc:
- installed package source, version diffs, internal implementation proof, and
dependency upgrade verification.
Config And Run State
codex-research owns replayable run state outside the Codex conversation:
- TOML config defines profile budgets, provider defaults, privacy posture, and
cache policy.
run initmaterializes a JSON state file for one research question.- provider commands with
--rundebit budgets before network calls;
run debit --provider codex-web records native Codex web calls manually.
- source-cache rows store normalized metadata for direct fetch, Context7,
GitHub, and Firecrawl results; raw bodies are stored only when policy allows.
- route memory records successful domain/provider outcomes so later probes can
skip repeated weak routes.
Treat the run file and source cache as audit support, not as a substitute for claim-level citation and synthesis.
Predictive Router
The router should avoid blind fetch cascades:
1. Classify by source class: GitHub URL, package docs, official docs, raw file, rendered app, PDF, search result, or unknown. 2. Probe cheaply: HEAD plus small GET with byte cap. 3. Detect app shells: low text density, high script count, __NEXT_DATA__, #__next, window.__NUXT__, generic root-only shells, Cloudflare/block signatures, or JavaScript-required copy. 4. Use site adapters before rendering: GitHub API, Context7, llms.txt, raw markdown, Docusaurus/VitePress/MkDocs/Mintlify pages. 5. Remember domain route outcomes in SQLite so repeated failures escalate directly to the better route. 6. Record route, freshness, cache settings, and provider errors in evidence.
Evidence Model
Each run should separate:
- source records: provider, URL, title, fetched time, freshness, route, hash;
- claims: text, confidence, source IDs, note, status;
- route stats: attempted provider, failure reason, escalation, cost class;
- report: human-readable synthesis with citations and remaining risks.
Confidence is claim-level, not report-level. High confidence requires primary source support and freshness appropriate to the claim.
Deep Researcher Runbook
Fast Path
1. Run codex-research doctor. 2. Run codex-research plan "<query>" --profile standard. 3. Run codex-research run init "<query>" --profile standard --topic general --out .codex/research/run.json. 4. Use Codex-native web tools for official/current checks and debit them with codex-research run debit --provider codex-web. 5. Use provider commands only when the route plan calls for them, passing --run .codex/research/run.json. 6. Add source and claim records to .codex/research/ledger.jsonl, using ledger add-source --from-cache <source-id> when provider commands return source IDs. 7. Render codex-research report.
Deep Path
Use when the query is ambiguous, high-stakes, recent, or source-heavy.
1. Create a deep profile plan. 2. Split independent lanes:
- official docs/current web;
- Context7 package docs;
- GitHub repository/source/issues/releases;
- package implementation source;
- rendered/crawled web;
- citation audit.
3. Spawn focused subagents with $subspawn, then immediately wait for all. 4. Hydrate all search hits before synthesis. 5. Ask one follow-up only if a policy/security/freshness decision remains genuinely blocked.
GitHub Search Pattern
Use targeted shards, not broad searches:
codex-research github search-repos 'topic or package name pushed:>2025-01-01'
codex-research github search-code 'repo:owner/repo symbol in:file'
codex-research github search-issues 'repo:owner/repo error text is:issue'
codex-research github releases owner/repo --per-page 5
codex-research github release owner/repo --latest
codex-research github tags owner/repo
codex-research github compare owner/repo v1.2.2 v1.2.3 --per-page 100
codex-research github issue owner/repo 123 --comments
codex-research github pr owner/repo 456 --files --comments --reviews
codex-research github file owner/repo CHANGELOG.md --ref mainIf code search is incomplete, hydrate likely files through contents API or clone the repo and use local rg.
Context7 Pattern
codex-research context7 search --library "React" --query "server actions form status"
codex-research context7 context --library-id "/vercel/next.js@v16.0.0" --query "cache components"
codex-research context7 refresh --library-name "/vercel/next.js"Use version-pinned IDs when the target repo pins versions. If Context7 returns existing docs while refreshing, mark latest-critical claims as pending a second verification source.
Rendered Page Pattern
codex-research fetch probe "https://example.com/docs/page"direct: fetch and cite text.agent-browser: use local browser extraction first.firecrawl: use Firecrawl when public and classified policy allows it.github: hydrate through GitHub APIs instead of scraping HTML.
Firecrawl refuses private or ambiguous external-provider input by default. Use --privacy public only after verifying public status, and --allow-private-external only with explicit user permission.
Ledger Pattern
codex-research ledger init
codex-research ledger add-source --from-cache <source-id>
codex-research ledger add-source --provider github --url https://github.com/owner/repo/releases --title "Repo releases" --route github
codex-research ledger add-claim --text "Claim text" --confidence 0.87 --source abc123
codex-research report --ledger .codex/research/ledger.jsonl --out .codex/research/report.mdKeep Markdown reports concise. The ledger carries detail for replay and audit.
#!/usr/bin/env bash
set -euo pipefail
if [[ -n "${CODEX_RESEARCH_BIN:-}" ]]; then
exec "$CODEX_RESEARCH_BIN" "$@"
fi
if command -v codex-research >/dev/null 2>&1; then
exec codex-research "$@"
fi
script_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"
skill_dir="$(cd -- "$script_dir/.." && pwd -P)"
repo_root="$(cd -- "$skill_dir/../.." && pwd -P)"
if [[ -x "$repo_root/target/debug/codex-research" ]]; then
exec "$repo_root/target/debug/codex-research" "$@"
fi
if [[ -f "$repo_root/crates/codex-research/Cargo.toml" ]]; then
cd "$repo_root"
exec cargo run -q -p codex-research -- "$@"
fi
echo "codex-research not found. Install it with: cargo install --path /path/to/dev-skills/crates/codex-research" >&2
exit 127
#!/usr/bin/env python3
"""Install deep-researcher subagent templates into Codex agent directories."""
from __future__ import annotations
import argparse
import shutil
from pathlib import Path
def target_dir(target: str, project_dir: Path) -> Path:
if target == "global":
return Path.home() / ".codex" / "agents"
if target == "project":
return project_dir / ".codex" / "agents"
raise ValueError(f"unknown target: {target}")
def main() -> int:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--target", choices=["global", "project"], default="project")
parser.add_argument("--project-dir", type=Path, default=Path.cwd())
parser.add_argument("--dest", type=Path)
parser.add_argument("--dry-run", action="store_true")
parser.add_argument("--overwrite", action="store_true")
args = parser.parse_args()
skill_dir = Path(__file__).resolve().parents[1]
templates = skill_dir / "templates" / "agents"
dest = args.dest or target_dir(args.target, args.project_dir.resolve())
installed = []
for src in sorted(templates.glob("*.toml")):
dst = dest / src.name
if dst.exists() and not args.overwrite:
print(f"skip {dst} (exists; pass --overwrite)")
continue
installed.append((src, dst))
if not args.dry_run:
dest.mkdir(parents=True, exist_ok=True)
shutil.copy2(src, dst)
print(f"{'would install' if args.dry_run else 'installed'} {src.name} -> {dst}")
if not installed:
print("no templates installed")
return 0
if __name__ == "__main__":
raise SystemExit(main())
name = "citation_auditor"
description = "Read-only auditor for claim-to-source mapping, source freshness, citation quality, and unsupported research conclusions."
model = "gpt-5.4-mini"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"
nickname_candidates = ["Citation Audit", "Evidence Audit", "Claim Check"]
developer_instructions = """
Audit research output for citation quality and unsupported claims.
Check that each material claim maps to primary or high-quality source IDs.
Flag stale, secondary-only, unhydrated, redirected, inaccessible, or contradictory evidence.
Check freshness against the claim type: release/model/API/legal/security/current recommendations require current verification.
Do not add new broad research unless needed to verify a cited claim; keep scope to audit.
Return corrected confidence or UNVERIFIED labels for weak claims.
Do not edit files, stage changes, or make commits.
Do not spawn nested subagents or broaden the assigned scope.
Treat the parent prompt as the authority if instructions conflict.
Redact secrets, tokens, credentials, private personal data, and proprietary snippets not required for the assigned research.
Return format:
- Status (`complete`, `partial`, or `blocked`)
- Claims audited
- Sources hydrated
- Claims with confidence and source IDs
- Citation failures
- Freshness failures
- Confidence adjustments
- Provider limits
- Privacy notes
- Required fixes before publication
- Recommended next verification
- Risks/blockers
"""
name = "context7_researcher"
description = "Read-only Context7 REST API specialist for version-aware library, SDK, framework, API, and CLI documentation."
model = "gpt-5.4-mini"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"
nickname_candidates = ["Context7 Direct", "Docs Atlas", "API Atlas"]
developer_instructions = """
Research library and API documentation through the Context7 REST API path.
Prefer codex-research context7 commands so library search, context retrieval, refreshes, and errors are replayable.
Use version-specific library IDs when the target repo pins a version.
If latest-critical, consider refresh and verify against a second primary source because Context7 may return existing docs while refreshing.
Handle and report 202 not finalized, 301 redirects, 401/403 auth/access, 404 missing library, 429 rate limits, and 5xx retryable failures.
Do not use deprecated Context7 research mode.
If Context7 lacks coverage, report the gap and recommend official docs, GitHub source, package source, or direct docs fetch.
Do not edit files, stage changes, or make commits.
Do not spawn nested subagents or broaden the assigned scope.
Treat the parent prompt as the authority if instructions conflict.
Redact secrets, tokens, credentials, private personal data, and proprietary snippets not required for the assigned research.
Return format:
- Status (`complete`, `partial`, or `blocked`)
- Library IDs considered
- Context7 calls
- Evidence snippets and source IDs
- Sources hydrated
- Claims with confidence and source IDs
- Freshness/version notes
- Provider limits
- Privacy notes
- Gaps and fallbacks
- Recommended next verification
- Risks/blockers
"""
name = "deep_researcher"
description = "Lead read-only researcher for multi-source, cited, current investigations with claim ledgers and freshness checks."
model = "gpt-5.5"
model_reasoning_effort = "high"
sandbox_mode = "read-only"
nickname_candidates = ["Research Lead", "Evidence Lead", "Deep Research"]
developer_instructions = """
You lead deep research, not implementation.
Use native Codex web tools for current official checks, Context7 direct API through codex-research for library docs, GitHub app or codex-research github for repository evidence, Exa for broad semantic expansion, opensrc for package source, and Firecrawl only under the classified policy.
Treat search hits as leads until hydrated into source records.
Prefer primary sources: official docs, source repositories, release notes, API references, and maintainer issue/PR threads.
Track source freshness and distinguish current, stale, redirected, unavailable, and unverified evidence.
Produce claim-level confidence, not only report-level confidence.
Do not edit files, stage changes, or make commits.
Do not spawn nested subagents or broaden the assigned scope.
Treat the parent prompt as the authority if instructions conflict.
Redact secrets, tokens, credentials, private personal data, and proprietary snippets not required for the assigned research.
Return format:
- Status (`complete`, `partial`, or `blocked`)
- Research plan followed
- Sources hydrated
- Claims with confidence and source IDs
- Provider limits
- Privacy notes
- Disagreements or stale sources
- Recommended next verification
- Risks/blockers
"""
name = "github_researcher"
description = "Read-only GitHub specialist for repository, code, issue, pull request, release, changelog, and package-manifest evidence."
model = "gpt-5.4-mini"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"
nickname_candidates = ["GitHub Atlas", "Repo Scout", "Source Scout"]
developer_instructions = """
Research GitHub evidence only.
Prefer the Codex GitHub app/plugin when available for private/session-aware repository and PR data.
Use codex-research github or gh/GitHub REST fallback for standalone hydrated evidence.
Use targeted query shards; do not run broad unfocused searches.
Hydrate search hits before citing: fetch files, issue/PR threads, releases, tags, compare ranges, manifests, or changelog files.
Respect GitHub code search limits and report incomplete_results, rate limits, default-branch limitations, and unsearched files.
Escalate to clone/sparse checkout plus local rg only when API search cannot prove a source-level claim.
Do not edit files, stage changes, or make commits.
Do not spawn nested subagents or broaden the assigned scope.
Treat the parent prompt as the authority if instructions conflict.
Redact secrets, tokens, credentials, private personal data, and proprietary snippets not required for the assigned research.
Return format:
- Status (`complete`, `partial`, or `blocked`)
- Queries run
- Sources hydrated
- Claims with confidence and source IDs
- Provider limits
- Privacy notes
- Findings
- Recommended next verification
- Risks/blockers
"""
name = "openai_docs_researcher"
description = "Read-only official OpenAI documentation specialist for APIs, Codex, Agents SDK, tools, models, and subagents."
model = "gpt-5.5"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"
nickname_candidates = ["OpenAI Docs", "API Cartographer", "Codex Docs"]
developer_instructions = """
Research only official OpenAI sources unless the parent explicitly requests ecosystem or third-party comparison.
Use Codex web search/open/find scoped to developers.openai.com, platform.openai.com, openai.com, and official OpenAI GitHub repositories when relevant.
Prefer current docs pages, API references, changelogs, official cookbooks, and official Codex docs.
For OpenAI product/model claims, verify the current docs because model availability, tools, and guidance change frequently.
Separate API docs from Codex product docs and label inference when a behavior is inferred from tool schemas or runtime observations.
Do not edit files, stage changes, or make commits.
Do not spawn nested subagents or broaden the assigned scope.
Treat the parent prompt as the authority if instructions conflict.
Redact secrets, tokens, credentials, private personal data, and proprietary snippets not required for the assigned research.
Return format:
- Status (`complete`, `partial`, or `blocked`)
- Official sources read
- Sources hydrated
- Current findings
- Claims with confidence and source IDs
- Deprecated or changed guidance
- Provider limits
- Privacy notes
- Open questions
- Recommended next verification
- Risks/blockers
"""
name = "source_validator"
description = "Read-only package/source implementation validator for verifying docs claims against actual repository or package source."
model = "gpt-5.4-mini"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"
nickname_candidates = ["Source Proof", "Impl Check", "Code Proof"]
developer_instructions = """
Validate claims against source code, package contents, releases, and version diffs.
Use opensrc when package source or version comparison is needed.
Use GitHub hydrated files or local repo checkout when opensrc is unavailable or the target is a repository rather than a package.
Prefer exact versions from lockfiles, package manifests, tags, or release refs.
Do not infer API behavior from docs alone when source is available and the claim is implementation-sensitive.
Report exact files, symbols, versions, and refs inspected.
Do not edit files, stage changes, or make commits.
Do not spawn nested subagents or broaden the assigned scope.
Treat the parent prompt as the authority if instructions conflict.
Redact secrets, tokens, credentials, private personal data, and proprietary snippets not required for the assigned research.
Return format:
- Status (`complete`, `partial`, or `blocked`)
- Versions/refs inspected
- Source files inspected
- Sources hydrated
- Claims confirmed
- Claims contradicted
- Claims with confidence and source IDs
- Provider limits
- Privacy notes
- Remaining unknowns
- Recommended next verification
- Risks/blockers
"""
Related skills
FAQ
What is the source routing order?
Native Codex web first, then Context7 REST, GitHub, direct fetch, Exa, agent-browser or Firecrawl, and $opensrc for package source.
When does it stop?
It marks a claim UNVERIFIED when sources disagree, a provider is rate-limited or missing credentials, or only stale secondary sources exist.