Communitygithub.com

grahama1970/align

라운드 기반 컨텍스트 정렬(Alignment) 스킬입니다. 사람, 프로젝트 에이전트, WebGPT, scillm, ask, dogpile, memory 또는 project-knowledge가 각기 다른 사실을 알고 있을 때 사용합니다. 특히 모호한 디자인, 인포그래픽, 제품 워크플로우, 고위험 구현, plan-iterate, 프로젝트 인포그래픽 또는 다중 검토 작업 전에 필요합니다.

align란 무엇인가요?

Align은 실행 전에 여러 참여자(사람, 프로젝트 에이전트, WebGPT, scillm, ask, dogpile, memory, project-knowledge) 간의 컨텍스트 차이를 라운드 기반 프레임워크로 해소하는 AI 에이전트 스킬입니다. 각 참여자의 지식 불일치, 가정, 질문을 체계적으로 수집하고 정리하여 'alignment_lock.json' 파일을 생성하며, 모든 차단 질문이 해결된 후에만 ready_for_execution: true로 전환합니다. 주요 사용 사례는 모호한 인포그래픽 디자인, 고위험 제품 워크플로우, plan-iterate, 다중 검토가 필요한 작업 등에서 발생하는 컨텍스트 불일치를 사전에 해결하는 것입니다. CLI 기반으로 init, add-response, compile-round, lock, prepare-review 명령어를 제공하며, WebGPT, scillm, ask/oracle 등 다양한 리뷰어와 통합할 수 있습니다. WebGPT는 ask를 통해서만 호출하고, 최신 외부 정보가 필요한 경우에만 dogpile을 사용합니다. 실행 전 게이트 역할을 하므로, 정렬이 완료되기 전에는 코드, 인포그래픽, 대시보드 등의 실행을 시작해서는 안 됩니다.

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

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

align은(는) 무엇을 하나요?

$align을 사용하여 실행 전에 컨텍스트를 균등화하세요. 이 스킬은 사람, 프로젝트 에이전트, WebGPT, $scillm, $ask, $dogpile, $memory 또는 $project-knowledge가 각기 다른 사실을 알고 있을 수 있는 작업을 위해 존재합니다. 이후 스킬이 실행할 수 있는 alignment_lock.json을 생성합니다.

$align을 최종 작업 구현, 렌더링, 리팩터링 또는 검토에 사용하지 마세요. 이는 실행 전 게이트(pre-execution gate)입니다. 정렬 잠금(alignment lock)이 ready_for_execution: true라고 표시될 때까지 코드, 인포그래픽, 대시보드, plan-iterate 단계 또는 프로젝트 인포그래픽 렌더링을 시작해서는 안 됩니다.

핵심 규칙

모든 차단 질문이 답변되고 잠금이 다음을 기록할 때만 정렬이 완료됩니다:

  • 합의된 목표
  • 합의된 비목표(non-goals)
  • 소스 컨텍스트
  • 참여자 사실
  • 남아있는 가정과 위험
  • 출력 형태
  • 승인 기준
  • 명시적인 준비/미준비 결정

불일치가 남아 있으면 잠금을 ready_for_execution: false로 유지하세요.

참여자

작업과 관련된 참여자만 사용하세요:

참여자역할
human의도, 선호도, 도메인 뉘앙스, 승인 기준
project_agent로컬 레포 상태, 제약 조건, 실행 가능한 다음 단계
project_knowledge지속 가능한 프로젝트 기록 및 인수인계 노트
memory이전 교훈 및 유사하게 해결된 문제
scillmlocalhost LLM 프록시를 통한 직접 모델 비평
ask아티팩트를 포함한 ask/oracle/deep-review 런타임; WebGPT 라우팅 소유
dogpile로컬 컨텍스트가 부족할 때 신선한 외부 연구
webgpt브라우저/세션 가시적 컨텍스트 및 사람 중심 판단

WebGPT 호출은 $ask webgpt를 통해 라우팅되어야 합니다. $ask는 이미 WebGPT 오라클 백엔드를 소유하고 있으며 사용자의 인증된 ChatGPT 탭에 대해 surf webgpt.submit --no-activate를 사용합니다. $align은 surf를 직접 호출하지 않습니다. WebGPT 요청을 $scillm을 통해 보내지 마세요. $scillm은 gpt-5.5, Gemini, Claude 또는 OpenCode Go와 같은 직접 모델 호출용입니다. 사람이 제공하는 경우 탭 ID를 유지하세요. $dogpile은 정렬이 누락된 외부/최신 지식으로 인해 차단된 경우에만 사용하세요. $project-knowledge 또는 $memory가 이미 답변하는 사실에는 사용하지 마세요.

