# 🚀 TEAM KICKOFF - mockupAWS Fase 1

## 📢 Comunicazione Ufficiale

**Data:** 2026-04-07  
**Fase:** 1 - Database & Backend Core  
**Status:** ✅ Architettura Completa - Pronti per Sviluppo

---

## ✅ Cosa è stato completato

L'agente **@spec-architect** ha completato l'analisi e le specifiche tecniche:

### Documentazione Pronta
- ✅ **PRD v0.2.0** - Requisiti completi
- ✅ **architecture.md** - Architettura dettagliata con:
  - Schema database completo (DDL SQL pronto)
  - API specifications (OpenAPI)
  - Diagrammi flusso dati
  - Piano sicurezza
- ✅ **kanban.md** - 32 task breakdown, stimate, priorizzate
- ✅ **progress.md** - Tracking inizializzato

### Team Configurato
- ✅ 6 agenti specializzati configurati in `.opencode/agents/`
- ✅ Ogni agente ha ruoli, responsabilità e constraints definiti

---

## 🎯 OBIETTIVO FASE 1

**Deadline:** End of Week 1  
**Goal:** Database PostgreSQL funzionante + API CRUD base

**Deliverables:**
1. Database schema completo (5 tabelle)
2. Alembic migrations funzionanti
3. SQLAlchemy models + Pydantic schemas
4. Repository layer
5. Scenario CRUD API
6. Test coverage > 60%

---

## 👥 ASSEGNAZIONI TASK

### @db-engineer - DATABASE (Priorità P1)

**Task immediate:**
1. **DB-001** - Alembic Setup (Stima: S)
   - Installare alembic e asyncpg
   - Configurare per SQLAlchemy 2.0 async
   - Testare connessione

2. **DB-002** - Migration Scenarios Table (Stima: M)
   - Creare tabella scenarios con tutti i campi
   - Aggiungere indexes e constraints
   - Testare migrazione

3. **DB-003** - Migration Logs Table (Stima: M)
   - Creare tabella scenario_logs
   - Foreign key a scenarios

4. **DB-004** - Migration Metrics Table (Stima: M)
   - Creare tabella scenario_metrics

5. **DB-005** - Migration Pricing Table (Stima: M)
   - Creare tabella aws_pricing

6. **DB-006** - Migration Reports Table (Stima: S)
   - Creare tabella reports

7. **DB-007** - Seed AWS Pricing Data (Stima: M)
   - Popolare con prezzi reali AWS
   - SQS, Lambda, Bedrock per us-east-1

**📖 Riferimenti:**
- Schema SQL: `export/architecture.md` sezione 3.2
- Prezzi: `export/prd.md` sezione 4.3 (tabella prezzi)
- Config agente: `.opencode/agents/db-engineer.md`

**⚠️ IMPORTANTE:**
- Usare UUID come primary keys
- Includere created_at/updated_at su tutte le tabelle
- Creare indexes su colonne di query frequenti
- Testare ogni migrazione con `alembic upgrade +1`

---

### @backend-dev - BACKEND CORE (Priorità P1)

**Task immediate:**
1. **BE-001** - Database Connection (Stima: M)
   - Creare `backend/src/core/database.py`
   - Configurare async SQLAlchemy engine
   - Creare dependency `get_db()` per FastAPI

2. **BE-002** - SQLAlchemy Models (Stima: L)
   - Creare tutti i modelli in `backend/src/models/`
   - Base model, Scenario, ScenarioLog, ScenarioMetric, AwsPricing, Report
   - Definire relationships

3. **BE-003** - Pydantic Schemas (Stima: M)
   - Creare schemas in `backend/src/schemas/`
   - ScenarioCreate, ScenarioUpdate, ScenarioResponse, etc.

4. **BE-004** - Base Repository (Stima: M)
   - Creare `backend/src/repositories/base.py`
   - Implementare Generic Repository pattern
   - Metodi: get(), list(), create(), update(), delete()

5. **BE-005** - Scenario Repository (Stima: M)
   - Creare `backend/src/repositories/scenario_repo.py`
   - Metodi specifici per scenario

6. **BE-015** - API Dependencies (Stima: M)
   - Creare `backend/src/api/deps.py`
   - Configurare exception handlers
   - Definire custom exceptions

7. **BE-016** - Scenarios API (Stima: L)
   - Implementare CRUD endpoints
   - POST/GET/PUT/DELETE /api/v1/scenarios
   - Lifecycle endpoints (start, stop, archive)

**📖 Riferimenti:**
- Architettura: `export/architecture.md` sezioni 4, 5, 7, 8
- API Specs: `export/architecture.md` sezione 4
- Codice esistente: `src/main.py`, `src/profiler.py`
- Config agente: `.opencode/agents/backend-dev.md`

**⚠️ IMPORTANTE:**
- Usare type hints ovunque
- TDD: scrivere test prima o insieme al codice
- Async/await per tutte le operazioni I/O
- Repository pattern obbligatorio

---

### @frontend-dev - PREPARAZIONE (Priorità P2)

**Task preparazione:**
1. Setup ambiente React:
   ```bash
   mkdir -p /home/google/Sources/LucaSacchiNet/mockupAWS/frontend
   cd /home/google/Sources/LucaSacchiNet/mockupAWS/frontend
   npm create vite@latest . -- --template react-ts
   npm install
   npm install tailwindcss postcss autoprefixer
   npx tailwindcss init -p
   npm install @tanstack/react-query axios recharts lucide-react clsx tailwind-merge
   npm install -D @types/node
   ```

