Ops — does it run?
Brief 91

Backup & Recovery Audit

Whether this system could actually come back from data loss — whether backups exist, cover what matters, and have ever been proven to restore.

RECOVERY.md4 phases7 lenses~2.7k chars

Free & open · no signup · read-only — it ends by asking · nothing leaves your machine

What it does

You are working inside this repo. Mission: judge whether the system could recover from data loss, corruption, or a bad deploy — not whether backups are configured, but whether a restore would actually work when it counts.

Read-only pass. Read infra config, backup jobs, and any runbooks; change nothing. Your only write is the report file.

What it looks for

7 lenses it looks through

Phase 2 sweeps the codebase through every one of these, citing file and line for each finding.

1

Backup coverage

every stateful store actually backed up, not just the obvious database

2

Restore proof

whether a restore has ever been tested, or the backup is untested and maybe unrestorable

3

RPO

how much data loss the backup cadence permits versus what is acceptable

4

RTO

how long a full restore takes versus the tolerable downtime

5

Integrity & retention

encrypted, off-site, versioned, retained long enough, immune to the same failure

6

Partial & point-in-time

can you recover one table or tenant, or only everything at once

7

Runbook & ownership

a written, current recovery procedure someone could follow under pressure

The deliverable

What lands in your repo

One structured report at the repo root — or in reports/, if you keep one — the same shape every time, ready for a teammate — or the optional Studio — to act on.

RECOVERY.md
1
Recovery posture
per store: backed up? tested? RPO/RTO actual vs target
2
Gaps
ranked by data-loss risk, each with the exposure it creates
3
RPO/RTO table
where the system meets its targets and where it does not
4
Next drill
the restore to actually run to prove recovery works
One file. Evidence-backed. It ends by asking before touching anything.
How it works

What it makes the agent do

Every Goal Prompt follows the same four steps, so results are consistent and repeatable — no matter which one you run.

1
Phase 1

Inventory what must survive

List every stateful store.

2
Phase 2

Audit through 7 lenses

Backup coverage — every stateful store actually backed up, not just the obvious database.

3
Phase 3

Curate

Rank by data-loss risk.

4
Phase 4

Report

Create RECOVERY.md at repo root.

Get started

Three ways to run this Goal Prompt

01 · COPY

Paste it in

Copy it and paste it into your agent inside the repo you want checked.

02 · INSTALL

As a slash command

Install the goal plugin once — two commands — then just type /goal:backup-recovery.

1/plugin marketplace add GhostlyGawd/goal-prompts
2/plugin install goal@goal-prompts

Or install only this Goal Prompt as /goal-backup-recovery:

curl -fsSL https://goal-prompts.vercel.app/install | BRIEF=91 sh
03 · AGENT

From an agent (MCP)

Let an agent fetch it mid-conversation, or pull the raw Goal Prompt by URL.

https://goal-prompts.vercel.app/raw/91.md
Transparency

The exact prompt

Nothing hidden — this is the whole Goal Prompt, verbatim. Read it in a minute, edit it, or copy it as-is.

Read the full brief (2,658 characters)
# Goal: Backup & Recovery Audit

You are working inside this repo. Mission: judge whether the system could recover from data loss, corruption, or a bad deploy — not whether backups are configured, but whether a restore would actually work when it counts.

Read-only pass. Read infra config, backup jobs, and any runbooks; change nothing. Your only write is the report file.

## Phase 1 — Inventory what must survive
- List every stateful store: primary database, file/object storage, caches with no source, config, secrets.
- For each, find whether and how it is backed up, how often, and where the backup lives.
- Note what the business can tolerate losing — in data and in downtime.

## Phase 2 — Audit through 7 lenses
1. **Backup coverage** — every stateful store actually backed up, not just the obvious database
2. **Restore proof** — whether a restore has ever been tested, or the backup is untested and maybe unrestorable
3. **RPO** — how much data loss the backup cadence permits versus what is acceptable
4. **RTO** — how long a full restore takes versus the tolerable downtime
5. **Integrity & retention** — encrypted, off-site, versioned, retained long enough, immune to the same failure
6. **Partial & point-in-time** — can you recover one table or tenant, or only everything at once
7. **Runbook & ownership** — a written, current recovery procedure someone could follow under pressure

## Phase 3 — Curate
- Rank by data-loss risk: an unbacked store with no source outranks a slow-but-working restore.
- For each gap, state the failure it leaves the system exposed to.
- Separate "no backup" from "backup never tested"; the second is the more common surprise.

## Phase 4 — Report
Create `RECOVERY.md` at repo root:
1. **Recovery posture** — per store: backed up? tested? RPO/RTO actual vs target
2. **Gaps** — ranked by data-loss risk, each with the exposure it creates
3. **RPO/RTO table** — where the system meets its targets and where it does not
4. **Next drill** — the restore to actually run to prove recovery works

Start the report with today's date. If `RECOVERY.md` already exists from a previous run, read it first and lead with what changed since.

## Rules
- An untested backup is a hope, not a backup
- Recovery is measured in data lost and time down, not in jobs configured
- No data to back up in this repo? Say so in a one-paragraph null report and stop — a null result is a valid finding.
- If a `reports/` directory exists at the repo root, write the report there instead of the root.
- Before asking, present the top findings as a ranked list in plain words
- Report only — end by asking which recovery gaps to close first

House rules for this Goal Prompt

  • An untested backup is a hope, not a backup
  • Recovery is measured in data lost and time down, not in jobs configured
  • No data to back up in this repo? Say so in a one-paragraph null report and stop — a null result is a valid finding.
  • If a reports/ directory exists at the repo root, write the report there instead of the root.
  • Before asking, present the top findings as a ranked list in plain words
  • Report only — end by asking which recovery gaps to close first
Keep exploring

More Ops briefs

Runs inside these playbooks — curated sequences you can launch with one paste: