Borrowing it
Nothing to install: this file belongs to dosu-ai/decant. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/dosu-ai/decant/main/.claude/skills/schema-migration/SKILL.mdgit clone --depth 1 https://github.com/dosu-ai/decantWrote 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/skills/dosu-ai/decant/schema-migration)<a href="https://agentmods.dev/skills/dosu-ai/decant/schema-migration"><img src="https://agentmods.dev/badge/skills/dosu-ai/decant/schema-migration/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/skills/dosu-ai/decant/schema-migration"><img src="https://agentmods.dev/badge/skills/dosu-ai/decant/schema-migration.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.00060 | $0.00505 |
| Opus 5.5 | $0.00024 | $0.00202 |
| Sonnet 5.5 | $0.00012 | $0.00101 |
| Haiku 4.5 | $0.00006 | $0.00051 |
Grade A, and why
schema-migration 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 28d 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
Schema migration
The rules are AGENTS.md invariant 5 and the "Rebuilds and migrations" section
of docs/data-lifecycle.md. Read both before editing.
Rules
- A migration is frozen once it is committed, because someone may already have
opened an archive with that branch. Never edit an existing
if (current < N)block, onmainor on a feature branch; add a new one, even to fix a mistake in the previous one. - Bump
LATEST_SCHEMA_VERSIONinsrc/db.ts. Refer to that constant in docs instead of writing the number. - Guard each statement so a partially-migrated or operator-modified archive
still converges (
IF NOT EXISTS,hasTable,hasColumn), and stamp the new version inschema_migrationsinside the same block. src/schema.sqlis the effective baseline for a fresh archive. Apply the same change there so a fresh archive and a migrated one produce the samebuildSchemaManifestfingerprint;src/schema-manifest.tschanges only if the manifest needs to learn a new object kind.- Bump
INGEST_PIPELINE_REVISIONinsrc/ingest.tsonly when unchanged source files must be re-derived. The next sync then backfills them once and later syncs stay idempotent. A pure index or constraint change does not need it. - Unsupported older archives are rebuild-only; do not add upgrade paths below the baseline.
Tests
test/db.test.ts: migrate a previous-version archive and compare it with a fresh one; assert any query plan the new index exists for.- Run the migration against a scratch copy of a large archive and time it
(
DECANT_DB=<copy>). Never point a migration at~/.decant/decant.db.
Docs
Update docs/data-lifecycle.md when archive state, sync, or migration behavior
changes, and docs/architecture.md if module boundaries move.
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.
- 28d ago First seen · 43 lines · 60 tokens per session scan A 88ef141d166f
schema-migration is a skill published in the GitHub repository dosu-ai/decant (72 stars, last pushed today), licensed Apache-2.0. It adds 60 tokens to every session and 505 once invoked, about $0.0002 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-30.
Other skills, from other repositories
obsidian-bases
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.
x-osv
CLI for Google OSV database. Query vulnerabilities for packages, scan local projects for vulnerable dependencies. Dependency: This is an x-cmd module. Install x-cmd first (see x-cmd skill). Required Tool: Install osv-scanner for project scanning (see https://github.com/google/osv-scanner).
dsql
Build with Aurora DSQL — manage schemas, execute queries, handle migrations, diagnose query plans, diagnose cluster performance, load data, and develop applications with a serverless, distributed SQL database. Covers IAM auth, multi-tenant patterns, MySQL-to-DSQL and PostgreSQL-to-DSQL schema conversion, foreign key…
brain-ingest
The process for digesting a conversation, document, or research result, classifying it, and writing it down as brain content (a root-page update or a new/updated page) through the brain CLI.
building-agents
Use when building or restructuring an LLM agent — provider adapter, tool calling, structured output, RAG, agent loop, eval gate, cost routing, tracing, MCP server — model-agnostic across OpenAI/Anthropic/Gemini/OSS so a model swap is a config change. NOT vector-store SQL alone (that is postgresdb) or service…
postgresdb
Use when PostgreSQL engine behaviour decides the answer — schema and type design, index choice, reading EXPLAIN on a slow query, zero-downtime DDL and backfills, or ops (roles, RLS, pooling, vacuum, partitioning, PITR). PG16, ORM-agnostic. NOT portable query logic (that is sql), NOT a managed provider's platform…