From 99139a25d07e3523d3f6871419798dda600db49a Mon Sep 17 00:00:00 2001 From: Joseph Huang Date: Wed, 17 Jun 2026 00:12:22 +0800 Subject: [PATCH] fix: pin all four safety carve-outs in the rule-drift canary (#114) INVARIANTS pinned only 'input validation at trust boundaries'; the other three carve-outs (data-loss, security, accessibility) could drift silently. Adds 'prevents data loss', 'security', 'accessibility' as canaries, each present verbatim in both SKILL.md and AGENTS.md. No rule text changed. --- scripts/check-rule-copies.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/scripts/check-rule-copies.js b/scripts/check-rule-copies.js index d80fbc2..0b5b524 100644 --- a/scripts/check-rule-copies.js +++ b/scripts/check-rule-copies.js @@ -43,7 +43,14 @@ const INVARIANTS = [ 'naive heuristic', // ceiling-comment rule 'ONE runnable check', // test reflex 'flimsier algorithm', // robust-variant rule - 'input validation at trust boundaries', // the "not lazy about" clause + // the four "not lazy about" safety carve-outs: pin each so a reword in either + // file can't silently drop one. Only validation was pinned before. These are the + // continuous substrings present in both files ("prevents data loss" because the + // full "error handling that prevents data loss" wraps a line in SKILL.md). + 'input validation at trust boundaries', + 'prevents data loss', + 'security', + 'accessibility', 'Lazy code without its check is unfinished', // one-check promoted to headline ];