Skip to content

Commit 7567a9a

Browse files
committed
Add AGENTS.md with instructions for AI coding agents
1 parent 9bf8c59 commit 7567a9a

1 file changed

Lines changed: 82 additions & 0 deletions

File tree

‎AGENTS.md‎

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# AGENT.md
2+
3+
Instructions pour les agents IA travaillant sur ce projet.
4+
5+
## Règle fondamentale : jamais de PHP/Node/Composer sur la machine hôte
6+
7+
Tout passe par le container `builder`, via Castor :
8+
9+
```bash
10+
castor builder -- bin/console cache:clear # commande ponctuelle
11+
castor builder # shell interactif
12+
```
13+
14+
Prérequis hôte uniquement : Docker, Bash, Castor.
15+
16+
## Commandes essentielles
17+
18+
```bash
19+
castor start # build + install + up + migrate
20+
castor stop # arrêter la stack
21+
castor logs [--service=service] # logs (frontend, postgres, ...)
22+
castor app:install # composer install + yarn/npm ci + importmap + qa:install
23+
castor app:db:migrate # migrations Doctrine (alias: castor migrate)
24+
castor app:db:fixtures # fixtures (alias: castor fixtures)
25+
castor postgres # psql interactif (user/db = app/app)
26+
```
27+
28+
Docker / workers :
29+
30+
```bash
31+
castor docker:build [--service=service]
32+
castor docker:up [--service=service]
33+
castor start-workers # démarre les workers (profil worker)
34+
castor stop-workers
35+
```
36+
37+
## Contextes Castor
38+
39+
Le contexte modifie l'environnement d'exécution des tâches (`APP_ENV`,
40+
fichiers compose, etc.) :
41+
42+
```bash
43+
castor --context=test qa:phpunit # APP_ENV=test, pour les tests
44+
castor --context=ci ... # comme test, adapté CI
45+
```
46+
47+
Lancer toujours les tests et tout ce qui touche à la base de données avec
48+
`--context=test`. Sans option, c'est le contexte `default` qui s'applique.
49+
50+
## Stack
51+
52+
- Symfony dans `application/` (docroot = `application/public`)
53+
- PostgreSQL 16 : user/pass/db = `app`/`app`, DATABASE_URL déjà configurée
54+
- nginx + php-fpm (service `frontend`), router Traefik, HTTPS sur `<root_domain>` (voir `castor.php`)
55+
- Node/yarn uniquement dans le container `builder`
56+
57+
## Qualité — avant de considérer une tâche terminée
58+
59+
Les outils tournent dans le builder.
60+
61+
```bash
62+
castor qa # tout : cs + phpstan + twig-cs + phpunit
63+
castor qa:cs [--dry-run] # PHP-CS-Fixer (.php-cs-fixer.php)
64+
castor qa:phpstan [-b] # PHPStan niveau 8 (phpstan.neon)
65+
castor qa:twig-cs # Twig-CS-Fixer
66+
castor qa:phpunit # PHPUnit (si présent dans application/)
67+
```
68+
69+
Après toute modification de code PHP/Twig : `castor qa:cs --dry-run`,
70+
`castor qa:phpstan`, puis `castor qa:phpunit`.
71+
72+
## Conventions
73+
74+
1. **Ne pas invoquer `docker compose` à la main** : utiliser les fonctions
75+
`docker_compose()` / `docker_compose_run()` de `.castor/docker.php`
76+
pour écrire de nouvelles tâches.
77+
2. **Ne pas hardcoder de ports ni de noms de projet** : le support git worktree
78+
isole automatiquement projet/volumes/ports. Utiliser `variable('project_name')` etc.
79+
3. Nouvelle tâche récurrente ? Tâche Castor (`castor.php` ou `.castor/*.php`),
80+
pas script shell.
81+
4. Les dépendances des outils QA vivent dans `tools/<outil>/composer.json`
82+
(pas dans `application/composer.json`).

0 commit comments

Comments
 (0)