Communitygithub.com

grahama1970/align

Round-based context alignment before execution. Use when the human, project agent, WebGPT, scillm, ask, dogpile, memory, or project-knowledge may each hold different facts about a task; especially before ambiguous design, infographic, product workflow, high-stakes implementation, plan-iterate, project-infographic, or multi-review work.

align とは?

align is a Claude Code agent skill that round-based context alignment before execution. Use when the human, project agent, WebGPT, scillm, ask, dogpile, memory, or project-knowledge may each hold different facts about a task; especially before ambiguous design, infographic, product workflow, high-stakes implementation, plan-iterate, project-infographic, or multi-review work.

対応Claude Code~Codex CLI~CursorAntigravityGemini CLIOpenCode
npx skills add https://github.com/grahama1970/agent-skills/tree/main/skills/align

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

align は何をしますか?

Use $align to equalize context before action. The skill exists for tasks where the human, project agent, WebGPT, $scillm, $ask, $dogpile, $memory, or $project-knowledge may each know different facts. It produces an alignment_lock.json that later skills can execute from.

Do not use $align to implement, render, refactor, or review final work. It is a pre-execution gate. No code, infographic, dashboard, plan-iterate phase, or project-infographic render should start until the alignment lock says ready_for_execution: true.

Core Rule

Alignment is complete only when all blocking questions are answered and the lock records:

  • agreed goal
  • agreed non-goals
  • source context
  • participant facts
  • remaining assumptions and risks
  • output shape
  • acceptance criteria
  • explicit ready/not-ready decision

If disagreement remains, keep the lock ready_for_execution: false.

Participants

Use only participants that are relevant to the task:

ParticipantRole
humanIntent, preferences, domain nuance, acceptance bar
project_agentLocal repo state, constraints, executable next steps
project_knowledgeDurable project history and takeover notes
memoryPrior lessons and similar solved problems
scillmDirect model critique through the localhost LLM proxy
askAsk/oracle/deep-review runtime with artifacts; owns WebGPT routing
dogpileFresh external research when local context is insufficient
webgptBrowser/session-visible context and human-facing judgment

WebGPT calls must route through $ask webgpt; $ask already owns the WebGPT oracle backend and uses surf webgpt.submit --no-activate against the user's authenticated ChatGPT tab. $align does not call surf directly. Do not send WebGPT requests through $scillm; $scillm is for direct model calls such as gpt-5.5, Gemini, Claude, or OpenCode Go. Preserve the tab id when the human provides it. Use $dogpile only when alignment is blocked by missing external/current knowledge. Do not use it for facts that $project-knowledge or $memory already answer.

Runtime Routing

                         +-----------------------+
                         |    $align init        |
                         | goal, output, sources |
                         +-----------+-----------+
                                     |
                                     v
                   +-----------------+-----------------+
                   |     Round N: alignment_brief      |
                   | participants state facts, gaps,   |
                   | contradictions, and questions     |
                   +-----------------+-----------------+
                                     |
                   +-----------------+-----------------+
                   | compile-round extracts questions  |
                   | Question[blocking/nonblocking]:   |
                   +-----------------+-----------------+
                                     |
                  open blocking questions?
                         | yes                         | no
                         v                             v
        +----------------+----------------+    +-------+--------+
        | route each question to owner    |    | lock --ready   |
        | human/project/memory/reviewer   |    | writes lock    |
        +----------------+----------------+    +----------------+
                         |
                         v
        +----------------+----------------+
        | add-response / answer-question  |
        | update brief, increment round   |
        +----------------+----------------+
                         |
                         v
                    Round N+1

Reviewer routes are optional inputs to a round:

                                +----------------+
                                | Round N brief  |
                                +-------+--------+
                                        |
          +-----------------------------+-----------------------------+
          |                             |                             |
          v                             v                             v
+--------------------+       +--------------------+       +--------------------+
| WebGPT via $ask    |       | $scillm direct     |       | $ask review/oracle |
| prepare-review     |       | prepare-review     |       | prepare-review     |
| --reviewer webgpt  |       | --reviewer scillm  |       | --reviewer ask     |
+---------+----------+       +---------+----------+       +---------+----------+
          |                            |                            |
          v                            v                            v
skills/ask/run.sh ask webgpt    round-N-scillm-request.json   round-N-ask-request.md
--webgpt-tab-id <id>            model: gpt-5.5               skills/ask/run.sh ask
          |                     reasoning_effort: high       --deep-review
          v                     optional persona prompt
 $ask -> surf webgpt.submit            |
 --no-activate                         v
          |                  POST localhost:4001/v1/chat/completions
          v
 authenticated ChatGPT tab

External/current research:
  prepare-review --reviewer dogpile -> round-N-dogpile-request.md
  Use only when missing external facts block alignment.

Round Loop

Each round follows the same sequence:

  1. Broadcast the current alignment brief to selected participants.
  2. Each participant states what they believe the task is.
  3. Each participant lists facts they know that others may not know.
  4. Each participant lists assumptions, contradictions, and questions.
  5. Merge questions into blocking and non-blocking sets.
  6. Route questions to the party that can answer them.
  7. Update the brief.
  8. Stop only when blocking questions are resolved or max rounds is reached.

If max rounds is reached with blocking questions open, stop with ready_for_execution: false and surface the smallest human decision needed.

CLI

WebGPT tab binding (CLI parity)

