evolve

A command for reviewing a project's learning system, including recorded corrections, observations, and learned rules. It helps decide which repeated lessons to keep or remove.

In plain words
What is it for?
Auditing memory files, grouping repeated corrections, checking observations, and promoting reliable lessons into project rules.
Why use it?
It surfaces recurring mistakes and patterns so the project's instructions can be improved instead of rediscovering the same issues.

Command

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/keysersoose/claude-code-setup/evolve
Clone the repo
git clone --depth 1 https://github.com/keysersoose/claude-code-setup
Per session 18 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 680 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00018 $0.00680
Opus 5 $0.00009 $0.00340
Sonnet 5 $0.00004 $0.00136
Haiku 4.5 $0.00002 $0.00068

Measured yesterday against content hash f6225d91d62b, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade B, and why

evolve scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

!`cat .claude/memory/learned-rules.md 2>/dev/null || echo "No learned rules yet"`
commands/evolve.md · 73 lines

How it starts

The opening of the file, as written. The whole thing — 73 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Current State

Learned Rules

!cat .claude/memory/learned-rules.md 2>/dev/null || echo "No learned rules yet"

Recent Corrections (last 20)

!tail -20 .claude/memory/corrections.jsonl 2>/dev/null || echo "No corrections logged yet"

Recent Observations (last 20)

!tail -20 .claude/memory/observations.jsonl 2>/dev/null || echo "No observations logged yet"

Previous Evolution Decisions

!tail -40 .claude/memory/evolution-log.md 2>/dev/null || echo "No evolution history yet"

Your Task

You are the meta-engineer. Improve the system that runs you.

Step 1: Analyze Corrections

Group corrections by pattern. Look for:

  • Same correction appearing 2+ times (should already be in learned-rules, if not, promote now)
  • Correction clusters pointing to a missing rule in CLAUDE.md or rules/
  • Corrections that contradict existing rules (the rule is wrong, not the user)

Step 2: Analyze Observations

Group observations by type. Look for:

  • High-confidence observations confirmed multiple times
  • Observations that match corrections (convergent signals are strongest)
  • Architecture or gotcha observations that could prevent future bugs

Step 3: Audit Learned Rules

For each rule in learned-rules.md:

  • Still relevant? Does the codebase still follow this pattern?
  • Promotion candidate? If it's been there 10+ sessions and always followed, propose graduating to CLAUDE.md or rules/
  • Redundant? Is it now covered by a linter rule, a rules/ file, or CLAUDE.md?
  • Too vague? Can Claude actually follow it without interpretation?

Step 4: Check Evolution Log

Read evolution-log.md. Never re-propose a rejected rule unless the user explicitly asks.

Step 5: Propose Changes

For each proposal, show:

PROPOSE: [action] Rule: [the rule text] Source: [corrections/observations/learned-rules] Evidence: [why this should change] Destination: [learned-rules.md | CLAUDE.md | rules/X.md | DELETE]

Categories of action:

  • PROMOTE: Move from observations to learned-rules
  • GRADUATE: Move from learned-rules to CLAUDE.md or rules/
  • PRUNE: Remove redundant or outdated learned rule
  • UPDATE: Modify existing rule based on new evidence
  • ADD: New rule from correction patterns

Read the full file on GitHub · 73 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 73 lines · 18 tokens per session scan B f6225d91d62b

Subscribe to this mod's changes

evolve is a command published in the GitHub repository keysersoose/claude-code-setup (2 stars, last pushed 1mo ago), licensed MIT. It adds 18 tokens to every session and 680 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.