Communitygithub.com

grahama1970/align

Alignement contextuel par tours avant exécution. À utiliser lorsque l'humain, l'agent projet, WebGPT, scillm, ask, dogpile, mémoire ou project-knowledge peuvent détenir des faits différents sur une tâche ; en particulier avant une conception ambiguë, une infographie, un workflow produit, une implémentation à forts enjeux, un plan-itérer, une infographie projet ou un travail multi-relecture.

Qu'est-ce que align ?

Align est une compétence spécialisée de pré-exécution conçue pour résoudre les désaccords et les lacunes d'information entre les multiples participants d'un projet agentic (humain, agent projet, WebGPT, scillm, ask, dogpile, mémoire, connaissance projet) avant le début d'un travail critique. Elle organise un processus de tournoi itératif où chaque participant expose ses faits, ses hypothèses et ses questions, compile les questions bloquantes/non-bloquantes, les achemine vers le participant approprié et produit un verrou d'alignement (`alignment_lock.json`) qui indique si l'exécution est prête. La compétence prend en charge des réviseurs comme WebGPT via `$ask`, `$scillm` pour des appels de modèles directs, `$ask` pour des revues approfondies et `$dogpile` pour des recherches externes fraîches. Elle est idéale pour les tâches à forts enjeux dans Claude Code, Cursor, Codex et autres environnements agentic où une base de contexte partagée est essentielle avant l'implémentation.

Compatible avec✓Claude Code~Codex CLI~Cursor✓Antigravity✓Gemini CLI✓OpenCode
npx skills add https://github.com/grahama1970/agent-skills/tree/main/skills/align

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

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 :

ParticipantRôle
humanIntention, préférences, nuance domaine, barre d'acceptation
project_agentÉtat du dépôt local, contraintes, prochaines étapes exécutables
project_knowledgeHistorique durable du projet et notes de reprise
memoryLeçons antérieures et problèmes similaires résolus
scillmCritique directe du modèle via le proxy LLM localhost
askRuntime ask/oracle/deep-review avec artefacts ; possède le routage WebGPT
dogpileRecherche externe fraîche lorsque le contexte local est insuffisant
webgptContexte 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 :

  1. Diffuser le brief d'alignement actuel aux participants sélectionnés.
  2. Chaque participant énonce ce qu'il croit être la tâche.
  3. Chaque participant liste les faits qu'il connaît et que d'autres pourraient ignorer.
  4. Chaque participant liste les hypothèses, contradictions et questions.
  5. Fusionner les questions en ensembles bloquants et non-bloquants.
  6. Acheminer les questions vers la partie qui peut y répondre.
  7. Mettre à jour le brief.
  8. 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.

DrapeauQuand 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 --brief via la compétence mémoire réelle
  • ingestion de réponse de l'agent projet via $align ajouter-réponse
  • $dogpile search avec la demande d'alignement générée comme contexte
  • $ask webgpt contre le chemin WebGPT sauvegardé par navigateur authentifié
  • création finale de alignment_lock.json uniquement 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, $ask ou 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 $align comme substitut à $interview ; utilisez interview lorsque l'information manquante est purement une préférence humaine ou des critères d'acceptation.
  • N'utilisez pas $align comme 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.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

grahama1970/acceptance-contract

Turn a client brief, zip bundle, directory, or single requirements file into a typed acceptance-contract bundle with extracted requirements, acceptance checks, open questions, an immutable-goal draft, and a create-report-backed decision report. Use when users say acceptance contract, brief to requirements, freeze the goal, create immutable goal, amend immutable goal, build a Battle requirements bundle, or extract requirements from this bundle.

grahama1970/agent-ecosystem

Canonical map and shared contracts for the agent-governance ecosystem: the pi.receipt_envelope.v1 boundary envelope, the component graph, and the rules for which component owns which schema. Use when wiring a skill or extension into the shared receipt world, when asking how shame, triage-error, tau, ask, project-watchdog, ops-herdr, ponytail, and Memory fit together, or when validating an envelope.

grahama1970/agentic-evals