런타임 라우팅

                         +-----------------------+
                         |    $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

리뷰어 라우트는 라운드에 대한 선택적 입력입니다:

                                +----------------+
                                | 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.

라운드 루프

각 라운드는 동일한 순서를 따릅니다:

  1. 선택된 참여자에게 현재 정렬 브리프(alignment brief)를 브로드캐스트합니다.
  2. 각 참여자는 자신이 작업이라고 믿는 것을 진술합니다.
  3. 각 참여자는 다른 사람이 모를 수 있는 자신이 알고 있는 사실을 나열합니다.
  4. 각 참여자는 가정, 모순 및 질문을 나열합니다.
  5. 질문을 차단(blocking) 및 비차단(non-blocking) 세트로 병합합니다.
  6. 답변할 수 있는 당사자에게 질문을 라우팅합니다.
  7. 브리프를 업데이트합니다.
  8. 차단 질문이 해결되거나 최대 라운드에 도달할 때까지 중지합니다.

차단 질문이 열린 상태로 최대 라운드에 도달하면 ready_for_execution: false로 중지하고 필요한 가장 작은 사람의 결정을 표면화합니다.

CLI

WebGPT 탭 바인딩 (CLI 패리티)

등록된 작업 디렉토리에서 제로 플래그 $ask webgpt를 선호합니다. /ask는 $browser-oracle을 자동으로 구성합니다. init 및 prepare-review는 바인딩 힌트를 .align/state.json에 유지하고 생성된 round-*-webgpt-ask-command.sh에 동일한 플래그를 내보냅니다.

플래그사용 시기
(없음)cwd에 워크업 레지스트리 + 바인딩 있음 — 선호됨
--browser-oracle-from <dir>워크업 루트 재정의 (모노레포 서브디렉토리)
--webgpt-project <name>명시적 프로젝트; yaml 워크업 생략
--webgpt-tab-id <id>일회성 재정의; 워크업 생략
--webgpt-url <url>대화 URL로 해석; 워크업 생략

해석 순서 ($ask / $surf와 동일): --webgpt-tab-id → --webgpt-url → $browser-oracle 워크업 → --webgpt-project → 하나의 chatgpt.com 탭 (실패 시 종료).

설정: $browser-oracle register + bind + doctor --from <dir>. $browser-oracle 및 $ask SKILL.md의 WebGPT 탭 바인딩 섹션을 참조하세요.

작업을 소유한 저장소 또는 프로젝트 루트에서 실행하세요:

skills/align/run.sh init \
  --goal "명확한 plan-iterate 인포그래픽 요청 생성" \
  --output-shape "소스에서 파생된 스토리보드 및 웹 인포그래픽 요청" \
  --participant human \
  --participant project_agent \
  --participant project_knowledge \
  --participant scillm \
  --participant ask \
  --participant dogpile \
  --participant webgpt
# 등록된 디렉토리에서 제로 플래그를 선호하거나 워크업 루트 유지:
#   --browser-oracle-from skills/oc-subagent/personas/mathematics
# 레거시 명시적 재정의:
#   --webgpt-tab-id 837343529

참여자 응답 기록:

skills/align/run.sh add-response \
  --participant project_agent \
  --round 1 \
  --text "작업: 렌더링 전 워크플로우 조정. 사실: 승인된 스토리보드가 없어 이전 시각 자료가 실패했습니다. 질문[차단]: 시각 자료의 기준이 될 정확한 샘플 프로젝트는 무엇입니까?"

라운드 컴파일:

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

차단 질문이 해결된 후에만 잠금:

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

리뷰어 요청 생성

prepare-review는 리뷰어를 위한 재생 가능한 요청 아티팩트를 생성합니다. 자체적으로 리뷰어를 호출하지는 않습니다.

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
# 또는: --webgpt-tab-id 837343529

리뷰에 사용자의 인증된 ChatGPT 브라우저 세션 또는 브라우저 가시적 컨텍스트가 필요할 때 WebGPT를 사용하세요. 리뷰가 직접적이고 재생 가능한 모델 호출(예: GPT-5.5 높은 추론 및 페르소나/시스템 프롬프트)이어야 할 때 $scillm을 사용하세요:

