agentleFS
HainrixzHainrixz/claude-db/skills/fix/SKILL.md

fix

Skill22 starsChanged 5 months agoMITView on GitHub

Opt-in writer (the /claude-db:fix command). Applies the safe, reversible schema/migration changes from an audit — adding indexes, NOT NULL/CHECK/UNIQUE constraints, missing FKs, type corrections, default/generated columns — as expand-contract migrations. Dry-run preview by default; writes only after explicit per-change confirmation, and only via the migration-writer subagent. Runs only when the user invokes it — never auto-triggered.

  • Reads credentials

82 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use feature, frontend-code-review and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • bradtraversySkill

    feature

    Manage current feature workflow - start, review, explain or complete

    Also in 10 projects that use this

  • chendongqiSkill

    frontend-code-review

    Trigger when the user requests a review of frontend files (e.g., `.tsx`, `.ts`, `.js`). Support both pending-change reviews and focused file reviews while applying the checklist rules.

    Also in 4 projects that use this

  • GoogleSkill

    pr-creator

    Also in 4 projects that use this

  • PJuniszewskiSkill

    cook

    Feature development with guardrails. Plan → Review → Code → Ship.

    Also in 3 projects that use this

  • vbrevikSkill

    work

    Use when the user says 'plan', 'todo', 'copy plan', 'append plan', 'resume plan', 'priorities', or 'what's next'.

    Also in 4 projects that use this

  • Microsoft AzureSkill

    test

    Also in 12 projects that use this

The file

We split this skill into the rules it gives an agent

2 rules. 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 75 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Re-verify: after writing, re-run each finding's verification.reproduce / assertion and report pass/fail per change.

    line 31
  2. Distinctive:

    No fabrication: never write invented defaults, backfill values, statistics, prices, or credentials.

    line 33

“Common” is measured: kept by at least 6 in 10 of the 75 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md
<!-- Copyright (c) 2026 Enrique Rocha (@soyenriquerocha) · tododeia.com · id er-f37b7121 -->

fix (opt-in writer)

disable-model-invocation: true means the model can never trigger this on its own — only the user running /claude-db:fix. Writes happen only through the db-migration-writer subagent (the one agent with Write/Edit) and only after explicit confirmation. Default is dry-run.

Fixability classes (from each finding's fixable field — see schema/finding.schema.json)

  • AUTO — deterministic, additive, reversible, machine-verifiable, low-semantic-risk. May be written (with diff + confirmation), expressed as an expand-contract migration where the change is online-safe: add a missing non-unique index / FK-supporting index; add a NOT NULL/CHECK/UNIQUE constraint via NOT VALID then VALIDATE; add a missing FK as NOT VALID then validate; add a default or generated column additively; widen an undersized integer key. Each ships with a clean down-migration.
  • PROPOSED — changes data, semantics, or shape; generate a draft migration and require per-item accept: type changes that coerce/rewrite data (e.g. float→numeric money), backfills, denormalization/normalization moves, renames, enum mutations, soft-delete/temporal columns.
  • ADVISORY — never written by the tool: engine choice (M0), sharding/partitioning topology, RLS/security policy design, capacity/scaling decisions, anything requiring real production data or a judgment call about intent.

Workflow

  1. Take the findings (from the last audit or a fresh one / a findings JSON). Filter to fixable: auto (+ proposed if the user opts in). Honor --category to scope.
  2. For each, build the exact migration (expand-contract steps where rewrite/lock risk exists), with a plain-language line before each diff explaining what it does and why — then the unified diff / migration file content. Resolve any required real inputs (backfill values, enum target set, FK target) by asking the user — never invent them.
  3. Dry-run (default): print every plain-language line + diff grouped by file/step. Write nothing. Summarize what fix (without --dry-run) would change, including lock level and reversibility per step.
  4. On explicit confirmation (and only then): delegate to db-migration-writer to apply. Per-change or batch confirmation is the user's choice.

Safety (hard rules)

  • Dry-run is the default; writing requires dropping --dry-run and confirming.
  • Any data-loss / destructive step (DROP, TRUNCATE, narrowing, enum-value removal) requires the /claude-db:migrate token handshake before it is written — fix routes such steps through migration-safety, it does not shortcut them. The handshake is concrete, not yes/no: the user must type the affected object's name verbatim (e.g. type orders to confirm dropping the orders table) — a non-matching reply aborts the step.
  • Git-aware: refuse to write to a dirty working tree unless --force; prefer a branch. Detect via git status --porcelain. No-git-repo branch: git status --porcelain exits 128 outside a repo — treat "no repo" as writable (there is nothing to dirty), and backups still go to the plugin data dir; say so in one line to the user before writing.
  • Idempotent: detect existing constraints/indexes; never duplicate (re-running produces no new diffs once applied).
  • Re-verify: after writing, re-run each finding's verification.reproduce / assertion and report pass/fail per change.
  • Never touch .git/, .env/secrets, lockfiles, or files outside the project root; never write to a live database — fix emits migration files, application is the migration tool's job under the handshake.
  • No fabrication: never write invented defaults, backfill values, statistics, prices, or credentials.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.