Dossier Collect
Recursive parallel investigation that builds a graph-structured dossier on a seed entity.
When to use
You have a seed (a username, file, symbol, ADR-id, URL, or concept) and want to expand outward discovering every connected entity, with provenance per claim — rather than answering a specific question.
For specific questions use deep-research. For multi-step plans use goal-plan.
Steps
- Detect seed type — classify as one of:
username(handle),file(path),symbol(code identifier),adr(ADR-NNN),url, orconcept(free text). - Pick sources — match the source matrix to the seed type. Default: all applicable.
- Start trajectory — call
mcp__claude-flow__hooks_intelligence_trajectory-startwith taskdossier:<slug>. - Round 0 fan-out — issue ALL source queries in ONE message. Examples:
- For
username:WebSearch,WebFetchon github.com/, mcp__claude-flow__memory_search_unified - For
adr:ReadADR file,Grepreferences,mcp__claude-flow__memory_searchnamespaceadr - For
symbol:Grep,Glob,mcp__claude-flow__embeddings_search
- For
- Extract entities — from each hit, surface entities (people, repos, files, adrs, urls, terms). Lightweight regex + heuristics; no LLM extraction unless ambiguous.
- De-dup — drop entities already in the dossier. If
--exactis unset, also drop entities whose embedding cosine similarity ≥ 0.92 to an existing node. - Round k recursion — for each new entity (capped at
--max-breadthper source), recurse to step 4 until depth ≥--max-depthOR budget exhausted. - Aggregate — build
{ nodes, edges }graph. Each node carries{ id, type, attrs, sources: [...] }. Each edge carries{ from, to, kind, source, confidence }. - Render artifacts:
<slug>.md— executive summary, entity table, mermaid graph, source-provenance footnotes<slug>.json— machine-readable graph- Default location:
v3/docs/examples/dossiers/<slug>/
- Persist —
mcp__claude-flow__memory_storenamespacedossierkey<slug>. - End trajectory —
mcp__claude-flow__hooks_intelligence_trajectory-endwith success status.
Output schema (JSON)
{
"seed": "ruvnet",
"seedType": "username",
"depth": 2,
"truncated": false,
"generatedAt": "ISO-8601",
"nodes": [
{ "id": "ruvnet", "type": "username", "attrs": { "...": "..." }, "sources": ["WebSearch", "github.com"] }
],
"edges": [
{ "from": "ruvnet", "to": "ruflo", "kind": "owns", "source": "github.com", "confidence": "high" }
],
"stats": { "nodesByType": {}, "sourcesUsed": [], "tokensSpent": 0 }
}
Budget discipline
- If
--budget-usdis set, track approximate cost via trajectory. On exhaustion: emit partial dossier withtruncated: trueand the entities still queued. - BFS expansion only — finish round k before round k+1.
- Never silently truncate. Always mark and record what was skipped.
Examples
/ruflo-goals:dossier-collect ruvnet
/ruflo-goals:dossier-collect ADR-097 --max-depth 1
/ruflo-goals:dossier-collect "src/memory/hnsw.ts" --sources codebase,git,memory
/ruflo-goals:dossier-collect "ruflo-goals" --max-breadth 5 --budget-usd 1