chore(opencode): refine agent workflow and providers
This commit is contained in:
parent
32f3c8bc57
commit
5647f780b0
9 changed files with 192 additions and 5 deletions
|
|
@ -4,7 +4,7 @@ mode: subagent
|
||||||
model: opencode/deepseek-v4-flash-free
|
model: opencode/deepseek-v4-flash-free
|
||||||
temperature: 0.1
|
temperature: 0.1
|
||||||
permission:
|
permission:
|
||||||
read: deny
|
read: allow
|
||||||
glob: deny
|
glob: deny
|
||||||
grep: deny
|
grep: deny
|
||||||
edit: 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,
|
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
|
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.
|
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.
|
||||||
|
|
|
||||||
41
.opencode/agents/lardon-build-backup-fast.md
Normal file
41
.opencode/agents/lardon-build-backup-fast.md
Normal file
|
|
@ -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/.
|
||||||
|
|
@ -4,7 +4,7 @@ mode: subagent
|
||||||
model: opencode/deepseek-v4-flash-free
|
model: opencode/deepseek-v4-flash-free
|
||||||
temperature: 0.1
|
temperature: 0.1
|
||||||
permission:
|
permission:
|
||||||
read: deny
|
read: allow
|
||||||
glob: deny
|
glob: deny
|
||||||
grep: deny
|
grep: deny
|
||||||
edit:
|
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
|
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,
|
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.
|
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.
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ mode: subagent
|
||||||
model: opencode/deepseek-v4-flash-free
|
model: opencode/deepseek-v4-flash-free
|
||||||
temperature: 0.1
|
temperature: 0.1
|
||||||
permission:
|
permission:
|
||||||
read: deny
|
read: allow
|
||||||
glob: deny
|
glob: deny
|
||||||
grep: deny
|
grep: deny
|
||||||
edit:
|
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
|
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
|
les changements et erreurs utiles, sans longs logs. Aucun commit, push ou
|
||||||
modèle payant.
|
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.
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ mode: subagent
|
||||||
model: opencode/deepseek-v4-flash-free
|
model: opencode/deepseek-v4-flash-free
|
||||||
temperature: 0.1
|
temperature: 0.1
|
||||||
permission:
|
permission:
|
||||||
read: deny
|
read: allow
|
||||||
glob: deny
|
glob: deny
|
||||||
grep: deny
|
grep: deny
|
||||||
edit: deny
|
edit: deny
|
||||||
|
|
@ -64,3 +64,14 @@ Dans ce cas :
|
||||||
`lardon-explore`.
|
`lardon-explore`.
|
||||||
|
|
||||||
Si un chemin précis est déjà connu, utilise-le directement.
|
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.
|
||||||
|
|
|
||||||
|
|
@ -16,3 +16,7 @@ permission:
|
||||||
Modifie uniquement README.md, AGENTS.md et docs/ lorsqu'un ticket le demande
|
Modifie uniquement README.md, AGENTS.md et docs/ lorsqu'un ticket le demande
|
||||||
explicitement. Charge seulement les documents pertinents, synthétise sans les
|
explicitement. Charge seulement les documents pertinents, synthétise sans les
|
||||||
dupliquer et ne change jamais le code ou la configuration.
|
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.
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ permission:
|
||||||
"*": deny
|
"*": deny
|
||||||
"lardon-build": allow
|
"lardon-build": allow
|
||||||
"lardon-build-backup": allow
|
"lardon-build-backup": allow
|
||||||
|
"lardon-build-backup-fast": allow
|
||||||
"lardon-build-backup-router": allow
|
"lardon-build-backup-router": allow
|
||||||
"lardon-build-light": allow
|
"lardon-build-light": allow
|
||||||
"lardon-architect": 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
|
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.
|
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 :
|
Pour chaque ticket :
|
||||||
|
|
||||||
1. Lire `.opencode/work/current_ticket.md` s’il existe.
|
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
|
Les rapports intermédiaires doivent être courts et ne contenir que les
|
||||||
conclusions, risques, fichiers concernés, tests et prochaines actions.
|
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.
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ mode: subagent
|
||||||
model: opencode/deepseek-v4-flash-free
|
model: opencode/deepseek-v4-flash-free
|
||||||
temperature: 0.1
|
temperature: 0.1
|
||||||
permission:
|
permission:
|
||||||
read: deny
|
read: allow
|
||||||
glob: deny
|
glob: deny
|
||||||
grep: deny
|
grep: deny
|
||||||
edit: 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
|
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
|
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.
|
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.
|
||||||
|
|
|
||||||
|
|
@ -41,5 +41,39 @@
|
||||||
".opencode/work/**",
|
".opencode/work/**",
|
||||||
"scan3d/**"
|
"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"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue