Agent skill

Research

by SethGammon in SethGammon/Citadel

Focused research investigations. An agent skill from SethGammon/Citadel.

MITAuto-check passedResearch & Science

Install Research

skills CLI
$ npx skills add SethGammon/Citadel --skill research -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install SethGammon/Citadel research --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/research .claude/skills/research && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
research
GitHub stars
923
Token cost
~3.3k tokens
SKILL.md length
1,454 words
Files
5
Skills in repo
48
Repo updated
First seen
Licence
MIT

At a glance

Focused research investigations. An agent skill from SethGammon/Citadel.

  • Works in 5 steps: FORMULATE → SEARCH → EXTRACT → …
  • Tasks that involve Citation management
  • SKILL.md covers When to Use, Modes, Protocol (Single Mode) and Parallel Mode (--parallel), plus 5 more sections
  • Calls node; reaches raw.githubusercontent.com and github.com

What it does

Research is an agent skill from SethGammon/Citadel. Focused research investigations. Converts questions into structured findings with confidence levels and source citations. Single agent by default; with --parallel (or when the question decomposes into 3+ independent angles) it spawns scout agents whose findings are compressed into a unified brief. Does not make decisions; produces information that informs the next step.

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `__benchmarks__/external-library-research.md`, `__benchmarks__/no-web-results.md` and `__benchmarks__/parallel-decompose-angles.md`).

It sits in Research & Science, covering Citation management. It works with GitHub. The repository describes itself as: The operating layer for Claude Code + OpenAI Codex: persistent project memory, intent routing, safety hooks, cost telemetry, and parallel agent fleets. The licence is MIT.

When your agent uses it

  • Tasks that involve Citation management

Example prompts

  • “/research”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. FORMULATE
  2. SEARCH
  3. EXTRACT
  4. WRITE
  5. RETURN

What it can do on your machine

Read from SKILL.md and the folder at commit e41ff1d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • raw.githubusercontent.com
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Research loads about 3.3k tokens when it runs. Until then it costs about 95 tokens; SKILL.md has 1,454 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~95
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from SethGammon/Citadel at commit e41ff1d, republished under its MIT licence (© SethGammon). 1,454 words, ~3,345 tokens.

Download SKILL.mdSave it as .claude/skills/research/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
research
description
Focused research investigations. Converts questions into structured findings with confidence levels and source citations. Single agent by default; with --parallel (or when the question decomposes into 3+ independent angles) it spawns scout agents whose findings are compressed into a unified brief. Does not make decisions; produces information that informs the next step.
license
MIT
user-invocable
true
auto-trigger
false
trigger_keywords
research, investigate, look into, find out, research fleet, parallel research, multi-angle research, compare options
last-updated
2026-07-21

/research — Focused Investigation

When to Use

  • Evaluating whether a dependency has a newer version or has been superseded
  • Finding community best practices for a specific technical problem
  • Reading official documentation for an API or library
  • Investigating how other projects solve a similar problem
  • Checking if a pattern used in the codebase has known issues
  • Any time you need external information before making a decision

Don't use when: you need to act on findings immediately (use /marshal which calls /research internally).

Modes

Single (default): one agent, 2-4 queries, 3-6 sources. Steps 1-5 below.

Parallel (/research --parallel): scout agents investigate independent angles of the same question using Fleet wave mechanics. See Parallel Mode below. Without the flag, prefer parallel mode (and say so in the plan) when the question naturally decomposes into 3+ independent angles: evaluating multiple competing technologies or approaches, distinct sub-questions that don't depend on each other, or time-sensitive research where parallel execution matters.

If the question is narrow and focused, stay single-agent. Don't parallelize what a single agent can answer in 5 minutes.

Protocol (Single Mode)

Step 1: FORMULATE

Convert the research question into 2-4 specific search queries:

  • Official docs query (e.g., "express.js middleware error handling docs")
  • Community/GitHub query (e.g., "express error middleware best practices site:github.com")
  • Technical blog/comparison query (e.g., "express vs fastify error handling 2025")
  • Release notes query if version-specific (e.g., "express 5.x changelog breaking changes")

