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.
npx agentmods add skills/fmind/agent-evolutions/apply-agent-evolutionnpx skills add fmind/agent-evolutions --skill apply-agent-evolutiongit clone --depth 1 https://github.com/fmind/agent-evolutionsWhat 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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00056 | $0.00738 |
| Opus 5 | $0.00028 | $0.00369 |
| Sonnet 5 | $0.00011 | $0.00148 |
| Haiku 4.5 | $0.00006 | $0.00074 |
Grade C, and why
apply-agent-evolution scanned grade C 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.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
Variant workspaces stay as audit trail — the user removes them with `git worktree remove` (kind: worktree) or `rm -rf` (kind: files) when ready. How it starts
The opening of the file, as written. The whole thing — 66 lines — stays where its author put it; the contents beside it link to each section on GitHub.
apply-agent-evolution
Land the winner of <id-or-slug> into the live repo. Read-only until the user confirms.
0. Dispatch
Resolve the argument:
- Pure integer → match the leading
<id>under.agents/evolutions/<id>-*/. - String → match a slug fragment; on multi-match pick the lowest
<id>and note in chat.
Read evolution.yaml (validated against evolution.schema.json). Branch:
- Directory missing →
"No evolution found for <arg>. Run /new-agent-evolution <title> to capture one."Stop. appliedalready set → terminal."Evolution <id> already applied (winner: <variant_id>)."Stop.winnernot set →"No winner picked yet. Run /run-agent-evolution <id> first."Stop.
1. Pre-flight
Confirm winner.variant_id references a variant with status: evaluated and every gate passing — otherwise stop. Confirm git status --porcelain is clean over scope.include paths; on overlap, list conflicts and stop (commit, stash, or revert first).
2. Compute the diff
Branch on scope.kind:
worktree—git -C <workspace> diff --no-index --stat HEAD <live>if the workspace shares git history; otherwise plaindiff -r. Restrict toscope.include, excludescope.exclude.files— for eachscope.includepath, diff workspace copy against live file. Treat missing-on-one-side as add/delete.
Surface git diff --stat summary plus per-file diff body. If > 400 lines combined, show the stat and offer the full diff on request.
Reject paths under scope.exclude — list offenders and stop.
3. Confirm and apply
Wait for explicit confirmation ("looks good", "apply", "go"). On abort, leave the evolution as-is.
Copy each changed file (create parent dirs); rm deleted ones. Don't run formatters — gates already enforced quality. Capture git status --porcelain; write to evolution.yaml:
applied:
at: "<now>"
files_changed: [...]
Bump updated_at. Refresh §TL;DR in EVOLUTION.md (Applied, files changed).
4. Verify (recommended)
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.
- yesterday First seen · 66 lines · 56 tokens per session scan C a6b4d231f2c9
apply-agent-evolution is a skill published in the GitHub repository fmind/agent-evolutions (1 stars, last pushed 3mo ago), licensed MIT. It adds 56 tokens to every session and 738 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
gofer-documentation
Write or update customer-facing delivery documentation and generate its PublicAPI-capped lineage diagram. Use for Markdown, requirements, architecture, decisions, plans, validation evidence, or documentation graphs in a Gofer workspace.
eai
Start or continue the EAI delivery pipeline.
lever-new
Start a new lever — discuss the ask in chat, then capture intent (Goal, Success sketch, Context, Open questions) as §Brief. Hands off via /lever .
lever-status
Inspect or cancel levers. List all (no arg), detail one (TL;DR + criteria + per-criterion events timeline), or cancel one with cancel [ ]. Never advances the chain.
lever-init
Bootstrap a repo for agent-levers. Creates .agents/levers/, wires CLAUDE.md/GEMINI.md to import AGENTS.md, writes an AGENTS.md skeleton when missing. Hands off via /lever-new.
lever
Advance an existing lever. Reads lever.yaml.step and runs the chain (plan → do → check → act → done) autonomously until it pauses or finishes.