Ops — does it run?
Brief 53

Config & Environment Audit

Every knob, var, and magic value — where config sprawls, where environments drift, what explodes at boot versus at 3am, and which secrets hide in plain sight.

CONFIG.md4 phases8 lenses~2.9k 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: inventory every way this system is configured — env vars, files, flags, constants — and find the sprawl, the drift, and the values that will take production down.

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

What it looks for

8 lenses it looks through

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

1

Sprawl

the same value defined in N places; which one wins, and does anyone know

2

Drift

dev versus staging versus prod: every difference, and whether it is intentional, documented, or archaeological

3

Magic values

hardcoded URLs, model names, limits, and timeouts that belong in config; the number 30 with no name and no story

4

Boot validation

missing or malformed config: refuses to start with a named error, or explodes at 3am on first use

5

Secrets hygiene

secrets in code, git history, logs, or client bundles; how rotation would work, if it would

6

Defaults

safe-for-production or convenient-for-dev; which dev default is silently applying in prod today

7

Runtime mutability

what can change without a deploy, who can change it, and whether changes leave a trail

8

Dead config

vars set everywhere and read nowhere; the .env.example entries from three refactors ago

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.

CONFIG.md
1
Config map
value · sources · readers · default · documented?
2
Drift table
environment-by-environment differences, intentional versus suspicious
3
Findings
ranked by outage potential, with evidence
4
Fixes
boot validation and secret moves usually 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

Inventory the knobs

Collect every config surface.

2
Phase 2

Audit through 8 lenses

Sprawl — the same value defined in N places.

3
Phase 3

Curate

Rank by outage potential.

4
Phase 4

Report

Create CONFIG.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:config-environment-audit.

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

Or install only this Goal Prompt as /goal-config-environment-audit:

curl -fsSL https://goal-prompts.vercel.app/install | BRIEF=53 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/53.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,866 characters)
# Goal: Config & Environment Audit

You are working inside this repo. Mission: inventory every way this system is configured — env vars, files, flags, constants — and find the sprawl, the drift, and the values that will take production down.

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

## Phase 1 — Inventory the knobs
- Collect every config surface: env vars read anywhere, config files, feature flags, CLI args, per-environment overrides. Grep the access patterns — process.env, os.environ, getenv, config.get.
- For each value: where defined, where read, the default if missing, documented or not.
- Compare `.env.example` (or its equivalent) against what the code actually reads — in both directions.

## Phase 2 — Audit through 8 lenses
1. **Sprawl** — the same value defined in N places; which one wins, and does anyone know
2. **Drift** — dev versus staging versus prod: every difference, and whether it is intentional, documented, or archaeological
3. **Magic values** — hardcoded URLs, model names, limits, and timeouts that belong in config; the number 30 with no name and no story
4. **Boot validation** — missing or malformed config: refuses to start with a named error, or explodes at 3am on first use
5. **Secrets hygiene** — secrets in code, git history, logs, or client bundles; how rotation would work, if it would
6. **Defaults** — safe-for-production or convenient-for-dev; which dev default is silently applying in prod today
7. **Runtime mutability** — what can change without a deploy, who can change it, and whether changes leave a trail
8. **Dead config** — vars set everywhere and read nowhere; the .env.example entries from three refactors ago

## Phase 3 — Curate
- Rank by outage potential: (chance it is wrong or missing) × (what breaks when it is).
- Flag the free wins: dead config and duplicate definitions are deletions, not projects.

## Phase 4 — Report
Create `CONFIG.md` at repo root:
1. **Config map** — value · sources · readers · default · documented?
2. **Drift table** — environment-by-environment differences, intentional versus suspicious
3. **Findings** — ranked by outage potential, with evidence
4. **Fixes** — boot validation and secret moves usually first

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

## Rules
- Trace reads in code — a var in .env.example is a claim, not a fact
- Never print a discovered secret's value in the report; name it and locate it only
- No configuration or environments 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 fixes to make

House rules for this Goal Prompt

  • Trace reads in code — a var in .env.example is a claim, not a fact
  • Never print a discovered secret's value in the report; name it and locate it only
  • No configuration or environments 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 fixes to make
Keep exploring

More Ops briefs