Update antfarm, dashboard, memory +1 more (+20 ~12 -6)
This commit is contained in:
385
memory/kb/tools/antfarm-flux-complet.md
Normal file
385
memory/kb/tools/antfarm-flux-complet.md
Normal file
@@ -0,0 +1,385 @@
|
||||
# Antfarm - Flux Complet cu Discovery & PRD
|
||||
|
||||
**Data:** 2026-02-10
|
||||
**Inspirat din:** ralph skill /prd command
|
||||
|
||||
---
|
||||
|
||||
## Problema cu Fluxul Vechi
|
||||
|
||||
❌ **Ce nu a funcționat:**
|
||||
- Am lansat direct `antfarm workflow run` cu prompt vag
|
||||
- Planner (Sonnet) a interpretat minimal → feature incomplet
|
||||
- Test files în dashboard/ → aglomerare
|
||||
- Fără întrebări UX → implementare basic fără customizare
|
||||
|
||||
---
|
||||
|
||||
## Fluxul NOU (80/20)
|
||||
|
||||
### FAZA 1: Discovery cu Întrebări (Echo, Opus)
|
||||
|
||||
**Când primesc request pentru feature nou:**
|
||||
|
||||
1. **Detectez context** (proiect existent vs nou)
|
||||
- Citesc ~/clawd/dashboard/ pentru stack actual
|
||||
- Identific patterns existente (common.css, api.py, etc.)
|
||||
|
||||
2. **Pun întrebări adaptive** (ca ralph /prd):
|
||||
|
||||
**Pentru FEATURE în proiect existent (dashboard):**
|
||||
|
||||
```
|
||||
Întrebarea 1: Ce funcționalitate nouă vrei?
|
||||
- Descrie în 2-3 propoziții
|
||||
|
||||
Întrebarea 2: Ce tip de feature?
|
||||
- Funcționalitate nouă
|
||||
- Îmbunătățire UX
|
||||
- Integrare externă
|
||||
|
||||
Întrebarea 3: Implică UI?
|
||||
- Da - componente noi (pagină separată)
|
||||
- Da - secțiune în index.html
|
||||
- Nu - doar backend
|
||||
|
||||
Întrebarea 4: Modificări DB?
|
||||
- Da - fișier JSON nou
|
||||
- Da - câmpuri noi în JSON existent
|
||||
- Nu
|
||||
|
||||
Întrebarea 5 (CRITICĂ pentru UX): Cum arată UI-ul?
|
||||
- Layout: listă simplă / cards / table / kanban
|
||||
- Features: create, edit, delete, filter, sort, export
|
||||
- Customizare: frecvență, categorii, culori, icoane
|
||||
- Mobile responsive: da/nu
|
||||
|
||||
Întrebarea 6: Acceptance criteria?
|
||||
- Ce trebuie să funcționeze exact?
|
||||
- Cum testăm că e gata?
|
||||
|
||||
Întrebarea 7: Structură fișiere?
|
||||
- Tests în dashboard/tests/ sau tests/
|
||||
- Assets separate? (imagini, icons)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### FAZA 2: Generez PRD Complet (Echo, Opus)
|
||||
|
||||
Bazat pe răspunsuri, creez:
|
||||
|
||||
**`~/clawd/tasks/prd-FEATURE-NAME.md`**
|
||||
|
||||
```markdown
|
||||
# PRD: [Feature Name]
|
||||
|
||||
## 1. Context Tehnic
|
||||
- **Proiect:** Echo Dashboard
|
||||
- **Stack:** Python (api.py), HTML+Vanilla JS, common.css
|
||||
- **Storage:** JSON files (tasks.json, todos.json, etc.)
|
||||
- **Patterns existente:**
|
||||
- API endpoints în api.py (handle_X_get, handle_X_post)
|
||||
- Frontend: fetch('/echo/api/X'), common.css pentru styling
|
||||
- Mobile: swipe-nav.js pentru navigare touch
|
||||
|
||||
## 2. Obiective
|
||||
### Obiectiv Principal
|
||||
[Din răspunsul utilizatorului]
|
||||
|
||||
### Metrici Succes
|
||||
[Din acceptance criteria]
|
||||
|
||||
## 3. User Stories (Ordonate Dependencies-First)
|
||||
|
||||
### US-001: Schema și Storage
|
||||
**Ca** developer
|
||||
**Vreau** să definesc structura de date
|
||||
**Pentru că** backend și frontend depind de ea
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- [ ] Fișier FEATURE.json cu schema corectă
|
||||
- [ ] Funcții helper pentru streak/calculation logic
|
||||
- [ ] Documentație format data în cod
|
||||
|
||||
### US-002: Backend API - GET
|
||||
**Ca** frontend
|
||||
**Vreau** să pot citi datele
|
||||
**Pentru că** trebuie să afișez lista
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- [ ] Endpoint GET /api/FEATURE în api.py
|
||||
- [ ] Returnează JSON cu toate intrările
|
||||
- [ ] Tests pentru GET în dashboard/tests/test_FEATURE_api.py
|
||||
|
||||
### US-003: Backend API - POST Create
|
||||
...
|
||||
|
||||
### US-004: Backend API - PUT Edit
|
||||
...
|
||||
|
||||
### US-005: Backend API - DELETE
|
||||
...
|
||||
|
||||
### US-006: Frontend - Structure
|
||||
**Ca** user
|
||||
**Vreau** o pagină dedicată pentru FEATURE
|
||||
**Pentru că** vreau acces rapid
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- [ ] FEATURE.html creat în dashboard/
|
||||
- [ ] Link în index.html navigation
|
||||
- [ ] Layout responsive (mobile + desktop)
|
||||
- [ ] Tests în dashboard/tests/test_FEATURE_ui.py
|
||||
|
||||
### US-007: Frontend - Create Form
|
||||
...
|
||||
|
||||
### US-008: Frontend - Edit Modal
|
||||
...
|
||||
|
||||
### US-009: Frontend - Delete cu Confirmare
|
||||
...
|
||||
|
||||
### US-010: Frontend - Customizare (frecvență, zile, categorii, etc.)
|
||||
...
|
||||
|
||||
### US-011: Integration Tests
|
||||
...
|
||||
|
||||
## 4. Structură Fișiere
|
||||
|
||||
```
|
||||
~/clawd/dashboard/
|
||||
├── FEATURE.html # UI principal
|
||||
├── FEATURE.json # Data storage
|
||||
├── api.py # Backend (modificat)
|
||||
├── tests/ # Tests separate (NU în root dashboard/)
|
||||
│ ├── test_FEATURE_api.py
|
||||
│ ├── test_FEATURE_ui.py
|
||||
│ └── test_FEATURE_integration.py
|
||||
└── index.html # Link adăugat în nav
|
||||
```
|
||||
|
||||
## 5. UX Detalii
|
||||
|
||||
[Din răspunsul la întrebarea 5]
|
||||
|
||||
**Layout:**
|
||||
- Cards cu shadow și hover effects (ca în common.css pattern)
|
||||
|
||||
**Create/Edit:**
|
||||
- Modal pentru create (buton fix bottom-right)
|
||||
- Inline edit sau modal pentru modificare
|
||||
- Fields: nume, frecvență dropdown, zile săptămână checkboxes, etc.
|
||||
|
||||
**Customizare:**
|
||||
- Frecvență: zilnic / săptămânal / lunar / custom (X zile)
|
||||
- Zile săptămână: checkboxes pentru weekly habits
|
||||
- Categorii: work, health, growth, etc.
|
||||
- Culori: picker pentru identificare vizuală
|
||||
- Icoane: librarie icons (lucide) pentru personalizare
|
||||
|
||||
**Mobile:**
|
||||
- Swipe pentru delete/edit
|
||||
- Touch-friendly buttons (min 44px)
|
||||
|
||||
## 6. Non-Goals
|
||||
|
||||
❌ NU facem:
|
||||
- Sincronizare cloud / multi-device
|
||||
- Gamification advanced (badges, levels)
|
||||
- Social features (share, leaderboard)
|
||||
- Export/import (poate în viitor)
|
||||
|
||||
## 7. Considerații Tehnice
|
||||
|
||||
### Backend (api.py)
|
||||
- Pattern existent: `handle_X_get`, `handle_X_post`, etc.
|
||||
- Storage în JSON cu `lastUpdated` timestamp
|
||||
- Validare input (max lengths, format checks)
|
||||
|
||||
### Frontend
|
||||
- common.css pentru styling consistent
|
||||
- Lucide icons pentru UI
|
||||
- Fetch API cu error handling
|
||||
- Toast notifications pentru success/error
|
||||
|
||||
### Tests
|
||||
- **Locație:** `dashboard/tests/` (NU în root dashboard/)
|
||||
- **Coverage:** API endpoints + UI behaviors + integration
|
||||
- **Run:** pytest pentru Python, manual pentru UI (sau Playwright dacă disponibil)
|
||||
|
||||
## 8. Acceptance Criteria Finale
|
||||
|
||||
- [ ] Toate user stories implementate
|
||||
- [ ] Tests pass (pytest dashboard/tests/)
|
||||
- [ ] UI responsive (mobile + desktop)
|
||||
- [ ] No console errors
|
||||
- [ ] Git commits clean cu mesaje descriptive
|
||||
- [ ] PR creat pentru review
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### FAZA 3: Configurez Opus pentru Planner
|
||||
|
||||
**Înainte de a lansa workflow-ul, configurez Opus pentru planner:**
|
||||
|
||||
```bash
|
||||
# Găsesc job ID pentru planner
|
||||
cron action=list | grep "antfarm/feature-dev/planner"
|
||||
|
||||
# Actualizez cu model Opus
|
||||
cron action=update jobId="<PLANNER_JOB_ID>" patch='{"payload": {"model": "opus"}}'
|
||||
```
|
||||
|
||||
**Verificare:**
|
||||
```bash
|
||||
cron action=list | grep -A 5 "antfarm/feature-dev/planner"
|
||||
# Ar trebui să văd "model": "opus" în payload
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### FAZA 4: Lansez Workflow cu PRD ca Input
|
||||
|
||||
**Task string pentru antfarm include PRD-ul complet:**
|
||||
|
||||
```bash
|
||||
cd ~/clawd
|
||||
|
||||
antfarm workflow run feature-dev "$(cat <<'EOF'
|
||||
FEATURE: Habit Tracker
|
||||
|
||||
PRD LOCATION: tasks/prd-habit-tracker.md
|
||||
|
||||
CONTEXT:
|
||||
- Proiect existent: Echo Dashboard (Python backend + HTML/JS frontend)
|
||||
- Storage: JSON files
|
||||
- Patterns: common.css, api.py endpoints, swipe-nav.js
|
||||
|
||||
REQUIREMENTS (vezi PRD complet în tasks/ pentru detalii):
|
||||
|
||||
1. Backend API (api.py):
|
||||
- GET /api/habits - returnează toate habits
|
||||
- POST /api/habits - creează habit nou cu validare
|
||||
- PUT /api/habits/{id} - editează habit existent
|
||||
- DELETE /api/habits/{id} - șterge habit
|
||||
- Funcții: calculate_streak(completions, frequency)
|
||||
- Storage: habits.json
|
||||
|
||||
2. Frontend (habits.html):
|
||||
- Layout: Cards cu grid responsive
|
||||
- Create: Modal cu form (nume, frecvență, zile, categorie, culoare, icon)
|
||||
- Edit: Modal sau inline edit
|
||||
- Delete: Confirmare dialog
|
||||
- Check-in: Click pentru bifaretoday
|
||||
- Display: Streak counter, last check date, progress visualization
|
||||
|
||||
3. Customizare:
|
||||
- Frecvență: zilnic / săptămânal / lunar / custom (X zile)
|
||||
- Zile săptămână: checkboxes pentru weekly habits (L, Ma, Mi, J, V, S, D)
|
||||
- Categorii: work, health, growth, personal (cu culori)
|
||||
- Icoane: lucide icons picker
|
||||
- Culori: color picker pentru identificare vizuală
|
||||
|
||||
4. Tests:
|
||||
- Locație: dashboard/tests/ (NU în dashboard/ root!)
|
||||
- Coverage: API, UI, integration
|
||||
- Framework: pytest pentru Python
|
||||
|
||||
5. Integration:
|
||||
- Link în index.html navigation
|
||||
- Toast notifications (success/error)
|
||||
- Mobile responsive (swipe gestures)
|
||||
|
||||
ACCEPTANCE CRITERIA (COMPLETE):
|
||||
- [ ] Pot crea habit cu toate detaliile (nume, frecvență custom, zile, categorie, culoare, icon)
|
||||
- [ ] Pot edita habit existent (toate câmpurile)
|
||||
- [ ] Pot șterge habit cu confirmare
|
||||
- [ ] Pot bifa habit pentru azi (once per day max)
|
||||
- [ ] Streak calculation corect (zilnic: consecutive days, săptămânal: consecutive weeks)
|
||||
- [ ] UI responsive (mobile + desktop)
|
||||
- [ ] Tests în dashboard/tests/ (NU în dashboard/)
|
||||
- [ ] No console errors
|
||||
- [ ] API paths corecte (/echo/api/habits)
|
||||
- [ ] Git commits clean
|
||||
|
||||
STORY SIZING:
|
||||
- Fiecare story trebuie să fie atomică (1 context window)
|
||||
- Dependencies-first: schema → backend → frontend → integration
|
||||
- Include typecheck și tests în fiecare story
|
||||
|
||||
NON-GOALS:
|
||||
- Cloud sync / multi-device
|
||||
- Advanced gamification
|
||||
- Social features
|
||||
- Export/import
|
||||
|
||||
Vezi tasks/prd-habit-tracker.md pentru detalii complete UX și tehnice.
|
||||
EOF
|
||||
)"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### FAZA 5: Monitor și Ajustări
|
||||
|
||||
**Monitor progres:**
|
||||
```bash
|
||||
antfarm workflow status <run-id>
|
||||
antfarm logs 50
|
||||
```
|
||||
|
||||
**Dacă planner-ul generează stories prea mari:**
|
||||
- Opresc run-ul
|
||||
- Editez PRD pentru a clari sizing
|
||||
- Relanșez cu PRD actualizat
|
||||
|
||||
**Dacă developer-ul face greșeli (ex: test files în locul greșit):**
|
||||
- Verifier-ul ar trebui să prindă asta (acceptance criteria specifică locația)
|
||||
- Dacă nu, adaug în PRD mai explicit: "Tests MUST be in dashboard/tests/"
|
||||
|
||||
---
|
||||
|
||||
## Rezumat Flux pentru Echo
|
||||
|
||||
**Când primesc "Vreau să construiesc X în dashboard":**
|
||||
|
||||
1. ✅ **Discovery:** Pun întrebări adaptive (5-7 întrebări pentru feature în proiect existent)
|
||||
2. ✅ **PRD:** Generez tasks/prd-X.md cu user stories complete, UX detaliat, acceptance criteria specifice
|
||||
3. ✅ **Config Opus:** Actualizez planner job cu model="opus"
|
||||
4. ✅ **Launch:** antfarm workflow run cu PRD complet ca input
|
||||
5. ✅ **Monitor:** Verific progres, intervin doar dacă escalation
|
||||
|
||||
**NU mai fac:**
|
||||
- ❌ Launch direct cu prompt vag
|
||||
- ❌ Presupun ce vrea utilizatorul fără întrebări
|
||||
- ❌ Las planner-ul (Sonnet) să interpreteze minimal
|
||||
- ❌ Accept test files în locuri greșite
|
||||
|
||||
---
|
||||
|
||||
## Checklist pentru Mine (Echo)
|
||||
|
||||
**Înainte de ORICE antfarm workflow run:**
|
||||
|
||||
- [ ] Am pus întrebări despre UX/features? (5-7 întrebări)
|
||||
- [ ] Am generat PRD complet în tasks/?
|
||||
- [ ] PRD-ul include acceptance criteria specifice?
|
||||
- [ ] PRD-ul specifică structură fișiere (ex: tests/ location)?
|
||||
- [ ] Am configurat Opus pentru planner?
|
||||
- [ ] Task string include link la PRD + detalii complete?
|
||||
- [ ] Marius a aprobat PRD-ul înainte de launch?
|
||||
|
||||
**Dacă răspuns = NU la oricare → STOP și completez înainte de launch.**
|
||||
|
||||
---
|
||||
|
||||
**REGULA DE AUR:**
|
||||
|
||||
> **80% din timpul unui proiect bun e în discovery și planning.**
|
||||
> **Antfarm execută rapid doar dacă știe EXACT ce să construiască.**
|
||||
> **Prompt vag = implementare minimalistă.**
|
||||
> **PRD complet = feature complet.**
|
||||
Reference in New Issue
Block a user