v3/docs/adr/ADR-361-dream-cycle-intelligence-skill-evolution-worker.md
Ruflo's SONA (Self-Optimizing Neural Architecture) adapts routing weights at inference time (measured 0.0043ms/adapt) and the MoE gate converges from confidence 0.13→0.88 after rewards. However, SONA's skill catalog — the discrete skill types available to agents at spawn time — is statically defined in the codebase. Agent types are declared at initialization and do not evolve based on runtime task outcomes.
In 2026, SkillRL (arXiv:2602.08234) demonstrates that agents with RL-driven recursive skill acquisition outperform static skill catalogs across EvoAgentBench's four domains (web research, algorithmic reasoning, software engineering, knowledge retrieval). The key insight is that skill selection (which skill to apply to a task) and skill acquisition (whether to add a new skill derived from task experience) operate on different timescales and benefit from separate RL signals.
Separately, EvolveMem (arXiv:2605.13941) shows that memory management strategies themselves can be improved via an auto-research loop — analogous to the skill evolution gap but on the memory side.
The existing post-task hook already fires with --success true/false per task completion. This is the natural injection point for an RL update signal.
Add a Skill Evolution Worker (SEW) as the 13th background worker in the hooks system (@claude-flow/hooks).
post-task hook event (priority: normal; non-blocking to task pipeline).skill-evolution. λ=0.9, α=0.01, γ=0.95.deprecated status (not deleted; available for re-promotion).npx claude-flow@latest hooks worker status --worker sew.# Status
npx claude-flow@latest hooks worker status --worker sew
# Inspect skill Q-table
npx claude-flow@latest hooks worker dispatch --trigger sew --action inspect
# Force a skill promotion dry-run
npx claude-flow@latest hooks worker dispatch --trigger sew --action promote-dryrun
# Disable (opt-out)
npx claude-flow@latest config set hooks.workers.sew.enabled false
skill-evolution namespace)interface SkillQRecord {
skillId: string; // e.g. "coder:typescript"
qValue: number; // current Q-value
sampleCount: number; // number of SARSA updates
status: "active" | "candidate" | "deprecated";
lastUpdated: string; // ISO timestamp
confidenceLowerBound: number; // Bayesian lower bound at 95%
}
Positive:
post-task hook infrastructure and AgentDB storage.Negative / Risks:
Not changed: