com um clique
rp-investigate-v2
// Deep investigation with RepoPrompt MCP tools: tools gather evidence, follow-up reasoning synthesizes selected context
// Deep investigation with RepoPrompt MCP tools: tools gather evidence, follow-up reasoning synthesizes selected context
Use for Codex multi_agent_v2 subagent orchestration: delegation decisions, spawn_agent prompts, custom agent_type roles, reasoning_effort choices, safe parallelism, wait/list/send/followup/close handling, commit discipline, receipts, and root-thread coordination.
Build with RepoPrompt MCP tools context builder plan → implement
Deep planning workflow using RepoPrompt MCP tools: map seams, draft, critique, polish — produces a ready-to-execute plan document
Iterative performance optimization loop using RepoPrompt MCP tools: instrument with debug-only metrics, establish a baseline, then plan → delegate one optimize+harden cycle → re-measure → ask oracle for next plan, looping until the oracle is satisfied or the target metric is met
Export a ChatGPT-ready Question / Plan / Review prompt using RepoPrompt MCP tools
Plan, decompose, and delegate complex tasks across multiple agents using RepoPrompt MCP tools
| name | rp-investigate-v2 |
| description | Deep investigation with RepoPrompt MCP tools: tools gather evidence, follow-up reasoning synthesizes selected context |
| repoprompt_managed | true |
| repoprompt_skills_version | 61 |
| repoprompt_variant | mcp |
Investigate: $ARGUMENTS
You are now in deep investigation mode for the issue described above. Follow this protocol rigorously.
This workflow leverages five complementary capabilities:
context_builder, dispatch an investigation agent, curate the file selection, and synthesize the final report. Default posture: coordination, not reconnaissance.spawn_agent with agent_type:"code_mapper" for in-repo archaeology or agent_type:"docs_researcher" for web/external docs): Read-only sub-agents in a fresh context window, for narrow self-contained questions. Used in two places: (1) before context_builder, for facts outside the current selection (git archaeology, web searches, external docs — findings go to ## Background / Prior Research in the report); (2) spawned by the investigation agent for narrow checks.context_builder): Populates the file selection with full files or slices relevant to the task. Feed it the report path so prior research informs the selection.oracle_send): Deep analytical reasoning over the current file selection. Good for synthesis across selected files; not a lookup tool.spawn_agent with agent_type:"investigation_lead", reasoning_effort:"high", fork_turns:"none"): Full-capability agent for the main line of inquiry. Reads files, runs git, spawns narrow scout/research agents when needed, and writes findings into ## Investigator Findings in the report.This workflow is read-only. Output lands in the investigation report; no source code changes.
The sub-agents' file reads don't populate your file selection — they run in their own sessions. Selection curation is your job: the chat only sees what's in the selection in your window.
context_builder seeds the selection during Phase 2op:"clear" or op:"set" — they wipe context_builder's curation. Use op:"add" / op:"remove" / slicescontext_builder → investigation agent → chat). You orchestrate; the investigation agent writes findings directly to the report.read_file / file_search / git for user-supplied leads, verifying agent findings, and grabbing final line-number evidenceBefore any investigation, bind to the target codebase using its working directory:
{"tool":"bind_context","args":{"op":"bind","working_dirs":["/absolute/path/to/project"]}}
This auto-resolves to the window containing your project. No need to list windows first.
If binding succeeds → proceed to Phase 1 If no match → the codebase isn't loaded. Find and open the workspace:
{"tool":"manage_workspaces","args":{"action":"list"}}
{"tool":"manage_workspaces","args":{"action":"switch","workspace":"<workspace_name>","open_in_new_window":true}}
Then retry the working_dirs bind.
docs/investigations/<topic>-<YYYY-MM-DD>.md (or match the repo's existing convention; look under docs/investigations/ for examples). Note its absolute path; you'll feed it to context_builder and the investigation agent.context_builder can't see in the workspace?
If yes, run Phase 1.5 first. Otherwise skip to Phase 2.
Dispatch scout/research agents in parallel for external facts. Use code_mapper for git/repo archaeology and docs_researcher for web or external documentation. As each returns, write a concise entry into the report's ## Background / Prior Research section — commits, excerpts, links.
// Research agent for external fact-gathering (use code_mapper for git archaeology)
{"tool":"spawn_agent","args":{
"task_name":"research_<kind>",
"agent_type":"docs_researcher",
"reasoning_effort":"low",
"fork_turns":"none",
"message":"<Specific question>. Report relevant commits/file:line refs or links + short summary."
}}
⚠️ Agents may block on permission approvals. Use
wait_agentandlist_agentsperiodically so you can approve requests and keep them unblocked.
context_builder — REQUIRED)context_builder discovers workspace files you'd miss manually. Pass detailed instructions + the report path so prior research informs its selection:
mcp__RepoPrompt__context_builder:
instructions: |
<task>Describe the specific issue or question to investigate</task>
<context>
See investigation report at `<absolute/path/to/investigation-report.md>` for symptoms, hypotheses, and any prior research (git history, external docs) gathered in Phase 1.5.
Symptoms:
- <symptom 1>
- <symptom 2>
Hypotheses to test:
- <theory 1>
- <theory 2>
Areas likely involved:
- <files, patterns, or subsystems>
</context>
response_type: question
Use response_type: question so the chat returns its initial assessment immediately. If context_builder produces a thin selection (few files, or misses obvious areas), re-run it with refined instructions rather than doing the broad search yourself.
Dispatch an investigation_lead agent for the main investigation. It handles multi-step reasoning and spawns narrow scout/research agents for focused reconnaissance when useful.
Skip the investigation agent only when the chat's hypotheses point to a single spot one read_file would resolve, or when Phase 1.5's external research already answers the task.
Default: one investigation_lead writing to ## Investigator Findings. Escalate to 2-3 parallel investigation agents only when the chat's response surfaces genuinely disjoint hypothesis paths (distinct root-cause theories in different subsystems — e.g., "caching vs. threading vs. encoding"). Each gets a disjoint scope and its own ## Investigator Findings: <path> sub-section; cap at 3.
Its brief should include:
## Investigator Findings (file:line refs, evidence, conclusions)code_mapper or docs_researcher agents for parallel reconnaissance — seed 2–3 concrete candidate checks to kickstart delegation{"tool":"spawn_agent","args":{
"task_name":"investigate_<hypothesis>",
"agent_type":"investigation_lead",
"reasoning_effort":"high",
"fork_turns":"none",
"message":"Investigate <hypothesis>. See `<report-path>` for context. Trace <flow>, verify <behavior>. Fan out code_mapper/docs_researcher agents only for narrow checks; candidate checks: <check 1>, <check 2>, <check 3>. Append findings to `## Investigator Findings` in the report with file:line refs and evidence."
}}
While the investigation agent runs, don't re-run its investigation. Monitor the session for permission approvals, handle user-supplied specifics (files the user pointed you at), run git on already-pinpointed code, and plan the next chat questions. Don't spin up parallel scout agents at your level — the investigation agent owns that work.
When the investigation agent returns:
{"tool":"wait_agent","args":{"timeout_ms":60000}}
{"tool":"list_agents","args":{}}
Read the ## Investigator Findings — primary evidence. Spot-check specific claims with read_file / file_search / git before folding into the root cause.
Agents persist after they finish — useful when you might revisit output, but they pile up over a multi-agent workflow. Once you've recorded what an agent produced, close it:
{"tool":"close_agent","args":{"target":"<task_name>"}}
Scout/research agents are good to close right away — narrow reconnaissance, no follow-up value. Keep heavier agents if you might revisit them.
Before each chat call, curate the selection. The investigation agent's file reads ran in another session — they aren't in your selection. Update it to match what the investigation surfaced:
## Investigator Findingsop:"clear" or op:"set" — they wipe context_builder's curation. Use op:"add" / op:"remove" / slicesThen ask a question that requires synthesis, not lookup:
// Add files the investigation agent surfaced
mcp__RepoPrompt__manage_selection:
op: add
paths: [<files surfaced by the investigation agent>]
// Or add a slice of a large file
mcp__RepoPrompt__manage_selection:
op: add
slices:
- path: "Root/large/file.swift"
ranges: [{start_line: 100, end_line: 250}]
// Ask a focused question — the chat sees the updated selection
mcp__RepoPrompt__`oracle_send`:
chat_id: <from context_builder>
message: |
Here's what the investigation agent found:
- <evidence 1 with file:line>
- <evidence 2 with file:line>
<specific analytical question>
mode: chat
Repeat Phases 3–4 as needed. For new evidence between chat calls, steer the existing investigation agent with followup_task or dispatch a fresh code_mapper / docs_researcher for narrow external lookups. Don't burn a chat call on a question read_file / file_search / git could answer.
Stop when: root cause is identified with concrete file:line evidence, alternate hypotheses are ruled out with specific counter-evidence, and recommended fixes point at exact locations.
## Investigator Findings and ## Background / Prior Research are your factual baseline. Verify line references as you fold them into:
| Capability | Agent (you) | Context Builder | Chat (oracle_send) | Investigation Agent | Scout/Research Agents |
|---|---|---|---|---|---|
| Triage / orchestrate | ✅ Primary | ❌ | ❌ | ❌ | ❌ |
| Dispatch sub-agents | ✅ | ❌ | ❌ | ✅ | ❌ |
| Discover files in workspace | ⚠️ Limited | ✅ Primary | ❌ | ✅ Good | ⚠️ Narrow |
| Populate file selection | ✅ (curate) | ✅ Primary (seed) | ❌ | ❌ | ❌ |
| Mutate selection to refocus chat | ✅ Primary | ❌ | ❌ | ❌ | ❌ |
| Read file contents & lines | ✅ | ❌ | Sees full selected files | ✅ | ✅ |
| Run git blame/log/diff | ✅ | ❌ | ❌ | ✅ | ✅ |
| Web searches / external docs | ❌ | ❌ | ❌ | ❌ | ✅ Primary |
| Multi-step cross-file reasoning | ⚠️ OK | ❌ | ✅ (on selection) | ✅ Primary | ❌ |
| Synthesize patterns & architecture | ⚠️ OK | ❌ | ✅ Primary | ✅ Good | ⚠️ OK |
| Form & refine hypotheses | ⚠️ OK | ❌ | ✅ Primary | ✅ Good | ❌ |
| Produce line-number evidence | ✅ (verify/augment) | ❌ | ❌ | ✅ Primary | ✅ |
| Write findings into report | ✅ (final synthesis) | ❌ | ❌ | ✅ Primary | ❌ |
Create a findings report as you investigate:
# Investigation: [Title]
## Summary
[1-2 sentence summary of findings]
## Symptoms
- [Observed symptom 1]
- [Observed symptom 2]
## Background / Prior Research
<!-- Findings from Phase 1.5 scout/research agents: git archaeology, external docs, web searches.
The agent populates this section before running the context builder. Omit if nothing outside the workspace was needed. -->
## Investigator Findings
<!-- The investigation agent appends its structured analysis here (file:line refs, evidence, conclusions).
The agent leaves this section for the investigator to populate and folds it into the root cause below.
If running 2–3 parallel investigation agents on disjoint hypothesis paths, replace this single section
with one sub-section per path, e.g.:
## Investigator Findings: <hypothesis path A>
## Investigator Findings: <hypothesis path B>
Each investigator writes only to its own sub-section to avoid write contention. -->
## Investigation Log
### [Phase] - [Area Investigated]
**Hypothesis:** [What you were testing]
**Findings:** [What you found]
**Evidence:** [Exact file paths, line numbers, code snippets, git commits]
**Conclusion:** [Confirmed/Eliminated/Needs more investigation]
## Root Cause
[Detailed explanation with precise evidence]
## Recommendations
1. [Fix 1 — specific file and location]
2. [Fix 2 — specific file and location]
## Preventive Measures
- [How to prevent this in future]
context_builder with incomplete inputs — before Phase 1.5 external research, or without the report pathcontext_builder or doing broad manual reads — you'll miss contextop:"clear"/op:"set" (wipes context_builder's curation)## Investigator Findings: <path> sub-sectioninvestigation_lead), or broad prompts like "investigate the auth system" to scouts (one specific check each)Now begin. Follow the phases above: assess → (if needed) gather external facts → context_builder → investigation agent → refresh selection → chat synthesis → report. You orchestrate, they investigate.