State the question clearly in one sentence before searching.

Execute searches and read actual content (not just snippets):

  • Use WebSearch for discovery, WebFetch for reading actual pages
  • Evaluate source credibility: official docs > GitHub repos with stars > recent blog posts > forum answers
  • Stop at 3-6 credible sources (not exhaustive — focused)
  • If a source contradicts another, note the disagreement

The WebFetch Restrictions under Parallel Mode apply in single mode too: never WebFetch rendered GitHub pages.

Step 3: EXTRACT

For each finding, record:

  • What: The specific fact, recommendation, or pattern discovered
  • Source: URL or reference
  • Relevance: How this applies to the original question (one sentence)
  • Confidence: high (official docs, verified), medium (community consensus), low (single source, opinion)
  • Action: What the codebase should do with this information (or "informational only")
Step 4: WRITE

Write findings to .planning/research/{topic-slug}.md:

markdown
# Research: {Topic}

> Question: {The original question}
> Date: {ISO date}
> Confidence: {overall: high/medium/low}

## Findings

### 1. {Finding title}
**What:** {description}
**Source:** {URL}
**Confidence:** {high/medium/low}
**Action:** {recommendation or "informational"}

### 2. {Finding title}
...

## Summary
{2-3 sentences: what was learned, what the recommendation is}

