- Home
- Skills
- Testing & Debugging
- Invariants Register
More screenshots
Works with the AI Agents you already use
Invariants Register
Your interface checks the price, the limit and who owns what. Does your server? Prove it on staging, get the server-side fix for every rule that breaks, and keep the tests that hold it in place
$24
Invariants Register
Example session with this skill installed
Check Lumora’s business rules on staging: generate, buy credits, use a promo code, and request a refund. Use ana@lumora.test and ben@lumora.test. Show which rules break and which hold.
- Read your context and instructions
- Compiled the invariants register
The server trusts the client with money: five rules break, four hold.
| Verdict | Count |
|---|---|
| Broken | 5 |
| Holds | 4 |
| Inconclusive | 0 |
| Not run | 0 |
Broken (confirmed by both API responses and database records):
| Rule | Where | Severity |
|---|---|---|
| I01 · Generation cost must come from the server’s model price | POST /api/generate | P0 |
| I05 · A global single-use promo code can be redeemed only once | POST /api/checkout | P0 |
| I07 · Each generation can be refunded only once | POST /api/generations/:id/refund | P0 |
| I02 · The server must enforce 10 free generations per account per day | POST /api/generate | P1 |
| I03 · Balance checks and deductions must be atomic | POST /api/generate | P1 |
A video priced at 12 credits cost just 1 when the request supplied that price. Five concurrent requests redeemed a single-use code five times; five refund requests returned 50 credits for a generation that cost 10. All 14 free-generation requests succeeded. Five paid generations went through while the balance was charged for only one.
Holds: package pricing and credits come from the server; per-account promo codes remain single-use; accounts cannot refund another account’s generation; only failed generations qualify for refunds.
Regression suite: 9 tests—5 failing, 4 passing. The five broken rules keep failing until the server is fixed.
Safety: staging only, test accounts only. No requests were sent to production.
Next steps: fix generation pricing and single-use enforcement first, then the free quota and atomic balance deductions. Rerun the regression suite after the fixes.
Connects securely to your tools. The creator never sees your data.
About this skill
Every interface checks business rules so it feels right: it computes the price, counts the free allowance, disables the button after one click, hides what your plan doesn't include. Whether the server repeats those checks is invisible from the browser, and tests written through the interface always pass, because the interface never sends the wrong value. That gap is where money, credits and limits leak, and where one account reaches another's data.
This skill closes it the way a careful QA engineer does, on staging and never on production.
From the client to a register. It reads what your client checks and sends, with file and line, reconstructs the lifecycle of your key scenario (draft → paid → refunded, or whatever yours is), and writes each business rule as an invariant: the rule the server must keep, the client evidence, why it might not hold, a safe test, the oracle and the bug criterion. Rules expected to hold go in too, so the register can say what was proven sound.
Six classes of rule, none skipped. Values the client sends that the server must compute itself; limits counted in the browser; check-then-act races on a balance or a counter; idempotency of one-time operations (refunds, promo codes, confirmations), sequential and concurrent; ownership, so one account can't act on another's data; and transitions from the wrong state.
Proven on staging, read twice. Tests run only against the staging origins you list in invariants.config.json, with your test accounts. The bundled runner refuses any other origin, any production host, absolute URLs and more than five parallel requests, and doesn't follow redirects. Every result is read from the response and, when you give read-only data access, from the data: a response can say "rejected" while a balance moved.
Four verdicts, no guesses. Broken (violated, reproduced from a reset, both oracles agree), holds (rejected or recomputed, data correct), inconclusive (the oracles disagree; what would settle it), not run (unsafe, out of scope or no staging; kept as a unit-test specification). Severity separately: P0, P1, P2.
Every broken rule comes with its fix. The skill pairs each class of rule with the standard server-side remedy (recompute instead of accept, count on the server, one atomic conditional write, a unique key for one-time operations, ownership from the session, transitions guarded by state), so the register says what to change, not only what broke.
Tests that stay. Every invariant that ran becomes a node:test case in invariants.test.mjs, behind the same guard. A broken rule's test fails until the server is fixed, then keeps it fixed in CI. A CI guide comes with it: run after each staging deploy, one job at a time, and mark known-broken rules todo with a ticket so day one isn't a red build nobody can fix.
Pairs with Product Audit. The audit ends with server-side hypotheses for staging; this skill proves or clears them.
Safe by design. It asks first whose product it is, where staging is and which test accounts to use. No production requests, no real customers' data, no getting around rate limits, authentication or payment providers. Without staging, it stops at the register.
How to use
- 1
Connect your agent to the Agensi MCP
Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup
- 2
Sign in to Agensi
Your agent shows a sign-in link. Sign in and click Allow.
- 3
Ask for what you need
Your agent loads this skill and uses it on your task. It always asks before any payment.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill goes through the trust checks below.
Security scanned
Checked by our 8-point scan before listing
Fresh listing
Recently published to Agensi
Money-back guarantee
Doesn't do what its page promises? You get your money back.
Trust & safety
Security scan
Flagged by the security scan: Network access. Approved by Agensi. Scanned today.
Requires