maintain

maintain is a skill for Claude Code, Codex from exmergo/dex. It costs 300 tokens per session (2,688 once invoked), scanned C, original, Apache-2.0.

A maintenance workflow for dbt projects. dbt is a tool that builds data models in a data warehouse from source data and SQL definitions.

In plain words
What is it for?
Comparing the current warehouse with a saved snapshot, identifying schema, volume, grain, or definition drift, and proposing edits to reconcile it.
Why use it?
It helps identify when warehouse tables, incoming data, model keys, or business definitions no longer match a trusted baseline.

Skill for Claude CodeCodex

Part of the dex plugin — 3 skills shipped together

Install

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.

agentmods
npx agentmods add skills/exmergo/dex/maintain
Any agent
npx skills add exmergo/dex --skill maintain
Clone the repo
git clone --depth 1 https://github.com/exmergo/dex

Made for: Claude Code, Codex.

Or install dex, the plugin that ships this one along with the rest of its 3 skills.

Wrote 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.

agentmods badge for maintain

README.md
[![agentmods](https://agentmods.dev/badge/skills/exmergo/dex/maintain.svg)](https://agentmods.dev/skills/exmergo/dex/maintain)
Your own site
<a href="https://agentmods.dev/skills/exmergo/dex/maintain"><img src="https://agentmods.dev/badge/skills/exmergo/dex/maintain.svg" alt="Measured on agentmods" height="20"></a>
Per session 300 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,688 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 2 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00300 $0.02688
Opus 5 $0.00150 $0.01344
Sonnet 5 $0.00060 $0.00538
Haiku 4.5 $0.00030 $0.00269

Measured today against content hash 9f9414cb26ad, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade C, and why

maintain scanned grade C with 2 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 today.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/run.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

Downloads and executes remote codehighSupply chain

curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.

to install it (`curl -LsSf https://astral.sh/uv/install.sh | sh`, or

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

to install it (`curl -LsSf https://astral.sh/uv/install.sh | sh`, or
skills/maintain/SKILL.md · 180 lines

How it starts

The opening of the file, as written. The whole thing — 180 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Maintain

Keep the dbt project correct as the world underneath it moves. Maintenance is the recurring half of the loop: warehouses drift, loads half-fail, models go stale, keys stop being unique, and business definitions change. This skill compares a known-good baseline against current reality, classifies what drifted, and proposes the reconciling edit. It is manual and on-demand here; continuous drift detection and automated PRs are the commercial product.

The model: baseline, detect, reconcile

Drift is measured against a baseline (the .dex/snapshot.json fingerprint of the warehouse map and the project's per-layer definitions). Detection is read-only; only reconcile proposes edits.

Snapshot discipline matters. A snapshot is only as trustworthy as the moment it froze. Take one right after a known-good build (maintain snapshot), and commit .dex/snapshot.json like a lockfile so the whole team diffs against the same reference. Snapshot a state that is already drifted and check will mask the very drift you care about. When you accept a change as the new normal (re-run explore map first, then maintain snapshot); check warns when the baseline looks stale.

On a warehouse past the rank cutoff, use explore map --full before snapshotting. Past 50 objects explore map profiles the top 25 by rank and enters the rest as metadata alone, and the baseline can only compare columns for objects it has columns for. Snapshotting a partial map is still valid, and the envelope reports column_detail_count against dataset_count plus a warning naming what it could not cover, so the gap is visible rather than silently mistaken for a clean bill.

How to drive it

uv run --no-project --script "${CLAUDE_SKILL_DIR}/scripts/run.py" <subcommand> [flags]

dex runs its engine through uv, which is a prerequisite and is not installed by Claude Code. If the shell reports uv: command not found, stop and tell the user to install it (curl -LsSf https://astral.sh/uv/install.sh | sh, or brew install uv, or pipx install uv), then re-run. Never fall back to diffing the warehouse against the project by hand instead: the drift axes and the baseline comparison live in the engine, so any other path is guesswork.

Read the full file on GitHub · 180 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

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.

  1. today Changed · +37 lines 9f9414cb26ad
  2. 4d ago First seen · 143 lines · 300 tokens per session scan C 9d165a1a7e3d

Subscribe to this mod's changes

maintain is a skill published in the GitHub repository exmergo/dex (24 stars, last pushed today), licensed Apache-2.0. It adds 300 tokens to every session and 2,688 once invoked, about $0.0015 per session on Opus 5. A static security scan graded it C with 2 findings (downloads and executes remote code, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

data-parity

Validate that two tables or query results are identical — or diagnose exactly how they differ. Discover schema, identify keys, profile cheaply, then diff. Use for migration validation, ETL regression, and query refactor verification.

AltimateAI/altimate-code · 48 tokens

dbt-troubleshoot

Debug dbt errors — compilation failures, runtime database errors, test failures, wrong data, and performance issues. Use when something is broken, producing wrong results, or failing to build. Powered by altimate-dbt.

AltimateAI/altimate-code · 50 tokens

dbt-unit-tests

Generate dbt unit tests automatically for any model. Analyzes SQL logic (CASE/WHEN, JOINs, window functions, NULLs), creates type-correct mock inputs from manifest schema, and assembles complete YAML. Use when a user says "generate tests", "add unit tests", "test this model", or "test coverage" for dbt models.

AltimateAI/altimate-code · 79 tokens

dbt-test

Add schema tests, unit tests, and data quality checks to dbt models. Use when validating data integrity, adding test definitions to schema.yml, writing unit tests, or practicing test-driven development in dbt. Powered by altimate-dbt.

AltimateAI/altimate-code · 53 tokens

dbt-analyze

Analyze downstream impact of dbt model changes using column-level lineage and the dependency graph. Use when evaluating the blast radius of a change before shipping. Powered by altimate-dbt.

AltimateAI/altimate-code · 41 tokens

dbt-pr-review

Cloudflare-style AI code review for dbt/SQL pull requests. Produces a signed APPROVE/COMMENT/REQUESTCHANGES verdict where every blocking finding is backed by a deterministic engine call — column-lineage blast radius, query equivalence, PII classification, and A–F grade. Use to review a dbt PR or the working-tree…

AltimateAI/altimate-code · 79 tokens