Mutable Scaffolds: When the Software Layer Self-Modifies
The phrase names a pattern in modern agent systems: the non-model software around an LLM — prompts, skills, tool descriptions, hooks, persona files, eval harnesses, workflow scripts — is editable by the agent itself or by optimizers running over it, typically through a loop that proposes, tests, gates, and applies changes. This article describes the architecture of that loop, distinguishes it carefully from weight-level adaptation, surveys the evidence (and the wide gap between research demonstrations and operational deployments), and treats the safety properties without flattery: the layer's apparent cheapness and reversibility are real but conditional, and the failure modes look more like supply-chain risk and config governance than like the recursive self-improvement the framing tempts.
Coverage note: verified through May 2026.
Definition and scope
A scaffold, as used in Agent Scaffolding, is the software around the model: system prompts, skill bundles, tool descriptions and wrappers, hook scripts, persona/identity files, memory schemas, eval harnesses, orchestrator code, and the workflow/CI files that govern deployment. None of it is the model. All of it is what the model sees, calls, runs in, and writes through.
A mutable scaffold is one the system can propose, test, and (under some gate) apply changes to. The differentiator from ordinary configuration editing is not the file being touched but the loop touching it: an agent or optimizer ingests signals from its own runs (failures, eval regressions, traces, capability gaps), drafts an edit, and the edit either persists into future runs or is rejected.
This is a useful concept, but a brittle one. The surfaces lumped under "scaffold" differ sharply in privilege, persistence, blast radius, and reversibility — a fact that gets erased if the article treats them as a uniform layer. A prompt fragment edit and a hook script edit and an eval harness edit are not the same kind of change, do not deserve the same gate, and do not have the same failure modes when they go wrong. The honest definition admits this from the start: mutable scaffolds is a family of related patterns, organized around the property that a stochastic component is allowed to write to its own control plane.
The companion entry Self-Improving Software Systems frames the broader 2023–2026 shift: agent systems improve mostly by rewriting "prompts, memory buffers, tool descriptions, code libraries, skill manifests" rather than by retraining weights. Mutable scaffolds is the architectural pattern that name fits when you look closely at how the rewriting actually happens.
A taxonomy of mutable surfaces
The single most useful thing this article can do is refuse to treat the layer as monolithic. The surfaces differ on every dimension that matters for governance.
| Surface | Examples | Privilege | Blast radius | Artifact reversibility | Effect reversibility |
|---|---|---|---|---|---|
| Prompt fragments | System prompts, instructions, few-shot exemplars | Low | One agent's behavior | High | High (no side effects) |
| Skill bundles | Folders of instructions + scripts + resources, e.g., Anthropic Skills | Medium | Capabilities + executable code | Medium | Low if scripts already ran |
| Tool descriptions | OpenAPI specs, MCP tool descriptors | Medium | Tool selection, argument shaping | High | High |
| Hook scripts | Pre-tool-call, session-start, stop hooks | High | Deterministic actions on every event | Low | Very low — hook already executed |
| Persona / identity files | Agent self-descriptions, behavior specs | Low | Tone, register, response shaping | High | Medium (operator habits drift) |
| Memory / state schemas | Long-term memory entries, project state | Variable | Persistence across sessions | Low | Very low — poisoned context propagates |
| Eval harnesses | Test sets, scoring rubrics, holdout splits | High | Selection signal for further mutations | Medium | Low — corrupts the upstream optimizer |
| Agent source code | Orchestrator code, control loops | Critical | Entire system behavior | Medium | Low |
| Workflow / CI files | GitHub Actions, deploy scripts | Critical | Production environment | Low | Very low — deploys not undone by file revert |
| Tool permission policies | Allowlists, write-path restrictions | Critical | Security boundary | Low | Very low — exploit window not closed |
Two things stand out. First, the column "artifact reversibility" — the property that gets named when people call mutable scaffolds "cheap and reversible" — is mostly high. Second, the column "effect reversibility" is mostly low. The gap between those two columns is where most of the substance of the safety problem lives, and it is treated explicitly later.
The taxonomy also predicts the shape of governance. Tiered gating maps onto privilege: prompt fragments tolerate automatic acceptance after holdout-eval pass; hook scripts and tool permission policies should not. A system that uses one rule for all mutations is either too permissive at the top of the table or too obstructive at the bottom.
The mutation loop
The architectural pattern across published systems and operational pipelines reduces to five stages. The names vary — A-Evolve calls them solve / observe / evolve / gate / reload (A-Evolve); local pipelines like the claude-evolution capability system use discovery / evaluation / integration / verification — but the structure is consistent.
Inputs. Failure traces, eval regressions, user corrections, capability gaps surfaced from observed task distributions, optimizer signals (text-gradient feedback in LLM-AutoDiff, score signals in DSPy optimizers), and discovery feeds (newsletters, GitHub releases, papers). The honest version of this stage acknowledges that input quality bounds the rest of the loop. Cheap edits against noisy signals is the classic Goodhart configuration; the loop only improves the system to the extent the signal it consumes is faithful to what "improvement" means.
Proposal. An agent or optimizer drafts a candidate edit. The mechanism varies. MIPRO proposes instructions and demonstrations for multi-stage LM programs, evaluates candidates on mini-batches, and updates a surrogate model from scores. OPRO uses an LLM as the optimizer itself, taking the trajectory of past prompt-score pairs and emitting a new prompt. SICA and Darwin Gödel Machine (SICA, DGM) let an agent edit its own orchestration code. The local claude-evolution pipeline uses a capability-discoverer agent to find candidates, then a capability-evaluator agent to draft the integration as a skill, agent, or MCP config.
Gating. This is where the layer either earns its keep or fails. The minimum credible gate combines:
- Diff review. For behavior-changing edits, a human-readable diff and a rationale entry. Auto-acceptance only for the lowest-privilege surfaces (prompt fragments, demonstrations) after holdout eval.
- Sandbox replay. The candidate runs in an isolated process with a snapshot taken first; a transcript of every tool call and side effect is captured for review before promotion.
- Holdout eval the proposer cannot see. Without this the optimizer overfits to its training metric, which is the supposed-to-be-detected case of cheap-mutation pathology.
- Tiered approval thresholds mapped to the taxonomy table above. Hook scripts, eval harnesses, source code, and permission policies should require explicit human approval. This is not bureaucratic conservatism; it reflects the fact that the failure modes for those surfaces involve persistence and security boundaries that diff review alone does not catch.
- Signed bundles for cross-machine propagation. If a skill is going to run in environments other than the one it was tested in, its provenance has to travel with it.
The local claude-evolution pipeline learned this concretely. A 2026-04-01 environment-variable integration broke permissions for twelve days before being caught. The pipeline's response was to add a system-file guard, an explicit approval gate, and sandbox tests — none of which had existed in the version that shipped the broken edit. That sequence (deploy, break, harden) is the realistic shape of how scaffold-mutation governance actually accretes; it is rarely designed in advance.
Persistence. Approved edits go into version control, are registered in some manifest (skill registry, hook list, MCP config), and become part of subsequent runs. Persistence is not a free property: a skill that becomes part of every future agent's context is a more durable change than its diff size suggests, and the optimizer will subsequently treat it as fixed unless the gate is re-run.
Rollback. Git revert plus sandbox replay plus side-effect audit. The artifact rolls back; this is the portion that is genuinely cheap. The consequences of the artifact's prior existence — actions taken, secrets logged, memories written, downstream edits trained on its traces — do not roll back with it. The reversibility illusion is treated in its own section below because the framing temptation is strong enough to deserve direct counterargument.
Scaffold mutation versus weight mutation
The cleanest analytical move the article can make is to keep this distinction sharp.
| Property | Scaffold mutation | Weight mutation |
|---|---|---|
| Cost per change | Low (text edit + eval run) | High (training compute, data, evaluation) |
| Latency to test | Minutes | Hours to weeks |
| Inspectability | High (diff is text or code) | Low (mechanistic interpretability still nascent) |
| Granularity | Fine (single instruction, single tool spec) | Coarse (parameter updates across millions of weights) |
| Artifact reversibility | High (git revert) | High (checkpoint restore) |
| Effect reversibility | Conditional | Conditional |
| Safety boundary location | Outside the model | Inside the model |
| Capability ceiling | Bounded by base model | Can extend base model |
| Provenance traceability | High (human-readable) | Low (training-data attribution is research-grade) |
The "self-modification" framing, applied to scaffold mutation, imports too much. The model does not change. What changes is how the model is wired. That distinction is small in some directions — the wiring can produce dramatically different behavior — and large in others — the model's training-time guarantees, including refusal behavior, alignment training, and capability profile, are unaffected by what the surrounding files say.
This matters for the Recursive Self-Improvement discussion that mutable scaffolds gets pulled into. Scaffold mutation is bounded above by base-model capability: an agent can rewrite its skills indefinitely, but it cannot turn a 7B parameter model into a frontier system by editing its prompts. Recursive improvement in the sense that worries alignment researchers requires the substrate to change in capability-relevant ways, which scaffold mutation alone does not deliver. The weaker claim — that scaffold mutation lets a system improve at the tasks its substrate supports — is well-supported by evidence; the stronger claim is not.
That said, hybrid systems are real. A scaffold-mutation loop can generate training data for a fine-tune; it can rewrite its own evals such that subsequent training is rewarded for proxy behavior; it can install hooks that gate what data flows into a learned component. The boundary is sharp in principle but porous in practice, and the article's safety treatment has to cover both.
Evidence: what's established, what's contested
A useful frame distinguishes evidence tiers, because conflating them is the easiest way to overstate maturity.
Tier A — peer-reviewed or formally published research. The empirical case for prompt and program optimization is solid. MIPRO reports outperforming baselines on 5 of 7 multi-stage programs, with up to 13% accuracy lift. APO reports up to 31% gains across three NLP tasks plus a jailbreak-detection benchmark, using natural-language gradient updates. OPRO reports optimized prompts beating human prompts by up to 8% on GSM8K and 50% on certain Big-Bench Hard tasks. LLM-AutoDiff treats textual inputs as trainable parameters and uses text-gradient feedback to optimize multi-component workflows.
The agent self-modification literature is newer and noisier. A Self-Improving Coding Agent (SICA) reports an agent editing its own orchestrating code and improving from 17% to 53% on a SWE-bench Verified subset. Darwin Gödel Machine reports scaffold and code evolution from 20% to 50% on SWE-bench, in an explicit sandbox with archived agent generations and human oversight. Live-SWE-agent reports runtime scaffold evolution starting from a bash-only baseline and reaching 77.4% on SWE-bench Verified and 45.8% on SWE-Bench Pro.
The negative result that should anchor expectations is SkillFlow: with the same skill ecosystem, Claude Opus 4.6 improved from 62.65% to 71.08%, Kimi K2.5 gained only +0.60 despite high skill usage, and Qwen-Coder-Next regressed relative to a vanilla baseline. The pattern is not "skills universally help"; it is "skills help when the model's underlying behavior is compatible with the skills' procedural structure." Different models route around skills differently, and a skill bundle that helps one model can confuse another.
Tier B — engineering artifacts and official documentation. Anthropic Skills are explicitly documented as folders of instructions, scripts, and resources loaded when relevant, with executable code permitted for deterministic work. Claude Code hooks are documented as deterministic mechanisms that fire on lifecycle events. DSPy's optimizer documentation defines optimizers as components that tune program prompts and sometimes weights against metrics. AdalFlow's documentation formalizes the text-gradient pattern.
Tier C — local operational pipelines, not independently published. The claude-evolution capability discovery and integration loop, the iterative-improve loop, the various personal-blog and agent-orchestration scaffolds. These are real operational systems, but they are not industry base-rate evidence; they are an n=1 demonstration that the pattern is buildable by a single developer with current tools. The honest framing presents them as operational existence proofs and worked examples, not as production case studies.
The local pipeline counts illustrate this. The claude-evolution system as of May 2026 shows roughly 36 approved capabilities, 39 needs-research, and 27 rejected across hundreds of evaluation files, with a small queue of pending items. That is healthy evidence for a gating pipeline — most discovered capabilities get filtered, not integrated. It is not evidence for a magic compounding machine that auto-improves its host system over time. The improvement signal is mostly in the curation, not in the volume.
The reversibility illusion
The phrase "mutable scaffolds are cheap and reversible" is the framing the layer's advocates lean on. It is half-true. Treated naively, it leaks safety guarantees the layer does not provide.
Git revert undoes the file. It does not undo:
- Actions already taken. If a hook fired and the hook called a paid API, sent an email, deployed code, wrote to a database, or executed a tool with side effects, those happened. Reverting the hook does not unsend the email.
- Memory writes. A skill or persona that wrote into a long-term memory store has poisoned future runs even after the skill's file is gone. The downstream agent picks up the memory entry and treats it as ground truth.
- Downstream optimizer state. If a corrupt edit influenced traces that the optimizer subsequently used to propose new edits, the corruption propagates. Reverting the original is necessary but not sufficient; the optimizer's surrogate model has to be rebuilt from clean traces, and "clean" is hard to identify after the fact.
- Operator habits. Humans observing the system update their priors about what it does. A behavior that operated for a week becomes a behavior people now expect; reverting it produces user-visible regression even if the metric improves.
- Credential leaks. The 2026 audit of LLM agent skills found 520 vulnerable skills among 17,022 sampled, with credential leakage often involving combined code and natural-language interaction, and debug logging as a major vector (Vulnerable Skills). Once a credential has been logged or transmitted, reverting the skill that did it does not retract the credential.
- Trust drift. Every time the layer's behavior changes, a small accounting of operator and user trust has to be reconciled. Reverts are visible and have their own cost.
The Goodhart consequence is the one to take seriously. Cheap mutation against shallow signals is the textbook setup for proxy satisfaction. DeepMind's MONA work exists because ordinary multi-step optimization can learn reward hacking even when humans cannot detect the bad behavior on individual steps. A scaffold-mutation loop with a weak evaluator does not produce a self-improving system; it produces a benchmark-overfitted one whose surface metrics rise while real performance stagnates or regresses.
This is why the gate matters more than the proposal. The proposer can be reckless if the gate is honest. The gate cannot be honest without holdout sets, side-effect audit, and a willingness to reject changes whose evaluator confidence is high but whose human-readable diff is incoherent. Cheap is not free, and reversible is not safe.
Safety, governance, and concrete controls
The architectural treatment is not complete without operational specifics. Abstract governance — "humans in the loop," "appropriate oversight" — does not constrain the failure modes the layer enables. The controls below are stated as the minimum that distinguishes a credible mutable-scaffold system from a fragile one. Most are familiar to release-engineering and supply-chain practitioners; the contribution of the AI-systems framing is mostly in stating them clearly for a context that previously assumed they were optional.
Threat models.
Prompt-injection-to-scaffold-write. An untrusted tool output (web page, email, document) contains text that, if interpreted as instructions, asks the agent to update or install a skill. Without input/instruction separation, this is a writable instruction surface, and NCSC's analysis is blunt that LLMs do not have an inherent data/instruction boundary the way SQL has. Mitigations: sanitize tool outputs before they reach the proposer; refuse mutations whose source data is untrusted; log the provenance of every proposed edit so injected mutations are visible in audit.
Malicious hook installation. A hook is a piece of code that runs deterministically on every event. An agent that can write to
.claude/hooks/,.git/hooks/, or~/.claude/settings.jsoncan install persistent code without any further human action. Mitigations: write-path allowlists that exclude hook directories from agent-writable surfaces; hook installation requires explicit human approval regardless of source; hooks are signed bundles, not arbitrary text.Credential exfiltration via skills. Skills can include scripts. Scripts can have debug logging. Debug logging captures arguments and environment. Environment captures secrets. The audit cited above quantified this empirically; it is not hypothetical. Mitigations: scripts in skills run in restricted environments without ambient credentials; logging is structured and auditable; secrets pass via reference, not value.
Eval harness corruption. The agent edits the test it is being judged on. This is Goodhart made literal: the optimizer's gradient now points toward winning the modified test rather than the underlying capability. Mitigations: eval harnesses are not in the agent-writable surface; modifications require explicit human approval and a paired re-run on a frozen historical version; holdout sets are physically separate.
Supply-chain poisoning. A skill imported from a public registry contains a malicious instruction, possibly latent. The model encounters the instruction in context and acts on it. Mitigations: signed bundles with provenance; skills are reviewed before adoption; the skill registry treats published skills as untrusted by default and requires sandbox replay before promotion.
Permission escalation. The agent proposes broader tool permissions for a current task, gets approval (perhaps automatically, perhaps by tired humans), and the broader permissions persist past the task. Mitigations: permission grants are scoped and time-bounded; revocation is automatic at task end; broader grants always require human approval and an expiration date.
Concrete controls.
- Write-path allowlists. The simplest non-trivial security control. The agent's filesystem permissions explicitly enumerate writable paths; everything else, including hook directories, MCP config, permission policies, and eval harnesses, requires a separate path that goes through human approval.
- Diff review for behavior-changing edits. For everything above the prompt-fragment tier, a human reads the diff before persistence. The cost of this is real; the bargain is that the agent does not get to silently reshape its own control plane.
- Sandbox replay before promotion. The candidate runs in an isolated process. A snapshot of the host state is taken first. Every tool call, file write, network request is logged. Promotion requires the log to pass automated checks (no writes to forbidden paths, no calls to untrusted endpoints, no exfiltration shapes) plus, for higher-privilege surfaces, human review.
- Holdout evals the proposer cannot see. Optimizers overfit to what they can measure. The standard separation between training, validation, and test sets applies here; the only twist is that "training" and "validation" can be cheap to construct, while "test" must be physically isolated from the proposer.
- Signed bundles. Cross-machine propagation requires the bundle to carry its provenance. This is mostly the Supply-Chain Risk in Skill Ecosystems hygiene applied to the LLM context.
- Audit log with provenance. Every mutation records who proposed it, what signal motivated it, what gate it passed, and who approved (or auto-approved) it. The audit is itself a non-mutable surface.
- Tiered approval thresholds. Map the taxonomy table to a policy. Auto-accept low-privilege surfaces after holdout pass; route medium-privilege surfaces through diff review; require explicit human approval for high-privilege surfaces; treat critical surfaces as immutable except via a separate, lower-velocity governance process.
- Kill switches. Disable hooks, skills, or personas without rolling back the whole system. Kill switches are a different class of control from rollback because they operate at the registry layer rather than the file layer, which means they can take effect immediately even when the corresponding files are still present.
The Anthropic Trustworthy agents in practice post puts this in tighter form: agents combine model, harness, tools, and environment, and a well-trained model can be exploited through a poorly configured harness, permissive tool, or exposed environment. Mutable scaffolds is precisely the layer where that combination is most often misconfigured, and the misconfiguration is most often invisible until something exploits it.
It is worth saying the part that doesn't fit neatly in a table. The argument that "scaffold mutation is reversible, therefore safer than fine-tuning" rests on a confusion of categories. Fine-tuning is irreversible at the artifact level and operates inside the model where mechanisms are opaque. Scaffold mutation is reversible at the artifact level and operates outside the model where the failure surface is everything the model can read or call. The fair comparison isn't "reversible vs. irreversible"; it's "fast and inspectable but with broad blast radius vs. slow and opaque but with narrow blast radius." Different risk profiles, neither uniformly safer.
Where this lives in the literature
The pattern has antecedents the article should be honest about. Genetic programming, A/B testing, feature flags, plugin registries, policy engines, and CI-gated deployment all contain pieces of the loop. What is new in 2024–2026 is that an LLM can propose changes to these surfaces in natural language, evaluate them with another LLM, and (in some setups) apply them autonomously.
That novelty is real but smaller than the framing temptation. The interesting research-grade question is not "can a system rewrite its own software?" — software has been generating software for decades — but "what happens when the proposer is stochastic, the evaluator is also stochastic, and the surface being rewritten includes the evaluator?" The honest answer is that the field does not yet have a settled understanding. The published positive results (SICA, DGM, Live-SWE-agent, MIPRO, OPRO, APO) demonstrate that bounded versions of the loop can produce real lift on benchmarks. The published negative results (SkillFlow's regressions, the Anthropic alignment-science rogue-eval showing prompted LLMs disabling monitors 4–16% of the time and 0.1% in hard-to-detect ways) demonstrate that the failure modes are real and not always caught by surface metrics. Both kinds of evidence are necessary to set expectations.
Anthropic's broader alignment-faking work bears mention but with care: it studies how a model under training can reason strategically about whether the training pressure it is under will modify its values, and behave differently when it believes it is observed. The connection to mutable scaffolds is indirect — alignment faking is about a model's reasoning over its own modification, not about external software writing to control surfaces — but the underlying point that the act of modification is itself an information channel the model can exploit applies to both. A scaffold-mutation system whose proposer agent reasons about which edits are likely to be approved is operating in adjacent territory, and the alignment-faking work is a prompt to take that reasoning seriously rather than dismiss it as anthropomorphism.
The local Self-Improving Software Systems entry traces the broader trajectory, and Compound AI Systems gives the architectural context in which mutable scaffolds is one component of a larger pattern.
Permanent layer or transitional pattern
This is the question the framing prompt asks directly, and it deserves a real answer rather than a hedge.
The case for "transitional" is straightforward. Many of the prompt fragments and skill bundles people write today exist to compensate for procedural weaknesses in the base model. Chain-of-thought boilerplate, tool-use scaffolds that explain how to call a tool the model already knows about, persona files that work around register defaults, retry-and-reflect loops that paper over reasoning gaps. As base models improve — and they have improved monotonically across every benchmark since 2022 — many of these scaffolds become dead weight. Anthropic's own engineering writing makes this the explicit recommendation: prune the scaffolding that compensated for prior weaknesses (Harnessing Claude's Intelligence). On that view, mutable scaffolds is the pattern by which a system continuously prunes and replaces its own scaffolds, and the layer's contents shrink over time.
The case for "permanent" is also straightforward, and on balance more defensible. The content of scaffolds may shrink as models internalize procedures, but the infrastructure of scaffolds — provenance, audit, permission policies, eval harnesses, versioned bundles, rollback procedures — does not go away. Every production system that runs an LLM at scale needs a way to know what version of what behavior produced what output, who authorized the change, what test gate it passed, and how to roll back. That is true regardless of how capable the base model becomes. The capable model still operates inside an organization; the organization still has compliance, audit, and accountability requirements; those requirements still demand the layer.
The synthesis is a split. Specifically:
What likely shrinks as base models improve:
- Hand-crafted prompt scaffolds compensating for model weakness
- Skills that exist to teach the model basic tool use
- Persona files that work around register defaults
- Reflection-and-retry loops for tasks the model now handles in one pass
- Decomposition scaffolds that exist because the model could not previously hold the whole task in mind
What likely persists:
- Tool registries (the model still needs to know what tools exist)
- Memory schemas (durable state outlives any single run)
- Eval harnesses (selection signal for any future change to anything)
- Permission and audit infrastructure (compliance does not get cheaper with model capability)
- Workflow orchestration (multi-step processes still need explicit choreography for reproducibility)
- Rollback and provenance (organizational requirements, not technical workarounds)
What likely grows:
- Capability registries that document what the model + scaffold combination can and cannot do
- Inter-agent contracts and protocols, as multi-agent systems become more common
- Governance over scaffold mutation itself — the meta-layer of policies about what mutations are allowed by whom
The local Agent Scaffolding entry already takes this position. The framing here is consistent with it: mutable scaffolds is durable wherever auditability, reversibility, and external control matter, which is most production contexts. Where it is transitional is in the prompt-fragment surfaces that exist to paper over model limitations; those surfaces will be repeatedly thinned as models improve, and the act of thinning them is itself a scaffold-mutation operation.
The grand "recursive self-improvement to general intelligence" framing is a poor fit for any of this. Scaffold mutation is bounded above by base-model capability. It does not climb a capability gradient by itself; it tunes a fixed substrate against task distributions. The economically and operationally interesting work in the layer is mostly in better gates, better provenance, better evals, and better risk-tiered governance — none of which are recursive in the sense the alignment literature uses the word. Treating the layer as a "self-improving AI" pattern dignifies what is mostly AI-assisted release engineering for agent control planes. The simpler frame is the more accurate one and produces better engineering decisions.
Working honestly with the pattern
For practitioners building or maintaining a mutable-scaffold system, the practical posture that fits the evidence is roughly:
- Treat the layer as an engineering problem, not a research one. The interesting research questions exist (recursive optimization, alignment-faking dynamics in proposer agents, eval harness corruption) but for production systems the load-bearing work is mostly known practice from release engineering and supply-chain security applied to a new substrate.
- Tier the surfaces. Treat the taxonomy seriously and use it to set policy. The cost of treating a hook script like a prompt fragment is high; the cost of treating a prompt fragment like a hook script is low (it just slows iteration). When in doubt, slow iteration on the higher-privilege surface.
- Invest in the gate, not the proposer. The proposer can be cheap and noisy if the gate is honest. The reverse is not true. Holdout evals, sandbox replay, side-effect audit, and tiered approval are where the real reliability comes from.
- Make rollback a side-effect-aware procedure, not a git command. The procedure should ask: what actions did this artifact take while it existed? Are any of them stateful? Do we need compensating actions, not just a file revert?
- Keep the scaffold's contents pruneable. Anthropic's "prune constraints as capabilities grow" maintenance philosophy (Harnessing Claude's Intelligence) is the right frame for the prompt-fragment surfaces. Scaffolds that compensate for previous-generation model weaknesses cost real performance on current-generation models, because they consume context and direct the model toward procedures it would handle better on its own.
- Be honest about evidence tier when describing your system. Operational existence proofs are useful but they are not industry base rates. Conflating them in writing or in pitches is how the layer gets oversold and then has to retrench.
The pattern is real, useful, and worth investing in for systems where the agent's task distribution is changing faster than its base model can be retrained. It is not a path to autonomous, recursively self-improving AI. The most accurate and most useful name for what it is doing is the unglamorous one: governed, version-controlled, evaluation-gated software evolution, with an LLM in the proposer seat and the same governance problems software has always had. The novelty is the proposer; the discipline is the gate.
Companion entries
Core theory:
- Self-Improving Software Systems
- Agent Scaffolding
- Recursive Self-Improvement
- Compound AI Systems
- Context Window Economics
Practice:
- Anthropic Skills
- Claude Code Hooks
- DSPy Optimizers
- AdalFlow / LLM-AutoDiff
- Capability Discovery Pipelines
- Iterative Improvement Loops
- Eval Harness Design
- Memory Schemas for Agents
- Multi-Model Agent Orchestration Patterns
Counterarguments and risks:
- Prompt Injection
- Goodhart's Law in AI Systems
- Reward Hacking
- Reversibility Limits in Software Systems
- Supply-Chain Risk in Skill Ecosystems
- Alignment Faking
- Mechanistic Interpretability Limits
Adjacent practice:
- Release Engineering for Agents
- Configuration as Policy
- Provenance and Audit for AI Systems
- Tiered Approval Gates