Communitygithub.com

grahama1970/align

Rundenbasierte Kontextangleichung vor der Ausführung. Verwenden Sie dies, wenn der Mensch, der Projektagent, WebGPT, scillm, ask, dogpile, memory oder project-knowledge unterschiedliche Fakten über eine Aufgabe haben könnten; besonders vor mehrdeutigem Design, Infografiken, Produkt-Workflows, risikoreicher Implementierung, Plan-Iterate, Projekt-Infografiken oder Multi-Review-Arbeiten.

Was ist align?

**grahama1970/align** ist ein KI-Agenten-Skill, der eine rundenbasierte Kontextangleichung zwischen mehreren Teilnehmern durchführt, bevor eine Aktion ausgeführt wird. Der Skill stellt sicher, dass Mensch, Projektagent, WebGPT, scillm, ask, dogpile, memory und project-knowledge ihre unterschiedlichen Fakten und Annahmen teilen und abgleichen, um eine gemeinsame Basis zu schaffen. Er erzeugt eine `alignment_lock.json`, die signalisiert, ob die Ausführung bereit ist (`ready_for_execution: true`) oder ob noch klärende Fragen offen sind. Der Skill ist für hochriskante, mehrdeutige oder revisionsintensive Aufgaben wie Design, Infografiken, Produkt-Workflows und Plan-Iterate-Prozesse konzipiert und fungiert als vorgelagerte Qualitätssicherung. Er unterstützt die Integration mit WebGPT (über ask), scillm für direkte Modellkritiken, dogpile für externe Recherchen und ask für Deep Reviews. Die Implementierung erfolgt über ein CLI-Tool (`skills/align/run.sh`) mit Befehlen wie `init`, `add-response`, `compile-round`, `prepare-review` und `lock`.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht align?

Verwenden Sie $align, um den Kontext vor einer Aktion anzugleichen. Der Skill ist für Aufgaben gedacht, bei denen Mensch, Projektagent, WebGPT, $scillm, $ask, $dogpile, $memory oder $project-knowledge jeweils unterschiedliche Fakten kennen. Er erzeugt eine alignment_lock.json, von der spätere Skills ausführen können.

Verwenden Sie $align nicht zum Implementieren, Rendern, Refaktorisieren oder Überprüfen endgültiger Arbeiten. Es ist ein Tor vor der Ausführung. Kein Code, keine Infografik, kein Dashboard, keine Plan-Iterate-Phase oder Projekt-Infografik-Rendering sollte beginnen, bis der Ausrichtungs-Lock ready_for_execution: true anzeigt.

Kernregel

Die Ausrichtung ist erst abgeschlossen, wenn alle blockierenden Fragen beantwortet sind und der Lock Folgendes aufzeichnet:

  • vereinbartes Ziel
  • vereinbarte Nicht-Ziele
  • Quellenkontext
  • Teilnehmerfakten
  • verbleibende Annahmen und Risiken
  • Ausgabeform
  • Abnahmekriterien
  • explizite Bereit/Nicht-Bereit-Entscheidung

Wenn Uneinigkeit besteht, bleibt der Lock auf ready_for_execution: false.

Teilnehmer

Verwenden Sie nur die Teilnehmer, die für die Aufgabe relevant sind:

TeilnehmerRolle
humanAbsicht, Präferenzen, Bereichsnuancen, Abnahmebarriere
project_agentLokaler Repository-Zustand, Einschränkungen, ausführbare nächste Schritte
project_knowledgeDauerhafte Projekthistorie und Übernahmenotizen
memoryFrühere Lektionen und ähnliche gelöste Probleme
scillmDirekte Modellkritik über den lokalen LLM-Proxy
askAsk/Oracle/Deep-Review-Laufzeit mit Artefakten; besitzt WebGPT-Routing
dogpileFrische externe Recherche, wenn der lokale Kontext unzureichend ist
webgptBrowser-/sitzungssichtbarer Kontext und menschliches Urteil

WebGPT-Aufrufe müssen über $ask webgpt geleitet werden; $ask besitzt bereits das WebGPT-Oracle-Backend und verwendet surf webgpt.submit --no-activate gegen den authentifizierten ChatGPT-Tab des Benutzers. $align ruft surf nicht direkt auf. Senden Sie keine WebGPT-Anfragen über $scillm; $scillm ist für direkte Modellaufrufe wie gpt-5.5, Gemini, Claude oder OpenCode Go gedacht. Behalten Sie die Tab-ID bei, wenn der Mensch sie bereitstellt. Verwenden Sie $dogpile nur, wenn die Ausrichtung durch fehlendes externes/aktuelles Wissen blockiert wird. Verwenden Sie es nicht für Fakten, die $project-knowledge oder $memory bereits beantworten.

