docs: add team kickoff prompt for Fase 1 development
This commit is contained in:
347
prompt/prompt-kickoff-fase1.md
Normal file
347
prompt/prompt-kickoff-fase1.md
Normal file
@@ -0,0 +1,347 @@
|
|||||||
|
# 🚀 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*
|
||||||
Reference in New Issue
Block a user