final-checklisted
Install: claude install-skill YasMax91/groundwork
# Final check
Run the gates and the self-review before declaring the work done. Use the project's commands
(from `.groundwork.json`, defaulting to Sail).
## Run the gates
- Format: `./vendor/bin/sail composer format:test` (or `format` to apply).
- Static analysis: `./vendor/bin/sail composer analyse`.
- Tests: the narrowest relevant first, then broader — e.g.
`./vendor/bin/sail artisan test --filter=...`, then `./vendor/bin/sail composer test`. They must be
**green** — the Stop gate also runs the suite on changed PHP (`gates.test_on_stop`). Confirm the
tests for the changed behavior were written **test-first** (red→green).
- OpenAPI: if the change touched an endpoint, regenerate the spec
(`./vendor/bin/sail artisan l5-swagger:generate`) — it must finish with **no errors and no
warnings**, and every touched endpoint must be documented to the standard in
`${CLAUDE_SKILL_DIR}/../../guidelines/openapi-protocol.md`. The `openapi` Stop gate enforces this;
if the change provably does not touch the contract, record `- OpenAPI: n/a — <reason>` in the
checkpoint rather than working around the gate.
Report results honestly. If a gate could not run (Sail/services unavailable), say so explicitly.
## Live verification (green gates are necessary, not sufficient)
The gates prove the code satisfies the tests and the static rules; they do **not** prove the running app
does what the user will see. Before "done", exercise the changed behavior against the **running** app the