Skill Evolution¶
Persistent experience consolidation and autonomous skill evolution for Mvge, implementing the WikiSkill approach: raw experience is consolidated into durable patterns, and those patterns are proposed and applied as agent-scoped skills.
Install¶
It is no longer bundled with coding_mvge. A coding session gets skill
evolution only once this rune is installed.
How it works¶
- Harvest —
consolidator/harvester.pyreads raw experience and session traces fromraw_experience/. - Consolidate —
consolidator/turns those into durable patterns and an index underskill_evolution/. Runs onturn_endandafter_invocation. - Propose — a dedicated proposer Mvge (
proposer_mvge/) with thefinishandread_filespells reviews the patterns and emits a proposal, either creating a new skill or patching an existing one. - Apply — accepted proposals are written to the agent's
skills/directory, whenauto_applyis on.
Hooks: session_start, after_invocation, turn_end, session_shutdown.
State¶
Everything is agent-scoped, under the global layer:
<global>/agents/<agent>/raw_experience/— harvested input<global>/agents/<agent>/skill_evolution/— patterns, index, audit trail
Dependencies¶
This rune depends on the engine only. Skill discovery goes through
RuneAPI.get_skills(), so skills resolve as runtime data supplied by whatever
rune registered them — skills-bridge, in practice. It imports no other rune's
modules, and it deliberately ships no dependency on one.
Notes¶
Two defects were fixed when this left coding_mvge:
- The proposer's spell package listed its
make_*spell factories in__all__. Spell discovery coerces everything listed there, tried to build a pydantic schema for theSkillEvolutionEngineparameter, and failed — which made the rune unimportable. - The proposer Mvge was constructed at module import time, so any discovery
failure broke
importof the whole rune rather than a single code path. It is now created on first use.