šŸš€ Plano de Execução v2.0 - Pipeline Independente

šŸŽÆ MudanƧa Fundamental: De Sequencial para Paralelo

āŒ Modelo Antigo (ProblemĆ”tico)

Gemini cria tipos → Claude espera → Claude cria APIs → Copilot espera → Copilot cria UI
                      (BLOQUEIO)                        (BLOQUEIO)

āœ… Modelo Novo (Pipeline Real)

FASE 0: Contrato Ćŗnico definido
   ↓
TODOS comeƧam simultaneamente usando mocks
   ↓
Integração incremental conforme APIs ficam prontas

šŸ“‹ FASE 0: Setup Inicial (2 horas - CRƍTICO!)

VocĆŖ (Coordenador) Executa:

# 1. Criar estrutura completa
npx create-next-app@latest home-finance-tracker --typescript --tailwind --app
cd home-finance-tracker
 
# 2. Instalar TODAS as dependĆŖncias
npm install drizzle-orm @libsql/client bcryptjs jsonwebtoken date-fns
npm install @tanstack/react-query zustand recharts lucide-react
npm install nodemailer @telegram-bot-api/client twilio
npm install msw @mswjs/data faker
 
# 3. Criar estrutura de contratos
mkdir -p contracts/{api,types,database,mocks}
mkdir -p packages/{mock-server,shared-types,shared-utils}
 
# 4. Copiar o arquivo api-contracts-v1.md para contracts/API_CONTRACT.md
cp api-contracts-v1.md contracts/API_CONTRACT.md
 
# 5. Criar mock server automƔtico
cat > packages/mock-server/server.js << 'EOF'
import { setupServer } from 'msw/node'
import { rest } from 'msw'
import contracts from '../../contracts/API_CONTRACT.md'
 
// Auto-gerar mocks dos contratos
const handlers = [
  rest.get('/api/v1/dashboard', (req, res, ctx) => {
    return res(ctx.json({
      cards: {
        totalLimit: 15000,
        totalUsed: 4500,
        totalAvailable: 10500,
        bestNextMonth: {
          cardId: "card_002",
          cardName: "Cartão B",
          availableCredit: 4000
        }
      }
    }))
  }),
  // ... outros endpoints dos contratos
]
 
export const server = setupServer(...handlers)
EOF
 
# 6. Criar comando para rodar mock server
cat > package.json << 'EOF'
{
  "scripts": {
    "dev": "next dev",
    "dev:mock": "MSW_ENABLED=true next dev",
    "mock-server": "node packages/mock-server/server.js"
  }
}
EOF
 
# 7. Git initial commit
git add .
git commit -m "[SETUP] Project with contracts and mock server ready"
 
# 8. Criar branches para cada agente (NOVO!)
git branch claude-backend
git branch copilot-frontend  
git branch gemini-testing
 
echo "āœ… Setup completo! Agentes podem comeƧar IMEDIATAMENTE em paralelo!"

šŸ”„ NOVO FLUXO DE TRABALHO

Cada Agente Trabalha em Sua Branch

# Claude
git checkout claude-backend
# trabalha...
git commit -m "[CLAUDE] Implemented cards API"
git push origin claude-backend
 
# Copilot
git checkout copilot-frontend
# trabalha...
git commit -m "[COPILOT] Dashboard components with mock data"
git push origin copilot-frontend
 
# Gemini
git checkout gemini-testing
# trabalha...
git commit -m "[GEMINI] Unit tests for card calculations"
git push origin gemini-testing

Coordenador Faz Merge Incremental

# A cada 2 horas, integrar trabalho
git checkout main
git merge claude-backend --no-ff
git merge copilot-frontend --no-ff
git merge gemini-testing --no-ff
git push origin main
 
# Avisar agentes para fazer rebase
echo "Agentes: faƧam 'git pull origin main && git rebase main'"

šŸ“Š DIVISƃO DE TRABALHO PARALELO

šŸ¤– CLAUDE (Backend) - Branch: claude-backend

Dia 1 - Trabalho com Mocks