Prefer zero-flag $ask webgpt from a registered working directory. /ask composes $browser-oracle automatically. init and prepare-review persist binding hints in .align/state.json and emit the same flags on generated round-*-webgpt-ask-command.sh.

FlagWhen to use
(none)cwd has walk-up registry + binding — preferred
--browser-oracle-from <dir>Override walk-up root (monorepo subdir)
--webgpt-project <name>Explicit project; skips yaml walk-up
--webgpt-tab-id <id>One-off override; skips walk-up
--webgpt-url <url>Resolve by conversation URL; skips walk-up

Resolution order (same as $ask / $surf): --webgpt-tab-id--webgpt-url$browser-oracle walk-up → --webgpt-project → one chatgpt.com tab (fail-closed).

Setup: $browser-oracle register + bind + doctor --from <dir>. See $browser-oracle and $ask SKILL.md WebGPT tab binding sections.

Run from the repository or project root that owns the task:

skills/align/run.sh init \
  --goal "Create a clear plan-iterate infographic request" \
  --output-shape "source-derived storyboard and web infographic request" \
  --participant human \
  --participant project_agent \
  --participant project_knowledge \
  --participant scillm \
  --participant ask \
  --participant dogpile \
  --participant webgpt
# Prefer zero-flag from a registered dir, or persist walk-up root:
#   --browser-oracle-from skills/oc-subagent/personas/mathematics
# Legacy explicit override:
#   --webgpt-tab-id 837343529

Record participant responses:

skills/align/run.sh add-response \
  --participant project_agent \
  --round 1 \
  --text "Task: reconcile the workflow before rendering. Fact: the prior visual failed because there was no approved storyboard. Question[blocking]: what exact sample project should anchor the visual?"

Compile the round:

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

Lock only after blocking questions are resolved:

skills/align/run.sh lock --ready --approved-by human

Reviewer Request Generation

prepare-review creates replayable request artifacts for reviewers. It does not call the reviewer by itself.

skills/align/run.sh prepare-review --round 1 --reviewer scillm
skills/align/run.sh prepare-review --round 1 --reviewer ask
skills/align/run.sh prepare-review --round 1 --reviewer dogpile
skills/align/run.sh prepare-review --round 1 --reviewer webgpt --browser-oracle-from skills/oc-subagent/personas/mathematics
# or: --webgpt-tab-id 837343529

Use WebGPT when the review needs the human's authenticated ChatGPT browser session or browser-visible context. Use $scillm when the review should be a direct, replayable model call, for example GPT-5.5 high reasoning with a persona/system prompt:

skills/align/run.sh prepare-review \
  --round 1 \
  --reviewer scillm \
  --scillm-model gpt-5.5 \
  --reasoning-effort high \
  --persona-prompt "You are a skeptical product alignment reviewer. Focus on mismatched assumptions and missing acceptance criteria."

Recommended calls after prepare-review:

# scillm direct review
.align/reviews/round-001-scillm-command.sh

# ask deep review or WebGPT oracle
skills/ask/run.sh ask "Review the alignment request at .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 "Review the alignment request at .align/reviews/round-001-webgpt-request.md" \
  --browser-oracle-from skills/oc-subagent/personas/mathematics --oracle-iterations 1

# dogpile research only if alignment is blocked by missing external facts
skills/dogpile/run.sh search "facts needed to unblock this alignment" \
  --context-file ".align/reviews/round-001-dogpile-request.md"

Store the resulting reviewer text with add-response. Reviewer receipts are inputs to alignment; they are not execution approval by themselves.

Live Composition Sanity

sanity.sh is the fast local check. It proves the round loop, blocking-question gate, reviewer request generation, and lock schema without spending external quota.

sanity-live.sh is the required real-world E2E gate before claiming $align is ready as a composite skill. It is opt-in because it calls live downstream systems:

  • $memory recall --brief through the real memory skill
  • project-agent response ingestion through $align add-response
  • $dogpile search with the generated alignment request as context
  • $ask webgpt against the authenticated browser-backed WebGPT path
  • final alignment_lock.json creation only after those receipts validate

Run it only when the local workstation has memory, dogpile credentials/search, Chrome, and an authenticated ChatGPT session:

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

Optional controls:

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

If no ALIGN_WEBGPT_TAB_ID or ALIGN_WEBGPT_PROJECT is provided, the live check passes --webgpt-create-tab to $ask; this still requires a valid local Chrome/WebGPT setup. The proof artifact is /mnt/storage12tb/skills/align/live-e2e/<timestamp>/report.json by default. Skipped live checks do not establish readiness.

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

Stop Conditions

Set ready_for_execution: true only when:

  • no blocking questions remain open
  • the agreed goal and non-goals are explicit
  • the output shape is concrete
  • the acceptance criteria are testable or reviewable
  • the source context is named
  • the human or delegated owner approved the lock

Set ready_for_execution: false when:

  • blocking questions remain
  • WebGPT, $scillm, $ask, or project knowledge contradict the brief
  • the output shape is still abstract
  • a participant exposed missing source evidence
  • the requested next step would produce a receipt instead of solving the real task

Common Mistakes

  • Do not use $align as a substitute for $interview; use interview when the missing information is purely human preference or acceptance criteria.
  • Do not use $align as a substitute for $review-code, $review-plan, or $plan-iterate; alignment happens before those skills.
  • Do not summarize WebGPT or $ask manually. Use their real runtimes and store artifact paths or reviewer text.
  • Do not call an alignment lock complete because a reviewer passed it. The project agent must merge the result and clear blocking questions.

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.

関連スキル