Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/jonathanmr22/pactWrote 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/commands/jonathanmr22/pact/check-drift)<a href="https://agentmods.dev/commands/jonathanmr22/pact/check-drift"><img src="https://agentmods.dev/badge/commands/jonathanmr22/pact/check-drift/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/commands/jonathanmr22/pact/check-drift"><img src="https://agentmods.dev/badge/commands/jonathanmr22/pact/check-drift.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.00000 | $0.00611 |
| Opus 5.5 | $0.00000 | $0.00244 |
| Sonnet 5.5 | $0.00000 | $0.00122 |
| Haiku 4.5 | $0.00000 | $0.00061 |
Grade A, and why
check-drift 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.
What it actually says
Run schema drift detection — compare the live Postgres schema against ORM table definitions, backend function .select() calls, the schema doc, and the tech_stack inventory.
Run this PROACTIVELY when:
- Last
scripts/RUN_LOG.yamlentry forcheck_schema_drift.pyis older than 7 days - About to edit any ORM table definition file
- About to write or modify a backend function that queries the database
- After a migration that touched DDL (apply_migration via MCP, manual ALTER, etc.)
- The
schema_verifycheckpoint's<last_drift_check>field is stale
Steps:
-
Run:
python scripts/check_schema_drift.py- Defaults: regenerates the schema doc (path from
pact-schema-safety.config.yamlor default), writes/updates a bug file inbugs/schema/if drift detected, appends toscripts/RUN_LOG.yaml, updates.claude/memory/PENDING_WORK.yaml § schema_drift_detectedwhen criticals exist. - Add
--no-cacheto force a live fetch (skips the 12-hour cache). - Add
--no-docto skip doc regeneration (use for quick checks). - Add
--no-bugto skip bug file write (use for dry runs). - Add
--quietto suppress non-drift output. - Add
--jsonto emit a machine-readable summary.
- Defaults: regenerates the schema doc (path from
-
Read the resulting bug file (if any) at
bugs/schema/schema-drift-{date}.yaml. Eachdiffs[]entry has:severity(critical | warning | high),kind,source,table,column,expected,actual,location,suggested_fix- Apply each
suggested_fixper diff. Critical drift insource: drift→ rename ORM column or its alias. Critical drift insource: ef→ fix the.select(...)string + redeploy. Criticalfk_target_drift→ fix the.references()target.
-
After applying fixes, rerun
/check-driftto confirm the bug file count drops to zero, then mark the bug filestatus: resolvedwith the commit hash. -
If a diff is intentional/acceptable (deprecated column being phased out, ORM-only local table with no DB counterpart), add it to
scripts/.schema_drift_ignore.yamlwith areasonandaddeddate.
Reads: live Postgres schema via SCHEMA_SAFETY_DB_URL (or DATABASE_URL) env var.
Writes: schema doc (regenerated), bugs/schema/*.yaml, scripts/RUN_LOG.yaml, scripts/.cache/live_schema_*.json, .claude/memory/PENDING_WORK.yaml.
Reference: plugins/pact-schema-safety/README.md for installation + configuration + adapting to other stacks.
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 · 31 lines · 0 tokens per session scan A 33854b338eb2
check-drift is a command published in the GitHub repository jonathanmr22/pact (15 stars, last pushed 4mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 611 tokens. 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-08-30.
Other commands, from other repositories
db-migrate
Create a new database migration.
sql-migrations
SQL database migrations with zero-downtime strategies for PostgreSQL, MySQL, SQL Server.
db-migration
A database-change command that creates and manages migration files for common database tools and programming languages.
dba
Invoke the Database Administrator for schema design, indexing, query tuning, safe migrations, replication, and backups (Postgres/MySQL OLTP).
seed-reset
Reset and reseed live demo data in the database.
pgvector-search
Production hybrid search with PGVector and BM25 using Reciprocal Rank Fusion, metadata filtering, and performance tuning for semantic retrieval. Use when building hybrid semantic and keyword search, tuning PGVector performance, or filtering by metadata. Triggers on pgvector, hybrid search, BM25, reciprocal rank…