Centraliser les tests est une bonne règle par défaut, mais certains tests Go doivent rester dans le paquet pour accéder aux éléments non exportés. Les spécifications décrivent le contrat en vigueur ; les ADR expliquent les choix qui y ont conduit.
Publié parImages générées avec GPT Image 2
Réponse de recherche
![[GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you produce requests for client side execution. W](https://d15bya8fi85z1v.cloudfront.net/chat/L2Q8zxg7UqZZOsMb8CmQKOfK9IR2/thumbnails/C41117380AEDA3F50B7E/70B0757779861287C9BD-medium-640.webp)
Create a landscape editorial hero image for this Studio Global article: [GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you produce requests for client side execution. W. Article summary: <tool call {"name":"attempt completion","arguments":{"result":"这套布局可以作为收敛方向,但需要纠正三个等同关系:所有测试不能无条件迁出业务包,规范不是全部 ADR 的摘要,冻结也不是完成归档。以下是六项建议的明确边界;涉及的新路径均为候选,尚未创建或迁移。\n\n 1.. Topic tags: general web, openai, automation, workflow, code. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clickbait thumbnails, icons, a
Réorganiser un dépôt peut rendre le travail plus lisible et limiter les recherches inutiles. Mais une structure bien rangée ne suffit pas : il faut aussi préciser ce que chaque dossier signifie, quelles exceptions sont légitimes et quand un document peut être considéré comme terminé.
Voici une proposition en six points. Les chemins évoqués sont des options à adopter, pas des dossiers ou fichiers déjà créés ou déplacés.
Faire de tests/ l’emplacement par défaut est raisonnable, notamment pour les projets Python. Une migration doit toutefois vérifier les imports, la découverte des tests, les fixtures et les commandes de CI. Dans le dépôt décrit ici, la configuration CI utilise déjà un répertoire de tests centralisé.
Go demande davantage de nuance. Les tests en boîte noire, d’intégration ou de bout en bout peuvent être regroupés. En revanche, un test qui doit accéder à des éléments non exportés peut rester dans le répertoire du paquet testé : Go accepte des tests déclarés dans le même paquet ou dans un paquet externe portant le suffixe _test.14
16
Il faut aussi distinguer l’accès aux éléments non exportés des règles d’importation des paquets internal : celles-ci dépendent de la relation entre les chemins de répertoires, et non d’une règle générale imposant que tout test soit placé à côté du code.10
La bonne règle n’est donc pas « aucun test près du code », mais « centraliser quand cela reste compatible avec le langage et la conception ». Éviter les tests en doublon ou les vérifications sans valeur ne signifie pas abandonner les tests de régression utiles.
Les règles globales, le guide propre au projet, les spécifications et les ADR répondent à des questions différentes. Un ADR — Architecture Decision Record — consigne une décision importante et les raisons qui la motivent.
| Niveau | Question principale | Rôle |
|---|---|---|
| Méthode globale | Comment analyser, vérifier et livrer ? | Décrire une méthode de travail générale. |
AGENTS.md du projet |
Comment travailler dans ce dépôt ? | Donner les contraintes et les points d’entrée du projet. |
specs/ |
Quel comportement ou contrat doit être respecté ? | Décrire les exigences actuellement en vigueur. |
docs/adr/ |
Pourquoi ce choix a-t-il été fait ? | Conserver les arbitrages importants et leur historique. |
specs/ ne devrait donc pas devenir un résumé de tous les ADR. Les spécifications expriment le contrat actuel ; les ADR en expliquent l’origine. Les tests, eux, fournissent des vérifications exécutables.
Cline documente un mécanisme de règles persistantes destiné à conserver des instructions d’une conversation à l’autre.4 Cela ne prouve pas que Cline écrive automatiquement des fichiers dans le répertoire de spécifications : ce serait ici une convention de projet, pas un comportement garanti de l’outil.
En pratique, l’assistant peut proposer des spécifications initiales à partir des demandes et des éléments disponibles dans le dépôt, tout en laissant les inconnues signalées comme telles. Pour chaque tâche, il convient ensuite de consulter les règles et décisions pertinentes, puis de préciser les critères d’acceptation et les vérifications. Un nouvel ADR n’est utile que lorsqu’un arbitrage important doit être consigné ; une décision existante peut être citée plutôt que répétée. Enfin, un test réussi peut montrer que l’implémentation satisfait un contrôle, mais ne suffit pas à autoriser une modification de la demande ou à accepter une décision.
docs/adr/ sans changer la manière d’accepter les décisionsPlacer les nouveaux ADR dans docs/adr/ peut constituer une convention simple et cohérente. Ce choix de chemin n’a pas besoin d’être présenté comme une norme universelle.
La règle de fond reste la même : conserver les décisions proposées, acceptées, rejetées ou remplacées lorsqu’elles ont une valeur durable. Lorsqu’une décision est remplacée, mieux vaut créer le lien avec la nouvelle que réécrire l’ancienne justification. Et avant de déplacer des fichiers existants, il faut mettre à jour les références, les règles de routage et les restrictions de permissions concernées.
Un répertoire plans/ sans sous-dossiers peut convenir tant que le nombre de documents reste maîtrisable. Une convention possible serait de réserver pending_implementation_plan.md au plan actif, de conserver les plans achevés sous un nom daté, et d’ajouter le suffixe -frozen aux plans suspendus qui restent incomplets.
Le gel ne signifie pas que le travail est terminé. Il signifie que le plan sort de l’entrée active tout en conservant les tâches restantes, la raison de la pause et les conditions de reprise. Le validateur existant prend déjà en charge un état de pause ; il peut donc être réutilisé avant d’ajouter de nouveaux états au contrat.
Trois situations doivent rester distinctes :
L’entrée par défaut devrait pointer vers le plan actif, plutôt que d’inciter à charger tous les plans historiques à chaque tâche. Reprendre un plan gelé exige une nouvelle autorisation et une nouvelle vérification : les résultats précédents ne valent pas feu vert automatique. Cette distinction rejoint les règles de cycle de vie actuelles.
Enfin, renommer un fichier ne prouve pas que son contenu a été validé. Toute opération d’archivage doit éviter l’écrasement, préserver les tâches inachevées et mettre à jour les références utiles. Il n’est pas nécessaire de créer un plan vide uniquement pour maintenir un chemin fixe.
Une ligne de code n’a pas nécessairement son propre fichier de test : un test peut couvrir plusieurs composants, et un même composant peut nécessiter des tests unitaires, d’intégration ou de régression.
Le plus simple est de structurer tests/ par module ou responsabilité, puis d’indiquer dans les spécifications les invariants importants, les tests associés et les commandes de vérification ciblées. Si ces liens sont difficiles à retrouver, un fichier de correspondance comme tests/test-map.yaml peut être envisagé.
Ce fichier, s’il est créé, devrait se limiter aux relations utiles : identifiants de modules ou de contrats, périmètre du code, périmètre des tests et commandes de vérification. Il ne doit pas dupliquer toute l’arborescence ni servir de registre parallèle des résultats. Une correspondance valide ne prouve, à elle seule, ni que la couverture est suffisante ni que les tests passent.
Regrouper les scripts provisoires et les notes d’exploration dans .scratch/ peut faciliter le nettoyage. Mais l’emplacement d’un fichier ne détermine pas la valeur de preuve de son contenu. Un résumé produit par un modèle reste une interprétation ; une sortie de test ou un relevé de diagnostic peut, lui, constituer une preuve de première main, selon sa provenance, son environnement, sa date et son intégrité.
Avant de supprimer un document, vérifier qu’il n’est pas la seule preuve citée par un plan, une décision ou un critère d’acceptation. Si cette preuve est nécessaire, la préserver ou retirer explicitement la conclusion qui en dépend. Les constats conservés doivent garder leur source, leur périmètre et leurs incertitudes : les condenser ne doit pas transformer une hypothèse en fait établi.
Dans docs/, distinguer les documents toujours maintenus, les archives historiques et les éléments à vérifier est plus utile que de traiter tout document ancien comme un déchet. Un schéma remplacé peut rester conservé comme historique, à condition d’être clairement signalé comme n’étant plus la référence actuelle. Conserver un document ne signifie pas qu’il doit être chargé par défaut : une lecture ciblée peut réduire le bruit sans effacer les traces nécessaires.
La structure proposée est viable avec quatre garde-fous : centraliser les tests sans imposer une règle incompatible avec le langage ; maintenir les spécifications comme contrat actuel plutôt que comme résumé des ADR ; traiter un plan gelé comme un travail incomplet ; et nettoyer les fichiers temporaires sans supprimer une preuve encore indispensable.
Les chemins par défaut et autorisés restent liés à l’implémentation actuelle du validateur, tandis que le périmètre d’édition du mode analyse dépend encore de l’ancienne organisation. Une migration complète devra donc aussi mettre à jour les règles, modèles, références, contrôles et adaptations de l’environnement. Une simple modification des noms de dossiers ne suffit pas. À ce stade, cette proposition est une analyse : aucun fichier n’a été déplacé, créé, gelé ou supprimé.
Studio Global AI
Cette page comprend une réponse basée sur la source que vous pouvez continuer dans Studio Global.
Centraliser les tests est une bonne règle par défaut, mais certains tests Go doivent rester dans le paquet pour accéder aux éléments non exportés.
Centraliser les tests est une bonne règle par défaut, mais certains tests Go doivent rester dans le paquet pour accéder aux éléments non exportés. Les spécifications décrivent le contrat en vigueur ; les ADR expliquent les choix qui y ont conduit.
Un plan gelé reste incomplet : son statut ne doit pas être confondu avec une archive de travail achevée.
Centraliser les tests est une bonne règle par défaut, mais certains tests Go doivent rester dans le paquet pour accéder aux éléments non exportés. Les spécifications décrivent le contrat en vigueur ; les ADR expliquent les choix qui y ont conduit.
Publié parImages générées avec GPT Image 2
Réponse de recherche
![[GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you produce requests for client side execution. W](https://d15bya8fi85z1v.cloudfront.net/chat/L2Q8zxg7UqZZOsMb8CmQKOfK9IR2/thumbnails/C41117380AEDA3F50B7E/70B0757779861287C9BD-medium-640.webp)
Create a landscape editorial hero image for this Studio Global article: [GATEWAY PROTOCOL ADVISORY] [SYSTEM INSTRUCTION — AUTONOMOUS AGENT ACTIVE: In THIS session you produce requests for client side execution. W. Article summary: <tool call {"name":"attempt completion","arguments":{"result":"这套布局可以作为收敛方向,但需要纠正三个等同关系:所有测试不能无条件迁出业务包,规范不是全部 ADR 的摘要,冻结也不是完成归档。以下是六项建议的明确边界;涉及的新路径均为候选,尚未创建或迁移。\n\n 1.. Topic tags: general web, openai, automation, workflow, code. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clickbait thumbnails, icons, a
Réorganiser un dépôt peut rendre le travail plus lisible et limiter les recherches inutiles. Mais une structure bien rangée ne suffit pas : il faut aussi préciser ce que chaque dossier signifie, quelles exceptions sont légitimes et quand un document peut être considéré comme terminé.
Voici une proposition en six points. Les chemins évoqués sont des options à adopter, pas des dossiers ou fichiers déjà créés ou déplacés.
Faire de tests/ l’emplacement par défaut est raisonnable, notamment pour les projets Python. Une migration doit toutefois vérifier les imports, la découverte des tests, les fixtures et les commandes de CI. Dans le dépôt décrit ici, la configuration CI utilise déjà un répertoire de tests centralisé.
Go demande davantage de nuance. Les tests en boîte noire, d’intégration ou de bout en bout peuvent être regroupés. En revanche, un test qui doit accéder à des éléments non exportés peut rester dans le répertoire du paquet testé : Go accepte des tests déclarés dans le même paquet ou dans un paquet externe portant le suffixe _test.14
16
Il faut aussi distinguer l’accès aux éléments non exportés des règles d’importation des paquets internal : celles-ci dépendent de la relation entre les chemins de répertoires, et non d’une règle générale imposant que tout test soit placé à côté du code.10
La bonne règle n’est donc pas « aucun test près du code », mais « centraliser quand cela reste compatible avec le langage et la conception ». Éviter les tests en doublon ou les vérifications sans valeur ne signifie pas abandonner les tests de régression utiles.
Les règles globales, le guide propre au projet, les spécifications et les ADR répondent à des questions différentes. Un ADR — Architecture Decision Record — consigne une décision importante et les raisons qui la motivent.
| Niveau | Question principale | Rôle |
|---|---|---|
| Méthode globale | Comment analyser, vérifier et livrer ? | Décrire une méthode de travail générale. |
AGENTS.md du projet |
Comment travailler dans ce dépôt ? | Donner les contraintes et les points d’entrée du projet. |
specs/ |
Quel comportement ou contrat doit être respecté ? | Décrire les exigences actuellement en vigueur. |
docs/adr/ |
Pourquoi ce choix a-t-il été fait ? | Conserver les arbitrages importants et leur historique. |
specs/ ne devrait donc pas devenir un résumé de tous les ADR. Les spécifications expriment le contrat actuel ; les ADR en expliquent l’origine. Les tests, eux, fournissent des vérifications exécutables.
Cline documente un mécanisme de règles persistantes destiné à conserver des instructions d’une conversation à l’autre.4 Cela ne prouve pas que Cline écrive automatiquement des fichiers dans le répertoire de spécifications : ce serait ici une convention de projet, pas un comportement garanti de l’outil.
En pratique, l’assistant peut proposer des spécifications initiales à partir des demandes et des éléments disponibles dans le dépôt, tout en laissant les inconnues signalées comme telles. Pour chaque tâche, il convient ensuite de consulter les règles et décisions pertinentes, puis de préciser les critères d’acceptation et les vérifications. Un nouvel ADR n’est utile que lorsqu’un arbitrage important doit être consigné ; une décision existante peut être citée plutôt que répétée. Enfin, un test réussi peut montrer que l’implémentation satisfait un contrôle, mais ne suffit pas à autoriser une modification de la demande ou à accepter une décision.
docs/adr/ sans changer la manière d’accepter les décisionsPlacer les nouveaux ADR dans docs/adr/ peut constituer une convention simple et cohérente. Ce choix de chemin n’a pas besoin d’être présenté comme une norme universelle.
La règle de fond reste la même : conserver les décisions proposées, acceptées, rejetées ou remplacées lorsqu’elles ont une valeur durable. Lorsqu’une décision est remplacée, mieux vaut créer le lien avec la nouvelle que réécrire l’ancienne justification. Et avant de déplacer des fichiers existants, il faut mettre à jour les références, les règles de routage et les restrictions de permissions concernées.
Un répertoire plans/ sans sous-dossiers peut convenir tant que le nombre de documents reste maîtrisable. Une convention possible serait de réserver pending_implementation_plan.md au plan actif, de conserver les plans achevés sous un nom daté, et d’ajouter le suffixe -frozen aux plans suspendus qui restent incomplets.
Le gel ne signifie pas que le travail est terminé. Il signifie que le plan sort de l’entrée active tout en conservant les tâches restantes, la raison de la pause et les conditions de reprise. Le validateur existant prend déjà en charge un état de pause ; il peut donc être réutilisé avant d’ajouter de nouveaux états au contrat.
Trois situations doivent rester distinctes :
L’entrée par défaut devrait pointer vers le plan actif, plutôt que d’inciter à charger tous les plans historiques à chaque tâche. Reprendre un plan gelé exige une nouvelle autorisation et une nouvelle vérification : les résultats précédents ne valent pas feu vert automatique. Cette distinction rejoint les règles de cycle de vie actuelles.
Enfin, renommer un fichier ne prouve pas que son contenu a été validé. Toute opération d’archivage doit éviter l’écrasement, préserver les tâches inachevées et mettre à jour les références utiles. Il n’est pas nécessaire de créer un plan vide uniquement pour maintenir un chemin fixe.
Une ligne de code n’a pas nécessairement son propre fichier de test : un test peut couvrir plusieurs composants, et un même composant peut nécessiter des tests unitaires, d’intégration ou de régression.
Le plus simple est de structurer tests/ par module ou responsabilité, puis d’indiquer dans les spécifications les invariants importants, les tests associés et les commandes de vérification ciblées. Si ces liens sont difficiles à retrouver, un fichier de correspondance comme tests/test-map.yaml peut être envisagé.
Ce fichier, s’il est créé, devrait se limiter aux relations utiles : identifiants de modules ou de contrats, périmètre du code, périmètre des tests et commandes de vérification. Il ne doit pas dupliquer toute l’arborescence ni servir de registre parallèle des résultats. Une correspondance valide ne prouve, à elle seule, ni que la couverture est suffisante ni que les tests passent.
Regrouper les scripts provisoires et les notes d’exploration dans .scratch/ peut faciliter le nettoyage. Mais l’emplacement d’un fichier ne détermine pas la valeur de preuve de son contenu. Un résumé produit par un modèle reste une interprétation ; une sortie de test ou un relevé de diagnostic peut, lui, constituer une preuve de première main, selon sa provenance, son environnement, sa date et son intégrité.
Avant de supprimer un document, vérifier qu’il n’est pas la seule preuve citée par un plan, une décision ou un critère d’acceptation. Si cette preuve est nécessaire, la préserver ou retirer explicitement la conclusion qui en dépend. Les constats conservés doivent garder leur source, leur périmètre et leurs incertitudes : les condenser ne doit pas transformer une hypothèse en fait établi.
Dans docs/, distinguer les documents toujours maintenus, les archives historiques et les éléments à vérifier est plus utile que de traiter tout document ancien comme un déchet. Un schéma remplacé peut rester conservé comme historique, à condition d’être clairement signalé comme n’étant plus la référence actuelle. Conserver un document ne signifie pas qu’il doit être chargé par défaut : une lecture ciblée peut réduire le bruit sans effacer les traces nécessaires.
La structure proposée est viable avec quatre garde-fous : centraliser les tests sans imposer une règle incompatible avec le langage ; maintenir les spécifications comme contrat actuel plutôt que comme résumé des ADR ; traiter un plan gelé comme un travail incomplet ; et nettoyer les fichiers temporaires sans supprimer une preuve encore indispensable.
Les chemins par défaut et autorisés restent liés à l’implémentation actuelle du validateur, tandis que le périmètre d’édition du mode analyse dépend encore de l’ancienne organisation. Une migration complète devra donc aussi mettre à jour les règles, modèles, références, contrôles et adaptations de l’environnement. Une simple modification des noms de dossiers ne suffit pas. À ce stade, cette proposition est une analyse : aucun fichier n’a été déplacé, créé, gelé ou supprimé.
Studio Global AI
Cette page comprend une réponse basée sur la source que vous pouvez continuer dans Studio Global.
Centraliser les tests est une bonne règle par défaut, mais certains tests Go doivent rester dans le paquet pour accéder aux éléments non exportés.
Centraliser les tests est une bonne règle par défaut, mais certains tests Go doivent rester dans le paquet pour accéder aux éléments non exportés. Les spécifications décrivent le contrat en vigueur ; les ADR expliquent les choix qui y ont conduit.
Un plan gelé reste incomplet : son statut ne doit pas être confondu avec une archive de travail achevée.