executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
audit-realworldRead-only conformance audit of a full-stack app against RealWorld ("Conduit"): API spec, shared E2E suite, closest-stack reference. Use when "audit against RealWorld", "Conduit conformance", or "is my full-stack app complete?".
Independent GitHub snapshot · Automated classification · Original documentation governs
Degree of freedom: MIXED — Mode, parity, and routing [HIGH freedom];
Phase 4 contract-suite run [LOW freedom — run exactly] when a server or
suite exists.
Read-only. Findings and a prioritized gap report only — no code changes. Remediation goes to the skill named per finding.
RealWorld ("Conduit") is an objectively testable full-stack benchmark: formal
API spec, shared E2E suite, shared CSS theme, hosted API at
api.realworld.show.
The RealWorld API spec and its E2E suite are the source of truth — not any single community implementation. Reference repos vary; the spec and the passing suite do not.
RealWorld is a demo spec, not a production bar. It omits rate limiting, observability, caching, CI/CD, secrets, and deployment. Report feature/ pattern parity, then delegate hardening to
audit-security,plan-security-audit,plan-perf-audit,plan-rls-audit, andfull-stack-ship-discipline.
file:line (or suite result)Observe: Conformance mode.
GET /api/articlesreturns{ articles }with noarticlesCountand nolimit/offset(app/api/articles/route.ts). Bruno list request fails the count assertion. Auth header isToken <jwt>. Interpret: the list contract is partial; clients cannot paginate. Auth scheme matches the spec. Classify: Partial (pagination /articlesCount); auth Implemented. Severity: High — feed is a core Conduit surface. Finding: Article list | no pagination / articlesCount | High | complete-everything
Read the dependency manifest and source before comparing anything (reuse the
audit-fe-api detection approach).
Decide the mode — state which one and why, out loud:
| Condition | Mode |
|---|---|
Repo is a RealWorld/Conduit build (articles, profiles, favorites/follow, tags, JWT Token scheme) | Conformance |
| Web full-stack CRUD app with auth + owned resources, but a different domain | Benchmark |
| Not a web app, no HTTP API, no auth/resources (CLI, library, static site, pure ML) | Bow out |
If you bow out, say so plainly and recommend the fitting skills instead
(audit-security, audit-performance, plan-perf-audit, audit-code-quality,
audit-fe-api). Do not force a RealWorld comparison onto a repo it does not fit.
STACK: FE=<...> · BE=<...> · DB/ORM=<...> · tests=<...>
MODE: Conformance | Benchmark | Bow-out (reason)
RealWorld reference chosen: <stack impl> (spec-compliant? maintained?)
realworld-apps/realworld repo
(specs/, Bruno .bru, Hurl .hurl) with a Postman collection for endpoint
testing. The hosted API at api.realworld.show needs no keys.codebase.show/projects/realworld, filter
by the detected FE/BE stack. Prefer spec-compliant, recently maintained
implementations (only a subset are verified spec-compliant at any time).Follow the /research protocol for the detected stack (Context7 for library
docs; Firecrawl for current patterns, dated to now). Anchor recommendations to
the versions actually installed in the repo.
Enumerate the spec surface and mark each Implemented / Partial / Missing /
Diverges, with file:line evidence:
Auth & users
POST /api/users (register), POST /api/users/loginGET /api/user, PUT /api/user (current user)Authorization: Token <jwt> (not Bearer)Profiles
GET /api/profiles/:usernamePOST / DELETE /api/profiles/:username/followArticles
GET /api/articles (filters: tag, author, favorited, limit, offset)GET /api/articles/feed (auth, followed authors)GET / POST / PUT / DELETE /api/articles/:slugPOST / DELETE /api/articles/:slug/favoriteComments & tags
GET / POST /api/articles/:slug/comments, DELETE .../comments/:idGET /api/tagsCross-cutting contracts
{ user }, { profile }, { article },
{ articles, articlesCount }, { comment(s) }, { tags }422 with { "errors": { "body": [ ... ] } }401; missing resources: 404limit / offset, with articlesCount for listsfavoritesCount, following/favorited booleans reflect
the requesting userThe repo isn't Conduit, so audit whether it exhibits the same production- relevant patterns RealWorld demonstrates, for its own resources:
| Pattern | What to check in this repo |
|---|---|
| Auth flow | Register/login/current-user; token issue + attach + refresh; protected routes |
| Owned resources + authz | CRUD on user-owned entities; ownership enforced server-side, not just UI |
| List semantics | Pagination, filtering, total counts, empty states |
| Relations | Follow/favorite-style join semantics done correctly (no N+1, correct counts) |
| Consistent envelopes | Uniform response + error shape across endpoints |
| Validation | Server-side validation with structured field errors |
| Contract tests | An API/E2E suite that proves the contract, not just unit tests |
Audit all three layers, not just whichever is easiest to read:
If a server is running or the E2E suite is present, run the objective proof:
bru run), the Hurl files
(hurl --test), or the Postman collection (newman run) against the local
API base URL. Report pass/fail per endpoint.A passing contract suite is stronger evidence than any static reading. Save any
run artifacts under .playwright-mcp/ if using playwright-cli.
RealWorld parity is necessary breadth, not sufficient depth. Enumerate what RealWorld does not cover and route each to the right skill — do not imply parity means production-ready:
| Concern RealWorld omits | Route to |
|---|---|
| AuthN/AuthZ hardening, secrets, injection, OWASP | audit-security, plan-security-audit |
| Row-level security / access control (Supabase) | plan-rls-audit |
| Performance, Core Web Vitals, query cost | plan-perf-audit, audit-performance, backend-db-performance |
| FE↔BE contract drift and runtime errors | audit-fe-api, debug-fe-be-integration |
| Rate limiting, observability, error handling | backend-observability, backend-error-handling |
| Deploy + migration/edge-function verification | full-stack-ship-discipline, deploy-verify |
## RealWorld Full-Stack Audit — [repo] — [date]
**Mode:** Conformance | Benchmark
**Stack:** FE [..] · BE [..] · DB/ORM [..] · tests [..]
**Reference:** [closest-stack impl] (spec-compliant: yes/no)
**Live contract suite:** ran (N/M passed) | not run — [how to run]
### Implemented correctly
- [feature/pattern] — [file:line]
### Partial (works but incomplete or diverges)
| Feature/Pattern | Gap | file:line | Severity | Fix via |
|---|---|---|---|---|
| Article feed | No pagination / articlesCount | ... | High | complete-everything |
### Missing
| Feature/Pattern | file:line (where it should live) | Severity | Fix via |
|---|---|---|---|
| DELETE comment authz | ... | High | workflow-fix-and-ship |
### Diverges from spec (Conformance mode)
| Endpoint | Spec says | Repo does | file:line |
|---|---|---|---|
| Auth header | `Token <jwt>` | `Bearer <jwt>` | ... |
### Production gaps (NOT covered by RealWorld — separate hardening)
- Security → `audit-security` · Perf → `plan-perf-audit` · RLS → `plan-rls-audit` · ...
### Recommended order
1. [Critical conformance/parity gaps] → complete-everything / workflow-fix-and-ship
2. [Production hardening] → audit-security → plan-perf-audit → ...
Forbidden: claiming production-readiness from RealWorld parity alone; inventing conformance without running or precisely describing the contract test; silently skipping a layer (FE, BE, or DB).
file:line or suite pass/fail, not "looks like Conduit"audit-fe-api — FE↔BE contract detail once endpoints are inventorieddebug-fe-be-integration — reactive debugging of contract mismatchesaudit-security / plan-security-audit — the security depth RealWorld omitsplan-rls-audit — Supabase access controlplan-perf-audit / audit-performance — the performance depth RealWorld omitstest-unit / test-playwright — write the coverage this audit finds missingcomplete-everything — close the parity + hardening gaps to doneworkflow-fix-and-ship — fix a single missing endpoint/feature and ship itfull-stack-ship-discipline (rule) — migrations/functions must actually deploy