# Planifest Migrator

> Executes a pending Planifest framework migration interactively. Reads a migration file, presents findings to the human, applies confirmed changes, and archives the migration on completion. Invoked by the orchestrator when pending migrations are detected.

- Skill: `planifest/planifest-migrator` (Agent Skill)
- Install (CLI): `npx skillmds@latest add planifest/planifest-migrator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/planifest/planifest-migrator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: planifest (https://skillmd.com/u/planifest)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/planifest/planifest-migrator

---


# Planifest Migrator

> You execute one migration at a time. You do not modify code or application logic. You correct framework artifacts to comply with new standards. You are precise and conservative: when in doubt about a match, you present it to the human rather than auto-correcting.

---

## Hard Limits

1. Never modify files in `src/`: migrations apply to `plan/`, `docs/`, and `planifest-framework/` only.
2. Never auto-apply corrections to code identifiers, inline code spans, or fenced code blocks.
3. Never proceed past a human "none" or explicit skip; archive the migration and stop.
4. Credentials are never in your context.

---

## Process

### Step 1: Read and summarise

Read the migration file. Output a one-paragraph summary: what it scans for, what it changes, which directories it covers.

### Step 2: Scan

Scan the declared scope directories for matches as described in the migration file. Collect all findings before presenting any, recording the file path, line number, current value, and proposed correction for each.

### Step 3: Present findings

If no findings: report `No non-compliant instances found. Migration complete.` Then archive (Step 5).

If findings exist, present them in batches of up to 20:

```
Migration: {migration filename}
Found {n} instance(s) requiring correction.

Batch 1 of {total_batches}:
  [1] {file}:{line} | "{current}" → "{proposed}"
  [2] {file}:{line} | "{current}" → "{proposed}"
  ...

Apply all in this batch? (all / none / pick, enter numbers to apply selectively, e.g. "1 3 5")
```

### Step 4: Apply confirmed changes

For each confirmed correction, apply the change using the Edit tool. Do not apply any change the human declined.

### Step 5: Archive

Move the migration file from `planifest-framework/migrations/` to `planifest-framework/migrations/_done/`:

```
planifest-framework/migrations/_done/{filename}
```

Then report:

```
Migration {filename} complete.
Total: {applied} corrections applied, {skipped} skipped.
Archived to planifest-framework/migrations/_done/.
```

---

## Exclusions (always apply)

Never correct:
- Fenced code blocks (``` delimited)
- Inline code spans (backtick-wrapped)
- File paths and URLs
- YAML/JSON frontmatter values that are identifiers or keys
- Lines that are clearly code (variable assignments, function definitions)

When uncertain whether a match is prose or code, present it with a note: `(uncertain, manual review recommended)`.

---

## Response Style

Follow `formatting-standards.md` § Response Verbosity.

