diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..c1099c5 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,51 @@ +LogWhisperer AI - Agent Rules + +Metodologia di Lavoro + +Spec-Driven: Prima di ogni modifica, l'agente deve aggiornare o confermare le specifiche in docs/. + +TDD (Test-Driven Development): Non scrivere logica senza un test fallimentare preventivo. Usa pytest. + +Sacchi Method: Applica sempre "Safety first, little often, double check". Verifica i permessi prima di eseguire comandi bash distruttivi. + +Git Workflow: + +Usa Conventional Commits (es. feat:, fix:, docs:, test:). + +Ogni commit deve essere atomico. + +Aggiorna CHANGELOG.md seguendo lo standard Common Changelog. + +Definizione dei Ruoli (Sub-agents) + +@tech-lead: Responsabile dell'architettura e della validazione delle specifiche (PRD). + +@developer: Scrive il codice Python e lo script Bash seguendo i test. + +@qa-engineer: Scrive ed esegue i test, garantendo la copertura delle feature critiche. + + +### 3. Configurazione Tecnica (`opencode.json`) +Per gestire il progetto con Python e attivare le potenzialità agentiche, configura il file di impostazioni di OpenCode (solitamente in `~/.config/opencode/opencode.json` o localmente se supportato): + +Assicurati che i **Tools** siano abilitati per permettere all'agente di usare il terminale nel tuo `venv`. + + + +### 4. Uso delle Skills (Il potenziamento) +Per un risultato eccellente, useremo le **Skills**. Le skills sono playbook che OpenCode carica on-demand. Crea una cartella `.opencode/skills/` e aggiungi questi file: + +- **python_expert.md**: Istruzioni su come gestire il venv, installare dipendenze con `pip` e seguire il PEP8. +- **tdd_workflow.md**: Una guida passo-passo che obbliga l'agente a: + 1. Creare il test. + 2. Eseguire il test (deve fallire). + 3. Scrivere il codice minimo. + 4. Rieseguire il test (deve passare). +- **git_standard.md**: Istruzioni rigide su come scrivere i messaggi di commit e aggiornare il changelog. + +### 5. Avvio e Operatività +Ora sei pronto. Avvia OpenCode nella root del progetto: + +```bash +opencode +``` diff --git a/docs/1.setup_procedure/agents.md b/docs/1.setup_procedure/agents.md new file mode 100644 index 0000000..c1099c5 --- /dev/null +++ b/docs/1.setup_procedure/agents.md @@ -0,0 +1,51 @@ +LogWhisperer AI - Agent Rules + +Metodologia di Lavoro + +Spec-Driven: Prima di ogni modifica, l'agente deve aggiornare o confermare le specifiche in docs/. + +TDD (Test-Driven Development): Non scrivere logica senza un test fallimentare preventivo. Usa pytest. + +Sacchi Method: Applica sempre "Safety first, little often, double check". Verifica i permessi prima di eseguire comandi bash distruttivi. + +Git Workflow: + +Usa Conventional Commits (es. feat:, fix:, docs:, test:). + +Ogni commit deve essere atomico. + +Aggiorna CHANGELOG.md seguendo lo standard Common Changelog. + +Definizione dei Ruoli (Sub-agents) + +@tech-lead: Responsabile dell'architettura e della validazione delle specifiche (PRD). + +@developer: Scrive il codice Python e lo script Bash seguendo i test. + +@qa-engineer: Scrive ed esegue i test, garantendo la copertura delle feature critiche. + + +### 3. Configurazione Tecnica (`opencode.json`) +Per gestire il progetto con Python e attivare le potenzialità agentiche, configura il file di impostazioni di OpenCode (solitamente in `~/.config/opencode/opencode.json` o localmente se supportato): + +Assicurati che i **Tools** siano abilitati per permettere all'agente di usare il terminale nel tuo `venv`. + + + +### 4. Uso delle Skills (Il potenziamento) +Per un risultato eccellente, useremo le **Skills**. Le skills sono playbook che OpenCode carica on-demand. Crea una cartella `.opencode/skills/` e aggiungi questi file: + +- **python_expert.md**: Istruzioni su come gestire il venv, installare dipendenze con `pip` e seguire il PEP8. +- **tdd_workflow.md**: Una guida passo-passo che obbliga l'agente a: + 1. Creare il test. + 2. Eseguire il test (deve fallire). + 3. Scrivere il codice minimo. + 4. Rieseguire il test (deve passare). +- **git_standard.md**: Istruzioni rigide su come scrivere i messaggi di commit e aggiornare il changelog. + +### 5. Avvio e Operatività +Ora sei pronto. Avvia OpenCode nella root del progetto: + +```bash +opencode +``` diff --git a/docs/1.setup_procedure/setup.md b/docs/1.setup_procedure/setup.md new file mode 100644 index 0000000..ba01fe0 --- /dev/null +++ b/docs/1.setup_procedure/setup.md @@ -0,0 +1,35 @@ +Ottimo progetto. Per trasformare **LogWhisperer AI** in un prodotto reale in 4 giorni usando **OpenCode.ai**, dobbiamo configurare l'ambiente in modo che l'agente non si limiti a scrivere codice, ma agisca come un vero team di sviluppo (Tech Lead + Developer + QA). + +Ecco come configurare OpenCode.ai seguendo la tua metodologia **Spec-Driven**, **TDD** e il **Metodo Sacchi**. + +### 1. Preparazione dell'Ambiente (Python & Git) +Prima di lanciare OpenCode, prepara il terreno nel tuo terminale: + +```bash +# Crea e attiva il venv +python3 -m venv venv +source venv/bin/activate + +# Inizializza Git se non lo hai già fatto +git init + +# Crea la struttura iniziale per i test (TDD) +mkdir tests +touch tests/__init__.py +``` + +### 2. Configurazione dell'Intelligenza Collettiva (AGENTS.md) +OpenCode leggerà questo file per capire "chi deve essere" e "come deve lavorare". Crea un file `AGENTS.md` nella root del progetto: + + +http://googleusercontent.com/immersive_entry_chip/0 + +#### Primo comando suggerito (Sprint 1): +Digita questo prompt per attivare il flusso di lavoro che hai descritto: + +> "@tech-lead, analizza `docs/prd.md` e `docs/prompt.project.manager.md`. Inizia lo **Sprint 1** definendo la specifica tecnica per lo script Bash di Log Ingestion (Feature 1). Segui il workflow: definisci la specifica in `docs/specs/ingestion_script.md`, poi passa la palla a @qa-engineer per il primo test in Python (usando `subprocess` per testare lo script bash) e infine a @developer per l'implementazione. Usa il venv attivo e segui i Conventional Commits." + +### Cosa fare se OpenCode non risponde come previsto? +Se noti che l'agente salta la fase di test o dimentica i commit convenzionali, resetta il contesto con `/undo` o forza la rilettura delle regole con `/init`. + +**Se hai bisogno di una configurazione specifica per un provider (es. collegare un modello locale come LLaMA 3 per risparmiare sui token della fase di test), chiedimi pure.** In caso contrario, procedi con l'inizializzazione del file `AGENTS.md` come mostrato sopra. diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29