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/authzed/authzed-marketplaceWrote 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/authzed/authzed-marketplace/migrate-verify)<a href="https://agentmods.dev/commands/authzed/authzed-marketplace/migrate-verify"><img src="https://agentmods.dev/badge/commands/authzed/authzed-marketplace/migrate-verify/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/authzed/authzed-marketplace/migrate-verify"><img src="https://agentmods.dev/badge/commands/authzed/authzed-marketplace/migrate-verify.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.00033 | $0.20983 |
| Opus 5.5 | $0.00013 | $0.08393 |
| Sonnet 5.5 | $0.00007 | $0.04197 |
| Haiku 4.5 | $0.00003 | $0.02098 |
Grade A, and why
migrate-verify 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 — 1,112 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Migrate Verify
This command implements cutover-strategies.md step 4, "Dual-write, shadow-read": it emits a
working differential harness into the customer's own project, in their language, wired to both
the source system and SpiceDB, so that a real cutover can run both systems side by side and know
whether they agree before a single user's access starts depending on SpiceDB alone.
The distinction that governs everything below: tools/migration-harness/ is ours -- it
proves the converter is correct against a corpus this project controls, is never shipped, and
has no role here. What this command emits is the customer's -- it proves their migration is
correct against traffic this project will never see, and it ships into their repository with no
runtime dependency on this one. differential-harness.md's own framing states this exactly:
"What ships is a specification, not a service this project operates... built once, by
/spicedb-dev:migrate-verify, and then it is theirs to run, extend, and eventually retire." Do
not reference tools/migration-harness/'s paths anywhere in what this command emits or tells the
user, and do not let a reviewer of this command conflate the two -- they solve different problems
for different owners.
This command's own risk shape is different from every phase before it. Phases 1, 2, and 5
produce artifacts a human reviews before anything downstream depends on them. Phase 3 writes to a
live system, but only once, behind an explicit confirmation. What this command emits runs
continuously, unattended, beside live production traffic, for as long as the shadow-read
window lasts. Its failure modes must never surface as a decision that affects a real user --
differential-harness.md's "safety property" is not a nice-to-have here, it is the entire reason
this command is safe to ship at all -- and its comparisons must never manufacture a disagreement
that isn't real. Two known ways a harness does that anyway, both demonstrated live in the pack's
own references, are why every step below cites rather than re-derives its rules:
- Name translation.
source-adapter.md's "What getting it wrong looks like, live" section shows one field of one lookup -- reading a split relation's.relationinstead of its.permission-- flip a record fromAGREEto a candidateDISAGREEon a migration that converted correctly. A harness that reports this as a real regression sends a correctly converted resource type back for rework and repeats the false alarm on every future run. - Consistency staleness.
differential-harness.md's "Diff" section measured aminimize_latencycheck fired immediately after the write that made it true returning the stale (pre-write) answer in 95.3% of trials at a ~360µs write-to-check gap, collapsing to 0% by 5ms onserve-testing's own hardcoded quantization window -- and states plainly that a real deployment's window (--datastore-revision-quantization-interval, 5 seconds by default) can be far larger. A harness that reports every stale-window disagreement as a genuine defect drowns real ones in noise from the first hour it runs.
Both are handled structurally below, not merely documented: this harness's check/lookup path
never reads a .relation field, and every candidate disagreement is reconciled against a captured
zedtoken before it is ever finalized.
This is not one of the six pipeline phases (SKILL.md's phase table, phases 0-5). It is the
tool cutover-strategies.md names for its own step 4, "Dual-write, shadow-read": that file's own
"Where this sits in the pipeline" table lists step 4 as automated, and its step-4 section points
here for the harness's mechanics rather than restating them. Do not add a Phase status row for
it (step 8, below) -- it sits alongside the six phases, not inside them.
Outputs, written under [project-dir] (placement resolved in step 3) unless a step below says
otherwise:
migration/verify/source_adapter.<ext>-- the pack'sobserve()/ask()entry points, in the project's own language.migration/verify/harness.<ext>-- theQuestion/Outcome/DifferentialRecordrecord shape,Diff, reconciliation, and the safety wrapper.migration/verify/dual_run.<ext>-- the out-of-band dispatcher and sampling configuration.migration/verify/snapshot_to_assertions.<ext>-- turns a batch of confirmed agreements into validation YAML.migration-map.json-- updated only if step 3 resolves a call-site language the plan had not recorded, appended todecisions.additional(step 8); this command never writes aphase_statusentry -- see step 8 for why.migration-plan.md-- updated in place with a coverage record under Deferred / manual, and its rendered sections regenerated frommigration-map.jsonwhen (and only when) that file changed this run (step 8; this command does not add a Phase status row -- see step 8 for why).
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 Changed 11e64e231c24
- 1mo ago First seen · 1,112 lines · 33 tokens per session scan A 9716611b6b34
migrate-verify is a command published in the GitHub repository authzed/authzed-marketplace (2 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 33 tokens to every session and 20,983 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-08-31.
Other commands, from other repositories
prototype
You are building a proof-of-concept for the current Grainulator sprint. Read CLAUDE.md for sprint context and claims.json for existing research claims.
qa-changes
This skill should be used when the user asks to "QA a pull request", "test PR changes", "verify a PR works", "functionally test changes", or when an automated workflow triggers QA validation of code changes. Provides a structured methodology for setting up the environment, exercising changed behavior, and reporting…
verify
Run repository verification using the verification-loop skill.
modernize-transform
Transform one legacy module to the target stack — idiomatic rewrite with behavior-equivalence tests.
constraints
A command for defining a project's quality standards through a short interview and a written CONSTRAINTS.md file. It records checks, thresholds, exceptions, and commands for enforcing them.
check-dev
Type-check a Z specification with fuzz.