Evolve → run round-trip
Loop: episodes → evolve → archive → seed run → write-back fitness
Overview
Flock closes the loop between topology evolution and production runs:
flock evolve— mutates harness topology from episode corpus; writes.flock/topology_archive.jsonflock run --seed-archive— seeds topology/coordination from nearest archive entry; logsgenome_id+genome_seedevent- Write-back — after a successful run, merges episode fitness into the archive entry (by
genome_id)
Write-back is enabled with --write-back or automatically when --seed-archive is used. Pass --no-write-back to disable the automatic path.
Quick reproduce
EVOLVE_FIX="tests/fixtures/evolve-episodes"
mkdir -p .flock/episodes
cp "$EVOLVE_FIX"/*.json .flock/episodes/
flock evolve --episodes 10 --workspace .flock/episodes
flock run --goal "reach target" --plugin gridworld --seed-archive --json
Expected in episode JSON:
genome_id— seeded from archivefitness— plugin-grounded success scoreevents[]containinggenome_seedand (when write-back applies)archive_write_back
Write-back semantics
- Trigger:
GoalStatus::Satisfiedand bothgenome_id+fitnesspresent - Merge:
TopologyArchive::write_back_fitnessupdates matching entry by id; re-sorts by success score - Archive path:
--archive(default.flock/topology_archive.json)
JSON events
With --json, archive write-back emits a typed archive_write_back FlockEvent line before episode_end.