Aligner
Utilisez $align pour égaliser le contexte avant l'action. La compétence existe pour les tâches où
l'humain, l'agent projet, WebGPT, $scillm, $ask, $dogpile, $memory, ou
$project-knowledge peuvent chacun connaître des faits différents. Elle produit un
alignment_lock.json à partir duquel les compétences ultérieures peuvent exécuter.
N'utilisez pas $align pour implémenter, rendre, refactoriser ou relire un travail final. C'est une
porte de pré-exécution. Aucun code, infographie, tableau de bord, phase de plan-itérer, ou
transformation d'infographie projet ne doit démarrer tant que le verrou d'alignement n'indique pas
ready_for_execution: true.
Règle Fondamentale
L'alignement est terminé uniquement lorsque toutes les questions bloquantes sont répondues et que le verrou enregistre :
- objectif convenu
- non-objectifs convenus
- contexte source
- faits des participants
- hypothèses et risques restants
- forme de la sortie
- critères d'acceptation
- décision explicite prêt/pas prêt
Si un désaccord persiste, maintenez le verrou ready_for_execution: false.
Participants
N'utilisez que les participants pertinents pour la tâche :
| Participant | Rôle |
|---|---|
human | Intention, préférences, nuance domaine, barre d'acceptation |
project_agent | État du dépôt local, contraintes, prochaines étapes exécutables |
project_knowledge | Historique durable du projet et notes de reprise |
memory | Leçons antérieures et problèmes similaires résolus |
scillm | Critique directe du modèle via le proxy LLM localhost |
ask | Runtime ask/oracle/deep-review avec artefacts ; possède le routage WebGPT |
dogpile | Recherche externe fraîche lorsque le contexte local est insuffisant |
webgpt | Contexte du navigateur/session visible et jugement orienté humain |
Les appels WebGPT doivent être routés via $ask webgpt ; $ask possède déjà le backend oracle
WebGPT et utilise surf webgpt.submit --no-activate sur l'onglet ChatGPT authentifié de
l'utilisateur. $align n'appelle pas surf directement. N'envoyez pas de demandes WebGPT via
$scillm ; $scillm est destiné aux appels de modèle directs tels que gpt-5.5, Gemini,
Claude ou OpenCode Go. Préservez l'ID de l'onglet lorsque l'humain le fournit.
N'utilisez $dogpile que lorsque l'alignement est bloqué par un manque de connaissances
externes/actuelles. Ne l'utilisez pas pour des faits que $project-knowledge ou $memory
fournissent déjà.
Routage d'exécution
+-----------------------+
| $align init |
| objectif, sortie, sources |
+-----------+-----------+
|
v
+-----------------+-----------------+
| Tour N : brief d'alignement |
| participants énoncent faits, lacunes, |
| contradictions et questions |
+-----------------+-----------------+
|
+-----------------+-----------------+
| compiler-tour extrait questions |
| Question[bloquante/non-bloquante] : |
+-----------------+-----------------+
|
questions bloquantes ouvertes ?
| oui | non
v v
+----------------+----------------+ +-------+--------+
| achemine chaque question au responsable | | verrou --prêt |
| humain/projet/mémoire/relecteur | | écrit verrou |
+----------------+----------------+ +----------------+
|
v
+----------------+----------------+
| ajouter-réponse / répondre-question |
| met à jour brief, incrémente tour |
+----------------+----------------+
|
v
Tour N+1
Les routes de relecteur sont des entrées optionnelles dans un tour :
+----------------+
| Tour N brief |
+-------+--------+
|
+-----------------------------+-----------------------------+
| | |
v v v
+--------------------+ +--------------------+ +--------------------+
| WebGPT via $ask | | $scillm direct | | $ask review/oracle |
| préparer-relecture | | préparer-relecture | | préparer-relecture |
| --relecteur webgpt | | --relecteur scillm | | --relecteur ask |
+---------+----------+ +---------+----------+ +---------+----------+
| | |
v v v
skills/ask/run.sh ask webgpt tour-N-scillm-requête.json tour-N-ask-demande.md
--webgpt-onglet-id <id> modèle: gpt-5.5 skills/ask/run.sh ask
| effort_raisonnement: élevé --deep-review
v invite personnalisée facultative
$ask -> surf webgpt.submit |
--no-activer POST localhost:4001/v1/chat/completions
v
onglet ChatGPT authentifié
Recherche externe/actuelle :
préparer-relecture --relecteur dogpile -> tour-N-dogpile-demande.md
Utiliser uniquement lorsque des faits externes manquants bloquent l'alignement.
Boucle de Tours
Chaque tour suit la même séquence :
- Diffuser le brief d'alignement actuel aux participants sélectionnés.
- Chaque participant énonce ce qu'il croit être la tâche.
- Chaque participant liste les faits qu'il connaît et que d'autres pourraient ignorer.
- Chaque participant liste les hypothèses, contradictions et questions.
- Fusionner les questions en ensembles bloquants et non-bloquants.
- Acheminer les questions vers la partie qui peut y répondre.
- Mettre à jour le brief.
- S'arrêter uniquement lorsque les questions bloquantes sont résolues ou que le nombre maximum de tours est atteint.
Si le nombre maximum de tours est atteint avec des questions bloquantes ouvertes, s'arrêter avec
ready_for_execution: false et présenter la plus petite décision humaine nécessaire.
CLI
Liaison d'onglet WebGPT (parité CLI)
Préférez zéro-drapeau $ask webgpt depuis un répertoire de travail enregistré. /ask compose
$browser-oracle automatiquement. init et preparer-relecture persistent les indices de liaison dans
.align/state.json et émettent les mêmes drapeaux sur les round-*-webgpt-ask-command.sh générés.
| Drapeau | Quand l'utiliser |
|---|---|
| (aucun) | cwd a un registre ascendant + liaison — préféré |
--browser-oracle-from <répertoire> | Remplacer la racine ascendante (sous-répertoire monorepo) |
--webgpt-projet <nom> | Projet explicite ; ignore le ascendant yaml |
--webgpt-onglet-id <id> | Remplacement ponctuel ; ignore le ascendant |
--webgpt-url <url> | Résoudre par URL de conversation ; ignore le ascendant |
Ordre de résolution (identique à $ask / $surf) : --webgpt-onglet-id → --webgpt-url →
$browser-oracle ascendant → --webgpt-projet → un onglet chatgpt.com (échec-fermé).
Configuration : $browser-oracle register + bind + doctor --from <répertoire>. Voir les sections
Liaison d'onglet WebGPT de $browser-oracle et de $ask SKILL.md.
Exécutez depuis la racine du dépôt ou du projet qui possède la tâche :
skills/align/run.sh init \
--objectif "Créer une demande claire d'infographie plan-itérer" \
--forme-sortie "storyboard dérivé de sources et demande d'infographie web" \
--participant humain \
--participant projet_agent \
--participant connaissance_projet \
--participant scillm \
--participant ask \
--participant dogpile \
--participant webgpt
# Préférer zéro-drapeau depuis un répertoire enregistré, ou persister la racine ascendante :
# --browser-oracle-from skills/oc-subagent/personas/mathematics
# Remplacement explicite hérité :
# --webgpt-onglet-id 837343529
Enregistrer les réponses des participants :
skills/align/run.sh ajouter-réponse \
--participant projet_agent \
--tour 1 \
--text "Tâche : concilier le workflow avant le rendu. Fait : l'élément visuel précédent a échoué car il n'y avait pas de storyboard approuvé. Question[bloquante] : quel échantillon de projet exact doit ancrer l'élément visuel ?"
Compiler le tour :
skills/align/run.sh compiler-tour --tour 1
Verrouiller seulement après que les questions bloquantes sont résolues :
skills/align/run.sh verrou --prêt --approuvé-par humain
Génération de Demandes de Relecture
preparer-relecture crée des artefacts de demande rejouables pour les relecteurs. Il
n'appelle pas le relecteur lui-même.
skills/align/run.sh preparer-relecture --tour 1 --relecteur scillm
skills/align/run.sh preparer-relecture --tour 1 --relecteur ask
skills/align/run.sh preparer-relecture --tour 1 --relecteur dogpile
skills/align/run.sh preparer-relecture --tour 1 --relecteur webgpt --browser-oracle-from skills/oc-subagent/personas/mathematics
# ou : --webgpt-onglet-id 837343529
Utilisez WebGPT lorsque la relecture a besoin de la session navigateur ChatGPT authentifié de
l'humain ou du contexte visible par le navigateur. Utilisez $scillm lorsque la relecture doit être un
appel de modèle direct et rejouable, par exemple GPT-5.5 en raisonnement élevé avec
une invite de persona/système :
skills/align/run.sh preparer-relecture \
--tour 1 \
--relecteur scillm \
--modèle-scillm gpt-5.5 \
--effort-raisonnement élevé \
--invite-persona "Vous êtes un relecteur d'alignement produit sceptique. Concentrez-vous sur les hypothèses divergentes et les critères d'acceptation manquants."
Appels recommandés après preparer-relecture :
# relecture directe scillm
.align/reviews/round-001-scillm-command.sh
# relecture approfondie ask ou oracle WebGPT
skills/ask/run.sh ask "Relire la demande d'alignement à .align/reviews/round-001-ask-request.md" \
--deep-review --deep-review-target .align/reviews/round-001-ask-request.md
skills/ask/run.sh ask webgpt "Relire la demande d'alignement à .align/reviews/round-001-webgpt-request.md" \
--browser-oracle-from skills/oc-subagent/personas/mathematics --oracle-iterations 1
# recherche dogpile seulement si l'alignement est bloqué par des faits externes manquants
skills/dogpile/run.sh search "faits nécessaires pour débloquer cet alignement" \
--context-file ".align/reviews/round-001-dogpile-request.md"
Stocker le texte de relecture résultant avec ajouter-réponse. Les reçus de relecture sont des
entrées dans l'alignement ; ils ne constituent pas une approbation d'exécution à eux seuls.
Vérification de Cohérence en Direct
sanity.sh est la vérification locale rapide. Elle prouve la boucle de tour, la porte de question
bloquante, la génération de demande de relecture et le schéma de verrou sans dépenser de quota
externe.
sanity-live.sh est la passerelle E2E réelle obligatoire avant de déclarer $align
prêt comme compétence composite. Elle est optionnelle car elle appelle les systèmes
aval en direct :
$memory recall --briefvia la compétence mémoire réelle- ingestion de réponse de l'agent projet via
$align ajouter-réponse $dogpile searchavec la demande d'alignement générée comme contexte$ask webgptcontre le chemin WebGPT sauvegardé par navigateur authentifié- création finale de
alignment_lock.jsonuniquement après que ces reçus sont validés
Exécutez-la uniquement lorsque la station de travail locale dispose de mémoire, d'identifiants de recherche dogpile, Chrome et d'une session ChatGPT authentifiée :
ALIGN_LIVE_E2E=1 skills/align/sanity-live.sh
Contrôles facultatifs :
ALIGN_LIVE_E2E=1 \
ALIGN_WEBGPT_TAB_ID=837343529 \
ALIGN_LIVE_OUTPUT_ROOT=/mnt/storage12tb/skills/align/live-e2e \
skills/align/sanity-live.sh
Si aucun ALIGN_WEBGPT_TAB_ID ou ALIGN_WEBGPT_PROJECT n'est fourni, la vérification
en direct passe --webgpt-creer-onglet à $ask ; cela nécessite toujours une configuration
locale valide de Chrome/WebGPT. L'artefact de preuve est
/mnt/storage12tb/skills/align/live-e2e/<timestamp>/report.json par défaut.
Les vérifications en direct ignorées n'établissent pas l'état de préparation.
Structure des Artefacts
.align/
alignment_state.json
alignment_brief.md
alignment_lock.json
rounds/
round-001/
participant-human.md
participant-project_agent.md
participant-scillm.md
round_summary.md
questions.json
reviews/
round-001-scillm-request.json
round-001-scillm-command.sh
round-001-ask-request.md
round-001-dogpile-request.md
round-001-webgpt-request.md
round-001-webgpt-ask-command.sh
/mnt/storage12tb/skills/align/live-e2e/<timestamp>/
report.json
memory.stdout
dogpile.stdout
webgpt.stdout
ask-runs/<ask_id>/
Conditions d'Arrêt
Définir ready_for_execution: true uniquement lorsque :
- aucune question bloquante n'est ouverte
- l'objectif convenu et les non-objectifs sont explicites
- la forme de la sortie est concrète
- les critères d'acceptation sont testables ou revoyables
- le contexte source est nommé
- l'humain ou le responsable délégué a approuvé le verrou
Définir ready_for_execution: false lorsque :
- des questions bloquantes demeurent
- WebGPT,
$scillm,$askou la connaissance projet contredisent le brief - la forme de la sortie est encore abstraite
- un participant a exposé une preuve source manquante
- l'étape suivante demandée produirait un reçu au lieu de résoudre la tâche réelle
Erreurs Courantes
- N'utilisez pas
$aligncomme substitut à$interview; utilisez interview lorsque l'information manquante est purement une préférence humaine ou des critères d'acceptation. - N'utilisez pas
$aligncomme substitut à$review-code,$review-plan, ou$plan-iterer; l'alignement a lieu avant ces compétences. - Ne résumez pas manuellement WebGPT ou
$ask. Utilisez leurs runtimes réels et stockez les chemins d'artefact ou le texte du relecteur. - N'appelez pas un verrou d'alignement complet parce qu'un relecteur l'a approuvé. L' agent projet doit fusionner le résultat et résoudre les questions bloquantes.