Communitygithub.com

ultragoal

여러 Claude 세션에서 지속되는 다중 목표 워크플로우로, .omc/ultragoal 아래에 계획/원장 아티팩트를 유지하고 활성 세션에 Claude /goal 핸드오프 텍스트를 출력합니다.

ultragoal란 무엇인가요?

Ultragoal은 장기적이고 복잡한 소프트웨어 엔지니어링 이니셔티브를 분할하여 여러 Claude Code 세션에서도 지속 가능하게 추적할 수 있도록 설계된 내구성 있는 다중 목표 워크플로우 도구입니다. 사용자가 간단한 브리프(brief)를 입력하면 Ultragoal은 이를 순서가 지정된 '스토리'(story) 세트로 분해하고, 각 스토리의 시작, 체크포인트, 블로커, 실패 이벤트를 추가 전용 원장(append-only ledger)에 기록합니다. 핵심 기능은 세션 범위에만 국한되어 상태가 손실되기 쉬운 Claude Code의 `/goal` 슬래시 명령어를 보완하여, 저장소 수준의 내구성 있는 아티팩트를 통해 세션 재시작이나 새 작업 트리(worktree)에서도 진행 상황을 잃지 않도록 합니다. 또한 최종 완료 전에 AI 슬롭 클리너(aiSlopCleaner), 검증(verification), 코드 리뷰(code review)를 포함한 품질 관문(quality gate)을 적용하여 결과물의 신뢰성을 높입니다. Ultragoal은 Claude Code, Cursor, Codex와 같은 AI 에이전트에서 사용할 수 있으며, 특히 `/goal` 명령어를 적극적으로 활용하는 환경에서 그 가치가 극대화됩니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/ultragoal

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

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

문서

<Use_When>

  • 사용자가 여러 Claude 세션 또는 작업 트리에서 초목표를 추적할 수 있는 내구성 있고 저장소 네이티브한 방법을 원할 때
  • 작업이 여러 개의 순서가 있는 '스토리'와 시도 횟수 및 스토리별 증거를 필요로 할 만큼 클 때
  • 사용자가 최종 완료를 AI 슬롭 클리너 + 검증 + $code-review로 게이트하기를 원할 때
  • 사용자가 활성 Claude /goal 지시를 원장과 조정하여 세션 재시작 시 진행 상황이 손실되지 않도록 하려 할 때 </Use_When>

<Do_Not_Use_When>

  • 작업이 단일 작은 변경인 경우 — 대신 직접 위임 또는 ralph 사용
  • 사용자가 셸에서 직접 /goal을 호출하기를 원하는 경우 — 불가능합니다. omc ultragoal은 아티팩트를 쓰고 핸드오프 텍스트만 출력합니다.
  • 사용자가 실행 루프 없이 계획 전용 아티팩트를 원하는 경우 — 대신 plan 사용 </Do_Not_Use_When>

<Why_This_Exists> Claude Code /goal은 세션 범위의 Stop 훅입니다. 조건이 유지될 때까지 세션이 중지되는 것을 차단하고, 성공 시 자동으로 해제됩니다. 이것은 훌륭한 단일 세션 실행 기본 요소이지만, 세션 간에 상태가 손실되고 최종 검토 게이트를 자체적으로 강제하지 않습니다. omc ultragoal은 내구성 있는 계획, 원장 및 게이팅 레이어를 추가하여 긴 다단계 이니셔티브가 세션 재시작, 새로운 작업 트리 및 검토 반복에서도 생존할 수 있도록 하면서, Claude /goal을 활용하여 활성 에이전트의 집중을 유지합니다. </Why_This_Exists>