// CLAUDE PODE COMEƇAR IMEDIATAMENTE!
// 1. Implementar schema do banco baseado nos contratos
// 2. Criar APIs seguindo EXATAMENTE os contratos
// 3. Testar contra os schemas definidos
 
// lib/db/schema.ts
import { contracts } from '@/contracts/API_CONTRACT'
// Usar tipos do contrato, não criar novos!

Tarefas Paralelas:

  • Schema do banco (SQLite/Drizzle)
  • CRUD APIs bĆ”sicas
  • Lógica de cĆ”lculo financeiro
  • ValidaƧƵes de entrada

EntregƔveis por Commit:

git commit -m "[CLAUDE] Database schema matching contracts"
git commit -m "[CLAUDE] Cards API with validation"
git commit -m "[CLAUDE] Income calculation engine"

šŸŽØ COPILOT (Frontend) - Branch: copilot-frontend

Dia 1 - UI com Mock Server

// COPILOT COMEƇA IMEDIATAMENTE COM MOCKS!
// Usando MSW no browser
import { worker } from '@/mocks/browser'
if (process.env.NODE_ENV === 'development') {
  worker.start()
}
 
// Desenvolve TODO o UI com dados mock
const { data } = useQuery({
  queryKey: ['dashboard'],
  queryFn: () => fetch('/api/v1/dashboard').then(r => r.json())
  // Retorna mock automaticamente!
})

Tarefas Paralelas:

  • Layout e navegação
  • Componentes de cards
  • Dashboard com grĆ”ficos
  • Forms de entrada
  • Feedback visual

EntregƔveis por Commit:

git commit -m "[COPILOT] Dashboard layout with mock data"
git commit -m "[COPILOT] Card management UI complete"
git commit -m "[COPILOT] Transaction forms with validation"

🧪 GEMINI (Testing) - Branch: gemini-testing

Dia 1 - Testes com Contratos

// GEMINI TESTA OS CONTRATOS, NƃO IMPLEMENTAƇƕES!
describe('API Contract Compliance', () => {
  test('Dashboard response matches contract', () => {
    const response = mockDashboardResponse
    expect(response).toMatchSchema(dashboardSchema)
  })
})
 
// Testes de unidade para utils
describe('Business Days Calculation', () => {
  test('considers Brazilian holidays', () => {
    const result = calculateBusinessDays('2024-11-15', 5)
    expect(result).toBe('2024-11-22') // Pula feriado 20/nov
  })
})

Tarefas Paralelas:

  • Contract tests
  • Unit tests para utils
  • Test fixtures/factories
  • Performance benchmarks
  • E2E test structure

EntregƔveis por Commit:

git commit -m "[GEMINI] Contract validation tests"
git commit -m "[GEMINI] Business logic unit tests"
git commit -m "[GEMINI] Test data factories"

šŸ”Œ INTEGRAƇƃO PROGRESSIVA

Dia 2: Primeira Integração

graph LR
    A[Mock Server] -->|Replace| B[Real APIs]
    C[UI Components] -->|Connect| B
    D[Tests] -->|Validate| B

Processo de Integração:

# 1. Coordenador verifica readiness
curl http://localhost:3000/api/v1/health
# { "claude": "ready", "database": "connected" }
 
# 2. Switch do mock para real
# .env.local
USE_MOCK_API=false
 
# 3. Rodar testes de integração
npm run test:integration
 
# 4. Fix incremental de issues

Substituição Gradual de Mocks

// hooks/useApi.ts
export function useApi() {
  const useMock = process.env.NEXT_PUBLIC_USE_MOCK === 'true'
  
  return {
    dashboard: useMock 
      ? () => import('@/mocks/dashboard')
      : () => fetch('/api/v1/dashboard')
  }
}

šŸ“ˆ MƉTRICAS DE PROGRESSO

Dashboard de Status (Para o Coordenador)

## Status Real-Time
 
### Claude (Backend)
- [ ] Database: 80% ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–‘ā–‘
- [ ] APIs: 60% ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–‘ā–‘ā–‘ā–‘
- [ ] Business Logic: 40% ā–ˆā–ˆā–ˆā–ˆā–‘ā–‘ā–‘ā–‘ā–‘ā–‘
 
