Disclosure is not a fix
Skill ralfyishere/rules-with-receipts/.claude/skills/disclosure-is-not-a-fix
A quality pack for Claude Code that ships with its own eval harness and honest A/B evidence — rules with receipts, not vibes.
npx -y skills add ralfyishere/rules-with-receipts --skill disclosure-is-not-a-fixAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 29 days oldThe repository was created 29 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Writing down a known defect does not resolve it. Activate when about to ship something with a "known limitation", "known issue", "caveat", "disclosed", "we're aware", "for now", "not yet handled", or "advisory" note; a TODO/FIXME left in shipped code; a review that found a defect you are documenting instead of fixing; or shipping with a noted-but-unfixed problem. Trigger signal: a well-written caveat is standing in for a mitigation. The honest bar - ship the cheapest mitigation, or record an explicit dated decision not to; disclosure is documentation, not resolution.
SKILL.md
5.8 KB, as published. Nobody here has run it
Disclosure Is Not A Fix
Purpose
Writing down a known defect does not resolve it. Disclosure is a documentation act: it manages the reader's expectations but leaves the defect fully present. The trap is that a well-written caveat feels like diligence and quietly substitutes for the fix. When you're about to ship something with a "known limitation" note, the honest bar is one of two things: ship the cheapest available mitigation, OR record an explicit, reasoned decision NOT to mitigate — why, and what would change it. The disclosure itself is neither. "We disclosed it" is not a disposition.
When to use this skill
- The moment you reach for the words "known limitation", "known issue", "caveat", "we're aware", "for now", "not yet handled", or "advisory" in something you're about to ship.
- When a review, audit, or test surfaced a real defect and your instinct is to document it rather than fix it.
- When leaving a
TODO/FIXMEin code that is about to ship, or a "trap wanted"/"placeholder"/"not implemented" marker in a released artifact. - Whenever an item is about to be closed on the strength of a note that describes the problem instead of resolving it.
When NOT to use
- The defect is already mitigated or already carries a written, dated decision-not-to-fix — this skill's job is done; don't re-litigate.
- Genuinely adjacent problems you were not asked to touch — those are
scope-fence's flag list, not a defect in the thing you are shipping. - Pure release notes / changelog entries that describe resolved behavior. Disclosure of a fixed thing is fine; this skill governs disclosure standing in for an unfixed thing.
The procedure
- Name the defect and its real user-facing consequence — the unsoftened version. Not "the parser has some edge cases" but "malformed input silently produces wrong totals the user will act on."
- Find the CHEAPEST mitigation. It is often far cheaper than the defect's cost: reword an ungradeable criterion, add a guard, put a one-line warning at the point of danger, disable the broken path, remove the live rule. Cost the mitigation against the cost of the defect biting a real user.
- If mitigating now is viable, do it. The cheap fix beats the elegant note.
- If not mitigating, write the explicit decision: why deferring is acceptable, who it affects, and the concrete trigger that would force the fix — dated. A deferral with no recorded reason and no re-trigger is not a decision; it's an unfixed defect wearing a caveat.
- Put the disclosure where the defect BITES — the entrypoint, command, screen, or Quick Start where the hazard fires — not only in a distant NOTES/known-issues section the user won't reach in time.
- Never let "we disclosed it" close the item. The item closes on a mitigation or a recorded decision. Disclosure alone leaves it open.
Quality bar
- No shipped known-defect without either a mitigation or a written, dated decision-not-to-fix.
- The warning sits where the hazard is triggered, not only in a file the endangered user never opens in time.
- The cheapest mitigation was actually considered and costed against the defect — not skipped on the way to writing the caveat.
- If deferred: the note names who it affects and the trigger that reopens it.
Common failure modes
- Disclosure-as-absolution: a caveat in the README while the broken thing ships unchanged. The reader is warned; the defect is untouched.
- Warning in the wrong place: a root NOTES/known-issues entry while the dangerous Quick Start has no banner. The people who hit the hazard never saw the note.
- "We found one instance": documenting a single occurrence without sweeping the class — the same defect lives in the two rubrics/files you didn't check.
- Silent deferral: pushing the fix to "later" with no recorded reason and no re-trigger, so nothing ever reopens it.
- Disclosed-but-live: leaving a proven-ungradeable criterion or a broken rule active because it was disclosed — every user now reproduces the known noise you already knew about.
Works with sibling skills
scope-fencedefers adjacent issues you were not asked to fix; this skill governs a defect in the thing you ARE shipping — mitigate-or-decide, don't just note.failure-mode-awarenessidentifies risks at design time; this skill governs the disposition of a known one at ship time.adversarial-verifysurfaces the defect in finished work; this skill decides what shipping it honestly requires once it's surfaced.
Provenance and maintenance
Added 2026-07-09 after an audit found three instances of disclosure substituting for a fix: a public eval tool shipping a grading criterion its own study had proven ungradeable — disclosed in the study doc, but the criterion still live in two rubrics, so every user reproduced the known noise; a taxonomy repo whose entries said "trap wanted" for traps a sibling repo had already published; and an abandoned bot whose dangerous Quick Start had no do-not-run banner despite a root verdict condemning it. Re-verify: on the next "known limitation" you write, check whether a cheaper mitigation existed and whether the item was closed on disclosure alone.