Skip to content

/research

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

From plugin
ck
1.2k9 skills7 commands

Claude Code

$ npx -y skills add JuliusBrussee/cavekit --skill research --agent claude-code

SKILL.md

research.SKILL.md
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.
Read more
@juliusbrussee
Ships withck

Frozen — compressed spec-driven development plugin for Claude Code. Still works; active development moved to JuliusBrussee/caveman.

Stars on GitHub

Momentum

stars in total
1.2k
Star history of JuliusBrussee/cavekit on GitHub, a chart by star-history.com

Other skills on ck.

backprop
Auto-invoked

backprop

Bug → spec protocol. When a bug is found or a test fails, trace the cause, decide whether a new §V invariant would catch…

@juliusbrussee@juliusbrusseeInstall Skill
build
Auto-invoked

build

Plan-then-execute implementation against SPEC.md. Native single-thread loop, no sub-agents. On test or build failure,…

@juliusbrussee@juliusbrusseeInstall Skill
caveman
Auto-invoked

caveman

Caveman encoding for SPEC.md and spec-adjacent writes. Loaded by /spec, /build, /check. Cuts tokens ~75% vs prose while staying…

@juliusbrussee@juliusbrusseeInstall Skill
check
Auto-invoked

check

Read-only drift detector. Diffs SPEC.md against current code and reports violations grouped by severity. Writes nothing —…

@juliusbrussee@juliusbrusseeInstall Skill
deepen
Auto-invoked

deepen

Optional design-improvement pass for when you have spare usage to drain. Finds the shallowest modules in the code the spec…

@juliusbrussee@juliusbrusseeInstall Skill
grill
Auto-invoked

grill

Calibrated interrogation of a fuzzy idea before it becomes a spec. Asks one question at a time, recommends an answer, and lands…

@juliusbrussee@juliusbrusseeInstall Skill

More skills from other plugins.

improve

improve

Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to…

improve2mo12k
@shadcn@shadcnInstall Skill
kiro-debug

kiro-debug

Investigate implementation failures using root-cause-first debugging. Use when an implementer is blocked, verification fails, or…

cc-sdd3w3.8k
@gotalab@gotalabInstall Skill
deep-discuss

deep-discuss

结构化深度讨论 Skill,用于与用户进行多轮问题分析和方案设计。当用户描述一个问题现象、故障表现、 技术困惑、方案选择困难,或明确说"讨论一下"、"帮我分析"、"我遇到一个问题"、"你觉得怎么样"、 "帮我想想"、"我在纠结"时,必须使用本…

Questions about research.

Which coding agents can use research?
research installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.