Overview
This guide covers debugging techniques for evolution failures, signal extraction issues, gene selection problems, and validation errors.Log Files & Locations
Evolution State
GEP Assets
Session Logs
Workspace Memory
Debugging Evolution Failures
Step 1: Check Last Event
Step 2: Identify Failure Reason
| Violation | Meaning | Fix |
|---|---|---|
max_files exceeded: 25 > 12 | Blast radius too large | Increase gene’s max_files or reduce scope |
forbidden_path touched: .env | Modified protected file | Remove .env from changes |
validation_failed: npm test | Tests failed | Fix code, improve validation |
missing_or_invalid_mutation | No mutation object | Ensure Hand Agent emits mutation |
critical_path_modified: skills/evolver/src/evolve.js | Self-modification blocked | Set EVOLVE_ALLOW_SELF_MODIFY=true or avoid |
Step 3: Check Validation Details
Step 4: Analyze Blast Radius
src/gep/. If gene’s max_files: 12, this exceeds the limit.
Step 5: Check Estimate vs. Actual Drift
Debugging Signal Extraction
Check Extracted Signals
Verify Signal Sources
Signals come from:- Session logs: Recent errors, LLM errors, tool failures
- MEMORY.md: Memory anomalies, context drift
- USER.md: User feedback, feature requests
- Event history: Repair loops, saturation patterns
Debug Signal Extraction Logic
Run signal extraction manually:Debugging Gene Selection
Check Selector Decision
- Selector chose
gene_repair_001with score 0.87 - Memory graph advised this gene (high confidence path)
gene_innovate_005is banned (low success rate)
Debug Selector Scoring
Run selector manually:Check Memory Graph Advice
Debugging Memory Graph
Query Memory Graph
Inspect Causal Chain
Visualize Memory Graph
Export to GraphViz DOT format:Debugging Validation Failures
Run Validation Manually
Check Validation Safety
Test if a command would be allowed:Inspect Validation Report
Debugging Loop Gating
Check Pending State
last_run.run_id == last_solidify.run_id: No pending evolutionlast_run.run_id != last_solidify.run_id: Evolution pending, evolver will back off
Check Dormant Hypothesis
Asset Log Commands
Evolver tracks asset usage inmemory/evolution/asset_call_log.jsonl:
Query Asset Usage
Common Debug Scenarios
Scenario 1: Evolution runs but nothing happens
Check:- Bridge enabled:
echo $EVOLVE_BRIDGE(should betrueor unset) - Hand Agent spawned:
grep 'sessions_spawn' logs/*.log - Prompt generated:
EVOLVE_PRINT_PROMPT=true node index.js
Scenario 2: Evolution always fails validation
Check:- Gene validation commands:
jq -r '.validation[]' assets/gep/genes.json - Run validation manually:
npm test - Check for environment-specific issues: Compare
env_fingerprintin validation report
Scenario 3: Wrong gene selected
Check:- Selector decision:
tail -1 assets/gep/events.jsonl | jq '.meta.selector' - Memory advice:
tail -1 assets/gep/events.jsonl | jq '.meta.selector.memory_advice' - Signal extraction:
tail -1 assets/gep/events.jsonl | jq '.signals'