Unified entry point for code investigation. Auto-routes to specialized detective based on query keywords. Use when investigation type is unclear or for general exploration.
Unified entry point for code investigation. Auto-routes to specialized detective based on query keywords. Use when investigation type is unclear or for general exploration.
allowed-tools
Bash, Task, AskUserQuestion
Investigate Skill
Version: 1.0.0
Purpose: Keyword-based routing to specialized detective skills
Pattern: Smart delegation via Task tool
Overview
This skill analyzes your investigation query and routes to the appropriate detective specialist:
The investigation query should be available from the task description or user input.
# Query comes from the Task description or user request
INVESTIGATION_QUERY="${TASK_DESCRIPTION:-$USER_QUERY}"# Normalize to lowercase for case-insensitive matching
QUERY_LOWER=$(echo"$INVESTIGATION_QUERY" | tr'[:upper:]''[:lower:]')
Phase 2: Keyword Detection
# Priority 1: Error/Debug keywordsifecho"$QUERY_LOWER" | grep -qE "debug|error|broken|failing|crash"; then
DETECTIVE="debugger-detective"
KEYWORDS="debug/error keywords"
PRIORITY=1
RATIONALE="Bug fixes are time-critical and require call chain tracing"# Priority 2: Testing keywordselifecho"$QUERY_LOWER" | grep -qE "test|coverage|edge case|mock"; then
DETECTIVE="tester-detective"
KEYWORDS="test/coverage keywords"
PRIORITY=2
RATIONALE="Test analysis is specialized and requires callers analysis"# Priority 3: Architecture keywordselifecho"$QUERY_LOWER" | grep -qE "architecture|design|structure|layer"; then
DETECTIVE="architect-detective"
KEYWORDS="architecture/design keywords"
PRIORITY=3
RATIONALE="High-level understanding requires PageRank analysis"# Priority 4: Implementation (default)else
DETECTIVE="developer-detective"
KEYWORDS="implementation (default)"
PRIORITY=4
RATIONALE="Most common investigation type - data flow via callers/callees"fi
Phase 3: User Feedback
Before delegating, inform the user of the routing decision:
echo""echo"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"echo"🔍 Investigation Routing"echo"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"echo""echo"Query: $INVESTIGATION_QUERY"echo""echo"Detected: $KEYWORDS (Priority $PRIORITY)"echo"Routing to: $DETECTIVE"echo"Reason: $RATIONALE"echo""echo"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"echo""
Phase 4: Delegation via Task Tool
Use the Task tool to delegate to the selected detective:
Task({
description: INVESTIGATION_QUERY,
agent: DETECTIVE,
context: {
routing_reason: `Auto-routed based on ${KEYWORDS}`,
original_query: INVESTIGATION_QUERY,
priority: PRIORITY
}
})
Examples
Example 1: Debug Keywords
Input: "Why is login broken?"
Detection:
Keyword matched: "broken"
Priority: 1 (Error/Debug)
Route to: debugger-detective
Feedback:
🔍 Investigation Routing
Query: Why is login broken?
Detected: debug/error keywords (Priority 1)
Routing to: debugger-detective
Reason: Bug fixes are time-critical and require call chain tracing
Example 2: Test Keywords
Input: "What's the test coverage for payment?"
Detection:
Keywords matched: "test", "coverage"
Priority: 2 (Testing)
Route to: tester-detective
Feedback:
🔍 Investigation Routing
Query: What's the test coverage for payment?
Detected: test/coverage keywords (Priority 2)
Routing to: tester-detective
Reason: Test analysis is specialized and requires callers analysis
Example 3: Architecture Keywords
Input: "What's the architecture of the auth layer?"
Detection:
Keywords matched: "architecture", "layer"
Priority: 3 (Architecture)
Route to: architect-detective
Feedback:
🔍 Investigation Routing
Query: What's the architecture of the auth layer?
Detected: architecture/design keywords (Priority 3)
Routing to: architect-detective
Reason: High-level understanding requires PageRank analysis
Example 4: No Keywords (Default)
Input: "How does payment work?"
Detection:
No keywords matched
Priority: 4 (Default)
Route to: developer-detective
Feedback:
🔍 Investigation Routing
Query: How does payment work?
Detected: implementation (default) (Priority 4)
Routing to: developer-detective
Reason: Most common investigation type - data flow via callers/callees
Example 5: Multi-Keyword Conflict
Input: "Debug the test coverage"
Detection:
Keywords matched: "debug" (Priority 1) AND "test" (Priority 2)
Priority 1 wins
Route to: debugger-detective
Feedback:
🔍 Investigation Routing
Query: Debug the test coverage
Detected: debug/error keywords (Priority 1)
Routing to: debugger-detective
Reason: Bug fixes are time-critical and require call chain tracing
(Note: Also detected test keywords, but debug takes priority)
Complete Implementation
Here's the full workflow:
#!/bin/bash# Get investigation query from task description
INVESTIGATION_QUERY="${TASK_DESCRIPTION}"# Normalize to lowercase
QUERY_LOWER=$(echo"$INVESTIGATION_QUERY" | tr'[:upper:]''[:lower:]')
# Keyword detection with priority routingifecho"$QUERY_LOWER" | grep -qE "debug|error|broken|failing|crash"; then
DETECTIVE="debugger-detective"
KEYWORDS="debug/error keywords"
PRIORITY=1
RATIONALE="Bug fixes are time-critical and require call chain tracing"elifecho"$QUERY_LOWER" | grep -qE "test|coverage|edge case|mock"; then
DETECTIVE="tester-detective"
KEYWORDS="test/coverage keywords"
PRIORITY=2
RATIONALE="Test analysis is specialized and requires callers analysis"elifecho"$QUERY_LOWER" | grep -qE "architecture|design|structure|layer"; then
DETECTIVE="architect-detective"
KEYWORDS="architecture/design keywords"
PRIORITY=3
RATIONALE="High-level understanding requires PageRank analysis"else
DETECTIVE="developer-detective"
KEYWORDS="implementation (default)"
PRIORITY=4
RATIONALE="Most common investigation type - data flow via callers/callees"fi# Show routing decisionecho""echo"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"echo"🔍 Investigation Routing"echo"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"echo""echo"Query: $INVESTIGATION_QUERY"echo""echo"Detected: $KEYWORDS (Priority $PRIORITY)"echo"Routing to: $DETECTIVE"echo"Reason: $RATIONALE"echo""echo"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"echo""