Laufzeit-Routing

                         +-----------------------+
                         |    $align init        |
                         | Ziel, Ausgabe, Quellen |
                         +-----------+-----------+
                                     |
                                     v
                   +-----------------+-----------------+
                   |     Runde N: alignment_brief      |
                   | Teilnehmer teilen Fakten, Lücken, |
                   | Widersprüche und Fragen           |
                   +-----------------+-----------------+
                                     |
                   +-----------------+-----------------+
                   | compile-round extrahiert Fragen  |
                   | Frage[blockierend/nichtblock]:   |
                   +-----------------+-----------------+
                                     |
                  offene blockierende Fragen?
                         | ja                          | nein
                         v                             v
        +----------------+----------------+    +-------+--------+
        | leite jede Frage an Eigentümer   |    | lock --ready    |
        | mensch/projekt/memory/prüfer     |    | schreibt Lock   |
        +----------------+----------------+    +----------------+
                         |
                         v
        +----------------+----------------+
        | add-response / answer-question  |
        | aktualisiere brief, erhöhe Runde|
        +----------------+----------------+
                         |
                         v
                    Runde N+1

Prüfer-Routen sind optionale Eingaben für eine Runde:

                                +----------------+
                                | Runde N brief  |
                                +-------+--------+
                                        |
          +-----------------------------+-----------------------------+
          |                             |                             |
          v                             v                             v
+--------------------+       +--------------------+       +--------------------+
| WebGPT via $ask    |       | $scillm direkt     |       | $ask review/oracle |
| prepare-review     |       | prepare-review     |       | prepare-review     |
| --reviewer webgpt  |       | --reviewer scillm  |       | --reviewer ask     |
+---------+----------+       +---------+----------+       +---------+----------+
          |                            |                            |
          v                            v                            v
skills/ask/run.sh ask webgpt    runde-N-scillm-request.json   runde-N-ask-request.md
--webgpt-tab-id <id>            modell: gpt-5.5               skills/ask/run.sh ask
          |                     reasoning_effort: hoch        --deep-review
          v                     optionales Persona-Prompt
 $ask -> surf webgpt.submit            |
 --no-activate                         v
          |                  POST localhost:4001/v1/chat/completions
          v
 authentifizierter ChatGPT-Tab

Externe/aktuelle Recherche:
  prepare-review --reviewer dogpile -> runde-N-dogpile-request.md
  Nur verwenden, wenn fehlende externe Fakten die Ausrichtung blockieren.

Runden-Schleife

Jede Runde folgt derselben Sequenz:

  1. Verteile das aktuelle Ausrichtungs-Briefing an die ausgewählten Teilnehmer.
  2. Jeder Teilnehmer teilt mit, was er glaubt, was die Aufgabe ist.
  3. Jeder Teilnehmer listet Fakten auf, die er kennt, die andere möglicherweise nicht kennen.
  4. Jeder Teilnehmer listet Annahmen, Widersprüche und Fragen auf.
  5. Fasse Fragen zu blockierenden und nicht-blockierenden Mengen zusammen.
  6. Leite Fragen an die Partei weiter, die sie beantworten kann.
  7. Aktualisiere das Briefing.
  8. Stoppe nur, wenn blockierende Fragen gelöst sind oder die maximale Anzahl an Runden erreicht ist.

Wenn die maximale Anzahl an Runden mit offenen blockierenden Fragen erreicht ist, stoppe mit ready_for_execution: false und lege die kleinste menschliche Entscheidung dar, die benötigt wird.

CLI

WebGPT-Tab-Bindung (CLI-Parität)

Bevorzugen Sie flagloses $ask webgpt aus einem registrierten Arbeitsverzeichnis. /ask erstellt $browser-oracle automatisch. init und prepare-review persistieren Bindungshinweise in .align/state.json und geben dieselben Flags auf generierten runde-*-webgpt-ask-command.sh aus.

