constraint-driven-development

Defines project quality bars as enforced constraints in a CONSTRAINTS.md contract.

5|Updated Feb 12, 2026
One-click install
npx skills add https://github.com/PHenrique07/Sementis-IFSP-Pirituba --skill constraint-driven-development-phenrique07
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: constraint-driven-development
Source: https://github.com/PHenrique07/Sementis-IFSP-Pirituba/tree/main/.github/skills/constraint-driven-development
Command: npx skills add https://github.com/PHenrique07/Sementis-IFSP-Pirituba --skill constraint-driven-development-phenrique07

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? AI coding agents produce more code than anyone reviews, and without a written quality bar they take the cheapest road to green: silencing linters, skipping tests, lowering thresholds, and leaving stubs. This Skill turns your project's standards into a written, mechanically checkable contract that outlives the session. ## Core Features & Use Cases - Constraint Interview with Defaults: Asks four focused questions about which dimensions matter (coverage, security, performance, accessibility, architecture), supplying sane default thresholds when you have no number in mind. - CONSTRAINTS.md Contract: Writes a repo-root file recording the always-enforced floor (no new suppressions, no skipped tests, no stubs, no secrets), numbered enforced dimensions with the exact command that checks each, measured-only ratchets, and exceptions with owners and expiry dates. - Diff-Scoped Floor Guard: Ships a reference implementation that watches the diff for the five bar-lowering moves — weakened thresholds, easier tests, silenced checkers, unfinished work, and surprise exceptions — with exit codes 0/1/2. - Use Case: Before running an autonomous build loop on a TypeScript project, use this Skill to record an 80% changed-line coverage gate, gitleaks and Semgrep security checks, and a Lighthouse LCP budget, then wire them into fast/task/CI stages so the agent fixes its own output. ## Quick Start Ask the agent to set up quality constraints for this project and write them into CONSTRAINTS.md with enforced coverage and security checks.

Frequently Asked Questions about constraint-driven-development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up quality gates for an AI coding agent?▼

Run a short interview to pick which dimensions matter — coverage, security, performance, accessibility, or architecture — then record them in a CONSTRAINTS.md file at the repo root. Each dimension gets a number, the command that checks it, and the lifecycle stage where it runs.

What coverage threshold should I set for a project?▼

The recommended default is 80% coverage on changed lines, which forces a test without blocking config-only edits. If the codebase is below that today, record the current value as a ratchet that must not fall instead of setting an aspirational number.

How do I stop an AI agent from skipping tests or adding eslint-disable?▼

Use the diff-scoped floor guard reference implementation, which flags new suppression comments, added .skip calls, deleted assertions, stubs, and weakened thresholds in CONSTRAINTS.md. It exits 1 on violations so the change is blocked at review time.

Which tools enforce security and performance constraints?▼

The Skill names de facto tools per dimension: Semgrep for code findings, gitleaks with --redact for secrets, osv-scanner for dependencies, Lighthouse for LCP and CLS budgets, and axe-core for WCAG accessibility violations. Each is wired into npm scripts or CI.

When should I not use constraint-driven development?▼

Skip it for one-off scripts, spikes, throwaway prototypes, and short-lived pre-product-market-fit code where only the basic floor is worthwhile. Also do not rerun the interview if a CONSTRAINTS.md already exists — read and follow it instead.

Can constraints run in CI instead of on every edit?▼

Yes. The Skill separates checks into lifecycle stages: fast checks like types, lint, and secrets run on every edit in seconds, coverage runs at task end, and expensive checks like Semgrep, osv-scanner, and Lighthouse run in CI or against preview deploys.