Grillage
Origine. Écrit par Matt Pocock dans mattpocock/skills (MIT), point fixé à
49dd158. Le texte ci-dessous est reproduit textuellement à l'exception des modifications listées dans UPSTREAM.md. Nos ajouts se trouvent sous Notes de terrain à la fin.
Interviewez l'utilisateur sans relâche jusqu'à parvenir à une compréhension commune. Représentez cela comme un arbre de conception : chaque décision se ramifie en décisions qui en découlent.
Parcourez l'arbre par rounds. La frontière est l'ensemble des décisions dont les prérequis sont déjà résolus : les questions que vous pouvez poser maintenant sans deviner des réponses que vous n'avez pas encore entendues. Posez toute la frontière en un seul round : numérotez chaque question et donnez votre réponse recommandée. Attendez ensuite les réponses de l'utilisateur avant le round suivant.
Formatez un round comme suit :
❓ **Q1** - **<titre de la question>** : <corps de la question, pouvant comporter plusieurs paragraphes, incluant plusieurs choix>
➡️ <votre réponse recommandée>
---
❓ **Q2** - **<titre de la question>** : <corps de la question, pouvant comporter plusieurs paragraphes, incluant plusieurs choix>
➡️ <votre réponse recommandée>
Formulez chaque question de sorte que « oui » signifie l'acceptation de votre réponse recommandée.
Chaque round, les réponses de l'utilisateur remodèlent l'arbre : les décisions résolues repoussent la frontière et débloquent les questions qui en dépendaient. Recalculez la frontière et lancez le round suivant. Une question dont la réponse dépend d'une autre question encore ouverte dans ce round appartient à un round ultérieur, pas à celui-ci.
Trouver les faits est votre travail, jamais celui de l'utilisateur. Lorsqu'une question de la frontière nécessite un fait de l'environnement (système de fichiers, outils, etc.), déléguez à un sous-agent pour le trouver ; ne demandez pas à l'utilisateur ce que vous pourriez vérifier vous-même. Ne bloquez pas pour autant : une exploration en cours est un prérequis non résolu, donc seules les questions en aval de celle-ci attendent le rapport du sous-agent ; posez le reste de la frontière maintenant. Les décisions sont celles de l'utilisateur : soumettez-les-lui et attendez.
La session est terminée lorsque la frontière est vide : chaque branche de l'arbre de conception visitée, plus rien n'est laissé implicite. N'agissez pas avant que l'utilisateur confirme que vous êtes parvenus à une compréhension commune.
Notes de terrain
Preuves : 26 sessions réelles où le grillage a été chargé (méthode dans docs/field-data.md).
- Conservez un journal de décisions que l'utilisateur peut annuler. Les utilisateurs sont revenus sur une réponse antérieure 3 fois (« ramène les décisions, j'ai fait une erreur »). Après chaque round, affichez une liste numérotée des décisions résolues. Une annulation ne rouvre que les branches en aval de cette décision.
- Lettrez les options. Les utilisateurs ont répondu par une simple lettre ou une liste numérotée dans 16 réponses courtes. Donnez à chaque question à choix multiples des options lettrées afin que
Q2 : bsoit une réponse complète. - Mode auto-grille. Environ 19 demandes ont invité l'agent à se griller lui-même (« fais toi-même la session de grillage pour la sécurité »). Quand on le lui demande, exécutez le même arbre de conception avec l'agent en tant qu'interviewé. Résolvez chaque question de fait à partir des preuves que vous recueillez. Dans ce mode, les règles d'attente et de confirmation ci-dessus ne s'appliquent qu'aux appels de préférence, qui sont soumis à l'utilisateur en un seul lot avec des réponses recommandées.
principal-autopilotexécute ce mode à son étape 3, avant tout code.