FlagWann verwenden
(keins)Aktuelles Arbeitsverzeichnis hat Walk-up-Registry + Bindung – bevorzugt
--browser-oracle-from <verz>Walk-up-Wurzel überschreiben (Monorepo-Unterverzeichnis)
--webgpt-project <name>Explizites Projekt; überspringt YAML-Walk-up
--webgpt-tab-id <id>Einmalige Überschreibung; überspringt Walk-up
--webgpt-url <url>Nach Konversations-URL auflösen; überspringt Walk-up

Auflösungsreihenfolge (identisch mit $ask / $surf): --webgpt-tab-id → --webgpt-url → $browser-oracle Walk-up → --webgpt-project → ein chatgpt.com-Tab (fail-closed).

Einrichtung: $browser-oracle register + bind + doctor --from <verz>. Siehe $browser-oracle und $ask SKILL.md WebGPT-Tab-Bindung-Abschnitte.

Führen Sie den Skill aus dem Repository oder Projektstammverzeichnis aus, das die Aufgabe besitzt:

skills/align/run.sh init \
  --ziel "Eine klare Plan-Iterate-Infografik-Anfrage erstellen" \
  --ausgabe-form "Quellenabgeleitetes Storyboard und Web-Infografik-Anfrage" \
  --teilnehmer human \
  --teilnehmer project_agent \
  --teilnehmer project_knowledge \
  --teilnehmer scillm \
  --teilnehmer ask \
  --teilnehmer dogpile \
  --teilnehmer webgpt
# Bevorzugen Sie flaglos aus einem registrierten Verzeichnis oder persistieren Sie die Walk-up-Wurzel:
#   --browser-oracle-from skills/oc-subagent/personas/mathematics
# Legacy explizite Überschreibung:
#   --webgpt-tab-id 837343529

Teilnehmerantworten aufzeichnen:

skills/align/run.sh add-response \
  --teilnehmer project_agent \
  --runde 1 \
  --text "Aufgabe: Den Workflow vor dem Rendern angleichen. Fakt: Die vorherige Visualisierung ist fehlgeschlagen, weil es kein genehmigtes Storyboard gab. Frage[blockierend]: Welches genaue Beispielprojekt soll die Visualisierung verankern?"

Die Runde kompilieren:

skills/align/run.sh compile-round --runde 1

Nur sperren, nachdem blockierende Fragen gelöst sind:

skills/align/run.sh lock --ready --genehmigt-von human

Prüfer-Anfragegenerierung

prepare-review erstellt wiederverwendbare Anfrage-Artefakte für Prüfer. Es ruft den Prüfer nicht selbst auf.

skills/align/run.sh prepare-review --runde 1 --prüfer scillm
skills/align/run.sh prepare-review --runde 1 --prüfer ask
skills/align/run.sh prepare-review --runde 1 --prüfer dogpile
skills/align/run.sh prepare-review --runde 1 --prüfer webgpt --browser-oracle-from skills/oc-subagent/personas/mathematics
# oder: --webgpt-tab-id 837343529

Verwenden Sie WebGPT, wenn die Überprüfung die authentifizierte ChatGPT-Browser-Sitzung des Menschen oder browser-sichtbaren Kontext benötigt. Verwenden Sie $scillm, wenn die Überprüfung ein direkter, wiederverwendbarer Modellaufruf sein soll, z. B. GPT-5.5 mit hohem Reasoning und einem Persona/System-Prompt:

skills/align/run.sh prepare-review \
  --runde 1 \
  --prüfer scillm \
  --scillm-modell gpt-5.5 \
  --reasoning-aufwand hoch \
  --persona-prompt "Sie sind ein skeptischer Produktausrichtungs-Prüfer. Konzentrieren Sie sich auf nicht übereinstimmende Annahmen und fehlende Abnahmekriterien."

Empfohlene Aufrufe nach prepare-review:

# scillm direkte Überprüfung
.align/reviews/runde-001-scillm-command.sh

# ask Deep Review oder WebGPT Oracle
skills/ask/run.sh ask "Überprüfen Sie die Ausrichtungsanfrage unter .align/reviews/runde-001-ask-request.md" \
  --deep-review --deep-review-target .align/reviews/runde-001-ask-request.md

skills/ask/run.sh ask webgpt "Überprüfen Sie die Ausrichtungsanfrage unter .align/reviews/runde-001-webgpt-request.md" \
  --browser-oracle-from skills/oc-subagent/personas/mathematics --oracle-iterationen 1