2. Installare shadcn/ui:
   ```bash
   npx shadcn-ui@latest init
   ```

3. Preparare mock data per sviluppo UI

**📖 Riferimenti:**
- Stack: `export/architecture.md` sezione 7.2
- Config agente: `.opencode/agents/frontend-dev.md`

**⚠️ NOTA:** Il frontend verrà sviluppato in Fase 2. Per ora preparare solo l'ambiente.

---

### @devops-engineer - DOCKER BASE (Priorità P2)

**Task preparazione:**
1. Creare `docker-compose.yml` base:
   - Servizio PostgreSQL
   - Volume per persistenza
   - Health check

2. Preparare `backend/Dockerfile`:
   - Multi-stage build
   - Python 3.11-slim
   - Uvicorn entrypoint

3. Preparare `frontend/Dockerfile`:
   - Node 20-alpine
   - Nginx per serving

**📖 Riferimenti:**
- Config agente: `.opencode/agents/devops-engineer.md`

---

### @qa-engineer - TEST PLAN (Priorità P2)

**Task preparazione:**
1. Creare `docs/test_plan.md` con:
   - Unit test strategy
   - Integration test plan
   - E2E test scenarios

2. Preparare fixtures per pytest:
   - Database fixture con rollback
   - Mock data fixtures

**📖 Riferimenti:**
- Config agente: `.opencode/agents/qa-engineer.md`

---

## 🔄 WORKFLOW GIORNALIERO

### Daily Routine
1. **Mattina:** Leggere `export/progress.md` per stato attuale
2. **Durante il giorno:** Aggiornare progresso su task assegnate
3. **Fine giornata:** Aggiornare `export/progress.md` con:
   - Task completate
   - Blocchi riscontrati
   - Decisioni prese

### Comunicazione
- **Domande tecniche:** Riferirsi a `export/architecture.md`
- **Task details:** Riferirsi a `export/kanban.md`
- **Blocchi:** Aggiungere a `export/kanban.md` sezione BLOCKED
- **Decisioni:** Documentare in `export/progress.md`

### Git Workflow
- **Branch:** `feature/DB-001-alembic-setup`
- **Commits:** Conventional commits
  - `feat: add alembic configuration`
  - `feat: create scenarios table migration`
  - `test: add scenario repository tests`
- **PR:** Una feature = una PR

---

## 📊 CRITERI DI SUCCESSO FASE 1

La Fase 1 è completata quando TUTTI questi criteri sono soddisfatti:

### Database ✅
- [ ] Alembic configurato e funzionante
- [ ] 5 tabelle create con migrazioni
- [ ] Indexes creati
- [ ] Seed dati pricing popolati
- [ ] `alembic upgrade head` esegue senza errori

### Backend ✅
- [ ] SQLAlchemy models completi
- [ ] Pydantic schemas validati
- [ ] Repository layer funzionante
- [ ] API CRUD scenari testate
- [ ] Gestione stati (draft→running→completed) funzionante

### Testing ✅
- [ ] Unit tests per repositories
- [ ] Integration tests per API
- [ ] Test coverage > 60%
- [ ] Tutti i test passanti

### Documentazione ✅
- [ ] API documentate (OpenAPI visibile su /docs)
- [ ] README aggiornato con istruzioni setup

---

## 🚨 COMANDI UTILI

### Database
```bash
# Setup database locale
docker run -d --name mockupaws-postgres \
  -e POSTGRES_DB=mockupaws \
  -e POSTGRES_USER=app \
  -e POSTGRES_PASSWORD=changeme \
  -p 5432:5432 postgres:15-alpine

# Alembic commands
cd /home/google/Sources/LucaSacchiNet/mockupAWS/backend
uv run alembic revision --autogenerate -m "create scenarios table"
uv run alembic upgrade head
uv run alembic downgrade -1
```

### Backend
```bash
# Setup
cd /home/google/Sources/LucaSacchiNet/mockupAWS
uv add sqlalchemy alembic asyncpg pydantic-settings

# Test
uv run pytest -v
uv run pytest --cov=src --cov-report=html

# Run
uv run uvicorn src.main:app --reload
```

### Frontend
```bash
cd /home/google/Sources/LucaSacchiNet/mockupAWS/frontend
npm install
npm run dev
```

---

## 📞 SUPPORTO

### Domande?
1. Leggere prima `export/architecture.md`
2. Controllare `export/kanban.md` per dettagli task
3. Riferirsi al proprio file config in `.opencode/agents/`

### Blocchi?
- Aggiungere task a sezione BLOCKED in `kanban.md`
- Documentare in `progress.md`
- Chiedere supporto al team

---

## 🎬 AZIONE IMMEDIATA

**@db-engineer:** Inizia con **DB-001** - Alembic Setup

**@backend-dev:** Prepara ambiente, inizia con **BE-001** quando DB-001 è pronto

**@frontend-dev:** Setup ambiente React

**@devops-engineer:** Crea docker-compose.yml base

**@qa-engineer:** Crea test plan iniziale

**@spec-architect:** Monitoraggio progresso, supporto architetturale

---

**🚀 TEAM: SIATE PRONTI, SI PARTE!**

Iniziate con le task assegnate. Aggiornate `export/progress.md` frequentemente.

**Commit often, test always, communicate always!**

---

*Prompt creato da @spec-architect*  
*Data: 2026-04-07*  
*Versione: 1.0*
