reversible-system-change · git:20260810.749e173 · 2026-08-10 · sha256 e010b22e59a68b31

reversible-system-change git:20260810.749e173A

Immutable. This exact content is served forever at /api/v1/blob/e010b22e59a68b31.

---
name: reversible-system-change
description: Plan, rehearse, or execute persistent system changes with verified rollback and postconditions. Use for an install, upgrade, deployment, migration, destructive retention action, or active-version promotion with rollback, data, service, or activation risk. Plan-only work stays read-only. Do not use for ordinary source/configuration edits, Git operations, status queries, or conceptual explanations.
---

# Reversible System Change

Make one authorized persistent change without losing the ability to identify,
restore, and verify the prior working state.

## Select One Phase

- Plan or non-mutating rehearsal: read
  `references/preflight-and-rollback.md`. Keep the entire phase read-only; do
  not create a candidate, backup, capsule, cache, remote record, or sensitive
  content access.
- Execute a complete authorized change: read
  `references/preflight-and-rollback.md` first. Read
  `references/execution-and-verification.md` only after the exact target,
  write set, promotion authority, rollback coverage, and current restore
  validation pass.
- Conceptual explanations and pure status/version/availability queries do not
  select this skill or load either reference.

## Authority Boundary

Resolve the requested outcome, exact target, authorized actions, and expected
postcondition before mutation. Ask one concise question only when target,
environment, destructive scope, credentials, sensitive asset use, promotion,
or rollback authority would change execution.

Keep candidate preparation, active promotion, service restart/reload, data
migration, destructive retention, sensitive asset access, and rollback as
separate actions. Permission for one never implies another. Freeze the exact
direct and indirect write set; a newly discovered target, dependency, service,
data store, endpoint, or destructive effect requires renewed authority.

Inventory sensitive assets by metadata only. Read or use content only after
the exact path and exact action are both frozen and authorized. Never print,
copy broadly, hash, encode, or persist secret contents merely to inventory
them.

## Rollback Gate

Before the first persistent write, require a rollback point that represents the
observed prior state, covers every non-forward-compatible effect, is currently
readable by the restore principal with all prerequisites present, and has
passed a target-native restore validation or an authorized isolated rehearsal.
Recheck that evidence immediately before mutation.

Keep `identified`, `present`, `readable`, `restore-validated`, and `rehearsed`
as distinct evidence states. A backup job, artifact, script, manifest,
checksum, historical rehearsal, or user acceptance of risk is not verified
rollback. If current restore validation or complete coverage cannot run, stop
execution; a plan may report the gap.

## Change Contract

1. Observe current target and runtime state with scoped read-only probes.
2. Freeze persistent effects, destructive roots, and the postcondition layers
   that own the requested outcome.
3. Establish the rollback gate and validate an isolated candidate or dry run
   without promotion when supported.
4. Refresh drift-sensitive preconditions immediately before the authorized
   write.
5. Apply the smallest candidate mutation and promote only through separately
   authorized actions.
6. Verify every relevant materialization, selection, runtime, delivery,
   behavior, and preservation layer with fresh direct evidence.
7. On a declared failure gate, stop further writes and run only the
   pre-authorized bounded rollback; then verify the prior state at its owning
   layers.

Command success, upload acceptance, a configuration write, or process start
proves only that stage. A failed or unavailable outcome-owning observation is
unverified, not complete.

## Safety And Handoff

- Resolve destructive targets directly; never use an unresolved variable,
  broad glob, guessed parent, or symlink traversal.
- Preserve unrelated state and the only working copy. Do not reset, stash,
  clean, install adjacent tools, change global configuration, or widen remote
  permissions to make a gate pass.
- Delete candidate or rollback material only under explicit cleanup authority
  after required postconditions pass and another required recovery route
  remains.

Report the target, actions actually authorized, mutation/promotion/rollback
outcome, material failed or unavailable postconditions, final observed state,
and retained recovery material. Include detailed successful layers only when
they support a completion or recovery decision.