Deep Research
Produce a decision-grade answer whose important claims can be traced to evidence. Do not confuse a long answer, many agents, or majority agreement with research quality.
Inputs
Treat the user's request, invocation arguments, or $ARGUMENTS as QUERY.
Derive:
- the exact question and requested decision or artifact;
- scope, exclusions, and relevant time horizon;
- freshness requirements;
- the evidence needed to call the result complete;
- safety, privacy, copyright, and authorization boundaries.
Make reasonable assumptions and proceed. Ask a question only when an answer is required to avoid unsafe work or materially different outcomes.
Research contract
- Report only claims supported by cited sources, inspected artifacts, or recorded experiments.
- Separate observed, documented, inferred, disputed, and unknown claims.
- Prefer primary evidence. Never invent citations or cite a search-result snippet as if it were the underlying source.
- Use independent tracks with non-overlapping scopes. Do not send multiple agents to repeat the same search.
- Treat convergence as a prioritization signal, not proof. Verify majority-supported conclusions against evidence.
- Preserve minority findings when they identify a concrete contradiction, failure mode, or missing assumption.
- Do not expose credentials, private data, proprietary source, or copyrighted material beyond what is necessary for analysis.
- State blockers and evidence gaps plainly. Never make a partial result look complete.
Step 1: Frame the investigation
Write a compact internal brief:
Question:
Decision or deliverable:
In scope:
Out of scope:
Freshness cutoff:
Completion checks:
Constraints:
For current facts, record the current date and verify publication or release dates. For comparisons, define evaluation criteria before collecting results. For reverse engineering, define the observable boundary and clean-room rules before inspecting artifacts.
Step 2: Design distinct tracks
For substantial or explicitly deep research, default to eight strategy tracks. Adapt these archetypes to the domain while keeping every scope distinct:
- Primary-source track - official specifications, source repositories, first-party announcements, standards, papers, or authoritative records.
- Artifact track - local files, datasets, logs, transcripts, binaries, schemas, or outputs owned or authorized by the user.
- Public-ecosystem track - current implementations, release history, adoption, credible independent analysis, and competing approaches.
- Protocol/implementation track - interfaces, data flow, state transitions, persistence, limits, and failure behavior.
- Experimental track - safe black-box probes or reproducible tests that distinguish competing explanations.
- Adversarial track - attempts to falsify key claims and locate contradictions, edge cases, and misleading evidence.
- Systems track - the minimum causal or architectural model that explains all observations, with observed versus inferred labels.
- Equivalent/action track - an independent solution, recommendation, or implementation design derived from verified behavior rather than copied internals.
For a narrow lookup, reduce the track count instead of manufacturing work. For a strategy bake-off, give each strategy agent the same normalized evidence and a different explicit approach.
Step 3: Define track contracts
Give every researcher enough standalone context to work without the parent conversation. Include:
- the shared question, scope, constraints, and freshness cutoff;
- one unique strategy ID and non-overlapping assignment;
- allowed and prohibited sources or tools;
- the expected output schema;
- a requirement for exact URLs, paths, versions, dates, commands, or line references;
- a requirement to label facts, inferences, confidence, contradictions, and remaining unknowns.
Use the strongest available model and reasoning level for substantial tracks. Keep contexts isolated until synthesis so one agent's conclusion does not anchor the others.
Step 4: Collect evidence
Use this source order:
- directly observed behavior and reproducible experiments;
- primary artifacts and official specifications;
- first-party documentation and release notes;
- peer-reviewed or reputable independent analysis;
- community reports only as leads to verify.
Record claims in an evidence ledger. Use
references/evidence-ledger.md when the
investigation has more than a handful of claims.
For each source:
- open the underlying document;
- capture title, publisher or owner, date, retrieval date, and stable URL/path;
- extract only the evidence needed for the claim;
- note version, commit, environment, or account tier when behavior may vary;
- cross-check stale or frequently changing information.
Step 5: Run safe experiments
Use experiments when documentation is absent, ambiguous, or contradicted.
- Change one variable at a time.
- Prefer read-only, reversible, zero-cost probes.
- Record exact input, environment/version, output, and interpretation.
- Distinguish "not observed" from "impossible."
- Do not bypass access controls, organizational policy, quotas, or licensing.
- Do not treat static string presence as proof that a feature is active.
For clean-room reverse engineering:
- analyze user-owned artifacts and public interfaces;
- summarize behavior instead of reproducing proprietary implementation;
- label each conclusion observed or inferred;
- hash/version the inspected build where useful;
- design an independent equivalent from behavior and requirements.
Step 6: Execute efficiently
If the host supports dynamic workflows:
- express real dependencies explicitly;
- use parallel fan-out for independent tracks;
- use streaming map/verify only when each item can advance independently;
- require structured outputs with a schema;
- journal starts and successful results;
- make side-effecting work idempotent before enabling resume.
If the host supports ordinary subagents:
- launch independent tracks in parallel;
- continue genuinely independent parent work while they run;
- collect each result once when completion is reported;
- retry only failed or invalid tracks, not successful work;
- reuse the same agent for a refinement when it retains context.
If no subagents exist, run the same tracks sequentially and preserve their separate evidence ledgers.
Do not poll background workers. If a global quota or authentication failure will make queued work fail, stop admitting new work and surface the blocker.
Step 7: Adversarial verification
Before synthesis, create a verification pass independent from the original researchers.
For every decision-changing claim:
- locate its strongest evidence;
- check whether the evidence actually entails the claim;
- search for version, scope, account, geography, or environment qualifiers;
- attempt one concrete falsification or counterexample;
- downgrade or remove claims that cannot survive verification.
When agents disagree, resolve the disagreement using source quality and reproducibility. Do not settle it by vote alone. When verification is blocked, retain both interpretations and name the missing experiment.
Step 8: Synthesize
Build the answer from the claim ledger, not from agent prose.
- Answer the user's core question first.
- Present confirmed findings in impact order.
- Explain the minimum model that accounts for the evidence.
- Distinguish facts from high-, medium-, and low-confidence inference.
- Include contradictions and genuine unknowns.
- For recommendations, connect each action to a verified finding.
- If strategies were compared, choose a majority-supported approach only after it passes evidence checks; preserve consequential minority objections.
- Cite every externally verifiable, time-sensitive, or non-obvious claim.
Use concise prose by default. Do not dump internal agent transcripts or process logs unless requested.
Output contract
Use the smallest structure that fully communicates the result:
# Answer
Direct conclusion.
## Confirmed findings
- Claim - evidence and citation.
## Model or explanation
Observed behavior, then clearly labeled inference.
## Contradictions and unknowns
- What remains unresolved and why.
## Recommended action
Prioritized, evidence-linked steps.
## Sources
- Primary sources first.
For implementation research, add a testable clean-room specification, invariants, failure modes, and acceptance tests.
Resume and failure rules
- Persist track IDs, inputs, source list, result status, and evidence hashes when the host supports artifacts.
- On resume, reuse validated results whose inputs and evidence are unchanged.
- Rerun a failed track and any downstream synthesis that depends on it.
- Assume side effects are at-least-once unless protected by an idempotency key.
- A completed orchestration is not necessarily complete research. Disclose failed tracks and enforce the completion checks below.
Completion checks
Do not declare completion until:
- every required track succeeded or its failure is explicitly disclosed;
- every high-impact claim has primary, observed, or independently reproduced support;
- important contradictions are resolved or preserved as unknowns;
- freshness-sensitive claims were checked against current sources;
- recommendations follow from the evidence;
- citations or artifact references are usable;
- a fresh verification pass found no unaddressed critical gap.
The RAPP conversion path for this skill is documented in
references/rapp-agent-conversion.md.
Run this — do not improvise
This capability's deterministic implementation is a RAPP single-file agent, linked beside this file as deep_research_agent.py and embedded as the fenced Python below (sha256 86e2c6c28d44fa2f…; a byte-exact copy is also vaulted in the capsule comment at the end of this file). On a host with sandbox execution, run the linked file directly — if it is missing, write the fence contents verbatim to deep_research_agent.py first:
python3 deep_research_agent.py '{"key": "value"}' # arguments as one JSON object
echo '{"key": "value"}' | python3 deep_research_agent.py # or on stdin
python3 deep_research_agent.py --tool # emit the JSON tool contract
Treat stdout as a tool result. If it reports missing or unresolved inputs, stop and collect them. If it returns steps, execute those steps in order exactly as returned; if it returns instructions, follow them with the supplied inputs. Otherwise use the result verbatim. Do not invent behavior beyond that output. On a host without code execution, treat the Parameters schema and the code below as the exact specification and never paraphrase a step. Never edit inside the generated markers; a converter-equipped host can instead restore the original file checksum-verified with the installed rapp-agent-converter/scripts/toast.py convert SKILL.md --to agent.
"""DeepResearch -- Performs rigorous, evidence-first deep research using distinct parallel research strategies, primary sources, local artifacts, controlled experiments, adversarial verification, and confidence-rated synthesis. Use when a user asks for deep research, exhaustive investigation, reverse engineering, current landscape analysis, high-stakes comparison, or a defensible implementation recommendation.
Generated by the rapp skill from deep-research. The RCI capsule at the bottom of this file carries the full original; `toast.py convert` restores it byte-exact."""
import json
import re
import sys
try:
from agents.basic_agent import BasicAgent
except ImportError: # running OUTSIDE the brainstem -- stay executable anyway.
class BasicAgent: # noqa: D101 - minimal stand-in, same contract
def __init__(self, name=None, metadata=None):
if name:
self.name = name
if metadata:
self.metadata = metadata
def perform(self, **kwargs):
return "Not implemented."
def system_context(self):
return None
def to_tool(self):
return {"type": "function", "function": {
"name": self.name,
"description": self.metadata.get("description", ""),
"parameters": self.metadata.get("parameters", {})}}
# The procedural layer, verbatim from the source capability. The brainstem
# returns this to the model, so the skill's instructions still drive behaviour
# -- now behind a typed, deterministic tool contract.
INSTRUCTIONS = '# Deep Research\n\nProduce a decision-grade answer whose important claims can be traced to\nevidence. Do not confuse a long answer, many agents, or majority agreement with\nresearch quality.\n\n## Inputs\n\nTreat the user's request, invocation arguments, or `$ARGUMENTS` as `QUERY`.\nDerive:\n\n- the exact question and requested decision or artifact;\n- scope, exclusions, and relevant time horizon;\n- freshness requirements;\n- the evidence needed to call the result complete;\n- safety, privacy, copyright, and authorization boundaries.\n\nMake reasonable assumptions and proceed. Ask a question only when an answer is\nrequired to avoid unsafe work or materially different outcomes.\n\n## Research contract\n\n1. Report only claims supported by cited sources, inspected artifacts, or\n recorded experiments.\n2. Separate **observed**, **documented**, **inferred**, **disputed**, and\n **unknown** claims.\n3. Prefer primary evidence. Never invent citations or cite a search-result\n snippet as if it were the underlying source.\n4. Use independent tracks with non-overlapping scopes. Do not send multiple\n agents to repeat the same search.\n5. Treat convergence as a prioritization signal, not proof. Verify\n majority-supported conclusions against evidence.\n6. Preserve minority findings when they identify a concrete contradiction,\n failure mode, or missing assumption.\n7. Do not expose credentials, private data, proprietary source, or copyrighted\n material beyond what is necessary for analysis.\n8. State blockers and evidence gaps plainly. Never make a partial result look\n complete.\n\n## Step 1: Frame the investigation\n\nWrite a compact internal brief:\n\n```text\nQuestion:\nDecision or deliverable:\nIn scope:\nOut of scope:\nFreshness cutoff:\nCompletion checks:\nConstraints:\n```\n\nFor current facts, record the current date and verify publication or release\ndates. For comparisons, define evaluation criteria before collecting results.\nFor reverse engineering, define the observable boundary and clean-room rules\nbefore inspecting artifacts.\n\n## Step 2: Design distinct tracks\n\nFor substantial or explicitly deep research, default to eight strategy tracks.\nAdapt these archetypes to the domain while keeping every scope distinct:\n\n1. **Primary-source track** - official specifications, source repositories,\n first-party announcements, standards, papers, or authoritative records.\n2. **Artifact track** - local files, datasets, logs, transcripts, binaries,\n schemas, or outputs owned or authorized by the user.\n3. **Public-ecosystem track** - current implementations, release history,\n adoption, credible independent analysis, and competing approaches.\n4. **Protocol/implementation track** - interfaces, data flow, state\n transitions, persistence, limits, and failure behavior.\n5. **Experimental track** - safe black-box probes or reproducible tests that\n distinguish competing explanations.\n6. **Adversarial track** - attempts to falsify key claims and locate\n contradictions, edge cases, and misleading evidence.\n7. **Systems track** - the minimum causal or architectural model that explains\n all observations, with observed versus inferred labels.\n8. **Equivalent/action track** - an independent solution, recommendation, or\n implementation design derived from verified behavior rather than copied\n internals.\n\nFor a narrow lookup, reduce the track count instead of manufacturing work. For\na strategy bake-off, give each strategy agent the same normalized evidence and\na different explicit approach.\n\n## Step 3: Define track contracts\n\nGive every researcher enough standalone context to work without the parent\nconversation. Include:\n\n- the shared question, scope, constraints, and freshness cutoff;\n- one unique strategy ID and non-overlapping assignment;\n- allowed and prohibited sources or tools;\n- the expected output schema;\n- a requirement for exact URLs, paths, versions, dates, commands, or line\n references;\n- a requirement to label facts, inferences, confidence, contradictions, and\n remaining unknowns.\n\nUse the strongest available model and reasoning level for substantial tracks.\nKeep contexts isolated until synthesis so one agent's conclusion does not\nanchor the others.\n\n## Step 4: Collect evidence\n\nUse this source order:\n\n1. directly observed behavior and reproducible experiments;\n2. primary artifacts and official specifications;\n3. first-party documentation and release notes;\n4. peer-reviewed or reputable independent analysis;\n5. community reports only as leads to verify.\n\nRecord claims in an evidence ledger. Use\n[`references/evidence-ledger.md`](references/evidence-ledger.md) when the\ninvestigation has more than a handful of claims.\n\nFor each source:\n\n- open the underlying document;\n- capture title, publisher or owner, date, retrieval date, and stable URL/path;\n- extract only the evidence needed for the claim;\n- note version, commit, environment, or account tier when behavior may vary;\n- cross-check stale or frequently changing information.\n\n## Step 5: Run safe experiments\n\nUse experiments when documentation is absent, ambiguous, or contradicted.\n\n- Change one variable at a time.\n- Prefer read-only, reversible, zero-cost probes.\n- Record exact input, environment/version, output, and interpretation.\n- Distinguish "not observed" from "impossible."\n- Do not bypass access controls, organizational policy, quotas, or licensing.\n- Do not treat static string presence as proof that a feature is active.\n\nFor clean-room reverse engineering:\n\n- analyze user-owned artifacts and public interfaces;\n- summarize behavior instead of reproducing proprietary implementation;\n- label each conclusion observed or inferred;\n- hash/version the inspected build where useful;\n- design an independent equivalent from behavior and requirements.\n\n## Step 6: Execute efficiently\n\nIf the host supports dynamic workflows:\n\n- express real dependencies explicitly;\n- use parallel fan-out for independent tracks;\n- use streaming map/verify only when each item can advance independently;\n- require structured outputs with a schema;\n- journal starts and successful results;\n- make side-effecting work idempotent before enabling resume.\n\nIf the host supports ordinary subagents:\n\n- launch independent tracks in parallel;\n- continue genuinely independent parent work while they run;\n- collect each result once when completion is reported;\n- retry only failed or invalid tracks, not successful work;\n- reuse the same agent for a refinement when it retains context.\n\nIf no subagents exist, run the same tracks sequentially and preserve their\nseparate evidence ledgers.\n\nDo not poll background workers. If a global quota or authentication failure\nwill make queued work fail, stop admitting new work and surface the blocker.\n\n## Step 7: Adversarial verification\n\nBefore synthesis, create a verification pass independent from the original\nresearchers.\n\nFor every decision-changing claim:\n\n1. locate its strongest evidence;\n2. check whether the evidence actually entails the claim;\n3. search for version, scope, account, geography, or environment qualifiers;\n4. attempt one concrete falsification or counterexample;\n5. downgrade or remove claims that cannot survive verification.\n\nWhen agents disagree, resolve the disagreement using source quality and\nreproducibility. Do not settle it by vote alone. When verification is blocked,\nretain both interpretations and name the missing experiment.\n\n## Step 8: Synthesize\n\nBuild the answer from the claim ledger, not from agent prose.\n\n1. Answer the user's core question first.\n2. Present confirmed findings in impact order.\n3. Explain the minimum model that accounts for the evidence.\n4. Distinguish facts from high-, medium-, and low-confidence inference.\n5. Include contradictions and genuine unknowns.\n6. For recommendations, connect each action to a verified finding.\n7. If strategies were compared, choose a majority-supported approach only\n after it passes evidence checks; preserve consequential minority objections.\n8. Cite every externally verifiable, time-sensitive, or non-obvious claim.\n\nUse concise prose by default. Do not dump internal agent transcripts or process\nlogs unless requested.\n\n## Output contract\n\nUse the smallest structure that fully communicates the result:\n\n```markdown\n# Answer\nDirect conclusion.\n\n## Confirmed findings\n- Claim - evidence and citation.\n\n## Model or explanation\nObserved behavior, then clearly labeled inference.\n\n## Contradictions and unknowns\n- What remains unresolved and why.\n\n## Recommended action\nPrioritized, evidence-linked steps.\n\n## Sources\n- Primary sources first.\n```\n\nFor implementation research, add a testable clean-room specification,\ninvariants, failure modes, and acceptance tests.\n\n## Resume and failure rules\n\n- Persist track IDs, inputs, source list, result status, and evidence hashes\n when the host supports artifacts.\n- On resume, reuse validated results whose inputs and evidence are unchanged.\n- Rerun a failed track and any downstream synthesis that depends on it.\n- Assume side effects are at-least-once unless protected by an idempotency key.\n- A completed orchestration is not necessarily complete research. Disclose\n failed tracks and enforce the completion checks below.\n\n## Completion checks\n\nDo not declare completion until:\n\n- every required track succeeded or its failure is explicitly disclosed;\n- every high-impact claim has primary, observed, or independently reproduced\n support;\n- important contradictions are resolved or preserved as unknowns;\n- freshness-sensitive claims were checked against current sources;\n- recommendations follow from the evidence;\n- citations or artifact references are usable;\n- a fresh verification pass found no unaddressed critical gap.\n\nThe RAPP conversion path for this skill is documented in\n[`references/rapp-agent-conversion.md`](references/rapp-agent-conversion.md).'
# Ordered commands lifted verbatim from the capability's own documentation.
STEPS = []
class DeepResearchAgent(BasicAgent):
def __init__(self):
self.name = 'DeepResearch'
self.metadata = {
"name": "DeepResearch",
"description": "Performs rigorous, evidence-first deep research using distinct parallel research strategies, primary sources, local artifacts, controlled experiments, adversarial verification, and confidence-rated synthesis. Use when a user asks for deep research, exhaustive investigation, reverse engineering, current landscape analysis, high-stakes comparison, or a defensible implementation recommendation.",
"parameters": {
"properties": {},
"required": [],
"type": "object"
}
}
super().__init__(name=self.name, metadata=self.metadata)
def perform(self, **kwargs): # toaster:generated-perform
"""Render the capability's instructions with the caller's arguments.
Deterministic: same inputs -> same bytes out. No model call happens
here; the brainstem hands this text back to the model as tool output.
"""
text = INSTRUCTIONS
for key, value in kwargs.items():
text = text.replace("{{" + key + "}}", str(value))
if kwargs:
text += "\n\n## Inputs\n```json\n" + json.dumps(
kwargs, indent=2, default=str) + "\n```"
return text
if __name__ == "__main__":
# Standalone entry point: the deterministic layer runs with NO brainstem,
# no framework, no install. This is what lets a "simple SKILL.md" platform
# keep real determinism -- the host model shells out to this file instead
# of improvising the procedure in prose.
# echo '{"arg": "value"}' | python3 deep_research_agent.py
# python3 deep_research_agent.py '{"arg": "value"}'
# python3 deep_research_agent.py --tool # emit the JSON tool contract
_a = sys.argv[1:]
if _a and _a[0] == "--tool":
print(json.dumps(DeepResearchAgent().to_tool(), indent=2))
else:
_raw = _a[0] if _a else (sys.stdin.read().strip() or "{}")
print(DeepResearchAgent().perform(**json.loads(_raw)))
# rci-capsule:v1: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
…(truncated)