# Apply MORPH Feature Implementation - FASE 5

Implemente a feature especificada seguindo as tasks definidas.

## Uso

```
/morph-apply {feature-name}
```

## Pré-requisitos

### CRÍTICO: Validar Fases Anteriores

**SEMPRE verifique que fases anteriores foram concluídas:**

```bash
# Obter estado da feature
node bin/state-manager.js get {feature-name}
```

**Validações obrigatórias:**

1. **FASE 0 (Proposal):**
   - [ ] Output `proposal` criado
   - [ ] Agentes detectados e registrados

2. **FASE 1 (Setup):**
   - [ ] Phase passou por "setup"
   - [ ] Contexto carregado

3. **FASE 1.5 (UI/UX) - SE APLICÁVEL:**
   - [ ] Se `uiux-designer` está nos activeAgents → outputs ui-* devem existir
   - [ ] Se NÃO tem uiux-designer → pode pular

4. **FASE 2 (Design):**
   - [ ] Output `spec` criado
   - [ ] Output `contracts` criado
   - [ ] Output `decisions` criado

5. **FASE 3 (Clarify):**
   - [ ] Phase passou por "clarify"
   - [ ] Spec atualizado com clarificações

6. **FASE 4 (Tasks):**
   - [ ] Output `tasks` criado
   - [ ] `tasks.json` tem array de tasks
   - [ ] `tasks.total` > 0 no state

**Se QUALQUER validação falhar:**
```
❌ ERRO: Fase {X} não foi concluída!

Para continuar, execute primeiro:
- /morph-proposal (FASE 0)
- /morph-setup (FASE 1)
- /morph-uiux (FASE 1.5 - se necessário)
- /morph-design (FASE 2)
- /morph-clarify (FASE 3)
- /morph-tasks (FASE 4)

Fase atual: {current_phase}
```

**NÃO prossiga com implementação até todas as fases estarem completas!**

### Arquivos Necessários

- [ ] Feature existe em `.morph/project/outputs/{feature}/`
- [ ] `spec.md` está aprovado
- [ ] `tasks.json` tem tasks definidas
- [ ] `contracts.cs` define as interfaces

## Workflow

1. **Carregue o contexto**:
   - Leia `.morph/project/outputs/{feature}/spec.md`
   - Leia `.morph/project/outputs/{feature}/tasks.json`
   - Leia `.morph/project/outputs/{feature}/contracts.cs`
   - Leia framework/standards/ e .morph/project/standards/ para padrões

2. **Inicialize state tracking**:
   ```bash
   # Atualizar fase para implement
   node bin/state-manager.js set {feature} phase implement
   node bin/state-manager.js set {feature} status in_progress

   # Definir total de tasks (baseado em tasks.json)
   node bin/state-manager.js set {feature} tasks.total {N}
   ```

3. **Execute tasks em ordem**:
   - Marque task como `[~] In Progress`
   - Atualize state: `node bin/state-manager.js set {feature} tasks.inProgress 1`
   - Implemente seguindo os padrões
   - Marque task como `[x] Completed`
   - Atualize state: `node bin/state-manager.js set {feature} tasks.completed {X}`
   - Atualize state: `node bin/state-manager.js set {feature} tasks.inProgress 0`

4. **Checkpoints a cada 3 tasks**:
   ```bash
   # Registrar checkpoint
   node bin/state-manager.js checkpoint {feature} "Completadas tasks T001-T003"
   ```
   - Pause e apresente o que foi feito
   - Mostre progresso: `node bin/state-manager.js list`
   - Aguarde aprovação para continuar

5. **Marcar outputs criados**:
   Sempre que gerar um arquivo de output:
   ```bash
   node bin/state-manager.js mark-output {feature} spec
   node bin/state-manager.js mark-output {feature} contracts
   node bin/state-manager.js mark-output {feature} tasks
   # etc.
   ```

6. **Ao finalizar**:
   - Atualize state: `node bin/state-manager.js set {feature} status done`
   - Marque recap: `node bin/state-manager.js mark-output {feature} recap`
   - Atualize `recap.md` com resultados
   - Liste arquivos criados/modificados
   - Calcule custo real vs estimado

## Padrões Obrigatórios

Siga sempre (priorize project/standards/ se houver):
- `framework/standards/coding.md` - Padrões base do MORPH
- `.morph/project/standards/coding.md` - Padrões específicos do projeto
- `.morph/project/standards/architecture.md` - Estrutura de projeto
- `.morph/project/standards/azure.md` - Recursos e custos

## Validações

Antes de marcar task como completa:
- [ ] Código compila
- [ ] Segue padrões de nomenclatura
- [ ] Testes unitários (se aplicável)
- [ ] Sem hardcoded secrets

## Output

Ao final de cada task, mostre:
1. Task completada
2. Arquivos criados/modificados
3. Próxima task
4. Progresso geral (X/Y tasks) - usar `node bin/state-manager.js get {feature}`

Ao final de cada checkpoint:
```bash
node bin/state-manager.js list
```

Isso mostra o progresso atualizado automaticamente.

---

**Feature:** $ARGUMENTS
