investigate
Guide a structured, iterative technical investigation using hypothesis tree reasoning.
Skill by cederberg
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/cederberg-investigate
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/investigate
Tools it pre-approves 5
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Agent,Read,Write,Glob,Bash
What's inside
- Skill name
investigate- Description
- Guide a structured, iterative technical investigation using hypothesis tree reasoning. Use when debugging a slow endpoint, tracing a regression, or investigating complex problems with unknown cause.
- License
- MIT
- Allowed tools
- Agent,, Read,, Write,, Glob,, Bash
- Instructions
- 128 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves any shell command
Files (1)
- SKILL.md
SKILL.md (first lines)
## Goal
Guide the user through a structured, collaborative investigation of a topic.
Maintain a persistent, append-only research log. Surface what is unknown as
actively as what is found.
## Roles
Three roles operate throughout the session and must remain strictly separated.
The **Orchestrator** (main conversation) manages the investigation process: it
communicates with the user, writes to the research log, and dispatches Analysts
and Researchers. It never reasons about the problem domain, never searches or
reads source material directly, and never takes shortcuts — even when a
sub-agent fails. The user is always the highest-priority signal.
The **Analyst** (sub-agent, no tool access) receives the research log, raw
researcher output files, and optional nudges from the Orchestrator. It updates
the hypothesis tree, proposes next research leads, and always surfaces what is
not yet known. It makes recommendations only — it takes no actions.
The **Researcher** (general-purpose sub-agent) handles all information
gathering. Each researcher receives a single focused research lead and writes
its findings to a dedicated output file. The role separation is a hard
constraint.
## Workflow
### Step 1: Define Input Topic
Determine the topic in priority order:
- Invocation prompt or referenced file
- A `research-*.md` file in the current directory — offer to resume it
- Ask the user
Interview the user until you reach a shared understanding of the topic. Also ask
for any relevant supporting materials: logs, documents, URLs, related tickets,
screenshots, background context. Encourage the user to share anything they think
might be relevant — more is better at this stage.
### Step 2: Create Research Log
Ask the user where to store the **Research Log** file (if not already provided):
- Current directory
- Temporary or session path
- User-provided file path
Use a file name like `research-{{topic}}.md`, where the topic slug is 2–5 ASCII
words. Provide the full file path when asking the user.
Create the **Research Log** after user selection. Track the path as `$LOGFILE`
for later reference. Write an initial entry with the topic summary and all
relevant input data.
### Step 3: Initial Analyst Pass
Dispatch an Analyst with the Research Log and any supporting materials gathered
in Step 1. The Analyst identifies candidate hypotheses and proposes initial
research leads. A hypothesis tree is a good default structure:
- Label candidates A, B, C and so on
- Assign open/eliminated/confirmed status to each
Before finalising the hypothesis list, the Analyst must verify that at least one
hypothesis targets the input data itself — not only the processing code or
infrastructure. If all candidates assume the data is correct, add one that
questions it.
Surface the Analyst's output to the user and invite their input before
proceeding. Log the hypothesis tree.
### Step 4: Dispatch Analyst or Researchers
After each event — researcher completion, Analyst completion, or user input —
assess what to dispatch next:
**All researchers in a round have completed** → append each researcher's
findings to the Research Log, then dispatch the Analyst. Pass it the Research
Log and the raw researcher output files (the Analyst may read these for depth).
Include any relevant nudges from the Tips section.
**Analyst has completed** → surface its findings, proposed leads, and surfaced
unknowns to the user. Invite the user to add context, push back, or redirect
before proceeding. Treat the user's response as higher-priority input than the
Analyst's recommendations. Wait for confirmation before dispatching Researchers.
**User provides additional information** → log it immediately, then dispatch the
Analyst out-of-cycle regardless of whether Researchers are still running. The
Analyst re-evaluates the hypothesis tree in light of the new information.
Each researcher writes its findings to a dedicated output file (e.g.
`lead-{{n}}.md`). If a researcher fails or misses the point, log the failure and
note it for the next Analyst dispatch — the Analyst proposes reformulation. The
Orchestrator never performs research as a fallback.
While researchers are running, the Orchestrator's only permitted actions are
writing to the Research Log and communicating with the user. No tool calls into
source material, no verification, no shortcuts.
Continue until the user ends the session.
## Log Rules
- Append-only. Use `cat >> $LOGFILE <<'EOF' … EOF` or equivalent for writing.
Avoid the Write or Edit tools.
- Keep entries signal-only: compact summaries, no narrative, no repeated
findings.
- Include raw data verbatim: log lines, stack traces, command output.
- Separate entries with a horizontal rule.
- Log partial or ambiguous results as-is. Treat omissions as data.
## Tips
**Observability gaps.** Ask whether better data is available: logs from the
affected timeframe, a way to reproduce the issue, added instrumentation,
database query output or a minimal test case.From cederberg/incubator, MIT.
More from cederberg/incubator
- 0.570score
refactor
cederberg
Multi-pass convergent refactoring of a specific piece of code.
SkillAFreshness: AClaude Code +9 - 0.565score
review-instructions
cederberg
Review a prompt, skill, or other instructions for problems.
SkillAFreshness: AClaude Code +9 - 0.564score
technical-writer
cederberg
Write or review technical documents, including READMEs, system overviews, and skill files.
SkillAFreshness: AClaude Code +9 - 0.564score
review-session
cederberg
Analyze agent session logs for knowledge, guideline, and capability gaps.
SkillAFreshness: AClaude Code +9 - 0.558score
bump-deps
cederberg
Update each outdated dependency in a separate, minimal commit.
SkillAFreshness: AClaude Code +9 - 0.518score
review-doc
cederberg
Review a document for internal consistency, brevity, clarity, and usefulness.
SkillBFreshness: BClaude Code +9 - 0.471score
discuss
cederberg
Facilitate a focused, structured discussion on a topic.
SkillCFreshness: CClaude Code +9 - 0.470score
agent-init
cederberg
Analyze a project and produce AGENTS.md and Makefile.
SkillCFreshness: CClaude Code +9 - 0.469score
interview-me
cederberg
Conduct a deep, structured interview to reach shared understanding of a plan or topic, then document the outcome.
SkillCFreshness: CClaude Code +9 - 0.467score
brainstorm
cederberg
Open-ended idea generation without filtering for validity.
SkillCFreshness: CClaude Code +9 - 0.464score
what-we-forgot
cederberg
Scans the current conversation from the beginning for missed instructions, unresolved work items, and forgotten ideas.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 5, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/cederberg/incubator
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from cederberg
- 0.570score
refactor
cederberg
Multi-pass convergent refactoring of a specific piece of code.
SkillAFreshness: AClaude Code +9 - 0.565score
review-instructions
cederberg
Review a prompt, skill, or other instructions for problems.
SkillAFreshness: AClaude Code +9 - 0.564score
technical-writer
cederberg
Write or review technical documents, including READMEs, system overviews, and skill files.
SkillAFreshness: AClaude Code +9 - 0.564score
review-session
cederberg
Analyze agent session logs for knowledge, guideline, and capability gaps.
SkillAFreshness: AClaude Code +9 - 0.558score
bump-deps
cederberg
Update each outdated dependency in a separate, minimal commit.
SkillAFreshness: AClaude Code +9 - 0.518score
review-doc
cederberg
Review a document for internal consistency, brevity, clarity, and usefulness.
SkillBFreshness: BClaude Code +9
Cite this page
investigate skill. Agent Mart. https://agentmart.dev/skills/cederberg-investigate (last updated 2026-10-24)