[agent:surfer] ajout standard AI-ready : AI_CONTEXT, CLAUDE, .gitea workflow

This commit is contained in:
2026-04-21 00:18:32 +00:00
parent 26f9609b53
commit d927320358
6 changed files with 220 additions and 0 deletions

22
.claude/settings.json Normal file
View File

@@ -0,0 +1,22 @@
{
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(make:*)",
"Bash(python3:*)",
"Bash(pip:*)",
"Bash(ls:*)",
"Bash(cat:*)",
"Read(*)",
"Edit(*)",
"Write(*)",
"Glob(*)",
"Grep(*)"
],
"deny": [
"Bash(rm -rf:*)",
"Bash(curl *password*:*)",
"Bash(ssh:*)"
]
}
}

24
.gitea/AGENTS.md Normal file
View File

@@ -0,0 +1,24 @@
# AGENTS — Identités et permissions
## Comptes Gitea actifs
| Username | Rôle | Périmètre |
|---|---|---|
| `floppyrj45` | Admin / Owner | Tous les repos, valide les PR sur `main` |
| `agent-surfer` | Agent principal OpenClaw | Tous les repos du Labo |
| `agent-watcher` | Gitea watcher / CI | Lecture + commentaires issues |
| `agent-claude-cli` | Claude Code CLI local | Repos assignés par Flag |
| `agent-codex` | Codex / OpenCode | Repos assignés par Flag |
## Créer un nouveau compte agent
```bash
./scripts/gitea-agent-setup.sh <nom-agent>
```
Le script crée le compte Gitea, génère un token, et l'ajoute à `~/.agent-gitea-tokens`.
## Règle de moindre privilège
Un agent ne touche qu'aux repos explicitement listés dans `AI_CONTEXT.md` de chaque projet.
Il ne lit pas, ne fork pas, ne clone pas les repos hors de son périmètre.

54
.gitea/WORKFLOW.md Normal file
View File

@@ -0,0 +1,54 @@
# WORKFLOW — Règles Git multi-agent
## Branches
| Branche | Usage | Qui push |
|---|---|---|
| `main` | Production stable | Flag uniquement (via PR) |
| `develop` | Intégration continue | Agents via PR |
| `feat/<agent>/<desc>` | Nouvelle fonctionnalité | Agent concerné |
| `fix/<agent>/<desc>` | Correction de bug | Agent concerné |
| `chore/<agent>/<desc>` | Maintenance, docs, config | Agent concerné |
**Jamais de push direct sur `main` ou `develop`.** Toujours via Pull Request.
## Format de commit
```
[agent:<nom>] <verbe> <description courte>
```
Exemples :
- `[agent:surfer] ajout endpoint /mission pour dashboard`
- `[agent:claude-cli] fix calcul distance waypoints`
- `[flag] merge feat/surfer/telemetry-endpoint`
Le nom d'agent doit correspondre à un compte Gitea listé dans `AGENTS.md`.
## Pull Requests
- Titre : `[agent:<nom>] <description>`
- Body : utiliser le template `.gitea/pull_request_template.md`
- Reviewer : `floppyrj45` (Flag) pour toute PR vers `main`
- PR vers `develop` : peut être mergée par un autre agent si les checks passent
## Issues
- Ouvrir une issue avant tout travail non trivial
- Assigner l'agent qui prend en charge
- Labels : `bug`, `feat`, `chore`, `blocked`, `agent:<nom>`
## Protection de branche
- `main` : PR obligatoire, 1 approbation humaine minimum
- `develop` : PR obligatoire, checks CI requis
## Identité Git locale (agents)
Chaque agent configure :
```bash
git config user.name "agent-<nom>"
git config user.email "agent-<nom>@labo.local"
```
Token d'authentification : voir `~/.agent-gitea-tokens` sur `.82`, ou demander via `gitea-agent-setup.sh`.

View File

@@ -0,0 +1,25 @@
## Résumé
<!-- Une phrase sur ce que cette PR fait -->
## Type de changement
- [ ] `feat` — nouvelle fonctionnalité
- [ ] `fix` — correction de bug
- [ ] `chore` — maintenance / docs / config
- [ ] `refactor` — refactoring sans changement de comportement
## Agent / Auteur
`agent:` <!-- ex: surfer, claude-cli, flag -->
## Checklist
- [ ] Code testé localement
- [ ] Docs mises à jour si besoin (`docs/`)
- [ ] Pas de secret en clair dans le diff
- [ ] Commit messages au format `[agent:<nom>] verbe description`
## Contexte
<!-- Lien vers l'issue, la tâche, ou le livrable concerné -->

58
AI_CONTEXT.md Normal file
View File

@@ -0,0 +1,58 @@
# AI_CONTEXT.md — Handoff agent
> **Premier fichier à lire.** Ce fichier permet à n'importe quel agent IA de reprendre le projet sans briefing humain.
## Projet
| Champ | Valeur |
|---|---|
| **Nom** | dauphincraft |
| **Description** | DauphinCraft — Minecraft-like sous-marin Godot |
| **Statut** | `wip` / `active` / `paused` / `archived` |
| **Owner humain** | Flag (`floppyrj45`) |
| **Agent principal** | `agent-surfer` |
## Ressources
| Ressource | URL / Chemin |
|---|---|
| **Gitea** | `http://192.168.0.82:3000/floppyrj45/dauphincraft` |
| **Nextcloud** | `/mnt/nas-nextcloud/dauphincraft/` (sur `.82`) |
| **Docs Sphinx** | `http://192.168.0.82/dauphincraft-docs/` |
| **Channel Discord** | `#PROJECT_CHANNEL` |
## Architecture courte
*À compléter — 5-10 lignes max. Stack, composants principaux, ports exposés.*
## État actuel
*Résumé de l'état du projet au moment de la dernière mise à jour de ce fichier.*
## Tâches ouvertes
- [ ] tâche 1
- [ ] tâche 2
## Décisions clés
*Décisions d'architecture ou de design importantes à connaître.*
## Comment démarrer (agent)
```bash
# 1. Configurer ton identité Git
git config user.name "agent-<ton-nom>"
git config user.email "agent-<ton-nom>@labo.local"
# 2. Lire les règles workflow
cat .gitea/WORKFLOW.md
# 3. Créer ta branche de travail
git checkout -b feat/agent-<ton-nom>/<description>
# 4. Push et ouvrir une PR vers develop
git push origin feat/agent-<ton-nom>/<description>
```
Token Gitea : voir `~/.agent-gitea-tokens` sur `.82` ou demander à Flag.

37
CLAUDE.md Normal file
View File

@@ -0,0 +1,37 @@
# CLAUDE.md — Instructions pour agents Claude
## Contexte projet
Voir `AI_CONTEXT.md` pour le contexte complet.
## Règles de développement
- Lire `.gitea/WORKFLOW.md` avant tout commit
- Branche de travail : `feat/agent-claude-cli/<description>`
- Commit format : `[agent:claude-cli] verbe description`
- Jamais de push direct sur `main` ou `develop`
- Jamais de secret en clair dans le code ou les commits
## Stack technique
*À compléter selon le projet.*
## Commandes utiles
```bash
# Tests
# make test
# Docs
make -C docs html
# Linter
# make lint
```
## Périmètre autorisé
- Modifier le code dans ce repo uniquement
- Ouvrir des PRs vers `develop`
- Créer des issues si bloqué
- Ne pas toucher aux secrets, credentials, ou config infra