addyosmani avatar

Constraint Driven Development

Constraint-driven-development is for the moment after an agent has been writing code all afternoon and nobody has read most of it. Instead of trusting the agent's sense of "good enough," this skill interviews you on which quality dimensions matter (coverage, security, accessibility, web performance), fills in sensible default thresholds when you don't have numbers, and writes the result to a CONSTRAINTS.md that any harness can read. The part I'd actually use is the diff watch: it flags new @ts-ignore or eslint-disable suppressions, deleted or skipped tests, and thresholds quietly edited down to get to green. Four interview questions with defaults is a sensible scope, and the Floor section is a good baseline even for small projects.

skills.sh installs
42.4K
GitHub stars
114.6K
last updated
Oct 27, 2026

Install

$ npx -y skills add addyosmani/agent-skills --skill constraint-driven-development --agent claude-code

Installs into .claude/skills of the current project.

Files

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:

Sponsors

Details

Repository
github.com/addyosmani/agent-skills
Categories
Testing & QA, Git & Pull Requests, Code Review & Quality, AI & Agent Building, Debugging, Design & UI/UX
First seen
Oct 27, 2026

More from addyosmani/agent-skills

All 25
1samber avatargolang-clisamber/cc-skills-golangGolang CLI application development. Use when building, modifying, or reviewing a Go CLI tool — especially for command structure, flag handling, configuration la41.1Kskills.sh installs
2convex avatarconvex-migrate-rehearseconvex/agent-skillsRehearse a live-app schema change + backfill on a snapshot-seeded preview deployment, verify, then promote the proven change to prod with the snapshot as rollba41.1Kskills.sh installs
3samber avatargolang-grpcsamber/cc-skills-golangProvides gRPC usage guidelines, protobuf organization, and production-ready patterns for Golang microservices. Use when implementing, reviewing, or debugging gR40.7Kskills.sh installs
4limrun-inc avatarlimrun-android-emulatorlimrun-inc/skillsDrive an app running on a Limrun cloud Android emulator: install an APK, launch and terminate apps with crash reports, tap, type, read the UI element tree, scre40.2Kskills.sh installs
5flutter avatarflutter-add-widget-previewflutter/agent-pluginsAdds interactive widget previews to the project using the previews.dart system. Use when creating new UI components or updating existing screens to ensure consi38.7Kskills.sh installs
6samber avatargolang-spf13-vipersamber/cc-skills-golangGolang configuration library using spf13/viper — layered precedence (flag > env > file > KV > default), BindPFlag/BindPFlags, SetEnvPrefix + SetEnvKeyReplacer +38.3Kskills.sh installs