From research
Use to research, investigate, evaluate, compare options, extract findings, synthesize, analyze CSV/databases, or save to the research library. Sourced, verified, persisted to ~/dev/research/.
How this skill is triggered — by the user, by Claude, or both
Slash command
/research:researchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Structured research methodology for web and technical investigations. Produces cited, verified findings with confidence markers, persisted to a central knowledge base.
references/active-project-ingestion.mdreferences/collection.mdreferences/credibility.mdreferences/lifecycle.mdreferences/methodology.mdreferences/output-contracts.mdreferences/persistence.mdreferences/quantitative-analysis.mdreferences/source_scoring.mdreferences/synthesis.mdreferences/templates.mdreferences/verification.mdStructured research methodology for web and technical investigations. Produces cited, verified findings with confidence markers, persisted to a central knowledge base.
Supports four core workflows: general research (full 5-phase + persist), collection (source → evidence), synthesis (evidence → output), and quantitative/database analysis (data/schema → generated Python analysis → certainty-graded results). Use the active-project ingestion overlay when source materials need to become durable project wiki memory with chronology, contradictions, evolving themes, and decision relevance. All workflows end at Phase 6 (persist to ~/dev/research/) when the output warrants keeping.
Route to the appropriate workflow based on user language:
| Trigger Language | Workflow | Reference |
|---|---|---|
| "research", "investigate", "evaluate", "compare", "look into", "what's better X or Y" | General Research | Phases 1-6 below |
| "extract", "collect", "what does this say", "pull data from", "analyze this document", "key claims" | Collection | references/collection.md |
| "ingest into project wiki", "active project wiki", "project memory ingestion", "preserve chronology", "evolving themes", "contradictions over time" | Active Project Ingestion Overlay | references/active-project-ingestion.md |
| "synthesize", "summarize findings", "executive summary", "what should we do", "combine findings" | Executive/Authorial Synthesis | references/synthesis.md |
| "calculate", "quantitative", "analyze this CSV", "database", "SQL", "table", "schema", "metrics", "what does the data show" | Quantitative / Database Analysis | references/quantitative-analysis.md |
| "save research", "add to research library", "record this" | Persist existing findings | references/persistence.md |
When ambiguous: Ask the user. If they say "just research it," use General Research.
Before sourcing, classify the request as light, standard, or deep:
python ${CLAUDE_PLUGIN_ROOT}/research.py depth "<user request>"
Use the classifier as a transparent pre-flight, not as a hidden override. If the user explicitly asks for "quick", "light", "deep", "thorough", or "comprehensive", honor that language.
| Depth | Use when | Source budget | Persistence |
|---|---|---|---|
| Light | Definition, quick lookup, one-file summary, narrow factual answer | 0-2 sources | Skip unless reusable or user asks |
| Standard | Bounded multi-source question, current-state check, ordinary comparison | 2-5 sources | Persist if more than a short answer |
| Deep | Decision-grade recommendation, architecture, strategy, risks, high-stakes domain, quantitative claims, large corpus | 4-10 sources | Persist by default; verify critical claims |
Depth controls effort, not quality. Even light research must be accurate, cite external sources when used, and mark uncertainty.
Sequential workflow: For thorough research on a topic, the full pipeline is:
~/dev/research/Steps 2-3 can be invoked independently when the user already has sources or evidence.
Quantitative/database analysis can be inserted after collection whenever claims require calculations, SQL, table joins, or schema inspection.
For active project wiki ingestion, run Collection first, apply references/active-project-ingestion.md before synthesis, then persist durable outputs as separate wiki-ready entries instead of one giant package unless requested.
All workflows use the two-dimensional credibility framework from references/credibility.md:
references/source_scoring.md.Quick reference:
| Tier | Sources | Trust |
|---|---|---|
| T1 | Official docs, research labs, peer-reviewed, standards | Cite directly |
| T2 | Well-cited papers (>50), recognized experts, official eng blogs | Cite with context |
| T3 | IEEE, ACM, reputable industry blogs, conference talks | Cross-ref T1/T2 |
| T4 | Forums, SO, personal blogs, SEO content | Leads only; verify up |
Full framework with anti-patterns: references/credibility.md
Deterministic scoring pipeline: references/source_scoring.md
When the user has sources and needs structured evidence extraction.
Modes: Standard, Technical PDF, Concise, Large Corpus — auto-selected by source type, user-overridable. Add the Active Project Wiki Overlay when the user wants project memory ingestion, chronology, contradictions, concepts, or wiki update recommendations.
Core principle: Source-faithful extraction. Preserve meaning precisely, capture quantitative data exactly, never flatten distinct claims.
Output: Evidence package with typed items (claim, source, tier, corroboration, date, extraction type).
Full collection methodology and mode details: references/collection.md
Active project wiki ingestion overlay: references/active-project-ingestion.md
Output format specification: references/output-contracts.md
When the user has collected evidence and needs structured output.
Modes:
Sequential recommendation: Run authorial first for ground truth, then executive for implications.
MECE requirement: Before drafting, choose ONE organizing dimension (Chronological / Structural / Stakeholder / Thematic) and validate no finding belongs in 2+ sections.
Full synthesis methodology and mode details: references/synthesis.md
Output format specification: references/output-contracts.md
When research requires math, metrics, table analysis, SQL, or database reasoning.
Core rule: The LLM frames the analysis; Python performs the calculation.
Use this workflow before making quantitative claims from data:
research.py table-profile <file> for CSV/TSV/JSON or research.py db-profile <db> for SQLite.research.py analyze-plan --input <path> --question "..." to create analysis-plan.yaml, profiles, and a self-contained analysis.py.research.py analyze-run --plan <analysis-plan.yaml> to produce results.json and audit.md.Certainty rubric:
Default generated scripts are stdlib-only, local, and self-contained. Do not install packages or download code during analysis unless the user explicitly approves the environment change.
Full methodology and safety rules: references/quantitative-analysis.md
Before searching, define:
Select sources based on research type. Always prefer higher-tier sources.
Source strategy by research type:
| Type | Primary sources | Verification |
|---|---|---|
| Current state | Official docs, release notes, changelogs | Check dates, verify against 2+ sources |
| Comparison | Official docs for each option, benchmarks | Cross-validate claims, check methodology |
| Evaluation | Official docs, production case studies, GitHub issues | Test claims where possible |
| Deep dive | Source code, architecture docs, design docs | Trace through implementation |
| Survey | Ecosystem roundups, awesome-lists, official registries | Verify each candidate independently |
Minimum verification:
Run searches and fetches in parallel where independent. Minimize sequential round-trips.
For web research:
WebFetch — output is markdown; capture it verbatim for the Raw layerFor non-HTML sources (PDFs, Excel, PowerPoint, Python source, whole docs directories):
Use /research:extract <path> — routes everything through @tyroneross/omniparse (user-authored, MIT) with a content-hash cache.
.xlsx/.xls/.csv/.tsv/.ods/.xlsb, .pptx, .py, and directories (-r).Read with pages= — no extraction needed.WebFetch. Plain text formats (.md/.txt/.json/.yaml) are rejected with a pointer to Read.references/persistence.md for the full decision table and cache behavior.For technical/codebase research:
For comparison research:
Research discipline:
WebFetch markdown output, Read PDF text) for the Raw layer in Phase 6Compile findings into structured output. Use the appropriate template from references/templates.md.
Every finding must have:
Synthesis rules:
For deeper synthesis (authorial or executive modes), see references/synthesis.md.
Present findings inline in the conversation. For anything the user will want to refer back to — proceed to Phase 6.
Always include:
When to run: Use the depth classifier. Persist deep research by default, persist standard research when it produces a report-sized or reusable result, and skip light research unless the user asks to archive it.
See references/persistence.md for the full contract. Summary:
Derive slug — Dendron-style dot-hierarchy from the topic tree.
Examples: prompting.chain-of-thought, db.postgres.pgvector, design.calm-precision.forms.
Filename: <slug>.md inside ~/dev/research/topics/<top-level-topic>/.
Detect project — If cwd is under ~/dev/git-folder/<name>/, set projects: [<name>]. Otherwise projects: [].
Write three-layer markdown file with YAML frontmatter:
references/persistence.md.## TL;DR (≤150 words, extractive — use bolded phrases from Notes).## Notes (body with bolded key passages, [[backlinks]], inline [T1: url] citations).## Raw (verbatim source extracts from WebFetch / Read outputs, each tagged with URL + capture date).Source tiers — v0.1: tag manually using the T1–T4 framework. v0.2+: python research.py score --auto fills tiers deterministically from domain_scores cache → rules → LLM residue.
Persist — Invoke:
python ${CLAUDE_PLUGIN_ROOT}/research.py save --file <path-to-entry>
The script upserts into SQLite, creates project symlink + INDEX.md line when projects[] is non-empty, and the PostToolUse hook regenerates ~/dev/research/index.md, by-topic.md, by-project.md, and per-topic MOCs.
Verify (v0.2+) — For entries with numeric, citation, symbolic, or code claims:
python ${CLAUDE_PLUGIN_ROOT}/research.py verify <slug>
Updates verification.* frontmatter and writes per-atom artifacts to ~/dev/research/verifier-log/<slug>/.
Announce — Report the canonical path, project symlink path (if any), corroboration count, and verification summary.
For detailed methodology and output formats, consult:
references/credibility.md — Two-dimensional credibility framework (source quality + claim corroboration)references/source_scoring.md — Deterministic tier scoring pipeline (domain cache → rules → LLM residue)references/collection.md — 4 collection modes (standard, technical PDF, concise, large corpus)references/synthesis.md — 2 synthesis modes (authorial, executive) with MECE operationalizationreferences/quantitative-analysis.md — Quantitative/database workflow with generated Python analysis scripts and certainty rubricreferences/output-contracts.md — Evidence package and synthesis output format specificationsreferences/templates.md — Output templates for each general research typereferences/methodology.md — Extended methodology notes, anti-patterns, and research quality checklistreferences/persistence.md — Phase 6 save contract, three-layer template, frontmatter schema, slug rulesreferences/verification.md — Claim decomposition and verifier routing (v0.2)references/lifecycle.md — Staleness, archival, compression (v0.3)Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub tyroneross/rosslabs-ai-toolkit --plugin research