# dogpile Recherche nur, wenn die Ausrichtung durch fehlende externe Fakten blockiert ist
skills/dogpile/run.sh search "Fakten, die benötigt werden, um diese Ausrichtung zu entsperren" \
  --context-datei ".align/reviews/runde-001-dogpile-request.md"

Speichern Sie den resultierenden Prüfertext mit add-response. Prüferbelege sind Eingaben für die Ausrichtung; sie sind keine Ausführungsgenehmigung an sich.

Live-Kompositions-Integritätsprüfung

sanity.sh ist die schnelle lokale Prüfung. Sie beweist die Runden-Schleife, die blockierenden Fragen-Schranke, die Prüfer-Anfragegenerierung und das Lock-Schema ohne externes Kontingent zu verbrauchen.

sanity-live.sh ist die erforderliche reale E2E-Prüfung, bevor $align als zusammengesetzter Skill bereit erklärt wird. Sie ist opt-in, da sie lebende nachgelagerte Systeme aufruft:

  • $memory recall --brief über den echten Memory-Skill
  • Projektagent-Antwortaufnahme über $align add-response
  • $dogpile search mit der generierten Ausrichtungsanfrage als Kontext
  • $ask webgpt gegen den authentifizierten browserbasierten WebGPT-Pfad
  • endgültige alignment_lock.json-Erstellung erst, nachdem diese Belege validiert wurden

Führen Sie sie nur aus, wenn die lokale Workstation Memory, dogpile-Anmeldeinformationen/Suche, Chrome und eine authentifizierte ChatGPT-Sitzung hat:

ALIGN_LIVE_E2E=1 skills/align/sanity-live.sh

Optionale Steuerungen:

ALIGN_LIVE_E2E=1 \
ALIGN_WEBGPT_TAB_ID=837343529 \
ALIGN_LIVE_AUSGABE_ROOT=/mnt/storage12tb/skills/align/live-e2e \
skills/align/sanity-live.sh

Wenn keine ALIGN_WEBGPT_TAB_ID oder ALIGN_WEBGPT_PROJECT angegeben ist, übergibt die Live-Prüfung --webgpt-create-tab an $ask; dies erfordert dennoch ein gültiges lokales Chrome/WebGPT-Setup. Das Nachweis-Artefakt ist standardmäßig /mnt/storage12tb/skills/align/live-e2e/<zeitstempel>/report.json. Übersprungene Live-Prüfungen begründen keine Bereitschaft.

Artefakt-Layout

.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/<zeitstempel>/
  report.json
  memory.stdout
  dogpile.stdout
  webgpt.stdout
  ask-runs/<ask_id>/

Stopp-Bedingungen

Setzen Sie ready_for_execution: true nur, wenn:

  • keine blockierenden Fragen mehr offen sind
  • das vereinbarte Ziel und die Nicht-Ziele explizit sind
  • die Ausgabeform konkret ist
  • die Abnahmekriterien testbar oder überprüfbar sind
  • der Quellenkontext benannt ist
  • der Mensch oder der delegierte Eigentümer den Lock genehmigt hat

Setzen Sie ready_for_execution: false, wenn:

  • blockierende Fragen offen bleiben
  • WebGPT, $scillm, $ask oder Projektkenntnisse dem Briefing widersprechen
  • die Ausgabeform noch abstrakt ist
  • ein Teilnehmer fehlende Quellbeweise aufgedeckt hat
  • der angeforderte nächste Schritt eher einen Beleg als die Lösung der eigentlichen Aufgabe produzieren würde

Häufige Fehler

  • Verwenden Sie $align nicht als Ersatz für $interview; verwenden Sie Interview, wenn die fehlende Information rein menschliche Präferenz oder Abnahmekriterien sind.
  • Verwenden Sie $align nicht als Ersatz für $review-code, $review-plan oder $plan-iterate; die Ausrichtung findet vor diesen Skills statt.
  • Fassen Sie WebGPT oder $ask nicht manuell zusammen. Verwenden Sie deren echte Laufzeiten und speichern Sie Artefaktpfade oder Prüfertexte.
  • Erklären Sie einen Ausrichtungs-Lock nicht für abgeschlossen, weil ein Prüfer ihn bestanden hat. Der Projektagent muss das Ergebnis zusammenführen und blockierende Fragen klären.

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.

Verwandte Skills