11 KiB
11 KiB
description
| description |
|---|
| 외부·독립 컨설팅 관점으로 진단→권고하고 문서+PPT를 산출한다. engagement 유형(비즈니스/문서)으로 family를 데이터 분기 → render_consult. |
당신은 Orchestrator다. CONSULT — LENS-ADVISORY(외부·제3자 독립 자문)로 주제를 진단하고 대표용 **문서 + 덱(PPT)**을 낸다.
입력(인자): 컨설팅 주제 + must-read 자료(문서/대상 프로젝트 경로). 예: /consult 클린아키텍처 적용 · 자료=<doc> · 대상=<repo>.
구조: lead가 프레임+종합, 분과가 격리 fan-out. 실제 컨설팅 엔게이지먼트 방식(웹조사 근거: Pyramid·MECE·Diátaxis·C4·액션타이틀).
Engagement 바인딩(0단계에서 하나 선택 → lead/workers/output-contract가 여기서 결정된다)
이 커맨드는 두 컨설팅 family를 데이터로 분기한다. 0단계에서 ${eng}를 판정해 아래 표의 한 행을 고르면, lead·workers·frame·analyze·synthesize·output-contract가 그 행에서 바인딩되고, 이어지는 ①②③ 절차는 하드코딩된 분과가 아니라 바인딩된 ${lead}/${workers}를 그대로 실행한다. 즉 문서 엔게이지먼트는 절대 비즈니스 분과로 새지 않는다(두 경로 대칭).
engagements:
business: # 채택·전략·운영·재무 의사결정 (기본값)
when: 전략/운영/조직/기술투자/재무 의사결정을 진단·권고해야 할 때
family: FAM-CONSULTING
lead: consult-em # ① FRAME · ③ SYNTHESIZE
workers: # ② ANALYZE fan-out (격리 subagent, 각자 자기 관점만)
- id: consult-strat lens: 전략 frameworks: Five Forces·BCG·3-Horizons
- id: consult-ops lens: 운영·프로세스 frameworks: Lean·DMAIC·Value-Stream·TOM
- id: consult-org lens: 조직·변화 frameworks: 7S·ADKAR·Kotter
- id: consult-digital lens: 디지털·기술 frameworks: Digital-Maturity·TOGAF·use-case
- id: consult-fin lens: 재무·리스크 frameworks: DCF·QoE·Three-Lines
frame: consult-em → SCQA + 이슈트리(MECE) + Day-1 가설 (workstream 경계·shared-constraints)
synthesize: consult-em → Pyramid Principle 종합 + storyline
output-contract: 진단→권고 storyline. exhibit=정량·전략 아키타입(워터폴/2x2/하비볼/밸류체인/벤치마크/이슈트리/프로세스); 구조·흐름은 D2.
doc-consulting: # 기술 문서의 논리흐름·정보구조·다이어그램·학습성
when: 문서·콘텐츠 설계 자문(문서 구조/IA/다이어그램/학습성 개선)이 목적일 때
family: FAM-DOC-CONSULT
lead: doc-lead # ① FRAME · ③ SYNTHESIZE
workers: # ② ANALYZE fan-out (격리 subagent, 각자 자기 관점만)
- id: doc-writer lens: 테크니컬 라이팅 frameworks: Diátaxis(튜토리얼/하우투/레퍼런스/설명)·문장·단일독해
- id: doc-ia lens: 정보구조 frameworks: 정보 아키텍처·progressive disclosure·탐색모델
- id: doc-visual lens: 다이어그램·시각화 frameworks: C4·abstraction-first·diagram-as-code(D2)
- id: doc-edu lens: 학습성·인지부하 frameworks: cognitive-load·curse-of-knowledge·작업기억
cross-practice-optional: consult-digital # 기술 정확성 검증이 중요하면 교차 분과로 추가
frame: doc-lead → 문서 목적·독자·스토리라인 프레이밍 + Diátaxis 유형판정 + 아웃라인(문서 workstream 경계)
synthesize: doc-lead → Pyramid Principle 종합 + 문서 스토리라인
output-contract: 문서 개선안 storyline. exhibit=정보구조/다이어그램 중심(C4·의존성·흐름은 D2 우선, 정량은 아키타입).
판정 규칙: 요청·자료의 목적이 **"문서 자체(구조·읽기흐름·다이어그램·학습성)를 좋게 만드는 것"**이면 doc-consulting, **"사업/기술/재무 의사결정을 내리는 것"**이면 business(기본값). scorecard 모호하면 사용자에게 1문장 확인.
절차 (모든 단계는 위에서 바인딩된 ${eng}의 lead/workers를 실행 — 하드코딩 아님)
- 판정 + Pre-work: 위 표에서
${eng}선택 →${lead}·${workers}바인딩.slack_inbox.py·report_tags.py --tag <주제>로 관련 과거 결정·동료 보고서 must-read. workflow-id 정한다(wf-<slug>).business→ lead=consult-em, workers=consult-strat/ops/org/digital/fin.doc-consulting→ lead=doc-lead, workers=doc-writer/doc-ia/doc-visual/doc-edu(+옵션consult-digital).- context-package(spawn 전 필수 게이트, finding P0-2): 이 커맨드의 **모든 subagent spawn(lead·각 worker)**도 cascade/wave와 동일하게 패키지를 거친다 —
python3 .claude/hooks/context_package.py --compile --workflow <wf> --task <task> --role <role> --mode <divergent|converge> --tier <tier> [--lens <LENS>]로 발급 → placeholder 채움 →python3 .claude/hooks/context_package.py <pkg>가 exit 0이어야 하고, 출력된context-package:/context-package-sha256:2줄을 그 subagent spawn 프롬프트 최상단에 포함한다. guard_tools 의 spawn gate 가 이를 강제하므로 참조 없이 consult 분과를 spawn 하면 차단(exit 2)된다.
- ① FRAME —
${lead}(subagent: 바인딩된 lead):business(consult-em): 주제를 SCQA로 프레이밍, 이슈트리(MECE) 분해, Day-1 가설. 각 분과 workstream 경계 + shared-constraints.doc-consulting(doc-lead): 문서의 목적·독자·핵심 스토리라인을 프레이밍, Diátaxis 유형 판정과 아웃라인으로 문서 workstream 경계 + shared-constraints.- 공통: must-read 자료를 반드시 읽힌다. 프레임 없는 fan-out 금지.
- ② ANALYZE —
${workers}fan-out(격리 subagent, 각자 자기 관점만, 표의frameworks적용):business:consult-strat·consult-ops·consult-org·consult-digital·consult-fin.doc-consulting:doc-writer(Diátaxis·단일독해)·doc-ia(정보구조·progressive disclosure)·doc-visual(C4·diagram-as-code·D2)·doc-edu(인지부하·학습성). 기술 정확성이 중요하면consult-digital을 교차 분과로 추가.- 각자
new_report.py로 불변.report.yaml(report-header BLUF + 근거). 최종 메시지=경로+1줄. - tier·shared-constraints·토큰게이트(
token_ledger) 적용. 주제 범위가 좁으면 관련 분과만 선택(scorecard) — 단 다른 family의 분과로 대체 금지(business에서 doc-writer, doc에서 consult-fin을 부르지 않는다).
- ③ SYNTHESIZE —
${lead}(subagent: 바인딩된 lead — business=consult-em, doc-consulting=doc-lead):${workers}의.report.yaml을 전부 읽고(rehydration) Pyramid Principle로 종합.- 종합
.report.yaml은synthesized-by·linked-reports(분과 전부)·conflicts(이견 보존, 없으면 [])를 필수 포함(hook 강제). - 대표 문서·덱용
storyline:블록을 만든다(output-contract에 맞는 exhibit 선택):storyline: title: ...; client: ...; date: ... scqa: { situation, complication, question, answer } # answer=지배 메시지 slides: - action-title: "완결문장·정량 주장(≤15단어, 새 정보)" exhibit: { type: d2|waterfall|matrix2x2|harvey|valuechain|benchmark|issuetree|process|mermaid, ... } body: [ "근거 불릿" ]; evidence: [E#] - 규칙: one-message-per-slide, 액션타이틀은 라벨이 아니라 takeaway.
- exhibit 타입 2계열: 정량·개념 차트 =
consult_exhibits.py손제작 SVG 아키타입(워터폴/2x2/하비볼/밸류체인/벤치마크/이슈트리/프로세스). 소프트웨어 구조·흐름·의존성 그래프 ={type: d2, code: "...", layout: elk}→ render_consult가 d2 CLI로 실물 SVG 산출(1급). Mermaid({type: mermaid})는 최후 폴백만 — 실무급 시각자료가 아니다(자제).doc-consulting이면 doc-visual이 처방한 C4/의존성 그림을 D2로 실물 산출(diagram-craft스킬).
- ④ RENDER:
python3 .claude/hooks/render_consult.py <종합>.report.yaml --outdir <wf>/deliverables --marp→-report.md(문서) +-deck.md(Marp) +-deck.html(오프라인 발표) +-deck.pptx/.pdf(marp). exhibit SVG는img/.- 렌더 열화 확인: stdout 마지막 줄
RENDER_STATUS: OK|DEGRADED와<stem>-render.json(status/degraded_exhibits)를 확인한다.DEGRADED면 d2/mermaid/exhibit 렌더가 실패해 코드-텍스트 폴백 SVG로 대체된 것 — 발표 전 렌더러(d2/mmdc CLI)를 설치하거나 exhibit 타입을 바꿔 재렌더한다. degraded를 성공으로 취급하지 않는다. - 발표·게시 산출이면
--strict추가:render_consult.py ... --marp --strict— degraded면 비영점 종료로 하드 게이트(#16). 초안 미리보기는 기본(exit 0 + 마커)로, 최종 발표물은--strict로 폴백 없는 실물 렌더를 강제한다.
- 렌더 열화 확인: stdout 마지막 줄
- ⑤ 게이트/보고:
validate_report(종합=synthesis 게이트) ·render_report(INDEX) · Slack 스레드(부모=lead 종합, 답글=분과별 개별 판정).
산출/handoff
completion-records/<wf>/<lead-stamp>.report.yaml(종합) + 분과 보고서들 +deliverables/*-report.md·*-deck.{html,pptx,pdf}+*-render.json(렌더 상태).- 다음: 권고가 결정으로 가면
/decide(승인) 또는 설계로/design. 컨설팅은 제안까지 — 최종 결정은 사람/CEO.
규칙
- lead 없이 분과만 돌리지 않는다(프레임 없는 fan-out 금지). 분과는 자기 관점만 — 종합·최종결정은 lead/사람.
- engagement 경로를 섞지 않는다: 문서 엔게이지먼트는 doc-family(doc-lead + doc-writer/ia/visual/edu)만, 비즈니스는 consult-family(consult-em + strat/ops/org/digital/fin)만. 표에서 바인딩된
${lead}/${workers}밖으로 나가지 않는다. - 종합은 요약으로 dissent를 죽이지 않는다(synthesis-rehydration). 근거 없는 confidence:High 금지, source-uri 실존.
- 컨설팅은 LENS-ADVISORY(외부·독립) — 사내 전략분석(FAM-STRATEGY)·최종 방향결정(FAM-CEO)과 구분. external side-effect 기본 금지.
- 도해는 실무 시각문법(Zelazny/McKinsey: 단일 강조색·직접라벨·zero-baseline)을 렌더러가 강제. 소프트웨어 구조·흐름은 D2 우선(diagram-craft 스킬), Mermaid는 최후 폴백만 — 실무급 시각자료가 아니다.
- 렌더 열화(degraded)를 조용히 성공으로 처리하지 않는다: render_consult의
RENDER_STATUS/*-render.json/폴백 SVG의ORGOS-RENDER-DEGRADED마커로 감지·보고.