plugins/code-analysis/skills/claudemem-orchestration/SKILL.md
Use when orchestrating multi-agent code analysis with claudemem. Run claudemem once, share output across parallel agents. Enables parallel investigation, consensus analysis, and role-based command mapping.
npx skillsauth add madappgang/claude-code claudemem-orchestrationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Version: 1.1.0 Purpose: Coordinate multiple agents using shared claudemem output
When multiple agents need to investigate the same codebase:
This pattern avoids redundant claudemem calls and enables consensus-based prioritization.
For parallel execution patterns, see: orchestration:multi-model-validation skill
This skill focuses on claudemem-specific orchestration. For general parallel execution:
orchestration:multi-model-validation Pattern 1orchestration:multi-model-validation Pattern 0orchestration:multi-model-validation Pattern 7Purpose: Run expensive claudemem commands ONCE, share results across agents.
# Create unique session directory (per orchestration:multi-model-validation Pattern 0)
SESSION_ID="analysis-$(date +%Y%m%d-%H%M%S)-$(head -c 4 /dev/urandom | xxd -p)"
SESSION_DIR="/tmp/${SESSION_ID}"
mkdir -p "$SESSION_DIR"
# Run claudemem ONCE, write to shared files
claudemem --agent map "feature area" > "$SESSION_DIR/structure-map.md"
claudemem --agent test-gaps > "$SESSION_DIR/test-gaps.md" 2>&1 || echo "No gaps found" > "$SESSION_DIR/test-gaps.md"
claudemem --agent dead-code > "$SESSION_DIR/dead-code.md" 2>&1 || echo "No dead code" > "$SESSION_DIR/dead-code.md"
# Export session info
echo "$SESSION_ID" > "$SESSION_DIR/session-id.txt"
Why shared output matters:
After running claudemem, distribute to role-specific agents:
# Parallel Execution (ONLY Task calls - per 4-Message Pattern)
Task: architect-detective
Prompt: "Analyze architecture from $SESSION_DIR/structure-map.md.
Focus on layer boundaries and design patterns.
Write findings to $SESSION_DIR/architect-analysis.md"
---
Task: tester-detective
Prompt: "Analyze test gaps from $SESSION_DIR/test-gaps.md.
Prioritize coverage recommendations.
Write findings to $SESSION_DIR/tester-analysis.md"
---
Task: developer-detective
Prompt: "Analyze dead code from $SESSION_DIR/dead-code.md.
Identify cleanup opportunities.
Write findings to $SESSION_DIR/developer-analysis.md"
All 3 execute simultaneously (3x speedup!)
Task: ultrathink-detective
Prompt: "Consolidate analyses from:
- $SESSION_DIR/architect-analysis.md
- $SESSION_DIR/tester-analysis.md
- $SESSION_DIR/developer-analysis.md
Create unified report with prioritized action items.
Write to $SESSION_DIR/consolidated-analysis.md"
When multiple agents perform searches, consolidate feedback for efficiency.
Why Consolidate?
Shared Feedback Collection:
Each agent writes feedback to a shared file in the session directory:
# Agent writes feedback entry (atomic with flock)
report_agent_feedback() {
local query="$1"
local helpful="$2"
local unhelpful="$3"
# Use file locking to prevent race conditions
(
flock -x 200
printf '%s|%s|%s\n' "$query" "$helpful" "$unhelpful" >> "$SESSION_DIR/feedback.log"
) 200>"$SESSION_DIR/feedback.lock"
}
# Usage in agent
report_agent_feedback "$SEARCH_QUERY" "$HELPFUL_IDS" "$UNHELPFUL_IDS"
Orchestrator Consolidation:
After all agents complete, the orchestrator submits all feedback:
consolidate_feedback() {
local session_dir="$1"
local feedback_log="$session_dir/feedback.log"
# Skip if no feedback collected
[ -f "$feedback_log" ] || return 0
# Check if feedback command available (v0.8.0+)
if ! claudemem feedback --help 2>&1 | grep -qi "feedback"; then
echo "Note: Search feedback requires claudemem v0.8.0+"
return 0
fi
local success=0
local failed=0
while IFS='|' read -r query helpful unhelpful; do
# Skip empty lines
[ -n "$query" ] || continue
if timeout 5 claudemem feedback \
--query "$query" \
--helpful "$helpful" \
--unhelpful "$unhelpful" 2>/dev/null; then
((success++))
else
((failed++))
fi
done < "$feedback_log"
echo "Feedback: $success submitted, $failed failed"
# Cleanup
rm -f "$feedback_log" "$session_dir/feedback.lock"
}
# Call after consolidation
consolidate_feedback "$SESSION_DIR"
Multi-Agent Workflow Integration:
Phase 1: Session Setup
└── Create SESSION_DIR with feedback.log
Phase 2: Parallel Agent Execution
└── Agent 1: Search → Track → Write feedback entry
└── Agent 2: Search → Track → Write feedback entry
└── Agent 3: Search → Track → Write feedback entry
Phase 3: Results Consolidation
└── Consolidate agent outputs
Phase 4: Feedback Consolidation (NEW)
└── Read all feedback entries from log
└── Submit each to claudemem
└── Report success/failure counts
Phase 5: Cleanup
└── Remove SESSION_DIR (includes feedback files)
Best Practices Update:
Do:
flock -x)Don't:
| Agent Role | Primary Commands | Secondary Commands | Focus |
|------------|------------------|-------------------|-------|
| Architect | map, dead-code | context | Structure, cleanup |
| Developer | callers, callees, impact | symbol | Modification scope |
| Tester | test-gaps | callers | Coverage priorities |
| Debugger | context, impact | symbol, callers | Error tracing |
| Ultrathink | ALL | ALL | Comprehensive |
For complex bugs or features requiring ordered investigation:
Phase 1: Architecture Understanding
claudemem --agent map "problem area" Identify high-PageRank symbols (> 0.05)
Phase 2: Symbol Deep Dive
For each high-PageRank symbol:
claudemem --agent context <symbol> Document dependencies and callers
Phase 3: Impact Assessment (v0.4.0+)
claudemem --agent impact <primary-symbol> Document full blast radius
Phase 4: Gap Analysis (v0.4.0+)
claudemem --agent test-gaps --min-pagerank 0.01 Identify coverage holes in affected code
Phase 5: Action Planning
Prioritize by: PageRank * impact_depth * test_coverage
When an agent needs deep code analysis, it should reference the claudemem skill:
---
skills: code-analysis:claudemem-search, code-analysis:claudemem-orchestration
---
The agent then follows this pattern:
claudemem statusclaudemem indexDo:
orchestration:multi-model-validation)Don't:
session-start.sh)Automatic TTL Cleanup:
The session-start.sh hook automatically cleans up expired session directories:
/tmp/analysis-*, /tmp/review-* directories older than TTLplugins/code-analysis/hooks/session-start.sh for implementationManual Cleanup:
# Clean up specific session
rm -rf "$SESSION_DIR"
# Clean all old sessions (24+ hours)
find /tmp -maxdepth 1 -name "analysis-*" -o -name "review-*" -mtime +1 -exec rm -rf {} \;
For robust orchestration, handle common claudemem errors. See claudemem-search skill for complete error handling templates:
RESULT=$(claudemem --agent map "query" 2>/dev/null)
if [ -z "$RESULT" ] || echo "$RESULT" | grep -q "No results found"; then
echo "No results - try broader keywords or check index status"
fi
# Check if command is available (v0.4.0+ commands)
if claudemem --agent dead-code 2>&1 | grep -q "unknown command"; then
echo "dead-code requires claudemem v0.4.0+"
echo "Fallback: Use map command instead"
fi
# Verify index before running commands
if ! claudemem status 2>&1 | grep -qE "[0-9]+ (chunks|symbols)"; then
echo "Index not found - run: claudemem index"
exit 1
fi
Reference: For complete error handling patterns, see templates in code-analysis:claudemem-search skill (Templates 1-5)
Maintained by: MadAppGang Plugin: code-analysis v2.8.0 Last Updated: December 2025 (v1.1.0 - Search feedback protocol support)
testing
A test skill for validation testing. Use when testing skill parsing and validation logic.
tools
--- name: bad-skill description: This skill has invalid YAML in frontmatter allowed-tools: [invalid, array, syntax prerequisites: not-an-array --- # Bad Skill This skill has malformed frontmatter that should fail parsing. The YAML has: - Unclosed array bracket - Wrong type for prerequisites (should be array, not string)
tools
Plugin release process for MAG Claude Plugins marketplace. Covers version bumping, marketplace.json updates, git tagging, and common mistakes. Use when releasing new plugin versions or troubleshooting update issues.
testing
Fetch trending programming models from OpenRouter rankings. Use when selecting models for multi-model review, updating model recommendations, or researching current AI coding trends. Provides model IDs, context windows, pricing, and usage statistics from the most recent week.