Open Agent Toolkit

Research and Evaluate a Decision

Use this family when you need evidence before committing to a direction. Start with analyze for something you already have, deep-research for a topic you need to investigate, or compare for named alternatives. Use skeptic to test a claim and synthesize to combine compatible research artifacts afterward.

These examples are instructions to an agent, not terminal commands. The slash form (for example /analyze) is the reliable way to invoke a skill; Codex uses the $name form (for example $analyze). These five skills also let the agent pick them up when you ask for one by name. Example paths below stand for files you supply. None of these skills needs an OAT project (a tracked unit of work that OAT keeps under .oat/projects/), and research does not authorize code changes, purchases, or publication.

The research skills that write a report share one default location rule. In a repository with a .oat/ directory the agent suggests a folder under .oat/repo/; with only a user-level ~/.oat/ it suggests a folder there; otherwise it suggests the current directory. You can accept the suggestion or name another folder, and the skill creates the folder if it does not exist.

analyze

Invocation: /analyze proposals/import-service.md --context criteria.md. Supply a file, directory, or quoted idea as the target. The optional --context file or directory supplies the criteria the target is judged against (for example, a security policy or a requirements document).

Prerequisites: Accessible source material and an installed deep-research skill, whose artifact schema this skill uses. If that schema is unavailable, the skill stops rather than inventing a replacement format. Agree on a report destination when asked.

Example scenario: A team has drafted an import-service proposal but has not decided whether its retry behavior, operating cost, and user-facing recovery flow are coherent. Give the agent the proposal and a file explaining the team's staffing and reliability constraints. Ask it to analyze the proposal before anyone turns it into implementation tasks.

The review covers six angles: adversarial weaknesses, gaps, opportunities, structure, consistency, and audience fit. The detected input type (code, design document, product spec, presentation, proposal, or unstructured idea) decides which angles get deeper treatment; all six always run. Available workers can investigate the angles in parallel; otherwise the agent works through them sequentially. A persuasive proposal can still receive substantial gap findings, so distinguish strengths from issues that must be resolved before planning.

What it does without asking: It reads the target and any context. When your agent can run subagents (helper agents it starts in the background), it starts up to six of them, one per angle, and it may start compare as a subagent if an angle turns up competing options. It then asks where to save the report, unless you already gave an output path, creates that folder if needed, and writes one file. It does not edit the target, commit, or push.

Expected output: A written analysis artifact with evidence-backed findings and recommendations, not just an inline assessment. The suggested folder is .oat/repo/analysis/ in an OAT repository, ~/.oat/analysis/ with only a user-level OAT setup, or the current directory, and the file is named <topic>-analysis-<model>.md. Preserve the report with the material it evaluated so later readers can tell which version the findings describe.

Next step: Resolve the highest-impact gaps, use compare for a decision between alternatives, or bring the findings into a planning conversation. Do not treat the analysis report as an approved implementation plan.

compare

Invocation: /compare "queue-backed import" "synchronous import" --context criteria.md --dimensions "operational complexity, recovery, team fit" --save. Provide at least two alternatives. --context supplies your priorities; --dimensions replaces the default dimensions (context can still add or reweight them); --save requests a written artifact instead of the default inline result.

Prerequisites: Named alternatives and enough evidence to evaluate them. For a saved report, the installed deep-research schema must be available. State hard constraints before comparing: a recommendation for a different team or operating environment may not be useful to yours. The skill uses web search and package registries when they are available; say so if it must stay with local sources.

Example scenario: Your team can either process a customer upload during the request or hand it to a queue. Both fit the current API, but only one engineer will operate the service. Compare them against recovery behavior, operational complexity, and team fit, using your existing proposal as context.

The skill evaluates each alternative against shared dimensions and explains trade-offs. It uses qualitative judgments by default; numerical scoring needs an explicit request, not an implied precision that the evidence cannot support. For three or more candidates, expect a ranked recommendation. A close result should explain the condition that would change the winner.

What it does without asking: It researches each option against each dimension, using web search when available. Without --save it answers in the conversation and writes nothing. With --save it asks where to save the file, unless you already gave an output path, creates that folder if needed, and writes one file. It does not commit or push.

Expected output: An inline comparison by default, or a structured comparative research artifact with --save, suggested for .oat/repo/analysis/ in an OAT repository and named after the options and the model. It includes a recommendation, supporting rationale, and important caveats rather than just a feature table.

Next step: Test the recommendation's load-bearing claim with skeptic, investigate an unresolved dimension with deep-research, or confirm a direction before planning work.

deep-research

Invocation: /deep-research "reliable asynchronous imports" --depth standard --focus recovery --context criteria.md. Use surface, standard, or exhaustive depth; standard is the default. The focus narrows the question, while context establishes your constraints. Add a trailing output path (for example docs/research/) to skip the destination prompt.

