Content
85%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A strong operational skill: fully executable, security-conscious commands with a clearly sequenced, validated restore workflow and concrete error recovery. Its two real weaknesses are the missing `assets/scheduled-backup.yml` bundle file — which undermines the scheduling section and bundle navigation — and inline version-history asides that add time-sensitive clutter.
Suggestions
Add the missing `assets/scheduled-backup.yml` file to the bundle (or fix its path): the "Run it on a schedule" section instructs copying it, but no `assets/` directory exists, so that workflow cannot be executed as written.
Move version-history asides ("from 2.2.4 it hands the database password to...", "Since 2.10.0 the Auth users... go into a second archive", "for a snapshot taken before 2.9.0...") into a labeled compatibility or "older snapshots" subsection so time-sensitive details don't clutter the main workflow.
Split the dense restore step 5 paragraph into bullets ("what a restore doesn't bring back" vs. "Auth users behavior" vs. "API grants") so the exclusions are scannable rather than buried in prose.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense with tool-specific operational detail Claude cannot know (Session pooler vs Direct, pg_dump 17-vs-18 caveat, macOS `chmod -N` ACL behavior, `auth.dump` handling) and never explains generic concepts, so it is above anchor 3. But inline version-history asides — "from 2.2.4", "Since 2.10.0", "before 2.9.0" — are time-sensitive info not placed in a compatibility/deprecated section, and long prose paragraphs (restore step 5) could be tightened, keeping it below anchor 5. | 4 / 5 |
Actionability | Every command is copy-paste ready and complete: full subshell wrappers that unset inherited vars, source `.env.backupdrill`, and stop on load failure (e.g. `set -a; . ./.env.backupdrill 2>/dev/null || { echo ".env.backupdrill could not be loaded" >&2; exit 1; }; set +a`), a pinned `npx -y backupdrill@2.10.0` invocation per operation, an exact env template, and a concrete error-to-fix mapping in "When something fails". Matches anchor 5's "fully executable; copy-paste ready; specific examples cover the common cases". | 5 / 5 |
Workflow Clarity | The restore workflow is a numbered, user-driven sequence with explicit validation checkpoints: a dry run that "checks everything and writes nothing", timestamp pinning ("replace `--dry-run` with `--snapshot <timestamp> --confirm-target <target-ref>`... so a backup that lands in between can't change what gets restored"), and "Run the real restore only after the user asks for it". Backup/drill outputs are validated ("Go through the check lines... quote the failing check as printed"), a config check runs "before the first command", and a troubleshooting section provides feedback loops — matching anchor 5. The destructive-operation cap does not apply: the write operation (restore) has explicit pre-flight validation. | 5 / 5 |
Progressive Disclosure | The main body appropriately holds the core workflow, and `references/postgres-backup-basics.md` exists, is one level deep, and is clearly signaled for off-path requests ("If the user asks what Supabase already backs up... read [references/postgres-backup-basics.md]"). However, the entire scheduling section depends on `[assets/scheduled-backup.yml]` — a referenced path that does not exist in the bundle (there is no `assets/` directory), so navigation dead-ends and that workflow is unexecutable as written. A missing referenced file is more than the "minor organization gaps" of anchor 4, landing this at anchor 3. | 3 / 5 |
Total | 17 / 20 Passed |