From d9273203588849a0505ffa929147d78c769b5bbe Mon Sep 17 00:00:00 2001 From: agent-surfer Date: Tue, 21 Apr 2026 00:18:32 +0000 Subject: [PATCH] [agent:surfer] ajout standard AI-ready : AI_CONTEXT, CLAUDE, .gitea workflow --- .claude/settings.json | 22 +++++++++++++ .gitea/AGENTS.md | 24 ++++++++++++++ .gitea/WORKFLOW.md | 54 ++++++++++++++++++++++++++++++ .gitea/pull_request_template.md | 25 ++++++++++++++ AI_CONTEXT.md | 58 +++++++++++++++++++++++++++++++++ CLAUDE.md | 37 +++++++++++++++++++++ 6 files changed, 220 insertions(+) create mode 100644 .claude/settings.json create mode 100644 .gitea/AGENTS.md create mode 100644 .gitea/WORKFLOW.md create mode 100644 .gitea/pull_request_template.md create mode 100644 AI_CONTEXT.md create mode 100644 CLAUDE.md diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..6966336 --- /dev/null +++ b/.claude/settings.json @@ -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:*)" + ] + } +} diff --git a/.gitea/AGENTS.md b/.gitea/AGENTS.md new file mode 100644 index 0000000..af99234 --- /dev/null +++ b/.gitea/AGENTS.md @@ -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 +``` + +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. diff --git a/.gitea/WORKFLOW.md b/.gitea/WORKFLOW.md new file mode 100644 index 0000000..7a7b0bd --- /dev/null +++ b/.gitea/WORKFLOW.md @@ -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//` | Nouvelle fonctionnalité | Agent concerné | +| `fix//` | Correction de bug | Agent concerné | +| `chore//` | Maintenance, docs, config | Agent concerné | + +**Jamais de push direct sur `main` ou `develop`.** Toujours via Pull Request. + +## Format de commit + +``` +[agent:] +``` + +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:] ` +- 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:` + +## 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-" +git config user.email "agent-@labo.local" +``` + +Token d'authentification : voir `~/.agent-gitea-tokens` sur `.82`, ou demander via `gitea-agent-setup.sh`. diff --git a/.gitea/pull_request_template.md b/.gitea/pull_request_template.md new file mode 100644 index 0000000..2f3617f --- /dev/null +++ b/.gitea/pull_request_template.md @@ -0,0 +1,25 @@ +## Résumé + + + +## Type de changement + +- [ ] `feat` — nouvelle fonctionnalité +- [ ] `fix` — correction de bug +- [ ] `chore` — maintenance / docs / config +- [ ] `refactor` — refactoring sans changement de comportement + +## Agent / Auteur + +`agent:` + +## Checklist + +- [ ] Code testé localement +- [ ] Docs mises à jour si besoin (`docs/`) +- [ ] Pas de secret en clair dans le diff +- [ ] Commit messages au format `[agent:] verbe description` + +## Contexte + + diff --git a/AI_CONTEXT.md b/AI_CONTEXT.md new file mode 100644 index 0000000..f6b1e01 --- /dev/null +++ b/AI_CONTEXT.md @@ -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-" +git config user.email "agent-@labo.local" + +# 2. Lire les règles workflow +cat .gitea/WORKFLOW.md + +# 3. Créer ta branche de travail +git checkout -b feat/agent-/ + +# 4. Push et ouvrir une PR vers develop +git push origin feat/agent-/ +``` + +Token Gitea : voir `~/.agent-gitea-tokens` sur `.82` ou demander à Flag. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..ab111e1 --- /dev/null +++ b/CLAUDE.md @@ -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/` +- 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