Creator · addyosmani
Last updated · Sep 1, 2026
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 weak
Creator · addyosmani
Last updated · Sep 1, 2026
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 weak
Creator · addyosmani
Last updated · Sep 1, 2026
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 weak
Creator · addyosmani
Last updated · Sep 1, 2026
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 weak
Sandbox only
Install targets
Codex install prompt
Install the "constraint-driven-development" agent skill from https://github.com/addyosmani/agent-skills/tree/main/skills/constraint-driven-development. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: 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 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. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"addyosmani-constraint-driven-development","task":"Install constraint-driven-development","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + OpenAI Agents + CLI
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add addyosmani/agent-skills --skill constraint-driven-development
Maintenance
fresh
10d since push
Risk
Needs review
Dependency or permission surface needs review
GitHub quality
91K
95/100 Quality · 72/100 Trust
Coverage tags
Review notes
Dependency or permission surface needs review · Permission surface may require sandboxing
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
91K GitHub stars
Repo activity
91K stars, 9.8K forks
Maintenance
10d since push
License
MIT
Install
npx skills add addyosmani/agent-skills --skill constraint-driven-development
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add addyosmani/agent-skills --skill constraint-driven-developmentDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
256.1K Stars
npx skills add mattpocock/skills --skill grill-me
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
high
Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20constraint-driven-development%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20constraint-driven-development%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/addyosmani-constraint-driven-development/install
Agent should check
Copy prompt
Task: Use constraint-driven-development in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20constraint-driven-development%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/addyosmani-constraint-driven-development/install
Install command: npx skills add addyosmani/agent-skills --skill constraint-driven-development
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/addyosmani-constraint-driven-development/install
LLM text format
/api/skills/addyosmani-constraint-driven-development/install?format=text
Find alternatives
/api/skills/search?q=constraint-driven-development&limit=3
Agent prompt
Use constraint-driven-development for this task. Review https://www.openagentskill.com/api/skills/addyosmani-constraint-driven-development/install, then install with: npx skills add addyosmani/agent-skills --skill constraint-driven-developmentRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/addyosmani-constraint-driven-development
LLM text
/api/registry/manifest/addyosmani-constraint-driven-development?format=text
Install alias
/api/registry/install/addyosmani-constraint-driven-development
Recommend
/api/registry/recommend?task=Use%20constraint-driven-development%20in%20an%20agent%20workflow&limit=3
Agent fit
Research agents
Use-case tags
Platforms
Claude Code, OpenAI Agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Research agents
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS91K GitHub stars
Stars/forks activity
PASS91K stars, 9.8K forks; issue activity unavailable in current metadata
Recent maintenance
PASS10d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Workflow fit
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
A relentless interview to sharpen a plan or design.
--- name: constraint-driven-development description: 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 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. ---
# 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`) - Pre-product-market-fit code with a two-week expected lifetime — the floor below is still worth it, the rest isn't
## Loading Constraints
The interview needs a live user. **Don't run it in non-interactive contexts** (CI, `/loop`, autonomous runs). If constraints are missing and you're in one of those, apply the Floor below, note that you did, and flag the rest for a human.
## The Process
### Step 1: Detect before you ask
Never ask what you can read. Before the first question, gather:
| What | Where to look | |------|---------------| | Language and stack | `package.json`, `pyproject.toml`, `go.mod`, `Cargo.toml` | | Test runner | dev dependencies, `test` script, existing test files | | Existing linters | `eslint.config.*`, `biome.json`, `.ruff.toml` | | Coverage today | `coverage/` output, or run the suite once | | CI | `.github/workflows/`, `.gitlab-ci.yml` | | Agent harness | `.claude/`, `.codex/`, `AGENTS.md` |
Report what you found in two lines, then ask only what's left.
### Step 2: Four questions, each with a default
Follow the one-question-at-a-time discipline from `interview-me`, with one change: every question here has a default, so "I don't know" is a complete answer that still produces a working config.
``` Q1: Beyond the floor, which of these do you want enforced? (a) Test coverage on new code (b) Security scanning (c) Performance budgets (d) Accessibility (e) Architecture boundaries GUESS: (a) and (b) — you have a test runner already and you're handling user input. DEFAULT if unsure: (a) and (b). Say what each pick costs: (c) and (d) need a running URL, (e) needs a rules file written. ```
``` Q2: When a check fails while the agent is mid-task, should it block or warn? GUESS: Block. You're running agents unattended and a warning nobody reads is a warning. DEFAULT if unsure: Block on the floor, warn on everything else for the first two weeks. ```
``` Q3: Do you have target numbers in mind, or should I measure where you are today and hold that line? GUESS: Measure. Most teams don't have a number, and an invented one gets ignored. DEFAULT if unsure: Measure and hold. See "Ratchets" below. ```
``` Q4: What's the slowest check you'll tolerate before the agent hands work back? GUESS: About 90 seconds. Longer and you'll stop running it. DEFAULT if unsure: 90 seconds at task end, unlimited in CI. ```
Stop at four. A twelve-question intake produces a config nobody understands and a user who regrets starting.
### Step 3: Write CONSTRAINTS.md
One file at the repo root. Any agent on any harness can read it, and a change to it shows up in review where it belongs.
```markdown # Constraints
Last reviewed: 2026-08-08 by @addy
## Floor (always enforced, no setup required)
- No new suppression comments: `@ts-ignore`, `eslint-disable`, `# noqa`, `# type: ignore` - No unimplemented stubs: `throw new Error("Not implemented")`, empty `catch {}` - No skipped or deleted tests without a reason in the commit message - No secrets in source - This file does not get weakened to make a change pass
## Enforced with numbers
| Dimension | Rule | Checked by | Runs at | |-----------|------|-----------|---------| | Types | Zero type errors | `tsc --noEmit` | every edit | | Lint | Zero errors from our config | `biome check` | every edit | | Secrets | No secrets in source | `gitleaks detect --redact` | every edit | | Coverage | Changed lines ≥ 80% covered | `vitest run --coverage` + git diff | task end, CI | | Security: code | No high findings | `semgrep scan --config p/default` | CI | | Security: deps | Nothing at high or above | `osv-scanner scan source -r .` | CI | | Accessibility | Zero critical or serious | `axe $PREVIEW_URL --tags wcag2a,wcag2aa,wcag21aa` | preview deploy | | Performance | LCP ≤ 2500ms, CLS ≤ 0.1 | `lighthouse $PREVIEW_URL --output=json` | preview deploy |
Every row names the command that produces the verdict. A dimension with a number and no command in this column is an aspiration, not a constraint.
## Measured, not yet enforced
| Metric | Today | Direction | |--------|-------|-----------| | Project coverage | 62.4% | must not fall | | Bundle size (main) | 184 kB | must not grow |
## Exceptions
| ID | Rule | Path | Reason | Owner | Expires | |----|------|------|--------|-------|---------| | W1 | `no-explicit-any` | `src/legacy/**` | Rewrite tracked in ENG-441 | @addy | 2026-11-01 | ```
Then add one line to `AGENTS.md` and `CLAUDE.md`: `Read CONSTRAINTS.md before writing code. Do not weaken it to make a change pass.`
### Step 4: Install what each dimension needs
Picking a dimension means installing something. Don't leave the user with a number and no mechanism, and don't invent your own checker when a de facto one exists — these tools are listed because their rule formats and thresholds are what everything else in the ecosystem targets, so the team's existing config keeps working.
| Dimension | Tool | Install | Run | Gate on | |-----------|------|---------|-----|---------| | Types (TS) | tsc | already there | `tsc --noEmit` | any error | | Types (Python) | mypy | `pip install mypy` | `mypy .` | any error | | Lint | your existing config | already there | `eslint .` / `biome check` / `ruff check` | any error | | Coverage (JS) | your test runner | already there | `vitest run --coverage` (or `jest --coverage`) | coverage of changed lines | | Coverage (Python) | pytest-cov | `pip install pytest-cov` | `pytest --cov --cov-report=lcov` | same | | Security: code | Semgrep | `pipx install semgrep` | `semgrep scan --config p/default --config p/owasp-top-ten` | any high finding | | Security: secrets | gitleaks | `brew install gitleaks` | `gitleaks detect --redact --no-banner` | any finding | | Security: dependencies | osv-scanner | `brew install osv-scanner` | `osv-scanner scan source -r .` | high or above | | Performance: page | Lighthouse | `npm i -D lighthouse` | `lighthouse $URL --output=json --quiet` | LCP, CLS, performance score | | Performance: bundle | size-limit | `npm i -D size-limit` | `size-limit --json` | per-entry byte budget | | Accessibility | axe-core | `npm i -D @axe-core/cli` | `axe $URL --tags wcag2a,wcag2aa,wcag21aa` | zero critical or serious | | Architecture | dependency-cruiser | `npm i -D dependency-cruiser` | `depcruise --validate src` | any violation | | Assertion quality | Stryker | `npm i -D @stryker-mutator/core` | `stryker run --mutate <changed files>` | mutation score |
Five things that will bite you if you skip them:
1. **`--redact` on gitleaks is not optional.** Without it the matched secret lands in the agent's transcript, which is how a leaked key ends up in a log, a summary, or a commit message. Report the rule and the location, never the value. 2. **Lighthouse and axe need a URL.** They only work against a running app, so they belong in the runtime stage against a preview deploy or a local server you start first. If the project has no URL to hit — a CLI, a library, a desktop app — say so and drop the dimension rather than inventing a check that can't run. 3. **Scope the expensive ones to the diff.** `stryker run --mutate` on the whole repo takes hours and gets turned off; on the files a change touched it takes under a minute. Same for Semgrep, which takes a path list. 4. **Coverage needs no second test run.** Read the lcov your suite already writes and intersect it with `git diff`. Running the suite twice to get a number is the fastest way to make people hate this. 5. **Semgrep's registry rules are free to run; check the licence before redistributing them.** `opengrep` is a drop-in fork with the same rule format and JSON output if that matters to your legal team.
Add each one to the project's own script so it's reproducible without an agent:
```json { "scripts": { "check:fast": "tsc --noEmit && eslint . && gitleaks detect --redact --no-banner", "check:task": "npm run check:fast && vitest run --coverage", "check:full": "npm run check:task && semgrep scan --config p/default && osv-scanner scan source -r ." } } ```
That mapping matters more than the tools. `check:fast` is what runs after an edit, `check:task` when the agent thinks it's done, `check:full` in CI.
The commands now live in two places — the `Checked by` column in `CONSTRAINTS.md` and these scripts. `CONSTRAINTS.md` is the canonical source: it carries the reason alongside each command and it shows up in review. The scripts are convenience wrappers that must mirror it, not a second source of truth; if they drift, the file wins.
### Step 5: Wire it to the lifecycle
The single biggest mistake is running everything everywhere. A check that stalls the agent gets switched off, and a gate people switched off is worse than no gate, because the bar still looks like it exists.
| Phase | Command | What runs | Budget | |-------|---------|-----------|--------| | BUILD | `/build` | Types, lint, secrets, the floor | under 5s, changed file only | | VERIFY | `/test` | Related tests, coverage on changed lines | under 90s | | REVIEW | `/review` | Everything, plus the guards below | minutes | | SHIP | `/ship` | Direct
Source provenance
Decision snapshot
91,391 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for constraint-driven-development, ready for a manual X post.
constraint-driven-development: Establishes a project's quality bar as a written contract and stops agents quietly lowering i... 91.4K stars https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=x
Listing + install path for constraint-driven-development: https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=x Install: npx skills add addyosmani/agent-skills --skill constraint-driven-development
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to addyosmani but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development/audit)
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)addyosmani
@addyosmani
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K Starsgrill-me
A relentless interview to sharpen a plan or design.
256.1K StarsSandbox only
Install targets
Codex install prompt
Install the "constraint-driven-development" agent skill from https://github.com/addyosmani/agent-skills/tree/main/skills/constraint-driven-development. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: 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 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. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"addyosmani-constraint-driven-development","task":"Install constraint-driven-development","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + OpenAI Agents + CLI
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add addyosmani/agent-skills --skill constraint-driven-development
Maintenance
fresh
10d since push
Risk
Needs review
Dependency or permission surface needs review
GitHub quality
91K
95/100 Quality · 72/100 Trust
Coverage tags
Review notes
Dependency or permission surface needs review · Permission surface may require sandboxing
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
91K GitHub stars
Repo activity
91K stars, 9.8K forks
Maintenance
10d since push
License
MIT
Install
npx skills add addyosmani/agent-skills --skill constraint-driven-development
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add addyosmani/agent-skills --skill constraint-driven-developmentDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
256.1K Stars
npx skills add mattpocock/skills --skill grill-me
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
high
Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20constraint-driven-development%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20constraint-driven-development%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/addyosmani-constraint-driven-development/install
Agent should check
Copy prompt
Task: Use constraint-driven-development in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20constraint-driven-development%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/addyosmani-constraint-driven-development/install
Install command: npx skills add addyosmani/agent-skills --skill constraint-driven-development
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/addyosmani-constraint-driven-development/install
LLM text format
/api/skills/addyosmani-constraint-driven-development/install?format=text
Find alternatives
/api/skills/search?q=constraint-driven-development&limit=3
Agent prompt
Use constraint-driven-development for this task. Review https://www.openagentskill.com/api/skills/addyosmani-constraint-driven-development/install, then install with: npx skills add addyosmani/agent-skills --skill constraint-driven-developmentRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/addyosmani-constraint-driven-development
LLM text
/api/registry/manifest/addyosmani-constraint-driven-development?format=text
Install alias
/api/registry/install/addyosmani-constraint-driven-development
Recommend
/api/registry/recommend?task=Use%20constraint-driven-development%20in%20an%20agent%20workflow&limit=3
Agent fit
Research agents
Use-case tags
Platforms
Claude Code, OpenAI Agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Research agents
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS91K GitHub stars
Stars/forks activity
PASS91K stars, 9.8K forks; issue activity unavailable in current metadata
Recent maintenance
PASS10d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Workflow fit
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
A relentless interview to sharpen a plan or design.
--- name: constraint-driven-development description: 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 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. ---
# 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`) - Pre-product-market-fit code with a two-week expected lifetime — the floor below is still worth it, the rest isn't
## Loading Constraints
The interview needs a live user. **Don't run it in non-interactive contexts** (CI, `/loop`, autonomous runs). If constraints are missing and you're in one of those, apply the Floor below, note that you did, and flag the rest for a human.
## The Process
### Step 1: Detect before you ask
Never ask what you can read. Before the first question, gather:
| What | Where to look | |------|---------------| | Language and stack | `package.json`, `pyproject.toml`, `go.mod`, `Cargo.toml` | | Test runner | dev dependencies, `test` script, existing test files | | Existing linters | `eslint.config.*`, `biome.json`, `.ruff.toml` | | Coverage today | `coverage/` output, or run the suite once | | CI | `.github/workflows/`, `.gitlab-ci.yml` | | Agent harness | `.claude/`, `.codex/`, `AGENTS.md` |
Report what you found in two lines, then ask only what's left.
### Step 2: Four questions, each with a default
Follow the one-question-at-a-time discipline from `interview-me`, with one change: every question here has a default, so "I don't know" is a complete answer that still produces a working config.
``` Q1: Beyond the floor, which of these do you want enforced? (a) Test coverage on new code (b) Security scanning (c) Performance budgets (d) Accessibility (e) Architecture boundaries GUESS: (a) and (b) — you have a test runner already and you're handling user input. DEFAULT if unsure: (a) and (b). Say what each pick costs: (c) and (d) need a running URL, (e) needs a rules file written. ```
``` Q2: When a check fails while the agent is mid-task, should it block or warn? GUESS: Block. You're running agents unattended and a warning nobody reads is a warning. DEFAULT if unsure: Block on the floor, warn on everything else for the first two weeks. ```
``` Q3: Do you have target numbers in mind, or should I measure where you are today and hold that line? GUESS: Measure. Most teams don't have a number, and an invented one gets ignored. DEFAULT if unsure: Measure and hold. See "Ratchets" below. ```
``` Q4: What's the slowest check you'll tolerate before the agent hands work back? GUESS: About 90 seconds. Longer and you'll stop running it. DEFAULT if unsure: 90 seconds at task end, unlimited in CI. ```
Stop at four. A twelve-question intake produces a config nobody understands and a user who regrets starting.
### Step 3: Write CONSTRAINTS.md
One file at the repo root. Any agent on any harness can read it, and a change to it shows up in review where it belongs.
```markdown # Constraints
Last reviewed: 2026-08-08 by @addy
## Floor (always enforced, no setup required)
- No new suppression comments: `@ts-ignore`, `eslint-disable`, `# noqa`, `# type: ignore` - No unimplemented stubs: `throw new Error("Not implemented")`, empty `catch {}` - No skipped or deleted tests without a reason in the commit message - No secrets in source - This file does not get weakened to make a change pass
## Enforced with numbers
| Dimension | Rule | Checked by | Runs at | |-----------|------|-----------|---------| | Types | Zero type errors | `tsc --noEmit` | every edit | | Lint | Zero errors from our config | `biome check` | every edit | | Secrets | No secrets in source | `gitleaks detect --redact` | every edit | | Coverage | Changed lines ≥ 80% covered | `vitest run --coverage` + git diff | task end, CI | | Security: code | No high findings | `semgrep scan --config p/default` | CI | | Security: deps | Nothing at high or above | `osv-scanner scan source -r .` | CI | | Accessibility | Zero critical or serious | `axe $PREVIEW_URL --tags wcag2a,wcag2aa,wcag21aa` | preview deploy | | Performance | LCP ≤ 2500ms, CLS ≤ 0.1 | `lighthouse $PREVIEW_URL --output=json` | preview deploy |
Every row names the command that produces the verdict. A dimension with a number and no command in this column is an aspiration, not a constraint.
## Measured, not yet enforced
| Metric | Today | Direction | |--------|-------|-----------| | Project coverage | 62.4% | must not fall | | Bundle size (main) | 184 kB | must not grow |
## Exceptions
| ID | Rule | Path | Reason | Owner | Expires | |----|------|------|--------|-------|---------| | W1 | `no-explicit-any` | `src/legacy/**` | Rewrite tracked in ENG-441 | @addy | 2026-11-01 | ```
Then add one line to `AGENTS.md` and `CLAUDE.md`: `Read CONSTRAINTS.md before writing code. Do not weaken it to make a change pass.`
### Step 4: Install what each dimension needs
Picking a dimension means installing something. Don't leave the user with a number and no mechanism, and don't invent your own checker when a de facto one exists — these tools are listed because their rule formats and thresholds are what everything else in the ecosystem targets, so the team's existing config keeps working.
| Dimension | Tool | Install | Run | Gate on | |-----------|------|---------|-----|---------| | Types (TS) | tsc | already there | `tsc --noEmit` | any error | | Types (Python) | mypy | `pip install mypy` | `mypy .` | any error | | Lint | your existing config | already there | `eslint .` / `biome check` / `ruff check` | any error | | Coverage (JS) | your test runner | already there | `vitest run --coverage` (or `jest --coverage`) | coverage of changed lines | | Coverage (Python) | pytest-cov | `pip install pytest-cov` | `pytest --cov --cov-report=lcov` | same | | Security: code | Semgrep | `pipx install semgrep` | `semgrep scan --config p/default --config p/owasp-top-ten` | any high finding | | Security: secrets | gitleaks | `brew install gitleaks` | `gitleaks detect --redact --no-banner` | any finding | | Security: dependencies | osv-scanner | `brew install osv-scanner` | `osv-scanner scan source -r .` | high or above | | Performance: page | Lighthouse | `npm i -D lighthouse` | `lighthouse $URL --output=json --quiet` | LCP, CLS, performance score | | Performance: bundle | size-limit | `npm i -D size-limit` | `size-limit --json` | per-entry byte budget | | Accessibility | axe-core | `npm i -D @axe-core/cli` | `axe $URL --tags wcag2a,wcag2aa,wcag21aa` | zero critical or serious | | Architecture | dependency-cruiser | `npm i -D dependency-cruiser` | `depcruise --validate src` | any violation | | Assertion quality | Stryker | `npm i -D @stryker-mutator/core` | `stryker run --mutate <changed files>` | mutation score |
Five things that will bite you if you skip them:
1. **`--redact` on gitleaks is not optional.** Without it the matched secret lands in the agent's transcript, which is how a leaked key ends up in a log, a summary, or a commit message. Report the rule and the location, never the value. 2. **Lighthouse and axe need a URL.** They only work against a running app, so they belong in the runtime stage against a preview deploy or a local server you start first. If the project has no URL to hit — a CLI, a library, a desktop app — say so and drop the dimension rather than inventing a check that can't run. 3. **Scope the expensive ones to the diff.** `stryker run --mutate` on the whole repo takes hours and gets turned off; on the files a change touched it takes under a minute. Same for Semgrep, which takes a path list. 4. **Coverage needs no second test run.** Read the lcov your suite already writes and intersect it with `git diff`. Running the suite twice to get a number is the fastest way to make people hate this. 5. **Semgrep's registry rules are free to run; check the licence before redistributing them.** `opengrep` is a drop-in fork with the same rule format and JSON output if that matters to your legal team.
Add each one to the project's own script so it's reproducible without an agent:
```json { "scripts": { "check:fast": "tsc --noEmit && eslint . && gitleaks detect --redact --no-banner", "check:task": "npm run check:fast && vitest run --coverage", "check:full": "npm run check:task && semgrep scan --config p/default && osv-scanner scan source -r ." } } ```
That mapping matters more than the tools. `check:fast` is what runs after an edit, `check:task` when the agent thinks it's done, `check:full` in CI.
The commands now live in two places — the `Checked by` column in `CONSTRAINTS.md` and these scripts. `CONSTRAINTS.md` is the canonical source: it carries the reason alongside each command and it shows up in review. The scripts are convenience wrappers that must mirror it, not a second source of truth; if they drift, the file wins.
### Step 5: Wire it to the lifecycle
The single biggest mistake is running everything everywhere. A check that stalls the agent gets switched off, and a gate people switched off is worse than no gate, because the bar still looks like it exists.
| Phase | Command | What runs | Budget | |-------|---------|-----------|--------| | BUILD | `/build` | Types, lint, secrets, the floor | under 5s, changed file only | | VERIFY | `/test` | Related tests, coverage on changed lines | under 90s | | REVIEW | `/review` | Everything, plus the guards below | minutes | | SHIP | `/ship` | Direct
Source provenance
Decision snapshot
91,391 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for constraint-driven-development, ready for a manual X post.
constraint-driven-development: Establishes a project's quality bar as a written contract and stops agents quietly lowering i... 91.4K stars https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=x
Listing + install path for constraint-driven-development: https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=x Install: npx skills add addyosmani/agent-skills --skill constraint-driven-development
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to addyosmani but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development/audit)
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)addyosmani
@addyosmani
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K Starsgrill-me
A relentless interview to sharpen a plan or design.
256.1K StarsSandbox only
Install targets
Codex install prompt
Install the "constraint-driven-development" agent skill from https://github.com/addyosmani/agent-skills/tree/main/skills/constraint-driven-development. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: 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 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. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"addyosmani-constraint-driven-development","task":"Install constraint-driven-development","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + OpenAI Agents + CLI
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add addyosmani/agent-skills --skill constraint-driven-development
Maintenance
fresh
10d since push
Risk
Needs review
Dependency or permission surface needs review
GitHub quality
91K
95/100 Quality · 72/100 Trust
Coverage tags
Review notes
Dependency or permission surface needs review · Permission surface may require sandboxing
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
91K GitHub stars
Repo activity
91K stars, 9.8K forks
Maintenance
10d since push
License
MIT
Install
npx skills add addyosmani/agent-skills --skill constraint-driven-development
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add addyosmani/agent-skills --skill constraint-driven-developmentDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
256.1K Stars
npx skills add mattpocock/skills --skill grill-me
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
high
Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20constraint-driven-development%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20constraint-driven-development%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/addyosmani-constraint-driven-development/install
Agent should check
Copy prompt
Task: Use constraint-driven-development in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20constraint-driven-development%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/addyosmani-constraint-driven-development/install
Install command: npx skills add addyosmani/agent-skills --skill constraint-driven-development
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/addyosmani-constraint-driven-development/install
LLM text format
/api/skills/addyosmani-constraint-driven-development/install?format=text
Find alternatives
/api/skills/search?q=constraint-driven-development&limit=3
Agent prompt
Use constraint-driven-development for this task. Review https://www.openagentskill.com/api/skills/addyosmani-constraint-driven-development/install, then install with: npx skills add addyosmani/agent-skills --skill constraint-driven-developmentRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/addyosmani-constraint-driven-development
LLM text
/api/registry/manifest/addyosmani-constraint-driven-development?format=text
Install alias
/api/registry/install/addyosmani-constraint-driven-development
Recommend
/api/registry/recommend?task=Use%20constraint-driven-development%20in%20an%20agent%20workflow&limit=3
Agent fit
Research agents
Use-case tags
Platforms
Claude Code, OpenAI Agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Research agents
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS91K GitHub stars
Stars/forks activity
PASS91K stars, 9.8K forks; issue activity unavailable in current metadata
Recent maintenance
PASS10d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Workflow fit
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
A relentless interview to sharpen a plan or design.
--- name: constraint-driven-development description: 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 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. ---
# 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`) - Pre-product-market-fit code with a two-week expected lifetime — the floor below is still worth it, the rest isn't
## Loading Constraints
The interview needs a live user. **Don't run it in non-interactive contexts** (CI, `/loop`, autonomous runs). If constraints are missing and you're in one of those, apply the Floor below, note that you did, and flag the rest for a human.
## The Process
### Step 1: Detect before you ask
Never ask what you can read. Before the first question, gather:
| What | Where to look | |------|---------------| | Language and stack | `package.json`, `pyproject.toml`, `go.mod`, `Cargo.toml` | | Test runner | dev dependencies, `test` script, existing test files | | Existing linters | `eslint.config.*`, `biome.json`, `.ruff.toml` | | Coverage today | `coverage/` output, or run the suite once | | CI | `.github/workflows/`, `.gitlab-ci.yml` | | Agent harness | `.claude/`, `.codex/`, `AGENTS.md` |
Report what you found in two lines, then ask only what's left.
### Step 2: Four questions, each with a default
Follow the one-question-at-a-time discipline from `interview-me`, with one change: every question here has a default, so "I don't know" is a complete answer that still produces a working config.
``` Q1: Beyond the floor, which of these do you want enforced? (a) Test coverage on new code (b) Security scanning (c) Performance budgets (d) Accessibility (e) Architecture boundaries GUESS: (a) and (b) — you have a test runner already and you're handling user input. DEFAULT if unsure: (a) and (b). Say what each pick costs: (c) and (d) need a running URL, (e) needs a rules file written. ```
``` Q2: When a check fails while the agent is mid-task, should it block or warn? GUESS: Block. You're running agents unattended and a warning nobody reads is a warning. DEFAULT if unsure: Block on the floor, warn on everything else for the first two weeks. ```
``` Q3: Do you have target numbers in mind, or should I measure where you are today and hold that line? GUESS: Measure. Most teams don't have a number, and an invented one gets ignored. DEFAULT if unsure: Measure and hold. See "Ratchets" below. ```
``` Q4: What's the slowest check you'll tolerate before the agent hands work back? GUESS: About 90 seconds. Longer and you'll stop running it. DEFAULT if unsure: 90 seconds at task end, unlimited in CI. ```
Stop at four. A twelve-question intake produces a config nobody understands and a user who regrets starting.
### Step 3: Write CONSTRAINTS.md
One file at the repo root. Any agent on any harness can read it, and a change to it shows up in review where it belongs.
```markdown # Constraints
Last reviewed: 2026-08-08 by @addy
## Floor (always enforced, no setup required)
- No new suppression comments: `@ts-ignore`, `eslint-disable`, `# noqa`, `# type: ignore` - No unimplemented stubs: `throw new Error("Not implemented")`, empty `catch {}` - No skipped or deleted tests without a reason in the commit message - No secrets in source - This file does not get weakened to make a change pass
## Enforced with numbers
| Dimension | Rule | Checked by | Runs at | |-----------|------|-----------|---------| | Types | Zero type errors | `tsc --noEmit` | every edit | | Lint | Zero errors from our config | `biome check` | every edit | | Secrets | No secrets in source | `gitleaks detect --redact` | every edit | | Coverage | Changed lines ≥ 80% covered | `vitest run --coverage` + git diff | task end, CI | | Security: code | No high findings | `semgrep scan --config p/default` | CI | | Security: deps | Nothing at high or above | `osv-scanner scan source -r .` | CI | | Accessibility | Zero critical or serious | `axe $PREVIEW_URL --tags wcag2a,wcag2aa,wcag21aa` | preview deploy | | Performance | LCP ≤ 2500ms, CLS ≤ 0.1 | `lighthouse $PREVIEW_URL --output=json` | preview deploy |
Every row names the command that produces the verdict. A dimension with a number and no command in this column is an aspiration, not a constraint.
## Measured, not yet enforced
| Metric | Today | Direction | |--------|-------|-----------| | Project coverage | 62.4% | must not fall | | Bundle size (main) | 184 kB | must not grow |
## Exceptions
| ID | Rule | Path | Reason | Owner | Expires | |----|------|------|--------|-------|---------| | W1 | `no-explicit-any` | `src/legacy/**` | Rewrite tracked in ENG-441 | @addy | 2026-11-01 | ```
Then add one line to `AGENTS.md` and `CLAUDE.md`: `Read CONSTRAINTS.md before writing code. Do not weaken it to make a change pass.`
### Step 4: Install what each dimension needs
Picking a dimension means installing something. Don't leave the user with a number and no mechanism, and don't invent your own checker when a de facto one exists — these tools are listed because their rule formats and thresholds are what everything else in the ecosystem targets, so the team's existing config keeps working.
| Dimension | Tool | Install | Run | Gate on | |-----------|------|---------|-----|---------| | Types (TS) | tsc | already there | `tsc --noEmit` | any error | | Types (Python) | mypy | `pip install mypy` | `mypy .` | any error | | Lint | your existing config | already there | `eslint .` / `biome check` / `ruff check` | any error | | Coverage (JS) | your test runner | already there | `vitest run --coverage` (or `jest --coverage`) | coverage of changed lines | | Coverage (Python) | pytest-cov | `pip install pytest-cov` | `pytest --cov --cov-report=lcov` | same | | Security: code | Semgrep | `pipx install semgrep` | `semgrep scan --config p/default --config p/owasp-top-ten` | any high finding | | Security: secrets | gitleaks | `brew install gitleaks` | `gitleaks detect --redact --no-banner` | any finding | | Security: dependencies | osv-scanner | `brew install osv-scanner` | `osv-scanner scan source -r .` | high or above | | Performance: page | Lighthouse | `npm i -D lighthouse` | `lighthouse $URL --output=json --quiet` | LCP, CLS, performance score | | Performance: bundle | size-limit | `npm i -D size-limit` | `size-limit --json` | per-entry byte budget | | Accessibility | axe-core | `npm i -D @axe-core/cli` | `axe $URL --tags wcag2a,wcag2aa,wcag21aa` | zero critical or serious | | Architecture | dependency-cruiser | `npm i -D dependency-cruiser` | `depcruise --validate src` | any violation | | Assertion quality | Stryker | `npm i -D @stryker-mutator/core` | `stryker run --mutate <changed files>` | mutation score |
Five things that will bite you if you skip them:
1. **`--redact` on gitleaks is not optional.** Without it the matched secret lands in the agent's transcript, which is how a leaked key ends up in a log, a summary, or a commit message. Report the rule and the location, never the value. 2. **Lighthouse and axe need a URL.** They only work against a running app, so they belong in the runtime stage against a preview deploy or a local server you start first. If the project has no URL to hit — a CLI, a library, a desktop app — say so and drop the dimension rather than inventing a check that can't run. 3. **Scope the expensive ones to the diff.** `stryker run --mutate` on the whole repo takes hours and gets turned off; on the files a change touched it takes under a minute. Same for Semgrep, which takes a path list. 4. **Coverage needs no second test run.** Read the lcov your suite already writes and intersect it with `git diff`. Running the suite twice to get a number is the fastest way to make people hate this. 5. **Semgrep's registry rules are free to run; check the licence before redistributing them.** `opengrep` is a drop-in fork with the same rule format and JSON output if that matters to your legal team.
Add each one to the project's own script so it's reproducible without an agent:
```json { "scripts": { "check:fast": "tsc --noEmit && eslint . && gitleaks detect --redact --no-banner", "check:task": "npm run check:fast && vitest run --coverage", "check:full": "npm run check:task && semgrep scan --config p/default && osv-scanner scan source -r ." } } ```
That mapping matters more than the tools. `check:fast` is what runs after an edit, `check:task` when the agent thinks it's done, `check:full` in CI.
The commands now live in two places — the `Checked by` column in `CONSTRAINTS.md` and these scripts. `CONSTRAINTS.md` is the canonical source: it carries the reason alongside each command and it shows up in review. The scripts are convenience wrappers that must mirror it, not a second source of truth; if they drift, the file wins.
### Step 5: Wire it to the lifecycle
The single biggest mistake is running everything everywhere. A check that stalls the agent gets switched off, and a gate people switched off is worse than no gate, because the bar still looks like it exists.
| Phase | Command | What runs | Budget | |-------|---------|-----------|--------| | BUILD | `/build` | Types, lint, secrets, the floor | under 5s, changed file only | | VERIFY | `/test` | Related tests, coverage on changed lines | under 90s | | REVIEW | `/review` | Everything, plus the guards below | minutes | | SHIP | `/ship` | Direct
Source provenance
Decision snapshot
91,391 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for constraint-driven-development, ready for a manual X post.
constraint-driven-development: Establishes a project's quality bar as a written contract and stops agents quietly lowering i... 91.4K stars https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=x
Listing + install path for constraint-driven-development: https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=x Install: npx skills add addyosmani/agent-skills --skill constraint-driven-development
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to addyosmani but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development/audit)
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)addyosmani
@addyosmani
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K Starsgrill-me
A relentless interview to sharpen a plan or design.
256.1K StarsSandbox only
Install targets
Codex install prompt
Install the "constraint-driven-development" agent skill from https://github.com/addyosmani/agent-skills/tree/main/skills/constraint-driven-development. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: 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 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. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"addyosmani-constraint-driven-development","task":"Install constraint-driven-development","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + OpenAI Agents + CLI
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add addyosmani/agent-skills --skill constraint-driven-development
Maintenance
fresh
10d since push
Risk
Needs review
Dependency or permission surface needs review
GitHub quality
91K
95/100 Quality · 72/100 Trust
Coverage tags
Review notes
Dependency or permission surface needs review · Permission surface may require sandboxing
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
91K GitHub stars
Repo activity
91K stars, 9.8K forks
Maintenance
10d since push
License
MIT
Install
npx skills add addyosmani/agent-skills --skill constraint-driven-development
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add addyosmani/agent-skills --skill constraint-driven-developmentDo not use when
Alternative
1.9K Stars
npx skills add yanliudesign/mono-color-skill --skill mono-color
Alternative
61.0K Stars
npx skills add mvanhorn/last30days-skill -g
Alternative
38.4K Stars
npx skills add Imbad0202/academic-research-skills
Alternative
256.1K Stars
npx skills add mattpocock/skills --skill grill-me
Agent safety v2
Sparse or mixed signals. Useful for discovery, but not for autonomous installation.
Test manually in an isolated workspace and compare against safer alternatives.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
high
Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20constraint-driven-development%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20constraint-driven-development%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/addyosmani-constraint-driven-development/install
Agent should check
Copy prompt
Task: Use constraint-driven-development in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20constraint-driven-development%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/addyosmani-constraint-driven-development/install
Install command: npx skills add addyosmani/agent-skills --skill constraint-driven-development
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/addyosmani-constraint-driven-development/install
LLM text format
/api/skills/addyosmani-constraint-driven-development/install?format=text
Find alternatives
/api/skills/search?q=constraint-driven-development&limit=3
Agent prompt
Use constraint-driven-development for this task. Review https://www.openagentskill.com/api/skills/addyosmani-constraint-driven-development/install, then install with: npx skills add addyosmani/agent-skills --skill constraint-driven-developmentRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/addyosmani-constraint-driven-development
LLM text
/api/registry/manifest/addyosmani-constraint-driven-development?format=text
Install alias
/api/registry/install/addyosmani-constraint-driven-development
Recommend
/api/registry/recommend?task=Use%20constraint-driven-development%20in%20an%20agent%20workflow&limit=3
Agent fit
Research agents
Use-case tags
Platforms
Claude Code, OpenAI Agents
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
Research agents
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS91K GitHub stars
Stars/forks activity
PASS91K stars, 9.8K forks; issue activity unavailable in current metadata
Recent maintenance
PASS10d since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Workflow fit
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Alternative shortlist
Similar skills that may fit this task.
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
Academic Research Skills for Claude Code: research → write → review → revise → finalize
A relentless interview to sharpen a plan or design.
--- name: constraint-driven-development description: 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 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. ---
# 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`) - Pre-product-market-fit code with a two-week expected lifetime — the floor below is still worth it, the rest isn't
## Loading Constraints
The interview needs a live user. **Don't run it in non-interactive contexts** (CI, `/loop`, autonomous runs). If constraints are missing and you're in one of those, apply the Floor below, note that you did, and flag the rest for a human.
## The Process
### Step 1: Detect before you ask
Never ask what you can read. Before the first question, gather:
| What | Where to look | |------|---------------| | Language and stack | `package.json`, `pyproject.toml`, `go.mod`, `Cargo.toml` | | Test runner | dev dependencies, `test` script, existing test files | | Existing linters | `eslint.config.*`, `biome.json`, `.ruff.toml` | | Coverage today | `coverage/` output, or run the suite once | | CI | `.github/workflows/`, `.gitlab-ci.yml` | | Agent harness | `.claude/`, `.codex/`, `AGENTS.md` |
Report what you found in two lines, then ask only what's left.
### Step 2: Four questions, each with a default
Follow the one-question-at-a-time discipline from `interview-me`, with one change: every question here has a default, so "I don't know" is a complete answer that still produces a working config.
``` Q1: Beyond the floor, which of these do you want enforced? (a) Test coverage on new code (b) Security scanning (c) Performance budgets (d) Accessibility (e) Architecture boundaries GUESS: (a) and (b) — you have a test runner already and you're handling user input. DEFAULT if unsure: (a) and (b). Say what each pick costs: (c) and (d) need a running URL, (e) needs a rules file written. ```
``` Q2: When a check fails while the agent is mid-task, should it block or warn? GUESS: Block. You're running agents unattended and a warning nobody reads is a warning. DEFAULT if unsure: Block on the floor, warn on everything else for the first two weeks. ```
``` Q3: Do you have target numbers in mind, or should I measure where you are today and hold that line? GUESS: Measure. Most teams don't have a number, and an invented one gets ignored. DEFAULT if unsure: Measure and hold. See "Ratchets" below. ```
``` Q4: What's the slowest check you'll tolerate before the agent hands work back? GUESS: About 90 seconds. Longer and you'll stop running it. DEFAULT if unsure: 90 seconds at task end, unlimited in CI. ```
Stop at four. A twelve-question intake produces a config nobody understands and a user who regrets starting.
### Step 3: Write CONSTRAINTS.md
One file at the repo root. Any agent on any harness can read it, and a change to it shows up in review where it belongs.
```markdown # Constraints
Last reviewed: 2026-08-08 by @addy
## Floor (always enforced, no setup required)
- No new suppression comments: `@ts-ignore`, `eslint-disable`, `# noqa`, `# type: ignore` - No unimplemented stubs: `throw new Error("Not implemented")`, empty `catch {}` - No skipped or deleted tests without a reason in the commit message - No secrets in source - This file does not get weakened to make a change pass
## Enforced with numbers
| Dimension | Rule | Checked by | Runs at | |-----------|------|-----------|---------| | Types | Zero type errors | `tsc --noEmit` | every edit | | Lint | Zero errors from our config | `biome check` | every edit | | Secrets | No secrets in source | `gitleaks detect --redact` | every edit | | Coverage | Changed lines ≥ 80% covered | `vitest run --coverage` + git diff | task end, CI | | Security: code | No high findings | `semgrep scan --config p/default` | CI | | Security: deps | Nothing at high or above | `osv-scanner scan source -r .` | CI | | Accessibility | Zero critical or serious | `axe $PREVIEW_URL --tags wcag2a,wcag2aa,wcag21aa` | preview deploy | | Performance | LCP ≤ 2500ms, CLS ≤ 0.1 | `lighthouse $PREVIEW_URL --output=json` | preview deploy |
Every row names the command that produces the verdict. A dimension with a number and no command in this column is an aspiration, not a constraint.
## Measured, not yet enforced
| Metric | Today | Direction | |--------|-------|-----------| | Project coverage | 62.4% | must not fall | | Bundle size (main) | 184 kB | must not grow |
## Exceptions
| ID | Rule | Path | Reason | Owner | Expires | |----|------|------|--------|-------|---------| | W1 | `no-explicit-any` | `src/legacy/**` | Rewrite tracked in ENG-441 | @addy | 2026-11-01 | ```
Then add one line to `AGENTS.md` and `CLAUDE.md`: `Read CONSTRAINTS.md before writing code. Do not weaken it to make a change pass.`
### Step 4: Install what each dimension needs
Picking a dimension means installing something. Don't leave the user with a number and no mechanism, and don't invent your own checker when a de facto one exists — these tools are listed because their rule formats and thresholds are what everything else in the ecosystem targets, so the team's existing config keeps working.
| Dimension | Tool | Install | Run | Gate on | |-----------|------|---------|-----|---------| | Types (TS) | tsc | already there | `tsc --noEmit` | any error | | Types (Python) | mypy | `pip install mypy` | `mypy .` | any error | | Lint | your existing config | already there | `eslint .` / `biome check` / `ruff check` | any error | | Coverage (JS) | your test runner | already there | `vitest run --coverage` (or `jest --coverage`) | coverage of changed lines | | Coverage (Python) | pytest-cov | `pip install pytest-cov` | `pytest --cov --cov-report=lcov` | same | | Security: code | Semgrep | `pipx install semgrep` | `semgrep scan --config p/default --config p/owasp-top-ten` | any high finding | | Security: secrets | gitleaks | `brew install gitleaks` | `gitleaks detect --redact --no-banner` | any finding | | Security: dependencies | osv-scanner | `brew install osv-scanner` | `osv-scanner scan source -r .` | high or above | | Performance: page | Lighthouse | `npm i -D lighthouse` | `lighthouse $URL --output=json --quiet` | LCP, CLS, performance score | | Performance: bundle | size-limit | `npm i -D size-limit` | `size-limit --json` | per-entry byte budget | | Accessibility | axe-core | `npm i -D @axe-core/cli` | `axe $URL --tags wcag2a,wcag2aa,wcag21aa` | zero critical or serious | | Architecture | dependency-cruiser | `npm i -D dependency-cruiser` | `depcruise --validate src` | any violation | | Assertion quality | Stryker | `npm i -D @stryker-mutator/core` | `stryker run --mutate <changed files>` | mutation score |
Five things that will bite you if you skip them:
1. **`--redact` on gitleaks is not optional.** Without it the matched secret lands in the agent's transcript, which is how a leaked key ends up in a log, a summary, or a commit message. Report the rule and the location, never the value. 2. **Lighthouse and axe need a URL.** They only work against a running app, so they belong in the runtime stage against a preview deploy or a local server you start first. If the project has no URL to hit — a CLI, a library, a desktop app — say so and drop the dimension rather than inventing a check that can't run. 3. **Scope the expensive ones to the diff.** `stryker run --mutate` on the whole repo takes hours and gets turned off; on the files a change touched it takes under a minute. Same for Semgrep, which takes a path list. 4. **Coverage needs no second test run.** Read the lcov your suite already writes and intersect it with `git diff`. Running the suite twice to get a number is the fastest way to make people hate this. 5. **Semgrep's registry rules are free to run; check the licence before redistributing them.** `opengrep` is a drop-in fork with the same rule format and JSON output if that matters to your legal team.
Add each one to the project's own script so it's reproducible without an agent:
```json { "scripts": { "check:fast": "tsc --noEmit && eslint . && gitleaks detect --redact --no-banner", "check:task": "npm run check:fast && vitest run --coverage", "check:full": "npm run check:task && semgrep scan --config p/default && osv-scanner scan source -r ." } } ```
That mapping matters more than the tools. `check:fast` is what runs after an edit, `check:task` when the agent thinks it's done, `check:full` in CI.
The commands now live in two places — the `Checked by` column in `CONSTRAINTS.md` and these scripts. `CONSTRAINTS.md` is the canonical source: it carries the reason alongside each command and it shows up in review. The scripts are convenience wrappers that must mirror it, not a second source of truth; if they drift, the file wins.
### Step 5: Wire it to the lifecycle
The single biggest mistake is running everything everywhere. A check that stalls the agent gets switched off, and a gate people switched off is worse than no gate, because the bar still looks like it exists.
| Phase | Command | What runs | Budget | |-------|---------|-----------|--------| | BUILD | `/build` | Types, lint, secrets, the floor | under 5s, changed file only | | VERIFY | `/test` | Related tests, coverage on changed lines | under 90s | | REVIEW | `/review` | Everything, plus the guards below | minutes | | SHIP | `/ship` | Direct
Source provenance
Decision snapshot
91,391 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for constraint-driven-development, ready for a manual X post.
constraint-driven-development: Establishes a project's quality bar as a written contract and stops agents quietly lowering i... 91.4K stars https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=x
Listing + install path for constraint-driven-development: https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=x Install: npx skills add addyosmani/agent-skills --skill constraint-driven-development
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to addyosmani but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development/audit)
[](https://www.openagentskill.com/skills/addyosmani-constraint-driven-development?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)addyosmani
@addyosmani
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
mono-color
Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo. Always use this skill when the user asks for 单色海报、双色印刷、单色调视觉、蓝色/绿色孔版印刷、risograph、网点照片、复古或当代编辑排版、zine poster, monochrome editorial poster, duotone print, or asks to use the mono-color style. It uses an adaptive white, gray, or pale-beige substrate, no more than two printing inks, active negative space, terse human language, and strong serif/grotesk/mono typography without making retro styling the default or copying a source composition, wording, logo, or artwork. Produce both the final generation prompt and the generated raster image unless the user explicitly asks for prompt only.
1.9K StarsLast30days Skill
Research the last 30 days across Reddit, X, YouTube, Hacker News, Polymarket, GitHub, and the web, then synthesize a grounded brief for an AI agent.
61.0K StarsAcademic Research Skills
Academic Research Skills for Claude Code: research → write → review → revise → finalize
38.4K Starsgrill-me
A relentless interview to sharpen a plan or design.
256.1K StarsPermission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness
Permission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Strong README/SKILL.md context
Risk summary
Install readiness