EVOLUTION is the last state of the APE cycle. When enabled, DARWIN proposes changes to APE itself as issues in the APE repo. Your code never leaves your machine.
After EXECUTE and END, if evolution.enabled is true, DARWIN reads the cycle's artifacts — diagnosis.md, plan.md, mutations.md — and composes one or more mutation proposals. Those proposals are filed as GitHub issues on the APE repo. Each issue describes what DARWIN thinks should change about the framework: new states, modified agent prompts, better preconditions, deprecated apes.
The proposals aren't applied automatically. They enter the same review flow as any GitHub issue — the maintainer decides whether to accept, reject, or modify. The collapse from nine lore apes to four happened through this mechanism.
The scope is narrow and explicit. DARWIN only reads files inside .ape/.
.ape/: diagnosis.md, plan.md, mutations.md
.ape/
One flag in .ape/config.yaml. The cycle proceeds as usual; at the boundary between END and IDLE, DARWIN activates.
# .ape/config.yaml evolution: enabled: true # the rest of your config stays as-is target: copilot language: en
One-shot per cycle. If the EVOLUTION step is interrupted — network failure, manual cancel, any error — the cycle returns to IDLE with no side effects. No half-filed issues, no corrupted state. Safe to experiment with, safe to disable again.
Each cycle should leave APE measurably better.
This is the antifragility thesis applied to the framework itself. Without an evolution loop, APE is exactly what it was — locked, static, aging. With it, operational friction becomes proposed improvements. Every time a cycle hits a rough edge that the maintainer had to work around, DARWIN can file a proposal to smooth it.
The guarantee: those proposals are public, auditable, and subject to review. Nothing disappears silently. Nothing happens in a private ops dashboard. The evolution story of APE is told in its issue tracker, in your language, at your approval.
The one-paragraph version you can quote anywhere: EVOLUTION is off by default. When enabled, DARWIN reads only files inside .ape/. Proposals are filed as public issues on the APE repo, with your approval before each filing. No telemetry. No analytics. No third-party service. Your source code stays on your machine.