<How_To_Use>

  1. 브리프에서 계획을 생성합니다:

    omc ultragoal create-goals --brief-file plan.md
    

    또는 명시적 스토리 사용:

    omc ultragoal create-goals --brief "ship the migration" \
      --goal "Schema::새 컬럼 추가" \
      --goal "Backfill::배치로 행 백필" \
      --goal "Cutover::이전 컬럼 삭제 및 읽기 전환"
    

    기본 모드는 aggregate입니다(하나의 Claude /goal이 전체 실행을 포함). 각 스토리에 자체 /goal을 원하면 --claude-goal-mode per-story를 전달하세요.

    다중 저장소 워크스페이스 / 병렬 세션: 동일한 워크스페이스의 여러 Claude 세션이 동시에 /ultragoal을 실행해야 하는 경우, --plan-id <안정-id> 또는 --auto-plan-id를 전달하여 계획이 공유 단일 계획 경로 대신 .omc/ultragoal/plans/{planId}/에 기록되도록 합니다. 이 플래그가 없으면 두 세션이 목표를 생성할 때 서로 덮어쓰게 됩니다. --auto-plan-id는 브리프 제목에서 {epochMs}-{slug}를 파생합니다. 그런 다음 해당 세션의 모든 후속 하위 명령어에 동일한 --plan-id <id>를 전달하세요. 필요시 omc ultragoal list-plans를 사용하여 사용 가능한 planId를 열거합니다.

  2. 다음 스토리를 시작(또는 재개)합니다:

    omc ultragoal complete-goals [<goal-id>]
    

    goal-id가 없으면 활성 스토리를 재개하거나 첫 번째 대기 중인 스토리를 시작하는 기본 동작을 유지합니다. goal-id가 있으면 OMC는 정확히 그 이름이 붙은 적격 스토리를 대상으로 합니다(대기 중인 스토리는 순서에 관계없이 시작될 수 있음). 다른 활성 스토리, 알 수 없는 id, 완료 또는 검토 차단된 스토리, 또는 --retry-failed 없이 실패한 스토리는 상태 변경 없이 거부됩니다. 진행 중인 이름이 붙은 스토리는 시도 횟수를 변경하지 않고 재개됩니다. 이 명령어는 모델 지향 핸드오프를 출력합니다. 활성 Claude 에이전트는 이를 읽고 다음을 수행해야 합니다:

    • 이 세션에 대한 네이티브 Claude /goal을 설정합니다 — 독립형 Claude Code에서는 셸과 에이전트 모두 할 수 없으므로, 사용자에게 /goal <집계 목표>를 입력하고 기다리도록 요청하세요. --claude-goal-json(아래 참조)은 원장만 조정할 뿐 PreToolUse /goal 가드를 충족하지 않으며, 이 가드는 활성 /goal이 관찰될 때까지 도구 호출을 차단합니다.
    • 스토리를 작업합니다.
    • 스토리가 완료되면(그리고 마지막 스토리의 경우 전체 품질 게이트 이후), 활성 /goal 상태의 스냅샷을 공유하고 checkpoint를 호출합니다.
  3. 스토리를 체크포인트합니다:

    omc ultragoal checkpoint --goal-id G001-... --status complete \
      --evidence "tests/files/PR evidence" \
      --claude-goal-json '{"goal":{"objective":"...","status":"active"}}'
    

    마지막 스토리의 경우, --quality-gate-json도 전달하여 aiSlopCleaner, verification, codeReview 증거(모두 깨끗함)를 포함합니다.

  4. 최종 검토가 깨끗하지 않으면 complete를 표시하지 마세요. 블로커를 기록합니다:

    omc ultragoal record-review-blockers --goal-id G00X-... \
      --title "최종 코드 리뷰 블로커 해결" \
      --objective "지적된 리뷰 항목을 수정하고 최종 게이트 재실행" \
      --evidence "<리뷰 결과>" \
      --claude-goal-json '{"goal":{"objective":"...","status":"active"}}'
    

    이 명령어는 새로운 블로커 스토리를 추가하고 Claude /goal을 계속 활성 상태로 유지합니다.

  5. 언제든지 상태를 확인합니다:

    omc ultragoal status
    

</How_To_Use>

<Important_Limitations>

  • 셸은 Claude Code /goal 상태를 호출하거나 변경할 수 없습니다. omc ultragoal은 내구성 있는 아티팩트를 유지하고 활성 Claude 에이전트가 세션 내에서 읽고 실행할 지침을 출력할 뿐입니다.
  • --claude-goal-json을 통해 전달된 스냅샷은 모델이 제공한 활성 /goal 상태의 증거입니다. OMC는 이를 계획의 예상 목표 및 원장 이벤트와 텍스트적으로 일관성 있는지 검증하지만, Claude /goal 상태를 독립적으로 관찰할 수는 없습니다. 이는 PreToolUse /goal 가드를 충족하지 않으며, 이 가드는 실제 활성 /goal을 필요로 합니다 — 호스트가 주입한 스냅샷이나 사용자가 세션에서 설정한 네이티브 /goal이 필요합니다.
  • Claude /goal 슬래시 명령어의 이름이 바뀌거나 재구성되어도 핸드오프 문구만 변경하면 됩니다. 조정 로직은 이름에 구애받지 않습니다. </Important_Limitations>

