OpenAPI Sync Until Valid
Keep openapi.yaml valid and in sync with route handlers — lint the spec and fix drift each pass.
2 copies · 7 views
by loops!
Use loop copies the kickoff. Share copies the loop link. Open in Cursor / Claude Code only pre-fill that prompt — they do not install hook files. Download loop saves a README and kickoff into .cursor/loops/openapi-sync-until-valid/ — no hooks required. Full install guide
- Do not modify the check command or exit criteria to force success
- Do not skip, disable, or bypass checks to pass the exit condition
- If stuck after several iterations, stop and report blockers instead of gaming metrics
Two separate pieces
- Kickoff prompt — tells the agent the goal, check command, exit condition, and how to self-pace between passes.
- 1
Copy or open the kickoff prompt
Click Use loop to copy the kickoff into your clipboard. Open in Cursor and Open in Claude Code only open the agent with that prompt — they do not configure automation for you.
- 2
Paste into your coding agent
Start a chat in Cursor, Claude Code, Codex, or any agent. Paste the kickoff. The prompt includes the goal, iteration limit, shell check, and first step.
- 3
Agent self-paces until done
The agent runs the loop: act → run check command → read output → repeat until the exit condition is met or max iterations is reached. No install step is required for prompt-only loops.
Full guide with Cursor /loop notes: How to install loops
1. Lint OpenAPI
Validate openapi.yaml with spectral or swagger-cli. List every error with line numbers.
npx @redocly/cli lint openapi.yaml
2. Sync handlers
Update route handlers or the spec so documented paths, schemas, and status codes match reality.
Start the "OpenAPI Sync Until Valid" loop. Goal: openapi.yaml lints clean and matches implemented routes Max iterations: 8 Between iterations run: npx @redocly/cli lint openapi.yaml Exit when: OpenAPI lint exits 0 Step 1: Lint openapi.yaml. Fix spec errors and handler drift until lint passes. Self-pace this loop. After each iteration, run the check command, read the output, and only continue if the exit condition is not met. Stop when the exit condition passes or max iterations is reached. Give a short status update each pass.
Related loops
Start the "API Contract Until Match" loop. Goal: API implementation matches the published contract Max iterations: 10 Between iterations run: npm run test:contract Exit when: contract test suite exits 0 Step 1: Run contract tests. Fix each schema/response mismatch with minimal diffs, then re-run. Self-pace this loop. After each iteration, run the check command, read the output, and only continue if the exit condition is not met. Stop when the exit condition passes or max iterations is reached. Give a short status update each pass.
Start the "Docs Sync After Edits" loop. Goal: documentation matches the current code changes Max iterations: 3 Between iterations run: git diff main...HEAD --name-only Exit when: all affected docs are updated and verified Step 1: Review the diff, find stale docs, update them, and verify accuracy. Self-pace this loop. After each iteration, run the check command, read the output, and only continue if the exit condition is not met. Stop when the exit condition passes or max iterations is reached. Give a short status update each pass.
Start the "Changelog Sync After Ship" loop. Goal: CHANGELOG.md has accurate [Unreleased] entries for this ship Max iterations: 3 Between iterations run: git log -5 --oneline Exit when: changelog covers all user-visible changes Step 1: Review recent commits, write Keep-a-Changelog entries for user-visible changes, and verify completeness. Self-pace this loop. After each iteration, run the check command, read the output, and only continue if the exit condition is not met. Stop when the exit condition passes or max iterations is reached. Give a short status update each pass.