From crabshell
Conducts multi-agent investigations using internet, local, and user-specified sources with cross-review and structured I-document output. Use when thorough investigation of a topic is needed with evidence from multiple sources. Invoke with /investigating "topic" to create, or /investigating I001 to update. Not for quick questions — use normal conversation instead.
How this skill is triggered — by the user, by Claude, or both
Slash command
/crabshell:investigatingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- **Create mode:** `/investigating "title"` — creates a new investigation document
/investigating "title" — creates a new investigation document/investigating I001 — appends findings to an existing investigationWhen argument is a title string (not an I-prefixed ID):
Check if .crabshell/investigation/ exists.
.crabshell/investigation/INDEX.md with content below..crabshell/investigation/backup/, move ALL existing files into it, then create INDEX.md. Report to user: "Moved N existing files to .crabshell/investigation/backup/"INDEX.md content:
# Investigation Index
| ID | Title | Status | Created | Related |
|----|-------|--------|---------|---------|
Glob .crabshell/investigation/I*.md.
Extract numeric part. Next ID = max + 1, zero-padded to 3 digits.
If no files exist, start at 001.
Ask the user:
Before gathering parameters, proactively present constraints to the user:
.crabshell/project.md — extract the ## Constraints sectionConstraint Check:
- [Project] {each constraint from project.md}
- [Inferred] {constraints derived from task context}
Additional constraints? Silence = proceed.
## Constraints section of the I documentBefore creating the investigation document and launching agents, recommend execution parameters to the user. Present as a compact table:
| Parameter | Recommendation | Rationale |
|---|---|---|
| Agent count | 3–5 | Based on topic scope; more perspectives = better coverage |
| Specialist roles | {distinct roles relevant to topic} | e.g., "Forensic Auditor", "Cognitive Scientist", "Systems Engineer" — each agent must have a unique expert perspective |
| Model tier | See project.md ## Model Routing | T1 for analysis/judgment, T2 for mechanical searches. Project-level routing applies. |
After presenting the table, state: "Silence = proceed with these parameters. Adjust any parameter before I continue."
This recommendation happens once per investigation creation. If the user does not respond, proceed with the recommended parameters.
Create .crabshell/investigation/I{NNN}-{slug}.md:
---
type: investigation
id: I{NNN}
title: "{title}"
status: open
created: {YYYY-MM-DD}
tags: []
---
# I{NNN} - {title}
## Topic
{what is being investigated and why}
## Constraints
- [Project] {constraints from project.md}
- [Inferred] {constraints from task context}
- [User] {additional constraints from user, if any}
## Questions
1. {question 1}
2. {question 2}
...
## Sources
- Internet: {URLs searched/found}
- Local: {files/code examined}
- User-specified: {if any}
## Investigation Log
### Agent 1: {focus area}
{findings}
### Agent 2: {focus area}
{findings}
## Cross-Review
{Review Agents challenge each other's findings}
## Synthesis (Orchestrator)
{integrated conclusions from all agents}
## Conclusions
- Key findings: ...
- Confidence level: ...
- Gaps/unknowns: ...
## Log
---
### [{YYYY-MM-DD HH:MM}] Investigation started
{methodology, initial sources, approach}
Launch parallel Work Agents, each assigned a different focus area or source type:
After each Agent returns findings, the Orchestrator MUST use the Edit tool to replace the placeholder text in that agent's section with the actual findings. Do NOT leave "(findings appended after execution)" in the document.
### Agent N section in the I document FIRST using the Edit tool. After the document is updated, provide a brief summary to the user. The document update is the primary output; the conversation summary is secondary.Launch Review Agents (paired with Work Agents per CLAUDE.md rules):
After cross-review completes, the Orchestrator MUST use the Edit tool to replace the Cross-Review section placeholder with the actual cross-review results.
## Cross-Review section in the I document FIRST using the Edit tool. After the document is updated, provide a brief summary to the user. The document update is the primary output; the conversation summary is secondary.The Orchestrator:
DOCUMENT UPDATE RULE: By the end of Step 7, every placeholder in the I document ("findings appended after execution", "appended after agent execution", "appended after synthesis") MUST be replaced with actual content. The Log section records timeline events; the structured sections above it contain the full findings. Both must be populated.
## Synthesis and ## Conclusions sections in the I document FIRST using the Edit tool. After the document is updated, provide a brief summary to the user. The document update is the primary output; the conversation summary is secondary.Append row to .crabshell/investigation/INDEX.md:
| [[I{NNN}-{slug}|I{NNN}]] | {title} | open | {YYYY-MM-DD} | |
Note: {slug} is the kebab-case portion of the document filename. Obtain it by globbing .crabshell/investigation/I{NNN}-*.md and extracting the basename without .md.
Tell user: "Created I{NNN}. Investigation complete. See Conclusions for findings summary."
When argument matches I\d{3} pattern:
Glob .crabshell/investigation/I{NNN}-*.md. If not found, stop.
Append to end of document:
---
### [{YYYY-MM-DD HH:MM}] {entry_type}
{content}
Entry types:
New findings — additional findings, data, analysis resultsConclusion update — revised conclusions with new evidenceStatus change: {old} → {new}If new findings warrant it, re-run the multi-agent investigation (Steps 5-7 from Create Mode) with updated focus areas. Append new agent findings, cross-review, and synthesis to the document.
Update status column in .crabshell/investigation/INDEX.md.
open → concluded (all questions answered)open → abandoned (no longer relevant){slug} by globbing .crabshell/{discussion|plan}/{ID}-*.md and extracting the basename without .md. If the target document does not exist yet, use the bare ID temporarily: "→ See D{NNN}" or "→ See P{NNN}".### [{YYYY-MM-DD HH:MM}] {entry_type}). This applies regardless of whether this skill was explicitly invoked — if the work touched or advanced this investigation's purpose, log it.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub zipperbagcoffee/crabshell --plugin crabshell