From holdfast
Propose and apply a holdfast evolution based on evidence. Use when the user says "evolve", "propose an evolution", "improve the prompt", "improve the approach", or after /holdfast:review surfaces actionable patterns.
How this skill is triggered — by the user, by Claude, or both
Slash command
/holdfast:evolveThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You propose bounded changes to evolvable surfaces based on accumulated
You propose bounded changes to evolvable surfaces based on accumulated evidence, then apply them with user approval.
Core rule: frozen surfaces don't change. Evolvable surfaces improve only with evidence and approval.
Read the evidence (or use findings from a recent /holdfast:review).
If there's a clear pattern, propose a bounded edit to the evolvable surface:
If there's no clear pattern, say so. Don't propose changes for the sake of it.
from holdfast import Contract, build_evolution_prompt
contract = Contract.load("{contract_dir}")
prompt = build_evolution_prompt(contract)
Read and analyze the prompt — it contains all evidence and context.
Read the evolvable files, the frozen standards, and the evidence. Formulate your proposal based on what the evidence shows.
Never apply without the user saying yes. Present the proposal and stop.
In monitor mode, don't even propose — just report findings.
from holdfast import Contract, apply_evolution
from holdfast.evolve import EvolutionProposal
contract = Contract.load("{contract_dir}")
proposal = EvolutionProposal(
diff="{summary}",
rationale="{why}",
evidence_ids=["run-00012", "run-00015"],
file_changes={"evolvable/approach.md": "{new content}"},
)
apply_evolution(contract, proposal)
.holdfast/versions/v{current_version}/version in contract.yamlnpx claudepluginhub kevintelford/holdfast --plugin holdfastRuns propose-evaluate-iterate loop to optimize and evolve AI agent performance using LangSmith evaluations and git worktrees for isolation. Requires .evolver.json setup.
Evolves prompt assets that repeatedly fail structural checks. Harvests the failing asset, requires a maintainer-authored regex check, then runs mutation-driven optimization on a loop branch.
Evolves any measurable artifact (prompt, skill, code) through autonomous mutation-evaluate-gate loops. Supports GT case suites and scalar metric loops with automatic keep/revert.