Home/Catalog/Reliability
Reliability — will it stay up?
Brief 121

Graceful Degradation Audit

What happens when a dependency is slow or down — whether the product degrades gracefully with timeouts, fallbacks, and breakers, or cascades into a full outage.

DEGRADE.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 how the product behaves when something it depends on gets slow or dies — whether it isolates the failure and keeps serving what it can, or lets one sick dependency drag the whole system down.

Read-only pass. Read the external-call sites, timeout and retry config, and any fallbacks; change nothing but 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

Timeouts

every external call bounded, or calls that can hang forever

2

Retries & backoff

retries with backoff and jitter, or naive retries that amplify an outage

3

Circuit breakers

a way to stop hammering a failing dependency and let it recover

4

Fallbacks

a degraded-but-useful path (cache, default, queue) when a dependency is down

5

Blast-radius isolation

one slow dependency taking down unrelated features; bulkheads

6

Failure visibility

degraded mode surfaced honestly to users and operators, not silent

7

Recovery

does the system heal when the dependency returns, or need a manual restart

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.

DEGRADE.md
1
Dependency map
each dependency and what happens today when it fails
2
Findings
each: dependency · failure behavior · blast radius · the fix
3
Cascade risks
the single failures that take down more than themselves
4
Priority
the timeouts, breakers, and fallbacks to add first
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

Map the dependencies

List every external dependency.

2
Phase 2

Audit through 7 lenses

Timeouts — every external call bounded, or calls that can hang forever.

3
Phase 3

Curate

Rank by blast radius.

4
Phase 4

Report

Create DEGRADE.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:graceful-degradation.

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

Or install only this Goal Prompt as /goal-graceful-degradation:

curl -fsSL https://goal-prompts.vercel.app/install | BRIEF=121 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/121.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,656 characters)
# Goal: Graceful Degradation Audit

You are working inside this repo. Mission: judge how the product behaves when something it depends on gets slow or dies — whether it isolates the failure and keeps serving what it can, or lets one sick dependency drag the whole system down.

Read-only pass. Read the external-call sites, timeout and retry config, and any fallbacks; change nothing but the report file.

## Phase 1 — Map the dependencies
- List every external dependency: databases, third-party APIs, queues, caches, other services.
- For each, find how it is called and what protects that call.
- Trace what a user experiences if that dependency is slow or unavailable right now.

## Phase 2 — Audit through 7 lenses
1. **Timeouts** — every external call bounded, or calls that can hang forever
2. **Retries & backoff** — retries with backoff and jitter, or naive retries that amplify an outage
3. **Circuit breakers** — a way to stop hammering a failing dependency and let it recover
4. **Fallbacks** — a degraded-but-useful path (cache, default, queue) when a dependency is down
5. **Blast-radius isolation** — one slow dependency taking down unrelated features; bulkheads
6. **Failure visibility** — degraded mode surfaced honestly to users and operators, not silent
7. **Recovery** — does the system heal when the dependency returns, or need a manual restart

## Phase 3 — Curate
- Rank by blast radius: a missing timeout on a call in the request path outranks one in a nightly job.
- For each, name the fix — a timeout, a breaker, a fallback, a bulkhead.
- Separate "fails badly" from "fails everything"; stop the cascades first.

## Phase 4 — Report
Create `DEGRADE.md` at repo root:
1. **Dependency map** — each dependency and what happens today when it fails
2. **Findings** — each: dependency · failure behavior · blast radius · the fix
3. **Cascade risks** — the single failures that take down more than themselves
4. **Priority** — the timeouts, breakers, and fallbacks to add first

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

## Rules
- A call with no timeout is an outage waiting for a slow dependency
- Isolate blast radius; one sick dependency should not sink the ship
- No runtime dependencies that can fail 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 degradation gaps to close first

House rules for this Goal Prompt

  • A call with no timeout is an outage waiting for a slow dependency
  • Isolate blast radius; one sick dependency should not sink the ship
  • No runtime dependencies that can fail 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 degradation gaps to close first
Keep exploring

More Reliability briefs

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