research · juliusbrussee — Claude Code skill: what it does, how to install
Gathers verified facts from docs and RFCs into a durable §R research log with sources, preventing agents from hallucinating external APIs.
npx skills add JuliusBrussee/cavekit --skill research -a claude-codeWhat research does
The agent triggers research whenever a spec choice depends on an unfamiliar library, API, version, or pattern. It prevents plausible-but-wrong assumptions from polluting the build. Every finding must cite a primary source: official documentation, a repository, an RFC, or a paper. If an assertion cannot be verified, it gets labeled with ? instead of being presented as a fact.
The workflow follows four steps: scoping, gathering, distilling, and handoff. Broad topics get split into one to three precise questions. Long web pages never enter the main context. Instead, the agent compresses each finding into a single §R row with its source. When sources conflict, both are logged so the developer can decide.
Research proposes changes, but it never writes to SPEC.md directly. It hands distilled §R rows to the spec skill. Without the spec skill, those updates will not reach the specification file.
What it helps with
- check current best practices and RFCs before finalizing specs
- distill external findings into single-line §R records with sources
- flag unverified claims with
?instead of hallucinating API behavior - hand off discovered constraints to the spec skill
Example prompts for the agent
- /ck:research check current best practices for refresh-token rotation
- /ck:research find a maintained JWT library for Node ESM
- Research Stripe webhook constraints before updating the spec
How to install research
1Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill research -a claude-code2Manually: put the files in place
~/.claude/skills/research/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/research/
1Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill research -a codex2Manually: put the files in place
.agents/skills/research/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill research -a cursor2Manually: put the files in place
.cursor/skills/research/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install JuliusBrussee/cavekit research2Manually: put the files in place
.github/skills/research/SKILL.md1Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill research -a gemini-cli2Platform CLI
gemini skills install https://github.com/JuliusBrussee/cavekit --path skills/researchManually: put the files in place
.devin/skills/research/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill research -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about research
How to install research in Claude Code?
Run npx skills add JuliusBrussee/cavekit --skill research -a claude-code in your terminal. It adds the research skill to your Claude Code configuration.
What does the research skill do?
It gathers technical facts from official docs and standards, summarizes them into single-line entries with sources, and generates rows for the §R research log.
Does the research skill edit SPEC.md directly?
No, research does not edit the specification directly. It hands off the formatted §R rows to the spec skill, which applies them to the document.
Source text
SKILL.md · MIT
--- name: research description: | Gather external knowledge the spec needs and distill it into §R — the durable research log — so build grounds in facts instead of hallucinating library behavior. Each finding cites a source; unsourced claims are flagged, never written as fact. Triggers when a spec decision hinges on a library/API/best practice the agent is unsure of, when the user says "research this", "what's the best lib for…", "check current best practice", or invokes /ck:research. Defers the §R write to the spec skill. --- # research — external knowledge → §R **Every finding cites a source. No source → flag it `?`, never write a guess as fact.** "Process without library context gives you well-organized hallucinations." Build invents a plausible-but-wrong API & §B fills with avoidable bugs. Research is the external oracle: pull the real fact once, log it caveman, never re-derive. ## WHEN TO RESEARCH - A §C/§I/§V decision hinges on a lib, API, version, or pattern you are unsure of. - You are about to assume how an external dependency behaves. - The idea touches a domain with real prior art (auth, payments, crypto, rate-limit). - `/grill` parked a `?` that the outside world must answer. Skip when the build touches only code you already wrote. Research scales to the unknown, ⊥ to habit. ## FOUR STEPS ### 1. SCOPE Turn the unknown into 1-3 concrete questions. Vague "research auth" → "JWT lib for Node ESM, maintained?" + "refresh-token rotation: current best practice?". A scoped question gets a citable answer; a vague one gets an essay. ### 2. GATHER Use web search / docs tools. Prefer primary sources: official docs, the repo, the RFC, the paper. Two independent sources beat one confident blog. For a big sweep, spawn a sub-agent so the raw pages never touch this context — it returns only the distilled finding + source. ### 3. DISTILL Crush each answer to one caveman line + its source. Drop the prose. The §R row is the memory; the tab you read is not. > R3|refresh token|rotate on use, revoke family on reuse-detect|datatracker.ietf.org/doc/html/rfc6819#section-5.2.2.3 ### 4. HAND OFF Emit the §R rows & hand to the **spec** skill to append. If a finding changes a constraint or interface, note the §C/§I edit for spec too. Research proposes; spec writes. ## SOURCE DISCIPLINE - Cite a URL, repo, RFC, or paper per row. Verbatim identifiers/versions. - Could not verify → write the row but flag `?` in the finding & say so. An unverified claim labeled honestly is fine; one disguised as fact is a future §B. - Conflicting sources → log both, let the user pick. ⊥ silently average them. ## WHEN TO STOP Done when every scoped question has a sourced §R row (or an honest `?`), and no build decision still rests on an unchecked assumption. ⊥ research past the questions you scoped — that is just burning the attention budget. ## BOUNDARIES - ⊥ write SPEC.md. Hand §R rows to spec. - ⊥ write a finding as fact without a source. - ⊥ dump raw pages into context or §R. Distill or it does not land. - ⊥ research what you can read in the repo. Local truth > web guess.
© JuliusBrussee · MIT · JuliusBrussee/cavekit
Similar skills
All skills for Agent setup: memory, context, orchestration →research by other authors comes first.