skills/align/run.sh prepare-review \
  --round 1 \
  --reviewer scillm \
  --scillm-model gpt-5.5 \
  --reasoning-effort high \
  --persona-prompt "당신은 회의적인 제품 정렬 리뷰어입니다. 일치하지 않는 가정과 누락된 승인 기준에 집중하세요."

prepare-review 후 권장 호출:

# scillm 직접 리뷰
.align/reviews/round-001-scillm-command.sh

# ask 심층 리뷰 또는 WebGPT 오라클
skills/ask/run.sh ask ".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 ".align/reviews/round-001-webgpt-request.md에 있는 정렬 요청 리뷰" \
  --browser-oracle-from skills/oc-subagent/personas/mathematics --oracle-iterations 1

# dogpile 연구: 외부 사실 누락으로 정렬이 차단된 경우에만
skills/dogpile/run.sh search "정렬을 해제하는 데 필요한 사실" \
  --context-file ".align/reviews/round-001-dogpile-request.md"

결과 리뷰어 텍스트를 add-response로 저장하세요. 리뷰어 영수증은 정렬에 대한 입력일 뿐이며, 그 자체로 실행 승인은 아닙니다.

라이브 구성 건전성 검사

sanity.sh는 빠른 로컬 검사입니다. 외부 할당량을 소모하지 않고 라운드 루프, 차단 질문 게이트, 리뷰어 요청 생성 및 잠금 스키마를 증명합니다.

sanity-live.sh는 $align이 복합 스킬로 준비되었다고 주장하기 전에 필요한 실제 E2E 게이트입니다. 라이브 다운스트림 시스템을 호출하므로 옵트인(opt-in)입니다:

  • 실제 메모리 스킬을 통한 $memory recall --brief
  • $align add-response를 통한 프로젝트 에이전트 응답 수집
  • 생성된 정렬 요청을 컨텍스트로 사용한 $dogpile search
  • 인증된 브라우저 기반 WebGPT 경로에 대한 $ask webgpt
  • 이러한 영수증이 검증된 후에만 최종 alignment_lock.json 생성

로컬 워크스테이션에 memory, dogpile 자격 증명/검색, Chrome 및 인증된 ChatGPT 세션이 있는 경우에만 실행하세요:

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

선택적 제어:

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

ALIGN_WEBGPT_TAB_ID 또는 ALIGN_WEBGPT_PROJECT가 제공되지 않으면 라이브 검사는 --webgpt-create-tab을 $ask에 전달합니다. 이는 여전히 유효한 로컬 Chrome/WebGPT 설정이 필요합니다. 증명 아티팩트는 기본적으로 /mnt/storage12tb/skills/align/live-e2e/<timestamp>/report.json입니다. 건너뛴 라이브 검사는 준비 상태를 확립하지 않습니다.

아티팩트 레이아웃

.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>/

중지 조건

다음 조건이 모두 충족될 때만 ready_for_execution: true로 설정하세요:

  • 열려 있는 차단 질문이 없음
  • 합의된 목표와 비목표가 명시적임
  • 출력 형태가 구체적임
  • 승인 기준이 테스트 가능하거나 검토 가능함
  • 소스 컨텍스트가 명명됨
  • 사람 또는 위임된 소유자가 잠금을 승인함

다음 조건에서는 ready_for_execution: false로 설정하세요:

  • 차단 질문이 남아 있음
  • WebGPT, $scillm, $ask 또는 프로젝트 지식이 브리프와 모순됨
  • 출력 형태가 여전히 추상적임
  • 참여자가 누락된 소스 증거를 노출함
  • 요청된 다음 단계가 실제 작업을 해결하는 대신 영수증을 생성할 것임

일반적인 실수

  • $align을 $interview의 대체품으로 사용하지 마세요. 누락된 정보가 순전히 사람의 선호도 또는 승인 기준인 경우 인터뷰를 사용하세요.
  • $align을 $review-code, $review-plan 또는 $plan-iterate의 대체품으로 사용하지 마세요. 정렬은 해당 스킬 이전에 수행됩니다.
  • WebGPT 또는 $ask를 수동으로 요약하지 마세요. 실제 런타임을 사용하고 아티팩트 경로 또는 리뷰어 텍스트를 저장하세요.
  • 리뷰어가 통과했다고 해서 정렬 잠금이 완료되었다고 부르지 마세요. 프로젝트 에이전트가 결과를 병합하고 차단 질문을 해결해야 합니다.

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.

관련 스킬