병렬 세션 주의 사항

  • 다중 저장소 워크스페이스 앵커: 여러 세션이 하위 저장소에 걸쳐 하나의 .omc/를 공유할 수 있도록 상위 디렉토리에 .omc-workspace 마커를 추가하세요. 해석 순서: OMC_STATE_DIR > .omc-workspace > git > cwd. docs/REFERENCE.md를 참조하세요.
  • 세션 ID 출처: CLI 컨텍스트에서는 OMC_SESSION_ID 환경 변수가 우선하며, 훅 컨텍스트에서는 payload.data.session_id가 우선합니다.
  • 계획 ID (해당하는 경우): 동일한 워크스페이스에서 두 번 실행하면 공유 계획 아티팩트에 충돌이 발생합니다. 고유한 세션 ID(훅 페이로드 session_id는 이미 각 Claude Code 세션별로 격리됨)를 사용하거나 --plan-id를 전달하여 병렬 ultragoal 실행을 별도의 원장에 유지하세요.
  • 병렬 판정: 지원됨 (각 세션은 자체 세션 범위 상태를 작성함)

Individual skills in this repo

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

agent-doc-discipline

Writing-time discipline for documents agents consume (the five surfaces, specs, tickets, .omc/skills/) — every rule checkable and carrying a why, steps before reference, one meaning in one home, no restating what the environment already says. Mandatory at drydock seed generation and the launch C5 sediment pass; opt-in for any other agent-facing doc edit. The companion of minimal-code-discipline: that one disciplines code, this one disciplines papers.

ai-slop-cleaner

Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode

ask

Process-first advisor routing for Claude, Codex, Gemini, Antigravity, Grok, or Cursor via `omc ask`, with artifact capture and no raw CLI assembly

ask-navigator

Shipyard

autopilot

Full autonomous execution from idea to working code

autoresearch

Stateful single-mission improvement loop with strict evaluator contract, markdown decision logs, and max-runtime stop behavior

cancel

Cancel any active OMC mode (autopilot, ralph, ultragoal, swarm, ultrapilot, pipeline, team) and clean up retired legacy state

configure-notifications

Configure notification integrations (Telegram, Discord, Slack) via natural language

debug

Diagnose the current OMC session or repo state using logs, traces, state, and focused reproduction

deepinit

Deep codebase initialization with hierarchical AGENTS.md documentation

deep-interview

Socratic deep interview with mathematical ambiguity gating before explicit execution approval

drydock

Lay the keel of the shipyard harness in any repo — the 4-pillar shared environment (Context, Rules, Tools, Standards) across 5 surfaces (CLAUDE.md, skills, design-system, mcp/cli, shared context) so that every human and agent inherits the same design language and anyone can ship. Run once per repo; re-run with --check to audit drift.

execute

Carry an approved task through to working, verified code

external-context

Invoke parallel document-specialist agents for external web searches and documentation lookup

graph

Deterministic orchestration graph runtime - declarative DAG pipelines with journal-based crash recovery

harbor

Harbor intake for external work — the captain only handles unresolved decisions. Sweeps incoming issues and PRs, verifies every claim before disposition, reuses every decision already made, and hands the maintainer a docket whose pending items each carry one question with options, recommendation, impact and evidence. Agent-autonomous for facts and for actions covered by standing authorization; signed for every new judgment. Never merges.

hud

Configure HUD display options (layout, presets, display elements)

launch

Shipyard

loft

Loft the shape before cutting steel — answer a design question that prose cannot settle by building a throwaway artifact: a pure logic module in a clickable shell, or structurally different UI variants behind one route. The captain reacts to the artifact; the answer folds into the decision; the artifact never docks. Use when a design question stalls in words, when a navigator map carries a loft ticket, or when a spec discussion reaches

minimal-code-discipline

YAGNI-ladder coding discipline for writing changes — existence-first, reuse before writing, dependency ladder, shortest correct diff, with non-negotiables that must never be minimized away

관련 스킬