Single-commit clean baseline after security scrub of niche-tells, project codenames, internal jargon, and contributor-email leaks. Contents: - 100 Rust crates (_primitives/_rust/) - 37 agent manifests (_manifests/) + generated specs (_generated/) - 67 user-invocable skills (skills/) - 33 hooks (hooks/) - Composition blocks (_blocks/) - Documentation (docs/, README.md) - TS adapter packages (_ts_packages/) - Assembler (_assembler/) - Roles (_roles/) - Templates (_templates/) - Forgejo CI (.forgejo/) Author: Denis Parfionovich <info@greendragon.info> License: see LICENSE.
21 KiB
| name | description | argument-hint |
|---|---|---|
| research | Deep research on any topic using parallel agents, web search, and cross-referencing. Use when user asks to research, investigate, or deeply analyze a topic, technology, library, or concept. Triggers on keywords like "research", "investigate", "deep dive", "find out everything about". Supports `--angle` presets for common specializations (competitors, design-refs). | <topic or question> [--angle=competitors|design-refs] |
Angle presets (Phase-5 specializations)
/research is the source-of-truth skill for deep research. Two common
specializations of Phase 5 are available as --angle presets — pick via
AskUserQuestion in Phase 1 (or surfaced directly from the CLI):
| Angle | Phase-5 focus | Replaces (deprecated) |
|---|---|---|
--angle=competitors |
practical + arch-analyst + trends weighted; kill-list includes marketing-only competitor pages |
/competitor-analysis |
--angle=design-refs |
web-researcher weighted toward Awwwards/Godly/SiteInspire; arch-analyst weighted toward visual archetype + motion tier; kei-critic checks stale AI-slop patterns |
/design-inspiration |
| (none — default) | Full 9-angle verification (numbers / critique / competitors / docs / stacks / competitor-arch / academic / intersections / trends) | — |
The preset is a Phase-1 question option; it does not add a new pipeline —
it just re-weights the Phase-5 teammate mix. Users who want the old
standalone skills can still invoke /competitor-analysis or
/design-inspiration (both route here).
Role-tag convention. Names like
web-researcher,meta-critic,arch-analyst,{component}-criticthat appear later in this skill are ad-hoc role tags passed to the generickei-researchersubagent inside its prompt — they are NOT separate manifests in the kit. Do not grep for them in_manifests/; they will not be found. The only manifest behind every research teammate iskei-researcher.
Deep Research Skill
You are conducting deep research on: $ARGUMENTS
[REQUIRES: optional knowledge vault] This skill persists research output to a markdown knowledge vault at
$KNOWLEDGE_VAULT(conventional default:$HOME/Projects/KnowledgeVault/). If you don't maintain a vault, use any stable directory (e.g.$HOME/research/) — the skill will create subdirectories as needed. Skip the vault-read phases if empty.[REQUIRES: team tools] The skill uses Claude Code's team orchestration tools (
TeamCreate,TaskCreate,TaskUpdate,TeamDelete). If your Claude Code install lacks team tooling, run the phases sequentially with single agents instead of parallel teammates.[OPTIONAL: project registry] If you maintain a project registry (e.g. in
$HOME/.claude/CLAUDE.mdor$HOME/.claude/memory/MEMORY.md), theintersectionsagent in Phase 5 reads it to find cross-project links. Skip that agent if you have no registry.
PHASE -1: MANDATORY USER CHOICE — Variant + Control Level
BEFORE any work, ask the user two questions via
AskUserQuestion(terminal option-picker, NOT free-text). Send BOTH questions in ONEAskUserQuestioncall (questions array of 2) so the user picks both in one prompt.
Question 1 — "Research depth variant"
Options (pick ONE):
- A — Light (2-stage, ~15 min) — Discovery wave → verification pass. 3-5 agents total. Structured report, no graph, no 9-angle verification. Use for: quick fact-checks, tool comparisons, shallow context.
- B — Standard (8-phase, ~40 min) — Current default. Discovery (5 agents) → cross-ref → report → vault save → 9-angle verification wave → synthesis → graph indexing → cleanup. Full report + graph.json + intersections.md. Use for: technology choice, architectural decisions, competitor mapping.
- C — Deep Decomposition (wave-based, ~1-2h) — Wave 0 decomposes question → Wave 1 parallel angle exploration per component → Wave 2 "two-touches rule" expansion (find what was missed; expand each finding via 2 touches upstream/downstream) → Wave 3 cross-analysis + re-expansion of found paths. Each agent writes its own file. Mandatory self-cleanup at end. 15-30+ agents. Outputs component-report-per-file + master synthesis + graph + intersection matrix. Use for: deep-domain research, new domain entry, major strategic decisions.
Question 2 — "Control level"
Options (pick ONE):
- 1 — Full control — Lead confirms EVERY agent spawn before it fires. You (lead) present a preview of the next wave's tasks and wait for user approval. Safest; slowest. Use when topic is sensitive, cost-critical, or decomposition untrusted.
- 2 — Confirm branches only — Lead spawns Wave 1 + discovery automatically. Confirms ONLY at (a) verification-wave start, (b) two-touches expansion branches, (c) any NEW domain a finding opens. Middle ground.
- 3 — Max autonomy — Lead self-approves all waves + branches via internal critique + confidence grading. User sees final report only. Fastest; requires trust. Use when topic well-scoped and user is away.
How to send (one AskUserQuestion call, 2 questions)
{
"questions": [
{
"question": "Research depth variant?",
"header": "Depth",
"multiSelect": false,
"options": [
{"label": "A — Light (2-stage, ~15 min)", "description": "Discovery + verification. 3-5 agents. Report only."},
{"label": "B — Standard (8-phase, ~40 min)", "description": "Full current flow. 9-angle verification. Graph + intersections."},
{"label": "C — Deep decomposition (wave-based, ~1-2h)", "description": "Decompose → per-component → two-touches → cross-analysis. 15-30+ agents."}
]
},
{
"question": "Control level?",
"header": "Control",
"multiSelect": false,
"options": [
{"label": "1 — Full control (confirm each spawn)", "description": "You approve every agent before it fires."},
{"label": "2 — Confirm branches only", "description": "Auto discovery. Ask before verification + new branches."},
{"label": "3 — Max autonomy", "description": "Self-approve via internal critique. Final report only."}
]
}
]
}
Route to matching section based on pair {A|B|C, 1|2|3}:
- A → "## Variant A — Light" (below)
- B → original 8-phase flow (current Phase 0-8)
- C → "## Variant C — Deep Decomposition" (below)
Control-level logic applies to ALL variants:
- L1 — before EVERY
TaskCreate+ agent spawn, invokeAskUserQuestionwith options {Approve | Modify | Skip} - L2 — auto-spawn discovery waves;
AskUserQuestionONLY before verification waves + new-branch spawns - L3 — no user prompts; apply
kei-criticteammate self-evaluation on each wave output before proceeding
Variant A — Light (2-stage)
Phase 0: Check knowledge vault (same as standard).
Phase 1: Spawn 3 teammates in parallel:
web-researcher— WebSearch/WebFetch top 10 findingskei-critic— limitations, alternatives, failure storiespractical— real-world use cases + prior art
Phase 2: Cross-reference + verify + confidence grading (you, lead).
Phase 3: Structured report + save to $KNOWLEDGE_VAULT/research/{topic}-light/.
Phase 4: Cleanup — TeamDelete. No graph, no 9-angle, no two-touches.
Variant C — Deep Decomposition (wave-based)
Wave 0 — Decomposition (lead-only, no spawn)
Break the research question into 3-7 orthogonal components. Each component must be:
- Independently explorable (no circular dependency)
- Concrete (not "the whole topic" recursively)
- Evidence-gradable
Save decomposition to $KNOWLEDGE_VAULT/research/{topic}/00-decomposition.md. If L1 control: show decomposition to user via AskUserQuestion with options {Approve | Request changes | Abort} before Wave 1.
Wave 1 — Per-component angle exploration (parallel spawn)
For EACH component from Wave 0, spawn 3-5 angle-specific agents:
{component}-web— WebSearch/WebFetch for this component only{component}-critic— issues/limitations specific to this component{component}-practical— real-world examples of this component{component}-docs— official documentation (conditional){component}-academic— papers/arXiv (conditional, only for tech/ML/math)
Typical spawn count: 5 components × 4 angles = 20 agents. Each writes to {topic}/wave1-{component}-{angle}.md.
If L1 control: ask user before spawning each component's wave (5 prompts). If L2 control: auto-spawn all Wave 1. If L3 control: auto-spawn all, self-critique each output.
Wave 2 — Two-touches rule expansion
For EACH Wave 1 finding, apply "two-touches rule":
- Touch 1 — What does this finding directly depend on? (upstream)
- Touch 2 — What does this finding enable or block? (downstream)
Both touches MUST be explored — not just adjacent facts, but second-order consequences. If Wave 1 mentioned "Rust async uses tokio", Touch 1 = "what tokio depends on (mio, futures-rs)", Touch 2 = "what consuming tokio affects (debuggability, compile time, binary size)".
Spawn one agent per (finding × two-touches) pair, or bundle by component. Each writes to wave2-{component}-expansion.md.
Also run a dedicated {component}-gaps agent per component: "what was NOT covered in Wave 1 for this component? What angle is missing? What should have been asked but wasn't?"
If L1 control: user approves expansion list. If L2 control: user approves NEW domains opened by expansion. If L3 control: self-evaluate which branches are worth expanding; auto-approve.
Wave 3 — Cross-analysis + re-expansion
Now that Waves 1-2 have generated 30-50 .md files, run 5-7 synthesis agents:
cross-analyst— which findings across components CONFLICT? Build conflict matrix.gap-closer— which gaps from Wave 2-gapsagents are still open? Can any be closed with one more agent?integration-mapper— how do components connect to each other + to existing projects (read Project Registry)?evidence-auditor— re-grade ALL claims across all files. Downgrade unverified. Flag[DISPUTED].timing-analyst— what's urgent, what's deferred, what's already obsolete?meta-critic— final adversarial pass. "Is this research actually useful or just a pile of data?"
Any finding marked for re-expansion: spawn one more agent for that specific thread.
If L1 control: user sees synthesis plan, approves. If L2 control: user approves re-expansion branches. If L3 control: auto-proceed.
Wave 4 — Master synthesis (lead)
Lead writes master document at {topic}/MASTER-REPORT.md containing:
- Executive summary (2-3 sentences)
- Per-component findings (linked to wave1/wave2 files)
- Cross-component conflicts + resolutions
- Project-registry intersections
- Evidence grades + confidence matrix
- Timing recommendation
- Open gaps (what COULDN'T be answered even with deep decomposition)
Plus graph.json cumulative update + intersections.md.
Wave 5 — Cleanup (mandatory — no orphaned agents or stale files left behind)
shutdown_requestto ALL teammatesTeamDelete- Verify no orphaned agents
- Commit all research files to git (in knowledge vault repo if versioned)
- Update
$KNOWLEDGE_VAULT/knowledge/research-graph.jsonmaster index - Append one-line entry to
$KNOWLEDGE_VAULT/knowledge/research-index.md
CRITICAL: Team-Based Orchestration
ALWAYS create a team for research. This is mandatory, not optional.
Step 1: Call
TeamCreatewithteam_name: "research-{topic-slug}"(e.g., "research-rust-async-runtimes") Step 2: Create tasks viaTaskCreatefor each research angle Step 3: Spawn named teammates viaTasktool withteam_nameparameter Step 4: Assign tasks to teammates viaTaskUpdateStep 5: Teammates work, mark tasks completed, go idle Step 6: You (lead) synthesize results, create Phase 2 tasks, assign to idle teammates Step 7: After all phases —shutdown_requestto all teammates, thenTeamDeleteWHY teams: Task lists give visibility. Named teammates can be re-assigned across phases. Idle teammates from Phase 1 get reused in Phase 5 — no wasted spawns.
Teammate naming convention:
- Phase 1:
web-researcher,code-explorer,kei-critic,practical,docs- Phase 5: reuse same teammates with new tasks (they keep context!)
- If topic doesn't need code exploration, skip
code-explorer— spawn only what's neededExecution pattern:
- Phase 0 — you do this yourself (Read vault files)
- TeamCreate + TaskCreate for Phase 1 tasks
- Spawn 3-5 teammates IN PARALLEL (single message, multiple Task calls with team_name)
- Assign Phase 1 tasks to teammates
- Wait for teammates to complete (they send messages when done)
- Phase 2-3 — you do this yourself (cross-reference + report)
- Phase 4 — you do this yourself (save to vault)
- Create Phase 5 tasks, assign to EXISTING idle teammates (reuse, don't spawn new)
- If Phase 5 needs >5 agents, spawn additional teammates
- Wait for Phase 5 completion
- Phase 6-7 — you do this yourself (synthesis + graph)
- Shutdown all teammates, TeamDelete
NEVER use
run_in_background: true— you need their results to proceed.
Process
Phase 0: Check knowledge vault Vault
Before web search, check existing knowledge:
- Read
$KNOWLEDGE_VAULT/knowledge/MOC notes for relevant existing findings - Search
$KNOWLEDGE_VAULT/research/for related prior research - Check
$KNOWLEDGE_VAULT/knowledge/wrong-paths.mdfor known dead ends on this topic - Use findings to focus web search on GAPS, not re-research known facts
Phase 1: Parallel Discovery (3-5 teammates)
Create tasks and assign to teammates:
-
web-researcher — Use WebSearch + WebFetch to find latest articles, docs, repos, benchmarks. Return top 10 findings with URLs.
-
code-explorer — If topic relates to code/library, search the codebase and npm/pypi/github for implementations, examples, patterns. [CONDITIONAL: skip if not code-related]
-
kei-critic — Search for criticisms, limitations, known issues, alternatives. Find "X vs Y" comparisons, migration guides, deprecation notices.
-
practical — Find real-world usage examples, case studies, production stories. Check GitHub issues, Stack Overflow, blog posts.
-
docs — If a library/framework, fetch official docs. Use Context7 MCP if available for versioned docs. [CONDITIONAL: skip if not a library/framework]
Phase 2: Cross-Reference & Validate
After teammates report back:
- Cross-reference findings — what do multiple sources agree on?
- Flag contradictions between sources
- Identify gaps — what wasn't found?
- Check dates — is information current?
- Rate confidence for each finding (high/medium/low)
Phase 3: Structured Report
Present findings as:
## Research: [Topic]
### Summary (2-3 sentences)
### Key Findings
1. [Finding] — confidence: X% — [source]
2. ...
### Architecture/How It Works
[If applicable — diagrams, data flow]
### Pros & Cons
| Pros | Cons |
|------|------|
| ... | ... |
### Alternatives Compared
| Feature | Option A | Option B | Option C |
|---------|----------|----------|----------|
### Recommendations
[Based on findings, what's the best path]
### Sources
- [URL] — [what was found]
Phase 4: Save to knowledge vault + Memory
If research reveals important patterns or decisions:
- Save full research to
$KNOWLEDGE_VAULT/research/{topic}/with YAML frontmatter and wikilinks - Update relevant MOC notes in
$KNOWLEDGE_VAULT/knowledge/:- New dead end →
wrong-paths.md - New pattern →
code-patterns.md - API finding →
api-integrations.md - Architecture insight →
architecture-decisions.md
- New dead end →
- Save key findings to memory topic file
- Update MEMORY.md index if new project/technology
Phase 5: 9-Angle Verification
Re-verification of EVERYTHING found so far. Reuse idle teammates from Phase 1 + spawn new if needed. Goal: find errors in Phase 1-4, close gaps, open new vectors.
Create new tasks and assign to teammates (reuse existing first, spawn additional if >5 needed):
-
web-researcher (reuse) → Numbers — Verify ALL numbers, unit economics, metrics, benchmarks. Recalculate independently. Find primary sources for each figure. If numbers don't agree — mark
[DISPUTED]. -
kei-critic (reuse) → Critique — Devil's advocate. Find ALL reasons this WON'T work. Worst-case scenarios. Legal risks. Ethical problems. What skeptics say. Real failure stories.
-
practical (reuse) → Competitors — Find ALL competitors (not only the obvious ones). Check: market map, Crunchbase, ProductHunt, G2/Capterra. Who launched in the last 6 months? Who died? Who pivoted?
-
docs (reuse) → Doc verification — Re-read official docs, changelogs, migration guides, deprecation notices. Find undocumented features, breaking changes, roadmap items. Verify docs match real behaviour.
-
code-explorer (reuse) → Tech stacks — Deep analysis of technologies: versions, compatibility, license (MIT/GPL/proprietary), community health (stars, contributors, last commit), alternatives. Vendor lock-in risk.
-
arch-analyst (spawn new) → Competitor architecture — For each competitor: tech stack, architectural patterns, API design, infra, open-source components. Weak points. What's hard to replicate (moat).
-
academic (spawn new) → Academic papers — [CONDITIONAL: only for tech/ML/math topics] arXiv, Google Scholar, Semantic Scholar, IEEE. Original papers. Skip if topic is business/SaaS.
-
intersections (spawn new) → Intersection branches — Read Project Registry from
$HOME/.claude/CLAUDE.mdor$HOME/.claude/memory/MEMORY.md(if maintained). For each project: is there an intersection? Can we reuse code/knowledge/infra? What NEW directions does this research open? Skip if no registry. -
trends (spawn new) → Trends & timing — Where is the market/technology moving? Hype cycle position. Regulation. Timing — too early or too late? Window of opportunity.
Phase 6: Verification Synthesis
After all teammates report back:
- Conflict Matrix — Build a table: where do Phase 1 and Phase 5 disagree? For each conflict: which source is more reliable?
- Evidence Upgrade — Re-grade evidence (
[E1]-[E6]) based on verification - Kill List — Which findings from Phase 1-4 turned out false/inaccurate? Remove from report
- New Findings — What did verification find that discovery missed?
- Updated Report — Update structured report from Phase 3 with verified data
Phase 7: Graph Indexing
Build knowledge graph and save to knowledge vault:
- Generate
graph.json— Save to$KNOWLEDGE_VAULT/research/{topic}/graph.json:
{
"topic": "research topic",
"date": "YYYY-MM-DD",
"nodes": [
{"id": "node-1", "label": "Name", "type": "technology|company|concept|person|project", "evidence": "E1-E6", "confidence": 85}
],
"edges": [
{"from": "node-1", "to": "node-2", "relation": "competes_with|depends_on|enables|blocks|intersects|replaces", "weight": 0.9, "evidence": "E1-E6"}
],
"clusters": [
{"id": "cluster-1", "label": "Cluster Name", "nodes": ["node-1", "node-2"]}
]
}
-
Update knowledge vault wikilinks — Ensure all nodes have corresponding
[[wikilinks]]in research notes and MOC files -
Intersection Map — Generate
intersections.mdshowing connections to existing projects:
## Intersections with Project Registry
- [[project-name]] ↔ [finding] — potential: high/medium/low — action: [what to do]
- Update Master Graph — Append new nodes/edges to
$KNOWLEDGE_VAULT/knowledge/research-graph.json(cumulative index across all research sessions)
Phase 8: Cleanup
- Send
shutdown_requestto ALL teammates - Wait for shutdown confirmations
- Call
TeamDeleteto clean up team and task list
Rules
- NEVER present unverified claims as facts
- Always cite sources with URLs
- Flag when information might be outdated (>6 months)
- Present multiple viewpoints, not just one
- Evidence grade (
[E1]-[E6]) for each major claim. Suggested scale: E1=primary source confirmed, E2=reproducible / multi-source agreement, E3=synthetic benchmark, E4=expert assessment / docs analysis, E5=theoretical hypothesis, E6=single unverified or stale (>6mo) source. - Confidence percentage for each major claim
- Phase 5 verification is MANDATORY — skip only if user explicitly says "quick research"
- Graph indexing runs AFTER verification, not before (verified data only goes into graph)
- TeamCreate is MANDATORY — no research without a team
- Reuse teammates across phases — don't spawn new when idle ones exist
- TeamDelete at the end — always clean up