feat(template): add complete OpenCode project template with placeholder paths

- Replace hardcoded project paths with generic placeholders ([NOME_PROGETTO], [ROOT_PROGETTO])
- Add .opencode/ configuration with agent definitions (spec-architect, tdd-developer, git-manager, security-reviewer)
- Add export/ templates (prd, architecture, kanban, progress, githistory)
- Add docs/ templates (bug_ledger, architecture)
- Add prompt/prompt-zero.md kickoff template
- Update README.md with installation instructions and usage guide

Template now ready for reuse in new projects with workflow:
  1. Spec-Driven (@spec-architect)
  2. TDD (@tdd-developer)
  3. Git management (@git-manager)
This commit is contained in:
Luca Sacchi Ricciardi
2026-04-07 10:12:41 +02:00
parent 4b2f7318e0
commit 5c7dd95974
16 changed files with 1969 additions and 2 deletions

92
export/architecture.md Normal file
View File

@@ -0,0 +1,92 @@
# Architecture Document (Export)
> Decisioni architetturali e diagrammi di flusso.
## Istruzioni
Questo file deve essere creato/aggiornato dall'agente `@spec-architect` durante la fase di analisi.
## Contenuto Richiesto
1. **Scelte Architetturali**
- Pattern architetturali
- Motivazioni
- Trade-off
2. **Stack Tecnologico**
- Tecnologie e versioni
- Motivazioni scelta
3. **Diagrammi di Flusso**
- Architettura sistema
- Flussi dati
- Sequenze operazioni
4. **Interfacce e Contratti**
- API contracts
- Interfacce tra componenti
---
## Template
```markdown
# Architecture - [Nome Progetto/Feature]
## 1. Overview
[Descrizione ad alto livello]
## 2. System Architecture
```
[ASCII art o riferimento a diagramma]
```
## 3. Componenti
### 3.1 [Nome Componente]
**Responsabilità:**
-
**Interfacce:**
- Input:
- Output:
**Dipendenze:**
-
## 4. Data Flow
```
[Descrizione flusso dati]
```
## 5. API Contracts
### [Endpoint]
```
POST /api/v1/...
Request:
body: { ... }
Response:
200: { ... }
400: { ... }
```
## 6. Decisioni
### [DEC-001] - [Titolo]
**Decisione:**
**Motivazione:**
**Alternative:**
**Conseguenze:**
```
---
*Questo file verrà popolato durante la fase di specifica*

46
export/githistory.md Normal file
View File

@@ -0,0 +1,46 @@
# Git History - [NOME_PROGETTO]
> Registro storico dei commit con spiegazione dettagliata del contesto e della motivazione.
## Formato
```markdown
## YYYY-MM-DD HH:MM - [TYPE](scope): [Titolo Commit]
**Hash:** `abc1234`
**Autore:** @agent
**Branch:** main/feature/...
### Contesto
[Spiegazione del contesto in cui è stato fatto il commit - perché era necessario]
### Cosa cambia
[Descrizione dettagliata delle modifiche introdotte]
### Perché
[Motivazione delle scelte fatte, problemi risolti]
### Impatto
- [ ] Breaking change
- [ ] Modifica API
- [ ] Nuova feature
- [ ] Bug fix
- [ ] Refactoring
- [ ] Documentazione
### File modificati
- `path/to/file1.py` - [breve descrizione cambiamento]
- `path/to/file2.py` - [breve descrizione cambiamento]
### Note
[Eventuali note aggiuntive, riferimenti a issue, PR]
---
```
---
## Storico Commit
*I commit più recenti in cima*

116
export/kanban.md Normal file
View File

@@ -0,0 +1,116 @@
# Kanban Board (Export)
> Scomposizione del progetto in task minimi e verificabili.
## Istruzioni
Questo file deve essere creato/aggiornato dall'agente `@spec-architect` durante la fase di analisi.
## Principio "Little Often"
- Task il più piccoli possibile
- Ogni task verificabile in <2 ore
- Progresso incrementale
- Dipendenze chiare
---
## Stati
- 🔴 **TODO** - Da fare
- 🟡 **IN PROGRESS** - In corso
- 🟢 **DONE** - Completato
-**BLOCKED** - Bloccato (vedi dipendenze)
---
## Template
```markdown
# Kanban - [Nome Progetto]
## Colonna: 🔴 TODO
### Task-001: [Titolo task]
**Descrizione:** [Breve descrizione]
**Criteri Done:**
- [ ] Criterio 1
- [ ] Criterio 2
**Dipendenze:** Nessuna / Task-XXX
**Stima:** XS(1h) / S(2h) / M(4h) / L(8h)
**Assegnato:** @agent
---
## Colonna: 🟡 IN PROGRESS
### Task-XXX: [Titolo]
**Iniziato:** YYYY-MM-DD
**Assegnato:** @agent
---
## Colonna: 🟢 DONE
### Task-XXX: [Titolo]
**Completato:** YYYY-MM-DD
**Commit:** `feat: ...`
---
## Colonna: ⚪ BLOCKED
### Task-XXX: [Titolo]
**Bloccato da:** Task-YYY
**Motivo:** [Spiegazione]
```
---
## Esempio Board
# Kanban - [NOME_PROGETTO]
## 🔴 TODO
### TASK-001: Setup progetto base
**Descrizione:** Inizializzare struttura progetto Python con uv
**Criteri Done:**
- [ ] pyproject.toml configurato
- [ ] Struttura cartelle src/
- [ ] Pre-commit hooks installati
**Dipendenze:** Nessuna
**Stima:** XS
**Assegnato:** @tdd-developer
### TASK-002: Implementare NotebookService.create()
**Descrizione:** Servizio per creazione notebook con validazione
**Criteri Done:**
- [ ] Test unitari passanti
- [ ] Validazione titolo
- [ ] Integrazione notebooklm-py
**Dipendenze:** TASK-001
**Stima:** S
**Assegnato:** @tdd-developer
---
## 🟡 IN PROGRESS
*Vuoto*
---
## 🟢 DONE
*Vuoto*
---
## ⚪ BLOCKED
*Vuoto*
---
*Questo file verrà popolato durante la fase di specifica*

