跳转到内容
关系图谱

constraint-driven-development(Addy)

366 字 1 分钟

属性 8
repo
addyosmani_agent-skills
skill
constraint-driven-development
source
addyosmani_agent-skills/skills/constraint-driven-development/SKILL.md
invoke
model
phase
define
cost
low
status
stable
local
same
一句话

把项目质量底线写成 CONSTRAINTS.md 契约,并盯住 diff 防止 agent 悄悄降标:新增 @ts-ignore、跳测试、删断言、下调阈值都算违规。

何时用 ​

  • 适合:项目没写下质量底线;要把覆盖率、性能、可访问性变成可执行约束;agent 总靠压检查凑绿。
  • 不适合:一次性临时脚本;底线已由更严的体系覆盖。

怎么用 ​

text
给我们项目定一套质量底线,覆盖率、性能都要有数字
  1. 先探测再提问:读 package.json、lint 配置、CI、当前覆盖率,能读的不问。
  2. 四个问题各带默认值;用户没数就用 Sane Defaults(变更行覆盖 ≥80%、LCP ≤2500ms、CLS ≤0.1、axe 0 个 critical/serious)。
  3. 写 CONSTRAINTS.md:Floor(无门槛必守)、Enforced with numbers、Measured not yet enforced、Exceptions(90 天寿命)。
  4. 给每个维度装工具,接进生命周期(编辑后钩子加 CI)。
  5. 守护底线本身:盯 diff 里被削弱的 bar;没数时用 ratchet 只许升不许降。

产出 ​

  • CONSTRAINTS.md;按升级路径可选 npm run check 脚本或专用 runner。

要点与坑 ​

  • 数字必须带理由一起写,没理由的阈值会被下一个人删掉。
  • 升级路径三级:written only → scripted → tool-backed,多数项目停在第二级。
  • 首轮可以只守 Floor:floor guard 只看 diff,零安装当天就能用。

关联 ​