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.
npx agentmods add commands/jonathanmr22/pact/check-driftgit clone --depth 1 https://github.com/jonathanmr22/pactWhat 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 | $0.00000 | $0.00611 |
| Opus 5 | $0.00000 | $0.00305 |
| Sonnet 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 2d 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.
- 2d 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 2mo 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
discover
Discover runtime AI components and static AI dependencies with AIR Blackbox.
comply
Run a full EU AI Act compliance scan on your Python AI project.
init-project
Configure the baseline for this specific project. Invokes the scout skill, then claude-automation-recommender, populates .claude/project.json, pre-creates lazy directories, re-renders swarm-worker.md from its template with any stack-specific skills appended, appends a §16 addendum to docs/init/seed.md, runs…
ai-act-scan
Scan a codebase for EU AI Act compliance evidence and gaps. Produces a dimension-scored report with per-file findings, architecture graph, and prioritized recommendations.
ai-act-ask
Answer an EU AI Act question grounded in the bundled knowledge base — verbatim statute text, obligation paraphrases, and the compound-risk taxonomy. Offline and deterministic by default; cites the articles it relies on.
grant-commit
Grant consent for Claude to run git commit. Workflow-scoped when a workflow is active, else a time window. Required by the Git Commit Guard hook.