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 | 이전 교훈 및 유사하게 해결된 문제 |
scillm | localhost 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.
라운드 루프
각 라운드는 동일한 순서를 따릅니다:
- 선택된 참여자에게 현재 정렬 브리프(alignment brief)를 브로드캐스트합니다.
- 각 참여자는 자신이 작업이라고 믿는 것을 진술합니다.
- 각 참여자는 다른 사람이 모를 수 있는 자신이 알고 있는 사실을 나열합니다.
- 각 참여자는 가정, 모순 및 질문을 나열합니다.
- 질문을 차단(blocking) 및 비차단(non-blocking) 세트로 병합합니다.
- 답변할 수 있는 당사자에게 질문을 라우팅합니다.
- 브리프를 업데이트합니다.
- 차단 질문이 해결되거나 최대 라운드에 도달할 때까지 중지합니다.
차단 질문이 열린 상태로 최대 라운드에 도달하면 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를 수동으로 요약하지 마세요. 실제 런타임을 사용하고 아티팩트 경로 또는 리뷰어 텍스트를 저장하세요. - 리뷰어가 통과했다고 해서 정렬 잠금이 완료되었다고 부르지 마세요. 프로젝트 에이전트가 결과를 병합하고 차단 질문을 해결해야 합니다.