Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/danielvm-git/bigpowersnpx agentmods add rules/danielvm-git/bigpowers/validate-contractsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/danielvm-git/bigpowers/validate-contracts)<a href="https://agentmods.dev/rules/danielvm-git/bigpowers/validate-contracts"><img src="https://agentmods.dev/badge/rules/danielvm-git/bigpowers/validate-contracts/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/danielvm-git/bigpowers/validate-contracts"><img src="https://agentmods.dev/badge/rules/danielvm-git/bigpowers/validate-contracts.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00037 | $0.02114 |
| Opus 5.5 | $0.00015 | $0.00846 |
| Sonnet 5.5 | $0.00007 | $0.00423 |
| Haiku 4.5 | $0.00004 | $0.00211 |
Grade A, and why
validate-contracts scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 286 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Validate Contracts
HARD GATE — Do NOT deploy or migrate data without running
validate-contractsfirst. Silent data divergence between system boundaries causes the hardest-to-debug production bugs.HARD GATE — Contract files MUST be version-controlled alongside code. Outdated contracts are worse than no contracts. If a contract hasn't been reviewed in 30 days, flag it as stale.
Validate that data structures stay in sync across system boundaries — front-end vs back-end, API responses vs expected schemas, config files vs code assumptions, migration output vs target shape.
Contract types
| Mode | What it catches | When to use |
|---|---|---|
| Schema | API response shape mismatches | Before every deploy, after API changes |
| Key-set | Missing/unexpected keys across two data sources | Translation files, configs, enum definitions |
| Shape | Column type or format violations | After migrations, before consuming exports |
Contract file convention
All contract files live in specs/contracts/ as YAML. See REFERENCE.md for extended examples.
Key-set example
# specs/contracts/i18n-keys.yaml
sources:
reference: src/locales/en.json
target: src/messages/en.json
mode: subset
Process
1. Define contract
Create a YAML file in specs/contracts/ following the schema for the mode.
2. Run validation
bash scripts/validate-contracts.sh specs/contracts/<contract>.yaml
The runner auto-detects key-set contracts (sources: block). Schema and shape modes are documented in REFERENCE.md for consumer projects.
3. Read the report
PASS: key-set contract
# or
FAIL: key-set — N keys in reference missing from target
JSON Lines output for CI is planned for schema/shape modes; key-set failures exit non-zero.
4. Fix divergence
- Missing keys → add to target source
- Type mismatches → update schema or fix producer
- Shape violations → fix migration or consumer
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 286 lines · 37 tokens per session scan A 9845731ba256
validate-contracts is a cursor rule published in the GitHub repository danielvm-git/bigpowers (267 stars, last pushed 27d ago), licensed MIT. It adds 37 tokens to every session and 2,114 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other cursor rules, from other repositories
testing-guidelines
Testing Guidelines.
create-a-testable-http-client-service
Cursor rule "create-a-testable-http-client-service" from PaulJPhilp/EffectPatterns, covering create a testable http client service, example, 1. define the service, 2. create the live implementation and 3. create the test implementation.
RULE
Network troubleshooting — systematic diagnosis and resolution for connectivity, DNS, proxy, SSL, HTTP errors.
test-coverage-guard
A testing rule that checks whether every planned test has a recorded status before an agent says testing is complete. It uses a coverage-state file listing tests as pending or otherwise accounted for.
behat-ai-guide
This rule provides comprehensive guidance for AI assistants writing Behat tests for Drupal projects using the drevops/behat-steps package. It emphasizes reusing existing traits and steps rather than creating custom implementations. Contains the full STEPS.md reference embedded for easy access.
bun
Bun runtime: Bun.serve, Bun.file, bundler, test runner.