Files
company-haness/.claude/commands/decide.md
T

5.9 KiB

description
description
C-Level이 discovery의 근거·선택지를 읽고 하나로 수렴(converge)해 방향을 정한다. cascade 2단계(DECIDE).

당신은 Orchestrator다. DECIDE phase (workflow-stage = decide)/ground(discovery)가 접지한 근거 + option-set을 의사결정권자층이 읽고 하나로 수렴(converge) 한다: 방향·트레이드오프·go/no-go. 근거를 새로 만들지 않는다(그건 GROUND). divergent fan-out = 각 C-Level이 렌즈별로 옵션을 평가 → CEO가 하나로 수렴. 입력: /ground 산출 grounding-evidence + option-set(인자, --workflow <wf>). 반드시 must-read. (근거·선택지가 입력이다.)

언제

tier=heavy 전략 결정(신규 제품/수익/방향), 또는 발산된 option-set에서 하나로 수렴해야 할 때. C-Level은 '예비'가 아니라 수렴 결정층이다.

상태엔진 게이트(진입) — discovery→decide 선행조건 강제

  1. guard(진입 게이트): python3 .claude/hooks/state_engine.py guard --workflow <wf> --to decide.
    • 이 게이트는 discovery→decide의 선행조건 = grounding-evidence-present + option-set-present(≥2) 를 강제한다. exit 2면 진행하지 않는다 — 근거·선택지 없이 결정 금지 → /ground로 되돌리는 BlockedReport(미충족 사유 포함). exit 0이면 진행.
    • (option-set이 아직 없으면 /ground를 먼저 완료하라는 신호다 — anchoring 방지의 핵심.)
    • exit 0이면 state_engine.py enter-stage --workflow <wf> --to decide --actor OPS-ORCHdecide.running을 연 뒤 작업한다.

절차

  1. pre-work: /ground의 grounding-evidence + option-set + slack_inbox.py + report_tags.py --tag <주제>를 must-read.
  2. fan-out(divergent) = per-lens 옵션 평가: family는 resolve-family로 concrete role list를 고르는 metadata일 뿐 spawn 대상이 아니다. Orchestrator가 concrete C-Level 역할을 각각 격리 호출한다.
    • context-package(spawn 전 필수 게이트, finding #4): 각 워커를 띄우기 전 단일 컴파일러로 패키지를 만들고 검증한다 — python3 .claude/hooks/context_package.py --compile --workflow <wf> --task <task> --role <role> --mode divergent --tier <tier> [--lens <LENS>] [--target-repo <repo>]로 발급 → 스켈레톤 placeholder(objective·allowed-tools·task-boundaries·must-read[option-set 포함]·non-goals·target-repo·acceptance-tests·evidence-plan)를 채움 → python3 .claude/hooks/context_package.py <pkg>exit 0일 때만 spawn(누락/빈 필드/위장 placeholder면 금지 — finding P0-2). 검증 통과 시 stdout으로 출력되는 context-package:/context-package-sha256: 2줄을 각 워커 spawn 프롬프트 최상단에 그대로 포함하라 — guard_tools 의 Agent/Task spawn gate 가 참조(파일 실존·해시 일치·validate 재통과)를 강제하므로 참조 없이/위장 패키지로 spawn 하면 exit 2 차단된다. spawn 시 Agent/Task 도구의 model/effort 인자는 그 워커 context-package 의 model/effort(tier 파생, finding #17)를 그대로 넘긴다 — heavy tier 는 opus/high 로 추론 강도를 올린다. 필드 정의·규칙은 org-os/06-agent-work/context-package-spec.yaml. objective/boundaries 즉석 추론 금지.
    • exec-cpo(제품가치·고객문제) · exec-cfo(비용·ROI·자본효율) · exec-cto(기술 타당성·안정성·moat) · exec-coo(운영 실행성) · 제품-기술 충돌 시 exec-cpto.
    • 각자 자기 렌즈로만 옵션을 평가·순위 → 불변 경로(new_report.py --workflow <wf> --role <role>)에 tags:[<주제>,decide] 달아 보고서 작성 → 경로+BLUF 반환.
  3. 종합(converge): EXEC-CEO가 하위 보고서를 전부 읽고 합의·충돌 보존한 ExecutiveDecisionPacket을 쓴다. OPS-ORCH는 단계 집행·제출만 한다. standard/heavy payload에는 selected-option-id, evaluation-criteria, 2개 이상의 option-evaluations(각 scores+evidence-refs), tradeoffs, dissent, kill-criteria, revisit-conditions, evidence-refs가 모두 필수다. decide-direction의 세 step을 method-execution으로 결속하며, recommendation 한 줄만으로는 제출되지 않는다.
  4. 게이트: validate_report.py(BLUF·evidence·dissent) 통과. token_ledger.py로 워커 토큰 적재+예산 check(초과 시 collapse 강등). render_report.py로 대표용 MD.
  5. 보고(Slack 스레드): 부모=ExecutiveDecisionPacket + 각 C-Level 개별 agent-report를 스레드 답글(report-templates slack-reporting).

산출/handoff

  • artifact-kind: executive-decision-packet으로 발급하고 submit-artifact --workflow <wf> --report <path> --actor OPS-ORCH로 등록한다. HUMAN-001(또는 계약상 decision-approver)이 review-artifact --report <path> --decision accepted --reviewer HUMAN-001그 id+sha revision을 승인해야 /design gate가 통과한다. 다른 report의 Accepted는 인정되지 않는다.
  • stage 완료: 정확한 ExecutiveDecisionPacket revision이 승인된 뒤 state_engine.py complete-stage --workflow <wf> --actor OPS-ORCH --evidence <exec-packet.report.yaml>decide.completed를 기록한다. 결정 작성자와 stage 집행자는 분리되며, 집행자는 OPS-ORCH다.
  • 다음: /design(승인된 결정을 설계로 전개). /design 진입 guard가 decide→design(decision-packet-accepted + evidence-grade-min)을 강제한다.

규칙

  • 근거를 새로 만들지 않는다 — discovery의 근거·option-set을 읽고 수렴한다. 역할 선택은 role-selection-scorecard·drai-matrix(ExecutiveDecisionPacket DRAI) 기반. 임의 선발 금지.
  • 이견 삭제 금지(합의/충돌 보존). 고위험 최종 승인은 사람(HUMAN-001). AI는 권고까지.
  • mid-start: 승인된 decision-packet이 이미 있으면 /design부터 시작 가능(engine guard가 확인).