Aller au contenu

Regles

Definissez des instructions personnalisees pour opencode.

Vous pouvez fournir des instructions personnalisees a opencode en creant un fichier AGENTS.md. Ceci est similaire a CLAUDE.md ou aux regles de Cursor. Il contient des instructions qui seront inclues dans le contexte du LLM pour personnaliser son comportement pour votre projet specifique.


Initialiser

Pour creer un nouveau fichier AGENTS.md, vous pouvez executer la commande /init dans opencode.

Cela analysera votre projet et tout son contenu pour comprendre ce qu’est le projet et generera un fichier AGENTS.md avec celui-ci. Cela aide opencode a mieux naviguer dans le projet.

Si vous avez un fichier AGENTS.md existant, il essayera de l’ajouter.


Exemple

Vous pouvez egalement creer ce fichier manuellement. Voici un exemple de ce que vous pouvez mettre dans un fichier AGENTS.md.

AGENTS.md
# Projet Monorepo SST v3
Il s'agit d'un monorepo SST v3 avec TypeScript. Le projet utilise les espaces de travail bun pour la gestion des packages.
## Structure du projet
- `packages/` - Contient tous les packages de l'espace de travail (functions, core, web, etc.)
- `infra/` - Definitions d'infrastructure divisees par service (storage.ts, api.ts, web.ts)
- `sst.config.ts` - Configuration principale SST avec importations dynamiques
## Normes de code
- Utilisez TypeScript avec le mode strict active
- Le code partage va dans `packages/core/` avec la configuration d'exportation appropriee
- Les fonctions vont dans `packages/functions/`
- L'infrastructure doit etre divisee en fichiers logiques dans `infra/`
## Conventions de monorepo
- Importez les modules partages en utilisant les noms d'espaces de travail : `@my-app/core/example`

Nous ajoutons ici des instructions specifiques au projet et celles-ci seront partagees avec votre equipe.


Types

opencode prend egalement en charge la lecture du fichier AGENTS.md a partir de plusieurs emplacements. Cela sert differents buts.

Projet

Ceux que nous avons vus ci-dessus, ou le fichier AGENTS.md est place a la racine du projet, sont des regles specifiques au projet. Celes-ci ne s’appliquent que lorsque vous travaillez dans ce repertoire ou ses sous-repertoires.

Global

Vous pouvez egalement avoir des regles globales dans un fichier ~/.config/opencode/AGENTS.md. Celles-ci sont appliquees a toutes les sessions opencode.

Puisque ceci n’est pas valide dans Git ou partage avec votre equipe, nous vous recommandons de l’utiliser pour specifier toutes les regles personnelles que le LLM doit suivre.


Priorite

Lorsqu’opencode demarre, il recherche :

  1. Fichiers locaux en parcourant vers le haut a partir du repertoire actuel
  2. Fichier global en verifiant ~/.config/opencode/AGENTS.md

Si vous avez des regles globales et specifiques au projet, opencode les combinera ensemble.


Instructions personnalisees

Vous pouvez specifier des fichiers d’instructions personnalises dans votre opencode.json ou le fichier global ~/.config/opencode/opencode.json. Cela vous permet et a votre equipe de reutiliser les regles existantes plutot que d’avoir à les dupliquer dans AGENTS.md.

Exemple :

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
}

Vous pouvez egalement utiliser des URL distantes pour charger des instructions a partir du web.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"instructions": ["https://raw.githubusercontent.com/my-org/shared-rules/main/style.md"]
}

Les instructions distantes sont recuperees avec un delai de 5 secondes.

Tous les fichiers d’instructions sont combines avec vos fichiers AGENTS.md.


Referencement de fichiers externes

Bien qu’opencode ne prenne pas en charge l’analyse automatique des references de fichiers dans AGENTS.md, vous pouvez obtenir une fonctionnalite similaire de deux manieres :

Utilisation de opencode.json

L’approche recommandee consiste a utiliser le champ instructions dans opencode.json :

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"instructions": ["docs/development-standards.md", "test/testing-guidelines.md", "packages/*/AGENTS.md"]
}

Instructions manuelles dans AGENTS.md

Vous pouvez enseigner a opencode a lire des fichiers externes en fournissant des instructions explicites dans votre AGENTS.md. Voici un exemple pratique :

AGENTS.md
# Regles du projet TypeScript
## Chargement de fichiers externes
CRITIQUE : Lorsque vous rencontrez une reference de fichier (par exemple, @rules/general.md), utilisez votre outil Read pour la charger selon les besoins. Elles sont pertinentes pour la tache SPECIFIQUE a accomplir.
Instructions :
- NE chargez PAS toutes les references a l'avance - utilisez le chargement differe en fonction des besoins reels
- Une fois chargees, traitez le contenu comme des instructions obligatoires qui remplacent les valeurs par defaut
- Suivez les references de maniere recursive si necessaire
## Directives de developpement
Pour le style de code TypeScript et les meilleures pratiques : @docs/typescript-guidelines.md
Pour l'architecture des composants React et les modeles de hooks : @docs/react-patterns.md
Pour la conception d'API REST et la gestion des erreurs : @docs/api-standards.md
Pour les strategies de test et les exigences de couverture : @test/testing-guidelines.md
## Directives generales
Lisez le fichier suivant immediatement car il est pertinent pour tous les flux de travail : @rules/general-guidelines.md.

Cette approche vous permet de :

  • Creer des fichiers de regles modulaires et reutilisables
  • Partager des regles entre projets via des liens symboliques ou des sous-modules git
  • Garder AGENTS.md concis tout en referenceant des directives detaillees
  • Assurer qu’opencode ne charge les fichiers que lorsque necessaire pour la tache specifique