Agentic evaluation of skills using multi-trial fixtures, deterministic command assertions, trajectory checks, safety constraints, and evidence-backed readiness scoring. Use when users ask for agentic evals, multi-trial skill evaluation, skill trajectory validation, or readiness scoring for a skill workflow.

grahama1970/agent-inbox

File-based inter-agent messaging with headless dispatch. Check inbox, send bugs/requests to other projects, automatically spawn headless agents to fix bugs, and track progress via task-monitor.

grahama1970/agents-registry

Generate and query the centralized agent identity registry. Scans .pi/agents/*/AGENTS.md, parses frontmatter, outputs agents-registry.json and optionally syncs to /memory for semantic search.

grahama1970/agent-status

Artifact-driven status surfaces for long-running project-agent work. Maintains status.json, events.jsonl, proof manifests, and a stale-aware STATUS.html so humans can tell where the agent is, what passed, what is still unproven, and what decision or action is next — without dashboard theater.

grahama1970/analytics

Flexible data science analytics for any dataset. Auto-discovers schema, recommends charts, exports to create-figure. Works with JSONL, JSON, CSV from any source.

grahama1970/analyze-chatterbox-emotions

Evaluate generated Chatterbox voice files as voice-quality artifacts: affect match, arousal/valence proxies, pause placement, intelligibility inputs, clipping, loudness, and discontinuity flags. Use when reviewing Chatterbox emotional tags, pauses, Turbo/base affect delivery, Persona Dream utterance renders, or whether generated speech matches an intended product-facing affect.

grahama1970/analyze-elf

Reverse-engineer features from ELF binaries. Extracts CLI commands, state machines, protocols, Zod schemas, and data models. Automatically generates a /create-walkthrough prosecution brief with Mermaid diagrams. Uses /treesitter for AST analysis of bundled JS/TS source.

grahama1970/animation-vocabulary

Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.

grahama1970/anonymize-data

Anonymize supported CSV, JSON, UTF-8 text, and SQLite files using an explicit policy through the oai-trial project. Use for anonymize data, pseudonymize exports, redact policy literals, or discover and explicitly approve fuzzy name aliases. The skill is a thin CLI/Docker interface, not another engine.

grahama1970/anvil

Heavy-duty "No-Vibes" debugging and hardening orchestrator. Use this for complex, stubborn bugs where `review-code` has failed, or for "Red Teaming" (hardening) a codebase. Runs multiple agents in parallel (Thunderdome) using git worktree isolation.

grahama1970/apple-design

Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.

grahama1970/argue

Multi-persona structured debate orchestrator. Personas research via /dogpile, consult colleagues via /ask, and argue toward nuanced synthesis on complex questions.

grahama1970/arxiv

Search arXiv for papers and extract knowledge into memory. Use `search` to find papers, `learn` to extract knowledge.

grahama1970/ask

Use when the user asks to query project memory, ask an oracle, use supported browser-backed reviewers, run Tau roundtable/single-handler workflows, ask Pi-native subagents from within Pi, run persona/deep-review workflows, generate image prompts, check OS/project health through composed skills, or run an ask DAG. This skill is the executable /ask runtime; do not replace it with an informal subagent, plain web search, or hand-written review; inside Pi, explicit Pi-native subagent targets are routed through the pi-subagents tool as an Ask target type.

grahama1970/assess

Step back and critically reassess project state. Use when asked to "assess", "step back", "fresh eyes", "check alignment", "sanity check", "health check", "prune documentation", or "evaluate what's working". Offers documentation pruning and doc-code alignment analysis. Offer to run after major changes (don't auto-run).

grahama1970/assistant

Shared GPT + classifier inference gateway for persona monitor tasks. Routes validation and classification through a 4-tier cascade: heuristic → classifier → local GPT → scillm.

grahama1970/assistant-lab

Self-improvement workbench for /assistant. All the tools needed to diagnose, train, evaluate, and promote models in a continuous loop. The "warm pond" where /assistant evolves its own inference stack.

grahama1970/batch-quality

Pre-flight validation and quality gates for batch LLM operations. ACTUALLY tests samples through LLM before burning tokens. Uses SPARTA contracts for DuckDB validation queries. Integrates with task-monitor for enforced quality gates.

Skills associés