diff --git a/core/agents/rule-hunter.md b/core/agents/rule-hunter.md index efe912d4..f66d0569 100644 --- a/core/agents/rule-hunter.md +++ b/core/agents/rule-hunter.md @@ -111,8 +111,18 @@ a finding by a design maxim or general principle ("tell don't ask", "law of Demeter") — maxims propose, evidence disposes; only your rule's detection commands convict. +**Claims of absence:** A finding that rests on something *not* existing — no test +file, no caller, no row in a table, never imported — carries the command that looked +and its empty result as the evidence: `ls ` with the listing that lacks the +file, `grep -rn | wc -l` → `0`. Memory of the scope, a file list read +earlier, or a search over a narrower directory proves nothing about absence. When the +budget does not allow that call, the lead is not a finding: name it in the +`not reached:` line as `unverified: `. + **Output — one block per finding:** `rule | file:line | evidence (falsifying-question answers) | proposed fix pattern (named from the rule's Fix pattern section) | effort (S/M/L)` +For a claim of absence the evidence column holds the command and its empty result +(`` `ls src/placement` → no test file ``). Then, rule by rule, one receipt line per falsifying question, in the rule's order: `R Q: hit(s) → finding(s)` — the counts table's number for that question and how many of its hits became findings; the rest were cleared. A diff --git a/go-linter-driven-development/agents/rule-hunter.md b/go-linter-driven-development/agents/rule-hunter.md index fac119f6..8f04b538 100644 --- a/go-linter-driven-development/agents/rule-hunter.md +++ b/go-linter-driven-development/agents/rule-hunter.md @@ -111,8 +111,18 @@ a finding by a design maxim or general principle ("tell don't ask", "law of Demeter") — maxims propose, evidence disposes; only your rule's detection commands convict. +**Claims of absence:** A finding that rests on something *not* existing — no test +file, no caller, no row in a table, never imported — carries the command that looked +and its empty result as the evidence: `ls ` with the listing that lacks the +file, `grep -rn | wc -l` → `0`. Memory of the scope, a file list read +earlier, or a search over a narrower directory proves nothing about absence. When the +budget does not allow that call, the lead is not a finding: name it in the +`not reached:` line as `unverified: `. + **Output — one block per finding:** `rule | file:line | evidence (falsifying-question answers) | proposed fix pattern (named from the rule's Fix pattern section) | effort (S/M/L)` +For a claim of absence the evidence column holds the command and its empty result +(`` `ls src/placement` → no test file ``). Then, rule by rule, one receipt line per falsifying question, in the rule's order: `R Q: hit(s) → finding(s)` — the counts table's number for that question and how many of its hits became findings; the rest were cleared. A diff --git a/linter-driven-development/agents/rule-hunter.md b/linter-driven-development/agents/rule-hunter.md index c0bb667f..4b5423df 100644 --- a/linter-driven-development/agents/rule-hunter.md +++ b/linter-driven-development/agents/rule-hunter.md @@ -111,8 +111,18 @@ a finding by a design maxim or general principle ("tell don't ask", "law of Demeter") — maxims propose, evidence disposes; only your rule's detection commands convict. +**Claims of absence:** A finding that rests on something *not* existing — no test +file, no caller, no row in a table, never imported — carries the command that looked +and its empty result as the evidence: `ls ` with the listing that lacks the +file, `grep -rn | wc -l` → `0`. Memory of the scope, a file list read +earlier, or a search over a narrower directory proves nothing about absence. When the +budget does not allow that call, the lead is not a finding: name it in the +`not reached:` line as `unverified: `. + **Output — one block per finding:** `rule | file:line | evidence (falsifying-question answers) | proposed fix pattern (named from the rule's Fix pattern section) | effort (S/M/L)` +For a claim of absence the evidence column holds the command and its empty result +(`` `ls src/placement` → no test file ``). Then, rule by rule, one receipt line per falsifying question, in the rule's order: `R Q: hit(s) → finding(s)` — the counts table's number for that question and how many of its hits became findings; the rest were cleared. A diff --git a/python-linter-driven-development/agents/rule-hunter.md b/python-linter-driven-development/agents/rule-hunter.md index 58dd3d0b..0bc78769 100644 --- a/python-linter-driven-development/agents/rule-hunter.md +++ b/python-linter-driven-development/agents/rule-hunter.md @@ -111,8 +111,18 @@ a finding by a design maxim or general principle ("tell don't ask", "law of Demeter") — maxims propose, evidence disposes; only your rule's detection commands convict. +**Claims of absence:** A finding that rests on something *not* existing — no test +file, no caller, no row in a table, never imported — carries the command that looked +and its empty result as the evidence: `ls ` with the listing that lacks the +file, `grep -rn | wc -l` → `0`. Memory of the scope, a file list read +earlier, or a search over a narrower directory proves nothing about absence. When the +budget does not allow that call, the lead is not a finding: name it in the +`not reached:` line as `unverified: `. + **Output — one block per finding:** `rule | file:line | evidence (falsifying-question answers) | proposed fix pattern (named from the rule's Fix pattern section) | effort (S/M/L)` +For a claim of absence the evidence column holds the command and its empty result +(`` `ls src/placement` → no test file ``). Then, rule by rule, one receipt line per falsifying question, in the rule's order: `R Q: hit(s) → finding(s)` — the counts table's number for that question and how many of its hits became findings; the rest were cleared. A diff --git a/ts-react-linter-driven-development/agents/rule-hunter.md b/ts-react-linter-driven-development/agents/rule-hunter.md index dfe92e3e..fdfc3af0 100644 --- a/ts-react-linter-driven-development/agents/rule-hunter.md +++ b/ts-react-linter-driven-development/agents/rule-hunter.md @@ -111,8 +111,18 @@ a finding by a design maxim or general principle ("tell don't ask", "law of Demeter") — maxims propose, evidence disposes; only your rule's detection commands convict. +**Claims of absence:** A finding that rests on something *not* existing — no test +file, no caller, no row in a table, never imported — carries the command that looked +and its empty result as the evidence: `ls ` with the listing that lacks the +file, `grep -rn | wc -l` → `0`. Memory of the scope, a file list read +earlier, or a search over a narrower directory proves nothing about absence. When the +budget does not allow that call, the lead is not a finding: name it in the +`not reached:` line as `unverified: `. + **Output — one block per finding:** `rule | file:line | evidence (falsifying-question answers) | proposed fix pattern (named from the rule's Fix pattern section) | effort (S/M/L)` +For a claim of absence the evidence column holds the command and its empty result +(`` `ls src/placement` → no test file ``). Then, rule by rule, one receipt line per falsifying question, in the rule's order: `R Q: hit(s) → finding(s)` — the counts table's number for that question and how many of its hits became findings; the rest were cleared. A