Prerequisites: A researchable question, permission to use the available sources, and a destination for the resulting artifact. An existing project is not required. Tell the agent if it must stay within local documents or if external research is permitted.

Example scenario: You have not selected an import architecture and need to understand failure recovery before comparing products. Research how systems resume interrupted uploads and avoid duplicate work, constrained by your team's operating model. This establishes the evidence base rather than asking for an immediate vendor choice.

The skill classifies the question as technical, comparative, conceptual, or architectural and picks the matching artifact schema (the fixed set of report sections for that kind of topic). It plans three to six research angles (two or three at surface depth) and gathers evidence through available capabilities, in parallel when supported or sequentially otherwise. Greater depth expands the investigation; it does not turn inaccessible sources or unsupported claims into facts.

What it does without asking: It searches the web when available and, when your agent can run subagents, starts one general-purpose subagent per research angle; it may also start compare as a subagent if competing options emerge. It then asks where to save the report, unless you gave a trailing output path, creates that folder if needed, and writes one file. If the chosen folder is not writable, it writes to the current directory and tells you. It does not commit or push.

Expected output: A written structured research artifact with findings, sources, and methodology, named <topic>-<model>.md. The suggested folder is .oat/repo/reference/research/ in an OAT repository, ~/.oat/research/ with only a user-level OAT setup, or the current directory. Review the evidence and limitations before using the conclusion as a requirement.

Next step: Compare concrete options using the research, challenge a critical conclusion with skeptic, or combine independent reports with synthesize.

skeptic

Invocation: /skeptic "Retrying this import cannot create duplicate records". With no explicit claim, the skill evaluates the agent's most recent factual assertion in the conversation; quote a claim when there could be ambiguity.

Prerequisites: A falsifiable claim and access to relevant evidence. Point the agent to the implementation, tests, or research that supposedly supports it. No project or output directory is required.

Example scenario: A design discussion assumes retries are safe because the API accepts an idempotency key. Ask the skill to challenge that assumption against the actual write path and failure cases before the team relies on it for recovery. The key's existence alone is not the desired conclusion.

The skill first tries to disprove the assertion, then weighs supporting evidence. It can use an available skeptical evaluator or perform the same evaluation directly. Lack of evidence is a reason to report uncertainty, not to validate the claim by default.

What it does without asking: It reads local files, tests, lockfiles, and Git history, and uses web search when available. When your agent can run subagents, it starts one skeptical-evaluator subagent to do the adversarial search. It writes no file and changes nothing.

Expected output: An inline verdict, confidence, and cited evidence. The conclusion can be that the claim holds up, that the challenge was correct, that the answer is nuanced, or that the evidence is genuinely inconclusive. It does not create a research file automatically.

Next step: Correct a disproved assumption, qualify a nuanced one, or gather the missing evidence. If the result will influence later work, capture it in the relevant decision or research artifact rather than relying on chat alone.

synthesize

Invocation: /synthesize research/ --inline, or supply explicit research files. Omit --inline when you want a written synthesis.

Prerequisites: Existing structured artifacts with skill, schema, topic, model, and generated_at metadata. These requirements apply to explicit files as well as directory discovery. Arbitrary notes or articles are not automatically compatible inputs. Invalid explicit artifacts are skipped with warnings; fewer than two valid inputs requires confirmation.

Example scenario: Two agents separately researched import recovery, and a third compared queue-based options. Supply their saved research artifacts and ask for a synthesis that separates agreements from contradictions before the team chooses a direction. The skill treats agreement across artifacts as high confidence and does not detect when several artifacts relied on the same original source, so check shared upstream sources yourself before you count agreement as independent confirmation.

This skill works only from the supplied artifacts: it does not launch new research or browse for missing facts. It preserves provenance, identifies shared findings and unique insights, and explains conflicting conclusions. A preferred interpretation remains a judgment, not a newly established fact.

What it does without asking: It reads the supplied artifacts only; it starts no subagents and does no web search. With --inline it answers in the conversation and writes nothing. Otherwise it asks where to save the synthesis, unless you already gave an output path, creates that folder if needed, and writes one file. It never modifies the input artifacts and does not commit.

Expected output: A written, model-tagged synthesis (<topic>-synthesis-<model>.md), suggested for the source folder when all inputs share one folder, or an inline brief with --inline. Expect source agreements, contradictions with the direction the evidence leans (flagged as a lean, not a decision), unique single-source insights, consolidated recommendations, and a provenance table rather than concatenated summaries.

Next step: Resolve a contradiction with targeted research, challenge the proposed direction with skeptic, or bring the synthesis to a planning conversation with its source artifacts attached.

On this page