Graduated from the contract slice of #3031, pruned before merge per the topic-docs convention.
The gap
A conforming findings file reaches the review:fanout fix relay, and the relay decides how to remediate. For ai-slop:audit that decision is wrong for 14 of its 15 rules: the relay classifies its rows as cleanup-class and routes them to /simplify, a code-simplification skill that cannot apply prose rewrites and never loads plugins/ai-slop/skills/audit/reference/rewrite-guide.md, which is where that plugin's rewrite discipline actually lives.
The result is structurally true and semantically empty. A relay pass over an ai-slop findings file retires the findings while applying at most rule-utm-params — the one rule that is genuinely auto-applicable. #3031 narrowed the plugin's own claim to say exactly that, which is honest but leaves the underlying gap.
Why it is a convention change, not a plugin fix
The producer knows which skill can remediate its findings; the contract gives it nowhere to say so. Every adopter has the same shape available to it, so the fix belongs in docs/conventions/detector-findings/ rather than in any one plugin:
mutation-testing:audit — remediation is a covering test, already declared off-site via Action.
testing:audit — remediation is at Location but encodes oracle judgment.
ai-slop:audit — remediation is a guarded prose rewrite owned by the producer's own fix action.
Three adopters, three different remediation owners, one relay that assumes it knows.
Sketch, not a decision
Some way for a crosswalk row (or the findings file) to name the remediation skill, with the relay surfacing rather than mis-applying when the named skill is not the one it would have chosen. The existing off-site-remediation disposition (Action names the target, consumer surfaces rather than auto-applies) is the nearest precedent and may already be the answer with a wider reading.
Deliberately unscoped here. It touches a contract with three adopters and a consumer, and #3031 declined to smuggle it into an unrelated branch.
Related
Graduated from the contract slice of #3031, pruned before merge per the topic-docs convention.
The gap
A conforming findings file reaches the
review:fanoutfix relay, and the relay decides how to remediate. Forai-slop:auditthat decision is wrong for 14 of its 15 rules: the relay classifies its rows as cleanup-class and routes them to/simplify, a code-simplification skill that cannot apply prose rewrites and never loadsplugins/ai-slop/skills/audit/reference/rewrite-guide.md, which is where that plugin's rewrite discipline actually lives.The result is structurally true and semantically empty. A relay pass over an ai-slop findings file retires the findings while applying at most
rule-utm-params— the one rule that is genuinely auto-applicable. #3031 narrowed the plugin's own claim to say exactly that, which is honest but leaves the underlying gap.Why it is a convention change, not a plugin fix
The producer knows which skill can remediate its findings; the contract gives it nowhere to say so. Every adopter has the same shape available to it, so the fix belongs in
docs/conventions/detector-findings/rather than in any one plugin:mutation-testing:audit— remediation is a covering test, already declared off-site viaAction.testing:audit— remediation is atLocationbut encodes oracle judgment.ai-slop:audit— remediation is a guarded prose rewrite owned by the producer's ownfixaction.Three adopters, three different remediation owners, one relay that assumes it knows.
Sketch, not a decision
Some way for a crosswalk row (or the findings file) to name the remediation skill, with the relay surfacing rather than mis-applying when the named skill is not the one it would have chosen. The existing off-site-remediation disposition (
Actionnames the target, consumer surfaces rather than auto-applies) is the nearest precedent and may already be the answer with a wider reading.Deliberately unscoped here. It touches a contract with three adopters and a consumer, and #3031 declined to smuggle it into an unrelated branch.
Related
ai-slop's relay claim to what is currently true.docs/conventions/detector-findings/README.md— "The severity crosswalk", theAuto-applicablecolumn, and the Adopters table.