### Copilot (Frontend)  
- [ ] Components: 70% ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–‘ā–‘ā–‘
- [ ] Pages: 50% ā–ˆā–ˆā–ˆā–ˆā–ˆā–‘ā–‘ā–‘ā–‘ā–‘
- [ ] Integration: 20% ā–ˆā–ˆā–‘ā–‘ā–‘ā–‘ā–‘ā–‘ā–‘ā–‘
 
### Gemini (Testing)
- [ ] Unit Tests: 60% ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–‘ā–‘ā–‘ā–‘
- [ ] Integration: 30% ā–ˆā–ˆā–ˆā–‘ā–‘ā–‘ā–‘ā–‘ā–‘ā–‘
- [ ] E2E: 10% ā–ˆā–‘ā–‘ā–‘ā–‘ā–‘ā–‘ā–‘ā–‘ā–‘

šŸŽÆ COMUNICAƇƃO ASSƍNCRONA

Sistema de Mensagens no Git

# Agente precisa de algo
git commit --allow-empty -m "[COPILOT->CLAUDE] Need /api/v1/cards/{id}/transactions endpoint"
 
# Agente responde
git commit --allow-empty -m "[CLAUDE->COPILOT] Endpoint ready in commit abc123"
 
# Broadcast para todos
git commit --allow-empty -m "[ALL] Breaking change in Money type - check contracts"

Health Checks AutomƔticos

// api/v1/health/route.ts
export async function GET() {
  return Response.json({
    status: 'healthy',
    timestamp: new Date(),
    services: {
      database: await checkDatabase(),
      cache: await checkCache(),
      notifications: await checkNotifications()
    },
    readiness: {
      cards: true,      // API pronta
      transactions: true, // API pronta
      income: false,    // Em desenvolvimento
      alerts: false     // NĆ£o iniciado
    }
  })
}

šŸ”’ GATES DE QUALIDADE

Antes de Fazer Merge:

  1. Contract Compliance

    npm run test:contracts
    # Todos os endpoints devem passar
  2. Type Safety

    npm run type-check
    # Zero erros de TypeScript
  3. Test Coverage

    npm run test:coverage
    # MĆ­nimo 70% para merge
  4. Lint & Format

    npm run lint:fix
    npm run format

🚨 TROUBLESHOOTING

Problema: ā€œCannot find moduleā€

# Solução: Verificar se estÔ na branch correta
git status
git checkout main
git pull origin main
npm install

Problema: ā€œAPI not matching contractā€

# Solução: Validar contra contrato
npm run validate:api -- --endpoint=/api/v1/cards

Problema: ā€œMerge conflictsā€

# Solução: Coordenador resolve
git checkout main
git merge --strategy=ours claude-backend
# Revisar manualmente

āœ… DEFINITION OF DONE

Para cada Feature:

  • Implementado conforme contrato
  • Testes escritos e passando
  • Documentação atualizada
  • Code review pelo coordenador
  • Merge sem conflitos
  • Health check verde

šŸŽ‰ BENEFƍCIOS DO NOVO MODELO

  1. Zero Bloqueios: NinguƩm espera ninguƩm
  2. Desenvolvimento Paralelo Real: 3x mais rƔpido
  3. Feedback Contínuo: Integração a cada 2 horas
  4. Qualidade Garantida: Contratos previnem bugs
  5. Rollback FƔcil: Branches isoladas
  6. Visibilidade Total: Health checks e mƩtricas

šŸ“… TIMELINE OTIMIZADO

Dia 0 (2h): Setup + Contracts
Dia 1: Desenvolvimento paralelo (todos)
Dia 2 AM: Primeira integração
Dia 2 PM: Ajustes e segunda wave
Dia 3 AM: Features avanƧadas
Dia 3 PM: Polish e otimização
Dia 4: Testes finais e deploy

RESULTADO: 4 dias ao invƩs de 6, com maior qualidade!