Skills

Skill Evolution

Use when running, reviewing or changing coco's self-evolution cycle: the 30-day loop...

Install

npx skills add coco-research/coco --skill skill-evolution -g -a claude-code -y
Repository
coco-research/coco797
Category
Git and review
Updated
3d ago
License
See repository
Context cost
Lightabout 1,119 tokens
Runs scripts
Yes, review before use

What it does

Use when running, reviewing or changing coco's self-evolution cycle: the 30-day loop that observes how skills are actually used, proposes evidence-backed edits to them as one branch and one pull request, and lands nothing without the owner's merge. Also use when asked why a skill changed, what the loop would propose next, or how to reject a proposal so it is not raised again.

Skill Evolution

A cycle that improves this repository's own skills from observed use, and proposes every change for a human to merge. It never writes to main and never merges.

Status: the scripts this file documents, scripts/evolve.py and the steps it runs, are not on main yet, so the commands below do not run today. They land with plan tasks 2 to 9 in .metagpt/plan.md: task 2 ledger.py through task 8 evolve.py, and task 9 run_fixtures.sh with the CI join.

The one rule

The loop proposes. The owner decides. There is no confidence level, budget or green gate that lets it land a change on its own. This is a design invariant, not a setting: a system that edits the repository that measures it has no natural stopping point.

What a cycle does

Five steps, and only the second one calls a model.

StepScriptModel?Output
1. Observescripts/observe.pynosignals/<cycle>.json, pinned to one commit
2. Proposescripts/propose.pyyes, one laneproposals/<id>.json and proposals/<id>.patch
3. Validatescripts/validate.pynoaccept or refuse, with a reason
4. Openscripts/evolve.pynoone branch, one pull request
5. Recordscripts/ledger.pynoa ledger row per event, and CYCLE.md

Run it:

python3 scripts/evolve.py run --window 30d            # the real cycle, needs credentials
python3 scripts/evolve.py run --window 30d --dry-run   # stops before opening a branch
python3 scripts/evolve.py run --window 30d --lane stub # no network at all
python3 scripts/evolve.py status                       # last cycle, open proposals

What the guard refuses

validate.py is the only thing standing between a model's output and a branch. It refuses, with the reason named, when any of these hold:

Read the whole SKILL.md on GitHub

More in Git and review