94
export/prd.md Normal file
View File

@@ -0,0 +1,94 @@
# Product Requirements Document (Export)
> Versione iniziale del PRD da definire durante la fase di specifica.
## Istruzioni
Questo file deve essere creato/aggiornato dall'agente `@spec-architect` durante la fase di analisi.
## Contenuto Richiesto
1. **Obiettivi**
- Obiettivi di business
- Obiettivi utente
- Metriche di successo (KPI)
2. **User Stories**
- Formato: "Come [ruolo], voglio [obiettivo], per [beneficio]"
- Acceptance criteria per ogni story
3. **Requisiti Funzionali**
- Requisiti con priorità
- Criteri di accettazione
4. **Requisiti Non Funzionali**
- Performance
- Sicurezza
- Scalabilità
5. **Stack Tecnologico**
- Tecnologie scelte
- Versioni
- Motivazioni
---
## Template
```markdown
# PRD - [Nome Feature]
## 1. Obiettivi
### 1.1 Business
- [ ]
### 1.2 Utente
- [ ]
### 1.3 KPI
| Metrica | Target |
|---------|--------|
| | |
## 2. User Stories
### US-001
**Come** [ruolo],
**voglio** [obiettivo],
**per** [beneficio]
**Acceptance Criteria:**
- [ ] Criterio 1
- [ ] Criterio 2
## 3. Requisiti Funzionali
### REQ-001: [Titolo]
**Priorità:** Alta/Media/Bassa
**Descrizione:**
[Descrizione dettagliata]
**Criteri di Accettazione:**
- [ ]
- [ ]
## 4. Requisiti Non Funzionali
### Performance
-
### Sicurezza
-
## 5. Stack Tecnologico
| Componente | Tecnologia | Versione |
|------------|------------|----------|
| | | |
```
---
*Questo file verrà popolato durante la fase di specifica*

109
export/progress.md Normal file
View File

@@ -0,0 +1,109 @@
# Progress Tracking - [NOME_PROGETTO]
> Tracciamento progresso sviluppo in tempo reale.
## 🎯 Sprint/Feature Corrente
**Feature:** `[Nome feature in sviluppo]`
**Iniziata:** `YYYY-MM-DD`
**Stato:** 🔴 Pianificazione / 🟡 In sviluppo / 🟢 Completata
**Assegnato:** `@agent`
---
## 📊 Progresso Complessivo
| Area | Progresso | Stato |
|------|-----------|-------|
| API Core | 0/10 task | 🔴 Non iniziato |
| Webhook System | 0/5 task | 🔴 Non iniziato |
| AI Skill | 0/3 task | 🔴 Non iniziato |
| Testing | 0/8 task | 🔴 Non iniziato |
| Documentazione | 0/4 task | 🔴 Non iniziato |
**Completamento Totale:** 0%
---
## 🔄 Attività in Corso
### Task Corrente: `[ID-XXX] - Titolo`
| Campo | Valore |
|-------|--------|
| **ID** | TASK-XXX |
| **Descrizione** | [Breve descrizione] |
| **Iniziata** | YYYY-MM-DD HH:MM |
| **Assegnato** | @agent |
| **Stato** | 🟡 In progress |
| **Bloccata da** | Nessuna / TASK-YYY |
| **Note** | [Eventuali ostacoli, decisioni] |
**Passi completati:**
- [x] Passo 1
- [ ] Passo 2
- [ ] Passo 3
---
## ✅ Task Completate (Oggi)
| ID | Task | Completata | Commit | Assegnato |
|----|------|------------|--------|-----------|
| | | | | |
---
## 📅 Prossime Task
| Priority | ID | Task | Stima | Dipendenze |
|----------|----|------|-------|------------|
| P1 | | | | |
| P2 | | | | |
---
## 🚧 Blocchi/Issue
| ID | Problema | Impatto | Soluzione Proposta | Stato |
|----|----------|---------|-------------------|-------|
| | | | | 🔴 Aperto |
---
## 📝 Decisioni Prese Oggi
| Data | Decisione | Motivazione | Impatto |
|------|-----------|-------------|---------|
| | | | |
---
## 📈 Metriche
### Sprint Corrente
- **Task pianificate:** 0
- **Task completate:** 0
- **Task in progress:** 0
- **Task bloccate:** 0
### Qualità
- **Test Coverage:** 0%
- **Test passanti:** 0/0
- **Linting:** ✅ / ❌
- **Type Check:** ✅ / ❌
---
## 🔄 Aggiornamento
> **Nota:** Questo file deve essere aggiornato:
> - All'inizio di ogni nuova task
> - Al completamento di ogni task
> - Quando si risolve un blocco
> - Quando si prende una decisione architetturale
> - A fine giornata lavorativa
---
*Ultimo aggiornamento: YYYY-MM-DD HH:MM*