agentsclimarketplace

Rollback strategy

Skill SWEStash/swe-workflow-skills/plugins/devops/skills/rollback-strategy

A comprehensive SWE workflow, encoded. Might be useful to you too.

Install
npx -y skills add SWEStash/swe-workflow-skills --skill rollback-strategy

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Design safe rollback plans before deploying — identify irreversible changes, classify rollback complexity, create tested undo procedures. Triggers: rollback plan, rollback strategy, how do I undo this, can we revert, what if the deploy fails, safe to deploy, feature flag rollout, blue-green, database migration rollback, irreversible change.

SKILL.md

5.9 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

Rollback Strategy

Design the undo plan before deploying — not during a production incident. A deployment without a rollback plan is a bet that nothing will go wrong.

⛔ The Iron Law

If you can't undo it, don't ship it yet.

Every change is classified by rollback complexity before deploy, and every non-Simple change has a written rollback procedure that has been tested — not just imagined. Decide rollback before the incident, never during it: the minutes you'd spend designing an undo mid-incident are the minutes users are down.

Step 1: Analyze the Deployment

List every change being deployed:

  • Code changes: Which services, which endpoints, what behavior changes?
  • Schema changes: New tables, columns, indexes, constraints, dropped columns?
  • Data migrations: Backfills, transformations, deletes?
  • Configuration changes: New env vars, feature flag states, infrastructure config?
  • Dependency updates: Library upgrades, external service version changes?

For each change, ask: If this change caused a production incident 30 minutes after deploy, what would rollback look like?

Step 2: Classify by Rollback Complexity

Assign each change a rollback complexity:

ComplexityDefinitionExamples
SimpleRevert the code deploy, no other stepsLogic change, UI change, new feature behind a flag
CoordinatedCode revert + one other stepNew env var (remove it), new index (drop it), additive column (leave it, no harm)
ComplexRequires data migration reversal or multi-step coordinationColumn rename (requires data migration), data backfill (must un-backfill)
IrreversibleCannot be fully undoneDestructive data operations, sent emails/notifications, external API calls with side effects

If any change is Irreversible: explicitly document what partial rollback looks like and get sign-off before deploying.

See references/rollback-patterns.md for detailed patterns per component type.

Step 3: Design the Rollback Procedure

For each non-Simple change, write the explicit rollback steps:

Database schema rollback:

  • Additive columns (new nullable column): safe to leave after rollback — old code ignores them
  • Non-additive changes (rename, type change, NOT NULL constraint): require a reverse migration
  • Dropped columns: need to be re-added and re-populated (use git bisect to find the data state)

Feature flag rollback:

  • Define the "off" state before deploying
  • Test the "off" state in staging before deploying to production
  • Know which percentage to roll back to if doing a canary rollout

Data migration rollback:

  • Write the reverse migration before deploying the forward migration
  • Test both on a copy of production data
  • If the migration is too large to reverse quickly, plan for an emergency read-only mode instead

Configuration rollback:

  • Document the previous value of every env var being changed
  • For secrets rotation: keep the old secret valid for 24 hours after switching

Step 4: Document and Test the Plan

Write the rollback plan in the deployment PR or deployment runbook:

Rollback Plan:
1. [Step]: [Command or action]
2. [Step]: [Command or action]
3. Verify: [How to confirm rollback succeeded]
Estimated rollback time: [X minutes]
Rollback owner: [Who executes this during an incident]

Test it before you need it:

  • Run the rollback steps in staging before production deploy
  • Confirm the rollback takes the expected time (important during incidents)
  • Verify application health after rollback completes

Use templates/rollback-plan.md for the full plan format.

Principles Applied

  • KISS: Prefer feature flags over complex rollback procedures. The simplest rollback is turning a flag off.
  • YAGNI: Don't deploy a change you can't roll back without a documented, tested plan. If you can't undo it, don't ship it yet.
  • Defense in depth: Multiple rollback options (flag → revert → data migration reversal) provide fallbacks when the first option isn't enough.
  • Fail fast: Define rollback triggers before deploying (see deployment-checklist). Waiting until an incident to decide when to rollback wastes critical time.

Rationalizations to reject

ExcuseReality
"We'll figure out rollback if it breaks"Designing rollback mid-incident wastes the minutes that matter most.
"The migration is reversible, trust me"Reversible in theory ≠ tested. Run the reverse on production-sized data first.
"It's behind a flag, that's enough"Only if the off-state was defined and tested before deploy.
"Rollback is unlikely, skip the plan"A rollback plan is insurance — you write it before you need it, not after.
"Additive column, no rollback needed"Confirm old code ignores it and document the no-op explicitly.

Red flags — stop and correct course

  • An Irreversible change with no documented partial-rollback and no sign-off.
  • A reverse migration that has never actually been executed.
  • A feature flag whose off-state was never tested in staging.
  • The estimated rollback time is unknown.

Cross-Skill References

  • deployment-checklist — run before every deploy; rollback plan is a required gate
  • incident-response — execute the rollback plan when an incident occurs
  • configuration-strategy — design feature flags as part of config strategy (reduces rollback complexity)

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.