Help us improve
Share bugs, ideas, or general feedback.
From deepest-plan
API platform validation via curl / httpie against real running servers. Captures full response bodies, headers, status codes. Tests CRUD, auth, error paths, pagination, rate limiting. Cited as platform_skill on API gates in deepest-plan output.
npx claudepluginhub krzemienski/deepest-plan-plugin --plugin deepest-planHow this skill is triggered — by the user, by Claude, or both
Slash command
/deepest-plan:api-validationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
HTTP endpoint validation for REST, GraphQL (over HTTP), JSON-RPC, and webhook receivers. Does NOT handle frontend (use `web-validation`), fullstack orchestration (use `fullstack-validation`), or contract-schema testing for non-HTTP (use custom harness).
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
HTTP endpoint validation for REST, GraphQL (over HTTP), JSON-RPC, and webhook receivers. Does NOT handle frontend (use web-validation), fullstack orchestration (use fullstack-validation), or contract-schema testing for non-HTTP (use custom harness).
curl -sf http://localhost:PORT/health)pg_isready, redis-cli ping, etc.)# Happy path
curl -s -X POST http://localhost:3000/api/resource \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"example"}' \
| tee e2e-evidence/vgN-happy.json | jq .
# Status-only (check status code behavior)
curl -s -o e2e-evidence/vgN-unauth.json \
-w "%{http_code}\n%{time_total}\n" \
-X POST http://localhost:3000/api/resource \
> e2e-evidence/vgN-unauth-meta.txt
# Error path
curl -s -X POST http://localhost:3000/api/resource \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"invalid":"payload"}' \
| tee e2e-evidence/vgN-invalid.json
# Verify DB side effect
psql "$DATABASE_URL" -c "SELECT * FROM resource WHERE name='example'" \
| tee e2e-evidence/vgN-db.txt
Good:
id non-null AND name == 'example' AND NO password field"error.field == 'name'"Bad (reject):
<validation_gate id="VG-N" blocking="true" platform="api"
protocol="functional-validation"
platform_skill="api-validation"
verdict_by="gate-validation-discipline">
<preflight skill="preflight">[server + DB + env ready]</preflight>
<execute>[curl sequences covering happy + auth + validation + idempotency]</execute>
<capture>[response JSON + status + headers to e2e-evidence/vgN-*]</capture>
<pass_criteria>[specific jq-checkable assertions]</pass_criteria>
<review>[jq -e expressions; grep for specific status codes]</review>
<verdict>PASS → next | FAIL → error-recovery → re-run</verdict>
<mock_guard skill="no-mocking-validation-gates">
Real DB, real API. No supertest against mock app, no in-memory DB.
</mock_guard>
</validation_gate>
Every endpoint validated by a gate MUST cover:
For idempotent endpoints:
For paginated endpoints:
total / hasMore fields reflect truth| Symptom | Likely cause | Fix |
|---|---|---|
| 200 OK with error body | Handler swallowed exception | Check handler; use 4xx for client errors |
| 500 with no log | Stack trace suppressed in prod | Check log level; add structured error logger |
| CORS preflight fails | OPTIONS handler missing | Add explicit OPTIONS or use cors middleware |
| Timing-attack on auth | Compare-time differs for valid vs invalid | Use constant-time compare |
Never log or commit evidence containing real tokens, API keys, or PII. Use test tokens; rotate after evidence capture.