proof-of-prodlisted
Install: claude install-skill arcubalino/proof-of-prod
# proof-of-prod
Apply a **verification-driven** hardening pass to a small app behind Cloudflare.
The rule of this skill: **nothing is "done" until its verify command passes.**
Bundled reference files live beside this file — read them as you go.
## 1. Gather context first
Ask for / detect:
- the **domain** and the **origin server IP**,
- the **reverse proxy** (nginx / Caddy / Traefik / Apache / cloud firewall),
- the **app framework** (Laravel / Node / Django / Go / Next.js / other),
- which endpoints are **anonymous public reads** (cacheable) vs interactive/authenticated,
- the **login path** and any sensitive admin paths.
## 2. Work the four layers in order
Follow `CHECKLIST.md` top to bottom. For each item: make (or guide) the change,
then run its **verify** command and confirm it passes before moving on.
- **Edge (Cloudflare)** — `edge/cloudflare.md`. These are dashboard actions the
user performs; give exact click-paths, then verify with curl. Never tell the
user to buy paid features: the Managed WAF Rulesets are Pro+ and unnecessary;
the free Custom Rules + one Rate-Limit rule + Bot Fight Mode are enough. Say so.
- **Origin** — `origin/nginx.conf.example` (or the matching proxy in
`origin/README.md`). This is the **highest-value fix**: the origin must reject
any request whose real peer isn't a Cloudflare edge IP, and restore the real
client IP from `CF-Connecting-IP`. Mind the gotcha: match the allowlist on
`$realip_remote_addr`, not `$remote_addr`.
-