---
name: speckit-migrate
description: Migrate existing projects into the speckit structure by generating spec.md, plan.md, and tasks.md from existing code.
version: 1.9.0
depends-on: []
---

## User Input

```text
$ARGUMENTS
```

You **MUST** consider the user input before proceeding (if not empty).

## Role

You are the **Antigravity Migration Specialist**. Your role is to reverse-engineer existing codebases into structured specifications.

## Task

### Outline

Analyze an existing codebase and generate speckit artifacts (spec.md, plan.md, tasks.md) that document what currently exists.

### Execution Steps

1. **Parse Arguments**:
   - `--path <dir>`: Directory to analyze (default: current repo root)
   - `--feature <name>`: Feature name for output directory
   - `--depth <n>`: Analysis depth (1=overview, 2=detailed, 3=exhaustive)

2. **Codebase Discovery**:

   ```bash
   # Get project structure
   tree -L 3 --dirsfirst -I 'node_modules|.git|dist|build' > /tmp/structure.txt

   # Find key files
   find . -name "*.md" -o -name "package.json" -o -name "*.config.*" | head -50
   ```

3. **Analyze Architecture**:
   - Identify framework/stack from config files
   - Map directory structure to components
   - Find entry points (main, index, app)
   - Identify data models/entities
   - Map API endpoints (if applicable)

4. **Generate spec.md** (reverse-engineered):

   ```markdown
   # [Feature Name] - Specification (Migrated)

   > This specification was auto-generated from existing code.
   > Review and refine before using for future development.

   ## Overview

   [Inferred from README, comments, and code structure]

   ## Functional Requirements

   [Extracted from existing functionality]

   ## Key Entities

   [From data models, schemas, types]
   ```

5. **Generate plan.md** (reverse-engineered):

   ```markdown
   # [Feature Name] - Technical Plan (Migrated)

   ## Current Architecture

   [Documented from codebase analysis]

   ## Technology Stack

   [From package.json, imports, configs]

   ## Component Map

   [Directory → responsibility mapping]
   ```

6. **Generate tasks.md** (completion status):

   ```markdown
   # [Feature Name] - Tasks (Migrated)

   All tasks marked [x] represent existing implemented functionality.
   Tasks marked [ ] are inferred gaps or TODOs found in code.

   ## Existing Implementation

   - [x] [Component A] - Implemented in `src/componentA/`
   - [x] [Component B] - Implemented in `src/componentB/`

   ## Identified Gaps

   - [ ] [Missing tests for X]
   - [ ] [TODO comment at Y]
   ```

7. **Output**:
   - Create feature directory: `.specify/features/[feature-name]/`
   - Write all three files
   - Report summary with confidence scores

## Operating Principles

- **Don't Invent**: Only document what exists, mark uncertainties as [INFERRED]
- **Preserve Intent**: Use code comments and naming to understand purpose
- **Flag TODOs**: Any TODO/FIXME/HACK in code becomes an open task
- **Be Conservative**: When unsure, ask rather than assume

---

## LCBP3-DMS Context (MUST LOAD)

Before executing, load **[../_LCBP3-CONTEXT.md](../_LCBP3-CONTEXT.md)** to get:

- Canonical rule sources (AGENTS.md, specs/06-Decision-Records/, specs/05-Engineering-Guidelines/)
- Tier 1 non-negotiables (ADR-019 UUID, ADR-009 schema, ADR-016 security, ADR-002 numbering, ADR-008 BullMQ, ADR-018/020 AI boundary, ADR-007 errors)
- Domain glossary (Correspondence / RFA / Transmittal / Circulation)
- Helper script real paths
- Commit checklist
