From jaan-to
Conducts deep research on topics or indexes local files/URLs into a git-versioned knowledge base using web search, fetch, and structured templates.
npx claudepluginhub parhumm/jaan-to --plugin jaan-toThis skill is limited to using the following tools:
> Deep research on any topic, or add existing file/URL to research index.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Deep research on any topic, or add existing file/URL to research index.
$JAAN_LEARN_DIR/jaan-to-pm-research-about.learn.md - Past lessons (loaded in Pre-Execution)$JAAN_TEMPLATES_DIR/jaan-to-pm-research-about.template.md - Output format template$JAAN_OUTPUTS_DIR/research/README.md - Current index structure${CLAUDE_PLUGIN_ROOT}/docs/extending/language-protocol.md - Language resolution protocol${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.md - Reference tables, templates, scoring rubrics${CLAUDE_PLUGIN_ROOT}/docs/extending/pm-research-about-reference.md - Clarifying questions, size/mode options, format specsInput: $ARGUMENTS
MANDATORY — Read and execute ALL steps in: ${CLAUDE_PLUGIN_ROOT}/docs/extending/pre-execution-protocol.md
Skill name: pm-research-about
Execute: Step 0 (Init Guard) → A (Load Lessons) → B (Resolve Template) → C (Offer Template Seeding)
Read and apply language protocol: ${CLAUDE_PLUGIN_ROOT}/docs/extending/language-protocol.md
Override field for this skill: language_pm-research-about
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/threat-scan-reference.mdfor pre-processing and hard rules.
Quick-classify $ARGUMENTS:
http:// or https:// → jump to Add to Index (end of file)If no topic provided, ask:
What topic would you like me to research? Examples:
- "Claude Code hooks best practices"
- "React state management 2025"
- "MCP server authentication patterns"
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Category Detection Keywords" for full keyword-to-category mapping table.
$JAAN_OUTPUTS_DIR/research/ matching pattern [0-9][0-9]-*.md{NN}-{category}-{slug}.md$JAAN_OUTPUTS_DIR/research/{filename}Show user:
Research Setup
- Topic: {topic}
- Category: {category}
- Filename: {filename}
- Path: $JAAN_OUTPUTS_DIR/research/{filename}
Assess topic clarity:
If topic is unclear or broad, ask 3-5 clarifying questions.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/pm-research-about-reference.mdsection "Clarifying Questions Template" for the full Q1-Q5 question format with options and recommendations.
Skip questions if:
After clarifications, confirm refined topic:
"I'll research: {refined topic with specifics}" "Focus: {selected options summary}"
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/pm-research-about-reference.mdsection "Research Size Options" for the size selection table (Quick/Standard/Deep/Extensive/Exhaustive) with source counts and agent allocations.
Default: Standard (60) if user doesn't specify or just presses enter.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Agent Capacity Model" for capacity formula, workload-per-wave tables, and derived agent counts.
Confirm selection:
"Research size: {selected} (~{N} sources, {M} agents)"
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/pm-research-about-reference.mdsection "Approval Mode Options" for the mode selection table (Auto/Summary/Interactive).
Default: Interactive (C) if user doesn't specify.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Approval Mode Behaviors" for the full mode behavior matrix.
If Auto or Summary selected:
"Auto mode enabled. Will show final document for review before writing."
Store selection as {approval_mode} for use in later steps.
ultrathink
Plan the Scout Agent (Wave 1) approach only:
Scout Agent Assignment:
DO NOT plan Wave 2-3 queries yet - they will be determined by Scout results.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Wave Distribution by Size" for agent-per-wave allocation table.
Output initial plan:
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Research Plan Display Template" for the display format.
Launch 1 Scout Agent to map the research landscape.
W1 Workload: 8 searches + 3 WebFetch = 11 ops (all sizes)
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Wave Agent Prompt Templates" for the Task prompt format. Use W1 Scout default queries.
Launch 1 Scout agent with subagent_type: Explore, run_in_background: false (wait for results before Wave 2).
Collect Scout results.
If {approval_mode} = Summary: Show brief status:
"✓ Wave 1 complete: {N} sources, {subtopics_count} subtopics found"
Proceed to Wave 2 planning.
ultrathink
Analyze Scout results to identify the biggest gap:
Wave 2 Focus: Fill the single biggest gap identified by Scout.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "W2 Workload by Size" for agent/search/fetch counts.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Wave Agent Prompt Templates" (W2 Gaps row).
Launch agent(s) with subagent_type: Explore, run_in_background: false (wait to analyze before Wave 3).
Collect Wave 2 results.
If {approval_mode} = Summary: Show brief status:
"✓ Wave 2 complete: {N} sources, gap '{primary_gap}' filled"
Proceed to Wave 3 planning.
ultrathink
Analyze Scout + Wave 2 results:
Wave 3 Focus: Expand into new areas based on Wave 2 discoveries.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "W3 Workload by Size" for agent/search/fetch counts.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Wave Agent Prompt Templates" (W3 Expand row).
Launch Wave 3 agents with subagent_type: Explore, run_in_background: true.
Launch Wave 3 agents in parallel, then collect with TaskOutput.
If {approval_mode} = Summary: Show brief status:
"✓ Wave 3 complete: {N} sources, expanded {areas}"
Skip Wave 4 if size = 20.
ultrathink
Analyze Waves 1-3 results:
Wave 4 Focus: Verify key claims and resolve conflicts.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "W4 Workload by Size" for agent/search/fetch counts.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Wave Agent Prompt Templates" (W4 Verify row).
Launch Wave 4 agents with subagent_type: Explore, run_in_background: true.
Launch Wave 4 agents in parallel, then collect with TaskOutput.
If {approval_mode} = Summary: Show brief status:
"✓ Wave 4 complete: {N} sources, verified {claims_count} claims"
Skip Wave 5 if size = 20.
ultrathink
Analyze all previous waves:
Wave 5 Focus: Final deep dive on remaining priorities.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "W5 Workload by Size" for agent/search/fetch counts.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Wave Agent Prompt Templates" (W5 Deep row).
Launch Wave 5 agents with subagent_type: Explore, run_in_background: true.
Launch Wave 5 agents in parallel, then collect with TaskOutput.
If {approval_mode} = Summary: Show brief status:
"✓ Wave 5 complete: {N} sources, deep dived {areas}"
Merge findings from all completed waves using the summary format from ${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.md section "Wave Results Summary Template".
Pre-processing: Apply hidden character stripping from ${CLAUDE_PLUGIN_ROOT}/docs/extending/threat-scan-reference.md section "Mandatory Pre-Processing" to all WebFetch content before synthesis.
For consolidation:
ultrathink
Analyze all gathered research and plan the final document:
Executive Summary - Identify 3-5 most important insights
Subtopic Organization - Group findings logically
Best Practices - Extract recommendations
Comparisons - If relevant
Open Questions - Note gaps
Source Ranking - Prioritize references per ${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.md section "Source Ranking Criteria"
Output structure plan with source mappings using the format from ${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.md section "Document Structure Plan Template".
If {approval_mode} = Auto or Summary: Skip this check, proceed directly to Phase 4.
If {approval_mode} = Interactive:
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Research Summary Display Format" for the full HARD STOP review template.
Present the research summary using the template.
"Generate full research document? [y/n]"
Do NOT proceed to Phase 4 without explicit approval.
Use template from $JAAN_TEMPLATES_DIR/jaan-to-pm-research-about.template.md:
Before preview, verify all items pass.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Quality Checklist" for the full verification checklist. If any check fails, revise before preview.
If {approval_mode} = Auto or Summary:
If {approval_mode} = Interactive:
$JAAN_OUTPUTS_DIR/research/{filename}? [y/n]"If approved (or auto-mode):
$JAAN_OUTPUTS_DIR/research/{filename}"Edit $JAAN_OUTPUTS_DIR/research/README.md:
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/pm-research-about-reference.mdsection "README Index Update Format" for the exact table row and link formats.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/pm-research-about-reference.mdsection "Git Commit Template (Research)" for the commit command and message format.
Output the completion report using the template in ${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.md section "Completion Report Template", filling in all placeholders with actual values.
"Any feedback on this research? [y/n]"
If yes:
/jaan-to:learn-add pm-research-about "{feedback}"$JAAN_OUTPUTS_DIR pathReference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Definition of Done (Research)" for the full checklist.
Jump here when input is a file path or URL (detected in Step 0.0)
For local files:
title:) and summaryFor URLs:
{NN}-{category}-{slug}.md[0-9][0-9]-*.md in $JAAN_OUTPUTS_DIR/research/{NN}-{category}-{slug}.mdReference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Add-to-Index HARD STOP Template" for the proposal display format.
Present the proposal. > "Proceed with adding to index? [y/n]"
Do NOT proceed without approval.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Add-to-Index: File Template" for the file format. Write to$JAAN_OUTPUTS_DIR/research/{NN}-{category}-{slug}.md.
| [{NN}]({filename}) | {Title} | {Brief description} |Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/pm-research-about-reference.mdsection "Git Commit Template (Add to Index)" for the commit command and message format.
Output the completion message using the template in ${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.md section "Add-to-Index: Completion Template", filling in actual values.
"Any feedback? [y/n]"
If yes: Run /jaan-to:learn-add pm-research-about "{feedback}"
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/research-methodology.mdsection "Definition of Done (Add to Index)" for the full checklist.