From 5647f780b091a8add71193a8bad80578796da26a Mon Sep 17 00:00:00 2001 From: fy59 Date: Sat, 8 Aug 2026 09:56:45 +0200 Subject: [PATCH] chore(opencode): refine agent workflow and providers --- .opencode/agents/lardon-architect.md | 13 ++++- .opencode/agents/lardon-build-backup-fast.md | 41 +++++++++++++++ .opencode/agents/lardon-build-backup.md | 13 ++++- .opencode/agents/lardon-build.md | 13 ++++- .opencode/agents/lardon-concurrency.md | 13 ++++- .opencode/agents/lardon-docs.md | 4 ++ .opencode/agents/lardon-orchestrator.md | 53 ++++++++++++++++++++ .opencode/agents/lardon-review.md | 13 ++++- .opencode/opencode.json | 34 +++++++++++++ 9 files changed, 192 insertions(+), 5 deletions(-) create mode 100644 .opencode/agents/lardon-build-backup-fast.md diff --git a/.opencode/agents/lardon-architect.md b/.opencode/agents/lardon-architect.md index 71b1702..cd2cf75 100644 --- a/.opencode/agents/lardon-architect.md +++ b/.opencode/agents/lardon-architect.md @@ -4,7 +4,7 @@ mode: subagent model: opencode/deepseek-v4-flash-free temperature: 0.1 permission: - read: deny + read: allow glob: deny grep: deny edit: deny @@ -38,3 +38,14 @@ Interviens uniquement pour une API publique, le scheduler, le gouverneur, le DAG, la persistance ou une concurrence importante. Vérifie les frontières, les propriétés, durées de vie et invariants documentés. Ne modifie aucun fichier et rends au parent seulement conclusions, risques, fichiers et décisions. + +Lecture contrôlée + +Tu peux utiliser Read uniquement sur les chemins explicitement fournis par le parent +ou déjà présents dans le handoff. + +N utilise jamais Glob. +N utilise jamais Grep pour découvrir des fichiers. +Ne cherche jamais toi-même de nouveaux chemins. + +Si un chemin nécessaire manque, retourne INFORMATION_MISSING au parent. diff --git a/.opencode/agents/lardon-build-backup-fast.md b/.opencode/agents/lardon-build-backup-fast.md new file mode 100644 index 0000000..c0d195a --- /dev/null +++ b/.opencode/agents/lardon-build-backup-fast.md @@ -0,0 +1,41 @@ +--- +description: Backup rapide de build via GPT-OSS 20B Free +mode: subagent +model: openrouter/openai/gpt-oss-20b:free +temperature: 0.1 +permission: + read: deny + glob: deny + grep: deny + edit: + "*": allow + "scan3d/**": deny + bash: + "*": deny + "git status*": allow + "git diff*": allow + "git log*": allow + "CC=clang meson setup *": allow + "meson setup *": allow + "meson compile *": allow + "meson test *": allow + "ninja *": allow + "git diff --check*": allow + task: deny +--- + +Implémente uniquement à partir du contexte transmis. + +N'utilise jamais Read, Glob ou Grep. +N'explore jamais le dépôt. + +Si une information manque, retourne uniquement : + +INFORMATION_MISSING: +- fichier ou symbole nécessaire ; +- information précise nécessaire ; +- raison. + +Aucun commit. +Aucun push. +Ne modifie jamais scan3d/. diff --git a/.opencode/agents/lardon-build-backup.md b/.opencode/agents/lardon-build-backup.md index 2012761..f8684a2 100644 --- a/.opencode/agents/lardon-build-backup.md +++ b/.opencode/agents/lardon-build-backup.md @@ -4,7 +4,7 @@ mode: subagent model: opencode/deepseek-v4-flash-free temperature: 0.1 permission: - read: deny + read: allow glob: deny grep: deny edit: @@ -59,3 +59,14 @@ Lis d'abord `.opencode/work/current_ticket.md`, le diff et les seuls fichiers concernés. Reprends le working tree existant à la prochaine action sûre sans refaire l'analyse si le handoff suffit. Implémente minimalement, sans sous-agent, commit, push ni modèle payant. Mets à jour le handoff avec un résumé concis. + +Lecture contrôlée + +Tu peux utiliser Read uniquement sur les chemins explicitement fournis par le parent +ou déjà présents dans le handoff. + +N utilise jamais Glob. +N utilise jamais Grep pour découvrir des fichiers. +Ne cherche jamais toi-même de nouveaux chemins. + +Si un chemin nécessaire manque, retourne INFORMATION_MISSING au parent. diff --git a/.opencode/agents/lardon-build.md b/.opencode/agents/lardon-build.md index 745efe4..f7af05b 100644 --- a/.opencode/agents/lardon-build.md +++ b/.opencode/agents/lardon-build.md @@ -4,7 +4,7 @@ mode: subagent model: opencode/deepseek-v4-flash-free temperature: 0.1 permission: - read: deny + read: allow glob: deny grep: deny edit: @@ -61,3 +61,14 @@ l'exploration, ne lance aucun sous-agent et préserve le working tree existant. Tu es l'unique auteur des sources pendant ta phase. Mets à jour le handoff avec les changements et erreurs utiles, sans longs logs. Aucun commit, push ou modèle payant. + +Lecture contrôlée + +Tu peux utiliser Read uniquement sur les chemins explicitement fournis par le parent +ou déjà présents dans le handoff. + +N utilise jamais Glob. +N utilise jamais Grep pour découvrir des fichiers. +Ne cherche jamais toi-même de nouveaux chemins. + +Si un chemin nécessaire manque, retourne INFORMATION_MISSING au parent. diff --git a/.opencode/agents/lardon-concurrency.md b/.opencode/agents/lardon-concurrency.md index 9fc4683..9853854 100644 --- a/.opencode/agents/lardon-concurrency.md +++ b/.opencode/agents/lardon-concurrency.md @@ -4,7 +4,7 @@ mode: subagent model: opencode/deepseek-v4-flash-free temperature: 0.1 permission: - read: deny + read: allow glob: deny grep: deny edit: deny @@ -64,3 +64,14 @@ Dans ce cas : `lardon-explore`. Si un chemin précis est déjà connu, utilise-le directement. + +Lecture contrôlée + +Tu peux utiliser Read uniquement sur les chemins explicitement fournis par le parent +ou déjà présents dans le handoff. + +N utilise jamais Glob. +N utilise jamais Grep pour découvrir des fichiers. +Ne cherche jamais toi-même de nouveaux chemins. + +Si un chemin nécessaire manque, retourne INFORMATION_MISSING au parent. diff --git a/.opencode/agents/lardon-docs.md b/.opencode/agents/lardon-docs.md index 419f29b..c55ee35 100644 --- a/.opencode/agents/lardon-docs.md +++ b/.opencode/agents/lardon-docs.md @@ -16,3 +16,7 @@ permission: Modifie uniquement README.md, AGENTS.md et docs/ lorsqu'un ticket le demande explicitement. Charge seulement les documents pertinents, synthétise sans les dupliquer et ne change jamais le code ou la configuration. + +## Mise à jour continue + +Après chaque ticket validé, documenter les changements pertinents d API, architecture, concurrence, scheduler, Resource Governor, build/test et limites connues. Modifier uniquement les documents directement concernés. Ne jamais documenter comme intégré un comportement qui existe mais n est pas encore câblé par ses appelants. Conserver explicitement les limites et travaux restants. diff --git a/.opencode/agents/lardon-orchestrator.md b/.opencode/agents/lardon-orchestrator.md index 7a03b0f..d2e064f 100644 --- a/.opencode/agents/lardon-orchestrator.md +++ b/.opencode/agents/lardon-orchestrator.md @@ -22,6 +22,7 @@ permission: "*": deny "lardon-build": allow "lardon-build-backup": allow + "lardon-build-backup-fast": allow "lardon-build-backup-router": allow "lardon-build-light": allow "lardon-architect": allow @@ -47,6 +48,52 @@ Ne lance jamais de commande de découverte globale : AGENTS.md et l’overview sont déjà injectés comme instructions projet. Ne les relis pas intégralement sauf si une information précise manque. +Garde-fou anti-boucle + +Tu n'analyses jamais toi-même l'implémentation en profondeur. + +Après réception des résultats des sous-agents, choisis immédiatement une seule +action parmi : + +- appeler l'agent suivant ; +- demander une information précise via `lardon-read` ; +- demander une exploration précise via `lardon-explore` ; +- terminer avec le rapport final ; +- retourner `BLOCKED` avec une raison précise. + +Ne réévalue jamais plusieurs fois la même conclusion. + +Si tu hésites entre analyser toi-même et déléguer, délègue. + +Après deux raisonnements consécutifs sans appel d'outil ni nouvelle information, +tu dois obligatoirement : + +- effectuer l'action sûre suivante ; +- ou retourner `BLOCKED`. + +Il est interdit de répéter en boucle des formulations équivalentes du type : + +- "I need to proceed"; +- "I need to look more carefully"; +- "maybe there are edge cases"; +- ou toute variante sans nouvelle information. + +Chaîne de secours d'implémentation : + +1. `lardon-build` utilise Hy3 Free via Kilo Gateway. +2. Si le build principal échoue ou devient indisponible, utiliser + `lardon-build-backup` sur DeepSeek V4 Flash Free. +3. Si DeepSeek échoue également, utiliser `lardon-build-backup-fast` + sur GPT-OSS 20B Free via OpenRouter. +4. Si le backup rapide est insuffisant ou indisponible, utiliser + `lardon-build-backup-router` sur Nemotron 3 Ultra Free via OpenRouter. +5. Lors d'un fallback, ne jamais refaire l'exploration ou l'architecture si le + handoff contient déjà le contexte nécessaire. +6. Aucun fallback payant n'est autorisé. + +Un fallback ne doit jamais modifier l'objectif, le périmètre ou les invariants +du ticket. + Pour chaque ticket : 1. Lire `.opencode/work/current_ticket.md` s’il existe. @@ -170,3 +217,9 @@ N’utilise jamais : Les rapports intermédiaires doivent être courts et ne contenir que les conclusions, risques, fichiers concernés, tests et prochaines actions. + +## Documentation continue + +Après chaque ticket validé, appeler `lardon-docs` si le changement modifie une API publique, un invariant d architecture, une règle de concurrence, le scheduler, le Resource Governor, une procédure de build/test, une limite connue ou une décision de conception importante. + +`lardon-docs` doit mettre à jour uniquement les documents concernés, après validation technique et avant le rapport final. La documentation doit évoluer au fur et à mesure du développement et distinguer explicitement les fonctionnalités disponibles des fonctionnalités réellement câblées. diff --git a/.opencode/agents/lardon-review.md b/.opencode/agents/lardon-review.md index 06f847a..2a072b7 100644 --- a/.opencode/agents/lardon-review.md +++ b/.opencode/agents/lardon-review.md @@ -4,7 +4,7 @@ mode: subagent model: opencode/deepseek-v4-flash-free temperature: 0.1 permission: - read: deny + read: allow glob: deny grep: deny edit: deny @@ -41,3 +41,14 @@ Ne relis jamais une implémentation produite par lardon-build-backup, qui utilis aussi Nemotron. Dans ce cas, signale au parent qu'une première revue locale simple doit être confiée à MiMo et que toute revue de concurrence sensible doit attendre Codex ; ne prétends pas fournir une revue indépendante. + +Lecture contrôlée + +Tu peux utiliser Read uniquement sur les chemins explicitement fournis par le parent +ou déjà présents dans le handoff. + +N utilise jamais Glob. +N utilise jamais Grep pour découvrir des fichiers. +Ne cherche jamais toi-même de nouveaux chemins. + +Si un chemin nécessaire manque, retourne INFORMATION_MISSING au parent. diff --git a/.opencode/opencode.json b/.opencode/opencode.json index 008a32b..18b8d28 100644 --- a/.opencode/opencode.json +++ b/.opencode/opencode.json @@ -41,5 +41,39 @@ ".opencode/work/**", "scan3d/**" ] + }, + "provider": { + "kilo": { + "npm": "@ai-sdk/openai-compatible", + "name": "Kilo Gateway", + "options": { + "baseURL": "https://api.kilo.ai/api/gateway" + }, + "models": { + "tencent/hy3:free": { + "name": "Hy3 Free", + "limit": { + "context": 262144, + "output": 128000 + } + } + } + } + }, + "lsp": { + "clangd": { + "command": [ + "clangd", + "--background-index", + "--compile-commands-dir=build" + ], + "extensions": [ + ".c", + ".h", + ".cc", + ".cpp", + ".hpp" + ] + } } }