Agent skill · addyosmani
constraint-driven-development
Establishes a project's quality bar as a written contract and stops agents quietly lowering it. Interviews the user on which dimensions matter, supplies sane default thresholds when they have no number in mind, records everything in CONSTRAINTS.md, and watches the diff for a weakened bar — new @ts-ignore or eslint-disable suppressions, skipped or deleted tests, assertions stripped out, unimplemented stubs, thresholds edited down. Use when no quality bar is written down, when the user says "set up constraints" or "define our standards", when the user wants dimensions they care about — accessibility, web performance, coverage — set up as enforced constraints, when an agent keeps silencing checks or skipping tests to get to green, when you need a coverage or performance threshold and don't know what number to pick, or when an agent writes more code than anyone will read.
What it needs
About 14k tokens when loaded.
What this skill does
Constraint-Driven Development Overview Other skills in this pack describe what good looks like. code-review-and-quality gives you five axes. test-driven-development gives you a cycle. security-and-hardening gives you a threat list. All of that lives in prose the agent reads and may or may not follow, and none of it survives the end of the session. This skill produces something different: a written record of this project's bar, with numbers, that outlives the conversation and can be checked mechanically. The reason matters. When you wrote the code, reading it told you whether it was any good. An agent writes more in an afternoon than you will read that week, so the judgement moves out of your head and into checks that run around the loop. Those checks need to exist, they need numbers you actually chose, and they need to fire close enough to the work that the agent fixes its own output. Spec-driven development says what to build. Test-driven development proves it works. Constraint-driven development defines what "good enough to ship" means, before anyone argues about it in a pull request. When to Use Apply this skill when: Starting a project or a significant feature and no quality bar is written down The user asks to "set up constraints", "add quality gates", "define our standards", or "stop the agent shipping junk" An agent is producing volume nobody is reading line by line CI has checks but nobody can say which ones block a merge and which ones are decoration Coverage, performance, or accessibility numbers get argued about per-PR instead of decided once You're about to run /build auto or any autonomous loop, and the only thing standing between it and main is a test suite the agent also wrote When NOT to use: The project already has a CONSTRAINTS.md and the user isn't changing it — read it and follow it instead One-off scripts, spikes, throwaway prototypes The user wants a code review right now (code-review-and-quality) or a CI pipeline built (ci-cd-and-automation) P …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills addyosmani/constraint-driven-development