Agent Skills: Gathering Migration πŸŒ²πŸ»πŸ•

The drum sounds. Bear and Bloodhound gather for safe migration. Use when migrating anything that requires both careful movement and codebase understanding.

UncategorizedID: autumnsgrove/groveengine/gathering-migration

Install this agent skill to your local

pnpm dlx add-skill https://github.com/AutumnsGrove/Lattice/tree/HEAD/.claude/skills/gathering-migration

Skill Files

Browse the full folder contents for gathering-migration.

Download Skill

Loading file tree…

.claude/skills/gathering-migration/SKILL.md

Skill Metadata

Name
gathering-migration
Description
The drum sounds. Bear and Bloodhound gather for safe migration. Use when migrating anything that requires both careful movement and codebase understanding.

Gathering Migration πŸŒ²πŸ»πŸ•

The drum echoes through the valleys. The conductor stands at the pass, orchestrating two very different strengths. The Bloodhound arrives first with fresh eyes β€” no assumptions about what's connected, just a nose for dependencies. Then the Bear wakes, receiving a map it didn't draw β€” no shortcuts, no "I already know where things are." Together they move mountains safely, each with isolated context, each trusting only what it verified itself.

When to Summon

  • Complex migrations requiring codebase exploration before execution
  • Moving between systems, libraries, or architectural patterns
  • Schema changes affecting multiple relationships
  • Component or API migrations spanning many files
  • Icon, asset, or content migrations with downstream dependencies
  • Any migration where you need to understand the territory before moving

IMPORTANT: This gathering is a conductor. It never scouts or migrates directly. It dispatches subagents β€” one per animal β€” each with isolated context and an intentional model. The conductor only manages handoffs and gate checks.


The Gathering

SUMMON β†’ DISPATCH β†’ GATE β†’ DISPATCH β†’ GATE β†’ VERIFY
  ↓         ↓        ↓        ↓        ↓        ↓
Spec    Bloodhound  Check    Bear    Check    Final
(self)   (haiku)     βœ“     (opus)    βœ“     Verify

Animals Dispatched

| Order | Animal | Model | Role | Fresh Eyes? | | ----- | ------------- | ----- | --------------------------------- | --------------------------------------------------- | | 1 | πŸ• Bloodhound | haiku | Scout dependencies, map territory | Yes β€” sees only the migration spec | | 2 | 🐻 Bear | opus | Execute migration safely | Yes β€” sees only territory map, not scouting process |

Reference: Load references/conductor-dispatch.md for exact subagent prompts and handoff formats


Phase 1: SUMMON

The drum sounds. The valley listens...

The conductor receives the migration request and prepares the dispatch plan:

Clarify the Migration:

  • What needs to migrate? (data, components, icons, config, conventions...)
  • From where to where? (old pattern β†’ new pattern)
  • What downstream dependencies exist?
  • What does "undo" look like if something goes wrong?

Determine the Bear's domain guide:

| Migration Type | Domain Guide | | -------------------------------------- | ---------------------- | | Database schema, tables, D1/SQLite | domain-database.md | | Component props, API upgrades, imports | domain-components.md | | Icons, assets, documents, file formats | domain-content.md | | Config, conventions, dependencies | domain-general.md |

Confirm with the human, then proceed.

Output: Migration specification, domain guide identified, dispatch plan confirmed.


Phase 2: SCOUT (Bloodhound)

The conductor signals. The Bloodhound puts its nose to the ground...

Agent(bloodhound, model: haiku)
  Input:  migration specification only
  Reads:  bloodhound-scout/SKILL.md (MANDATORY)
  Output: territory map

Dispatch a haiku subagent to scout the codebase. The Bloodhound receives ONLY the migration specification β€” no pre-analysis, no assumptions. It reads its own skill file and executes its full SCENT β†’ TRACK β†’ HUNT β†’ REPORT β†’ RETURN workflow.

