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

Failure-Injection Readiness

Kill every dependency on paper — trace the actual catch, timeout, and fallback code, or its absence — and script the game day before production improvises one.

CHAOS.md4 phases6 lenses~3.4k 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: kill each dependency on paper and trace, in the code, what actually happens — not what the architecture diagram promises. The deliverable is a death table backed by file:line evidence and a game-day script worth running.

Read-only pass. Your only write is the report file.

What it looks for

6 lenses it looks through

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

1

Hard down

the call throws: trace the exception's path to the user; crash, hang, or degrade — at boot and mid-request separately

2

Slow, not dead

find the timeout configured on each client, or prove it's missing; an unset timeout is an infinite one

3

Erroring at 10%

intermittent failure: does retry logic exist, is it bounded, and does it shed load or amplify it into a storm

4

Wrong answers

the dependency returns 200 with garbage: what validates responses before they reach business logic

5

Health-check honesty

read what the health endpoint actually verifies; "process is up" while every downstream is dead is a lie that routes traffic

6

Detection

for each kill, name the alert, log line, or metric that would fire; if you can't cite one, the failure is invisible

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.

CHAOS.md
1
The death table
dependency · kill method · predicted behavior · handling code (file:line) or "none found" · detection signal
2
Single points of failure
the load-bearing singletons, ranked
3
Game-day script
the top 3 experiments: steps, expected outcome, feared outcome, abort condition
4
The first fix
the one timeout, fallback, or health-check correction that removes the most risk before any experiment runs
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

Build the kill list

Enumerate the dependencies from the code, not from memory.

2
Phase 2

Kill each through 6 lenses

Every verdict cites the handling code — the try/catch, timeout, retry, circuit, fallback — or names its absence, by fi…

3
Phase 3

Curate

Rank by blast radius × likelihood.

4
Phase 4

Report

Create CHAOS.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:failure-injection.

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

Or install only this Goal Prompt as /goal-failure-injection:

curl -fsSL https://goal-prompts.vercel.app/install | BRIEF=122 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/122.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 (3,408 characters)
# Goal: Failure-Injection Readiness

You are working inside this repo. Mission: kill each dependency on paper and trace, in the code, what actually happens — not what the architecture diagram promises. The deliverable is a death table backed by file:line evidence and a game-day script worth running.

Read-only pass. Your only write is the report file.

## Phase 1 — Build the kill list
- Enumerate the dependencies from the code, not from memory: every client constructor, connection string, SDK import, and external URL in config. Each is a thing that can die.
- For each, find its call sites and mark the ones on the user-facing critical path.
- Note which have any redundancy — replicas, fallbacks, queues — and which are load-bearing singletons.

## Phase 2 — Kill each through 6 lenses
Every verdict cites the handling code — the try/catch, timeout, retry, circuit, fallback — or names its absence, by file:line. "Probably fine" is not a finding.
1. **Hard down** — the call throws: trace the exception's path to the user; crash, hang, or degrade — at boot and mid-request separately
2. **Slow, not dead** — find the timeout configured on each client, or prove it's missing; an unset timeout is an infinite one
3. **Erroring at 10%** — intermittent failure: does retry logic exist, is it bounded, and does it shed load or amplify it into a storm
4. **Wrong answers** — the dependency returns 200 with garbage: what validates responses before they reach business logic
5. **Health-check honesty** — read what the health endpoint actually verifies; "process is up" while every downstream is dead is a lie that routes traffic
6. **Detection** — for each kill, name the alert, log line, or metric that would fire; if you can't cite one, the failure is invisible

## Phase 3 — Curate
- Rank by blast radius × likelihood; the unredundant dependency on the money path tops the list.
- Split findings into known-bad (the code handles it wrongly — cited) and unknown (no handling found; the experiment exists to find out).
- For each unknown, design the cheapest safe experiment: what to kill, where (staging, a game day), and the abort condition.

## Phase 4 — Report
Create `CHAOS.md` at repo root:
1. **The death table** — dependency · kill method · predicted behavior · handling code (file:line) or "none found" · detection signal
2. **Single points of failure** — the load-bearing singletons, ranked
3. **Game-day script** — the top 3 experiments: steps, expected outcome, feared outcome, abort condition
4. **The first fix** — the one timeout, fallback, or health-check correction that removes the most risk before any experiment runs

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

## Rules
- Every prediction cites the handling code or names its absence — an untested resilience assumption is a hope with good PR
- Experiments are safe by design: staging first, abort conditions always; a game day must not become an incident
- No external dependencies whose failure could hurt 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 failure experiments to run first

House rules for this Goal Prompt

  • Every prediction cites the handling code or names its absence — an untested resilience assumption is a hope with good PR
  • Experiments are safe by design: staging first, abort conditions always; a game day must not become an incident
  • No external dependencies whose failure could hurt 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 failure experiments to run first
Keep exploring

More Reliability briefs

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