Font canònica i agnòstica del flux de tres passos que obliga l’agent a demanar aprovació humana abans d’implementar. Garanteix disseny iteratiu i control de qualitat.
Qualsevol motor (Claude Code, Codex, Cursor…) segueix estes instruccions. Els fitxers específics de motor (.claude/commands/opsx-*.md, .codex/skills/openspec/) són adaptadors prims que només afigen el seu glue i apunten ací (vegeu tetris.md § adaptador prim).
Requeriment inicial
│
▼
propose ← Agent analitza, genera spec, s'atura
│
[Revisió humana] ← Tu aproves, rebutges o ajustes la spec
│
▼
apply ← Agent implementa estrictament la spec aprovada
│
[Revisió humana] ← Tu revises el codi generat
│
▼
archive ← Agent valida tests, actualitza spec, suggereix commit
│
[Commit humà] ← Tu fas el commit i el push
Analitza el requeriment, genera un esborrany de spec i s’atura per a aprovació humana. No escriu cap línia de codi.
AGENTS.md i el doc de domini corresponent de docs/agents/.specs/<domini>.md, llig-lo per a no duplicar escenaris.Status: awaiting_approval.Format d’eixida:
## Spec proposada: <títol>
### Escenaris
**Escenari N: <títol>**
Given ...
When ...
Then ...
### Regles de negoci
- ...
### Fitxers afectats
- `ruta/fitxer.php` — motiu
### Riscos
- ...
Status: awaiting_approval
Implementa estrictament la spec aprovada. No afig res fora del que descriu.
AGENTS.md complet.specs/<domini>.md (o l’esborrany aprovat per l’usuari).Status: approved (o confirmació explícita de l’usuari). Si no: retorna Status: need_input — falta spec aprovada.docs/agents/conventions.md; afig PHPDoc a classes/mètodes nous; text visible en Valencià.tests/Feature/ o tests/Browser/).Status: ready_for_review.Verificació prèvia (abans d’escriure codi):
Valida que tot és correcte, actualitza la spec permanent i prepara el commit.
php artisan test --filter=<NomTest> o equivalent Docker). Si fallen: reporta quins i atura’t amb Status: tests_failing.specs/<domini>.md amb els escenaris nous/modificats i marca’ls amb ✅.AGENTS.md i docs/agents/ no necessiten actualització pels canvis.Status: ready_to_commit.Checklist de tancament:
specs/<domini>.md actualitzat (escenaris marcats ✅)[ADD]/[MOD]/[FIX] i referència #issueFormat d’eixida:
## Resum de la implementació
### Fitxers modificats
- `ruta/fitxer.php` — descripció del canvi
### Tests
- `tests/Feature/NomTest.php::test_nom` ✅
### Spec actualitzada
- `specs/<domini>.md` — escenaris N, M marcats ✅
### Missatge de commit suggerit
[ADD] <descripció> #<issue>
Status: ready_to_commit
archive, el flux torna a apply (no s’arxiva codi trencat)./opsx-propose <requeriment> → /opsx-apply → /opsx-archive (.claude/commands/opsx-*.md).openspec i demana cada pas (.codex/skills/openspec/).Les especificacions aprovades i implementades es guarden a specs/:
Quan archive completa un escenari, el marca amb ✅ al fitxer de spec corresponent.