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.

by addyosmani 98k GitHub stars MIT Updated Sep 20, 2026
constraint-driven-development skill by addyosmani
constraint-driven-development — Testing skill by addyosmani

Overview

constraint-driven-development is an open-source testing skill for Claude Code and compatible agents, published by addyosmani. Its author describes it as: “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, record…”. The project has 98k stars on GitHub and is available under the MIT license. Add it to your setup with `/plugin marketplace add addyosmani/agent-skills`.

What constraint-driven-development does

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.

What’s inside

The SKILL.md for constraint-driven-development is organised into these sections:

  • Overview
  • When to Use
  • Loading Constraints
  • The Process
  • Step 1: Detect before you ask
  • Step 2: Four questions, each with a default
  • Step 3: Write CONSTRAINTS.md
  • Step 4: Install what each dimension needs
  • Step 5: Wire it to the lifecycle
  • Step 6: Guard the bar itself
  • Step 7: Ratchets, when you don't have a number
  • Sane Defaults

Installation

Add constraint-driven-development to your agent with:

/plugin marketplace add addyosmani/agent-skills

Review a skill’s source before installing it — skills can instruct your agent to run commands. This command comes from the skill’s public repository, which is the source of truth for setup steps. New to skills? Read how to install Claude Code skills.

Supported agents

  • Claude Code — ships a claude code plugin marketplace
  • Codex — declared in the repository topics
  • Cursor — declared in the repository topics
  • Antigravity — declared in the repository topics

License

constraint-driven-development is published under the MIT license.

Strengths

  • Clear MIT license — safe to read and adapt within its terms
  • Ships in addyosmani/agent-skills, an established project with 97,992 GitHub stars
  • Works with Claude Code, Codex, Cursor, Antigravity
  • Actively maintained — repository updated in the last 30 days
  • Its repository gained 6,925 GitHub stars over the last 21 days

Author

addyosmani 27 skills in the catalog · GitHub profile ↗
View skills

Topics

Need a skill like this, tailored to your team?Build a custom skill →

Frequently asked questions

What does constraint-driven-development do?
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.
How do I install constraint-driven-development?
Run /plugin marketplace add addyosmani/agent-skills in your agent, then reload your skills. Review the source at https://github.com/addyosmani/agent-skills before installing.
Is constraint-driven-development free to use?
Yes. constraint-driven-development is free and open source under the MIT license, so you can read, run, and adapt it within that license's terms.
Which agents does constraint-driven-development work with?
constraint-driven-development lists Claude Code, Codex, Cursor, and Antigravity — named in its SKILL.md, its plugin marketplace or its repository topics. Skills use the portable SKILL.md format, so other agents that read that format may load it too.
Where does constraint-driven-development come from?
constraint-driven-development ships inside addyosmani/agent-skills, a repository that contains 26 catalogued skills in total. The repository's 97,992 GitHub stars apply to that whole collection, not to this skill on its own.

Tests in real browsers via Chrome DevTools MCP. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM, capture console errors, analyze network requests, profile performance, or verify visual output with real runtime data. Requires the chrome-devtools MCP server to be configured.

🔥 TrendingActive Claude CodeCodexCursor+1
98k GitHub stars MIT Updated Sep 20, 2026 Free

Subjects every non-trivial decision to a fresh-context adversarial review before it stands. Use when you want every assumption cross-examined before proceeding, when stress-testing a plan for hidden failure modes, when correctness matters more than speed, when working in unfamiliar code, when stakes are high (production auth, security-sensitive logic, a high-stakes migration, irreversible operations), or any time a confident output would be cheaper to verify now than to debug later.

↑ GrowingActive Claude CodeCodexCursor+1
98k GitHub stars MIT Updated Sep 20, 2026 Free

Refines raw ideas into sharp, actionable concepts through structured divergent and convergent thinking. Use when an idea is still vague, when you need to stress-test assumptions before committing to a plan, or when you want to expand options before converging on one. Triggers on "ideate", "refine this idea", or "stress-test my plan".

↑ GrowingActive Claude CodeCodexCursor+1
98k GitHub stars MIT Updated Sep 20, 2026 Free

Drives development with tests using the red-green-refactor loop. Use when implementing any logic, fixing any bug, or changing any behavior. Use when you need to prove that code works, when a bug report arrives, or when you're about to modify existing functionality.

↑ GrowingActive Claude CodeCodexCursor+1
98k GitHub stars MIT Updated Sep 20, 2026 Free

Test web applications with screen readers including VoiceOver, NVDA, and JAWS. Use when validating screen reader compatibility, debugging accessibility issues, or ensuring assistive technology support.

↑ Growing Claude CodeCodexCursor+3
39k GitHub stars MIT Updated Aug 24, 2026 Free