## Open Questions
{Anything that couldn't be resolved — needs human judgment or deeper investigation}
Step 5: RETURN

Return the summary and recommendation to the caller (user, Marshal, or Archon). The research document persists for future reference.

Parallel Mode (--parallel)

The former /research-fleet behavior now lives in this parallel mode. Spawns multiple scout agents, each investigating a different angle of the same question. Findings are compressed between waves. Produces a unified research brief from multiple independent perspectives.

Inputs: the question, plus optional angles (specific sub-questions to investigate). If not provided, decompose the question into 3-5 angles automatically.

Step P1: DECOMPOSE

Break the research question into 3-5 independent angles:

Example: "Should we migrate from Express to Fastify?"

  • Scout 1: Performance benchmarks (Express vs Fastify vs Hono, latest data)
  • Scout 2: Migration effort (breaking changes, middleware compatibility, ecosystem)
  • Scout 3: Community health (GitHub stars trend, npm downloads, maintainer activity)
  • Scout 4: Production war stories (who migrated, what broke, was it worth it)

Each angle must be:

  • Independent (scout doesn't need another scout's findings to do its work)
  • Specific (one clear question per scout)
  • Answerable (3-6 sources should be sufficient)
Step P1b: INITIALIZE GRAPH (Explicit Opt-In)

With explicit --operation-graph, assign 3-5 opaque angle IDs and initialize a graph plus bound operation: node .citadel/scripts/operation-graph-runner.js research-init --project-root . --graph .planning/research/fleet-{slug}/operation-graph.json --operation .planning/research/fleet-{slug}/operation-spec.json --journal .planning/research/fleet-{slug}/graph-journal --run-id research-{slug} --angles {id1,id2,id3} For each P2-P5 node, call node .citadel/scripts/operation-graph-effects.js start with the graph journal, --effects .../effect-journal, node ID, and payload digest before work; call node .citadel/scripts/operation-graph-effects.js complete with its evidence digest after verification. Keep prompts and findings outside graph state. On resume run node .citadel/scripts/operation-graph-effects.js status; resolve blocked nonrepeatable work with reviewed evidence. After the arbiter passes, run node .citadel/scripts/operation-graph-effects.js receipt with the bound operation. Without the flag, create no graph state.

Step P2: DEPLOY WAVE 1

Spawn one scout agent per angle using Fleet wave mechanics:

For each scout:

  1. Create an isolated worktree
  2. Inject the scout's specific angle as the research question
  3. Each scout follows the single-mode protocol (formulate, search, extract, write)
  4. Each scout writes its findings to .planning/research/fleet-{slug}/{angle-slug}.md

All scouts run in parallel. Wait for all to complete.

Step P3: COMPRESS

After Wave 1 completes:

  1. Read all scout findings
  2. Identify:
    • Consensus: findings that multiple scouts independently confirmed
    • Conflicts: findings that contradict each other (flag these prominently)
    • Gaps: angles that didn't produce strong results (consider a Wave 2)
    • Surprises: unexpected findings that change the framing of the question
  3. Compress into a unified brief (~500 tokens)
Step P4: WAVE 2 (Optional)

If gaps or conflicts exist:

  1. Spawn targeted scouts to resolve specific conflicts or fill gaps
  2. Each Wave 2 scout receives the compressed brief from Wave 1 as context
  3. Wave 2 scouts don't re-research what Wave 1 already covered

Skip Wave 2 if Wave 1 produced clear, consistent findings.

Step P5: REPORT

Write the unified report to .planning/research/fleet-{slug}/REPORT.md:

markdown
# Research Fleet: {Topic}

> Question: {The original question}
> Date: {ISO date}
> Scouts: {N} across {waves} wave(s)
> Confidence: {overall: high/medium/low}

## Consensus Findings
{Findings confirmed by 2+ scouts}

## Conflicts
{Findings where scouts disagreed — present both sides}

## Key Findings by Angle

### {Angle 1}: {title}
{Summary from scout 1}
Source: {scout report path}

### {Angle 2}: {title}
{Summary from scout 2}
Source: {scout report path}

...

## Recommendation
{2-3 sentences: what the evidence says, what the recommendation is}

## Open Questions
{What couldn't be resolved — needs human judgment}

Log the completed wave through Citadel's project-local telemetry helper:

bash
node .citadel/scripts/telemetry-log.cjs --event wave-complete --agent research-fleet --session fleet-{slug} --status success

If the helper is unavailable, skip telemetry without blocking the research result. Keep the scout count and total wave count authoritative in REPORT.md and the parallel-mode HANDOFF rather than duplicating them in telemetry metadata.

Show full SKILL.md (584 more words)Show less
Safety Rules (Parallel Mode)
  • Maximum 5 scouts per wave (don't burn tokens on diminishing angles)
  • Maximum 2 waves (if Wave 2 doesn't resolve it, the question needs human judgment)
  • Each scout follows the single-mode quality gates (sources, confidence, evidence)
  • Scout findings are independent. No scout reads another scout's output during the same wave.
  • Scout timeout: 15 minutes (configurable via harness.json agentTimeouts.research). If a scout exceeds its timeout, skip it and proceed with other scouts' results. A timed-out scout's angle becomes a "Gap" in the final report.
WebFetch Restrictions

Every scout prompt MUST include this instruction:

Do NOT use WebFetch on GitHub repository pages (github.com/{user}/{repo}). These pages are massive HTML documents (500KB+) that hang the fetcher indefinitely. Instead:

  • Use WebSearch to find information about repos (search snippets contain what you need)
  • If you need a repo's README content, fetch the raw URL: https://raw.githubusercontent.com/{user}/{repo}/{branch}/README.md
  • Never fetch rendered GitHub pages: issues, pull requests, repo root, or file views

This restriction exists because a real research-fleet run hung for 38+ minutes on WebFetch(https://github.com/jehna/readme-best-practices) with zero output. The circuit breaker didn't catch it because the tool didn't fail — it just never completed.

What /research Does NOT Do

  • Make architectural decisions (that's the caller's job)
  • Install packages or modify code
  • Search exhaustively (2-4 queries, 3-6 sources per agent, done)
  • Evaluate subjective opinions as facts
  • Recommend without evidence

Fringe Cases

  • No web access available: Fall back to local-only research. Search the codebase, read docs files, check package.json, and produce findings from local sources. In parallel mode, run all scouts in local-only mode. Note the limitation in the findings document's confidence level.
  • Search returns nothing relevant: Broaden the query (remove version-specific terms, try synonyms), try one more angle. If still empty, report uncertainty explicitly: "No strong evidence found. Recommend human review." A parallel-mode scout that comes up empty reports "No strong evidence found for this angle" rather than fabricating findings; the gap becomes an Open Question in the final report.
  • .planning/research/ does not exist: Create it (in parallel mode, including the fleet-{slug}/ subdirectory) before writing any findings. Never error on a missing output directory.
  • Conflicting sources: Surface the conflict explicitly in the findings rather than silently picking one. Both sides belong in the document.
  • Question is too broad for 3-6 sources: Escalate to parallel mode, or narrow to the single most important sub-question, answer it well, and note what was scoped out.
  • Question decomposes into fewer than 3 independent angles: Stay in (or fall back to) single mode rather than forcing artificial parallelism, even if --parallel was passed.
  • A scout times out (parallel mode): Treat its angle as a gap. Record it in the final report's Open Questions section. Do not block the rest of the wave.

Contextual Gates

Reversibility: Green. Writes files under .planning/research/ only; delete to undo. Cost: Single mode spawns no agents and needs no confirmation. Parallel mode spawns up to 5 scouts per wave (max 2 waves); state the scout count before deploying. Trust: No gates. Read-only investigation plus report files, safe at all trust levels.

Quality Gates

  • Every finding must have a source URL
  • Confidence levels must be justified (not guessed)
  • Summary must answer the original question or state why it can't be answered
  • Research document must be written before returning findings

Parallel mode additionally:

  • Every scout must produce a findings document
  • Conflicts must be explicitly flagged, not silently resolved
  • The compressed brief must be written before spawning Wave 2

Exit Protocol

Output findings summary, then the HANDOFF for the mode that ran.

Single mode:

---HANDOFF---
- Research: {topic}
- Findings: {count} sources analyzed
- Recommendation: {one-line summary}
- Document: .planning/research/{slug}.md
- Reversibility: green — one file written to .planning/research/; delete to undo
---

Parallel mode:

---HANDOFF---
- Research (parallel): {topic}
- Scouts: {N} across {waves} wave(s)
- Consensus: {one-line summary of agreed findings}
- Conflicts: {any unresolved disagreements}
- Recommendation: {one-line}
- Report: .planning/research/fleet-{slug}/REPORT.md
- Reversibility: green — delete `.planning/research/fleet-{slug}/` to undo
---

© SethGammon, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files in skills/research of SethGammon/Citadel.

  • SKILL.md
  • __benchmarks__/external-library-research.md
  • __benchmarks__/no-web-results.md
  • __benchmarks__/parallel-decompose-angles.md
  • __benchmarks__/parallel-no-research-dir.md

Open the folder on GitHubat commit e41ff1d

Compare with similar skills

Research next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Research compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Research this skillSethGammon/Citadel923—~3.3kAutomated safety check: PassMIT
Verify BibtexAltman-conquer/bibtex-verifier132—~655Automated safety check: PassMIT
Paper NavigatorAI4Scientist/nano-scientist128—~7.7kAutomated safety check: NotesNone
Eunomia Social Radareunomia-bpf/eunomia.dev236—~1.6kAutomated safety check: PassMIT
Academic AioAperivue/medsci-skills331—~4.8kAutomated safety check: PassMIT
Goosetown Researcher GitHubaaif-goose/goosetown155—~1.6kAutomated safety check: PassApache-2.0

Similar skills

  • Verify Bibtex

    Altman-conquer/bibtex-verifier

    Set up this repository's BibTeX Verifier and check a user's .bib file, then explain citation matches, warnings, missing records, and API failures.

    132 GitHub stars~655 tokensUpdated 9 days ago
    Research & ScienceAuto-check passed
  • Paper Navigator

    AI4Scientist/nano-scientist

    Find and read academic papers: disambiguate queries, discover papers (search, citation traversal, recommendations, arXiv monitoring, trending, GitHub search), evaluate (TLDR, citations, code, SOTA)…

    128 GitHub stars~7.7k tokensUpdated 4 mo ago
    Research & ScienceAuto-check: notes
  • Eunomia Social Radar

    eunomia-bpf/eunomia.dev

    Monitor the continuing public performance and conversation around Eunomia blogs, reports, projects, and platform posts.

    236 GitHub stars~1.6k tokensUpdated today
    Research & ScienceAuto-check passed
  • Academic Aio

    Aperivue/medsci-skills

    A skill your agent uses when a medical AI paper should be found and cited by AI search engines and RAG tools.

    331 GitHub stars~4.8k tokensUpdated 3 days ago
    Research & ScienceAuto-check passed
  • Goosetown Researcher GitHub

    aaif-goose/goosetown

    Search GitHub issues, PRs, code, and discussions using the gh CLI.

    155 GitHub stars~1.6k tokensUpdated 3 mo ago
    Backend & APIsAuto-check passed
  • Scholar Replication

    joshzyj/open-scholar-skill

    Build, document, test, and validate a journal-ready replication package for social science research.

    168 GitHub stars~19k tokensUpdated 20 days ago
    DatabasesAuto-check passed

More from SethGammon/Citadel

All 48 skills in this repo
  • Create Skill

    SethGammon/Citadel

    Creates new skills from the user's repeating patterns. An agent skill from SethGammon/Citadel.

    923 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Houseclean

    SethGammon/Citadel

    Cross-drive storage audit and cleanup. An agent skill from SethGammon/Citadel.

    923 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Loop

    SethGammon/Citadel

    Bounded foreground repetition for the current session. An agent skill from SethGammon/Citadel.

    923 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Triage

    SethGammon/Citadel

    GitHub issue and PR investigator. An agent skill from SethGammon/Citadel.

    923 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Watch

    SethGammon/Citadel

    File sentinel that monitors the working directory for changes and marker comments, then auto-triggers appropriate skills.

    923 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Archon

    SethGammon/Citadel

    Autonomous multi-session campaign agent. An agent skill from SethGammon/Citadel.

    923 GitHub stars~5.4k tokensUpdated today
    Auto-check passed

Works with

Questions about Research

What does Research do?

Focused research investigations. An agent skill from SethGammon/Citadel. Research is an agent skill from SethGammon/Citadel. Focused research investigations.

When should I use Research?

Research fits situations like: tasks that involve Citation management.

How do I install Research in Claude Code?

Run `npx skills add SethGammon/Citadel --skill research -a claude-code`. Or copy the skill folder (skills/research in SethGammon/Citadel) into .claude/skills/research in your project. Claude Code loads it when a task matches its description.

How do I install Research in Codex?

Run `npx skills add SethGammon/Citadel --skill research -a codex`. Or copy the skill folder (skills/research in SethGammon/Citadel) into .agents/skills/research in your project. Codex loads it when a task matches its description.

Can I use Research in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SethGammon/Citadel --skill research -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/research, .gemini/skills/research, .github/skills/research and .opencode/skills/research in your project.

What does Research need to run?

Going by SKILL.md and its folder, Research needs the command-line tools its instructions call (node).

Does Research access the network?

SKILL.md names 2 domains. In commands or code: raw.githubusercontent.com and github.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Research safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Research use?

Research is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Research use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Research?

Skills that share tags, products or a category with Research: Verify Bibtex (Altman-conquer/bibtex-verifier, 132 stars), Paper Navigator (AI4Scientist/nano-scientist, 128 stars), Eunomia Social Radar (eunomia-bpf/eunomia.dev, 236 stars) and Academic Aio (Aperivue/medsci-skills, 331 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Research?

SethGammon (a GitHub user) maintains it in SethGammon/Citadel, which has 923 GitHub stars. The repository holds 48 skills in this directory. The repository was last updated on October 8, 2026.

Source: SethGammon/Citadel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.