negative-invariant-testing SKILL.md skillA
negative-invariant-testing from iamakbarsha1/whetstone is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add iamakbarsha1/whetstone/negative-invariant-testing@git:20261019.5842640Pins git:20261019.5842640 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- iamakbarsha1/whetstone
- Path
skills/negative-invariant-testing/SKILL.md- Versions recorded
- 5
- Latest version
- git:20261019.5842640, committed Oct 19, 2026
- First version recorded
- Aug 9, 2026
- Size
- 5,181 bytes
- Repository stars
- 4
- License
- CC-BY-4.0
Use when a system has a load-bearing "never" constraint — never holds funds, never logs secrets, never calls a forbidden API, never writes to a table, never blocks the event loop. Behavioural tests can't observe a capability that isn't exercised yet, so write a STRUCTURAL test that trips on the mere existence of the forbidden mechanism. Triggers on "never does X", "must not", "forbidden", "invariant", "safety constraint", "guardrail", "should not be possible", and hardening a property a future…
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Negative-Invariant Testing **Type:** Open-source — client-agnostic methodology, no project-specific detail. **Created by akbarsha — https://github.com/iamakbarsha1** Distilled from a case where a load-bearing "the system never does X" constraint had no test, so a future edit adding the forbidden construct would break it invisibly. **Licence:** Released under CC BY 4.0 — share and adapt for any purpose with credit. Full text: `LICENSE` at the repository root. **Feedback & Support:** If a rule here proves wrong or needs sharpening, open an issue on the repository or contact the author at the profile link above. If the problem is the agent not following a rule below rather than the rule itself, that's an execution failure — acknowledge and correct it. ## The core rule A constraint of the form "the system NEVER does X" can't be protected by a behavioural test, because a behavioural test can only observe behaviour that is exercised — and the whole point is that X is never exercised today. The danger is a future edit that ADDS the forbidden capability; nothing runs it, so nothing goes red. Protect a negative invariant with a STRUCTURAL test that …
Read the whole file at its exact version.
How to install
mdr add iamakbarsha1/whetstone/negative-invariant-testing@sha256:26b7a955ef3ee6adThe line at the top of this page pins the label git:20261019.5842640, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_gnqzk55nj3yzqgjy)
1 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 5 versions of this file, between Aug 9, 2026 and Oct 19, 2026, about one every 18 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261019.5842640 latest | 2026-10-19 | 5842640 | 5,181 B | A | view · diff |
| git:20261019.b3a119b | 2026-10-19 | b3a119b | 5,045 B | A | view · diff |
| git:20260815.0363531 | 2026-08-15 | 0363531 | 4,122 B | A | view · diff |
| git:20260815.61aa8b5 | 2026-08-15 | 61aa8b5 | 4,094 B | A | view · diff |
| git:20260809.e9e787b | 2026-08-09 | e9e787b | 3,656 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (5181 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
iamakbarsha1/whetstone · 4 stars · license CC-BY-4.0 · pushed 2026-10-24 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_gnqzk55nj3yzqgjy GET https://markdownregistry.com/api/v1/resolve?ref=iamakbarsha1/whetstone/negative-invariant-testing GET https://markdownregistry.com/api/v1/blob/26b7a955ef3ee6ad2ffc385b44612a4887e94405ba66c5bba048ccfd3510c3f5
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.