What the Bloodhound maps:

  • Every reference to the items being migrated
  • Dependency relationships (what depends on what)
  • Downstream consumers
  • Edge cases and unusual usage patterns
  • Current state counts (how many items, how many references)

Handoff to conductor: Territory map (affected files, dependency graph, edge cases, current state counts, risk assessment).

Gate check: Territory map has: file lists, dependency relationships, item counts, edge cases identified. If incomplete, resume Bloodhound with specific questions.


Phase 3: MIGRATE (Bear)

The Bear wakes. It receives a map it didn't draw...

Agent(bear, model: opus)
  Input:  migration spec + territory map (from Bloodhound)
  Reads:  bear-migrate/SKILL.md + references/{domain-guide} (MANDATORY)
  Output: migration results + file list

Dispatch an opus subagent to execute the migration. The Bear receives the spec and the Bloodhound's territory map β€” NOT the Bloodhound's scouting process, just its structured output.

What the Bear does:

  • Preserve original state (branch, backup, or snapshot)
  • Execute migration in manageable chunks
  • Validate after each chunk
  • Verify item counts match (source vs destination)
  • Run integrity checks (references resolve, imports work, no orphans)

Handoff to conductor: Migration results (items migrated, items skipped, validation reports), file list.

Gate check:

pnpm install
gw dev ci --affected --fail-fast --diagnose

Must compile and pass. If it fails, resume Bear with the error.


Phase 4: VERIFY

The journey ends. The conductor confirms safe arrival...

Validation Checklist:

  • [ ] Bloodhound: All dependencies mapped
  • [ ] Bloodhound: All references found
  • [ ] Bloodhound: Edge cases documented
  • [ ] Bear: Original state preserved (branch, backup, or snapshot)
  • [ ] Bear: Item counts match (source vs destination)
  • [ ] Bear: Integrity checks pass (references resolve, imports work, no orphans)
  • [ ] Bear: Tests pass (gw dev ci --affected)
  • [ ] Bear: Rollback path documented

Completion Report:

🌲 GATHERING MIGRATION COMPLETE

Migration: [Description]

DISPATCH LOG
  πŸ• Bloodhound (haiku) β€” [territory mapped, X files identified, Y dependencies found]
  🐻 Bear (opus)         β€” [Z items migrated, domain guide: {guide}]

GATE LOG
  After Bloodhound: βœ… territory map complete
  After Bear:       βœ… compiles clean, migration verified
  Final CI:         βœ… gw dev ci --affected passes

MIGRATION RESULTS
  Items migrated: [count]
  Items skipped: [count, reason]
  Item count match: βœ… [source] = [dest]
  Integrity checks: βœ…
  Rollback: [branch/backup location]

Everything found its new home.

Conductor Rules

Never Do Animal Work

The conductor dispatches. It does not scout dependencies or execute migrations.

Fresh Eyes Are a Feature

The Bear receives the territory map, not the Bloodhound's scouting process. It trusts the map but verifies what it finds during migration.

Gate Every Transition

Territory map must be complete before Bear starts. CI must pass after Bear finishes.

Resume, Don't Restart

If a gate check fails, resume the failing agent. The Bear especially benefits from resumption β€” it has the migration context and can fix issues faster than starting fresh.


Anti-Patterns

The conductor does NOT:

  • Scout the codebase itself
  • Execute migration steps directly
  • Let Bear start without a complete territory map
  • Skip count validation (source must equal destination)
  • Skip rollback documentation

Quick Decision Guide

| Migration Scope | Strategy | | ------------------------------------ | ---------------------------------------- | | Simple rename (< 5 files) | Bear only (no Bloodhound needed) | | Cross-cutting migration (5-50 files) | Standard: Bloodhound β†’ Bear | | Large migration (50+ files) | Bloodhound β†’ Bear with chunked execution | | Unknown scope ("migrate X") | Always start with Bloodhound |


When no single animal suffices, the gathering answers. 🌲🐾

Gathering Migration πŸŒ²πŸ»πŸ• Skill | Agent Skills