init: company-haness 설계

This commit is contained in:
DongHyeonka
2026-07-23 17:49:00 +09:00
parent 57d1bab894
commit f668d6a158
962 changed files with 98989 additions and 1 deletions
@@ -0,0 +1,63 @@
capability-families:
version: 7
purpose: >
75개 참조 role(roles.yaml)을 실제 인스턴스화·라우팅 단위인 28개 패밀리로 묶는다.
같은 렌즈/역량을 공유하는 role만 한 패밀리로 묶으며, 서로 다른 렌즈는 병합하지 않는다.
v4: FAM-CONSULTING(외부·독립 자문 = LENS-ADVISORY) 추가 — 6 컨설팅 직무, EM=lead(프레임+종합) 구조.
v5: FAM-DOC-CONSULT(문서·콘텐츠 설계 자문 = LENS-ADVISORY) 추가 — 5 직무, DOC-LEAD=lead. 논리흐름·다이어그램·구성 자문.
v7: family를 실행 agent가 아닌 role planner 후보 metadata로 확정했다. `.claude/agents`에는
75개 concrete role card만 생성하며 router/resolver family card는 생성하지 않는다.
source-of-roles: org-os/00-role-registry/roles.yaml
reference-taxonomy-preserved: true
family-count: 28
role-count-covered: 75
rules:
- 모든 role-id는 정확히 하나의 패밀리에 속한다(중복·누락 금지).
- 서로 다른 lens를 carry하는 role은 같은 패밀리로 병합하지 않는다(lens-registry R1).
- audit-capable=true 패밀리만 감사/검증 역할로 배정할 수 있다.
- 임원 8개 패밀리는 각자 distinct 렌즈라 통합하지 않는다(다양성 보존).
- lead-role-id가 지정된 fan-out 패밀리는 그 role을 '리드(synthesis-lead)'로 생성한다(프레임+종합 담당). 나머지 멤버는 fan-out 워커. gen_agents가 배선.
- family는 실행 identity가 아니다. role_selector.py가 후보 멤버에서 minimum sufficient concrete role을 선택한다.
- invocation-triggers/exclusions는 라우팅 단위(family) 자동 호출의 근거이며, 다음 라운드 .claude subagent description의 원천이다.
- collaboration-default는 후보 탐색 전략의 힌트다. family member 전체를 자동 spawn하지 않으며 tier/mode/coverage/budget이 실제 선택 폭을 결정한다.
invocation-schema:
invocation-triggers: 이 family를 호출하는 관측가능한 상황(Use PROACTIVELY when …).
exclusions: 인접하지만 다른 family로 넘겨야 하는 조건(Do NOT use for … -> 대상 family).
collaboration-default: >
fan-out = 멤버 role을 각각 격리 subagent로 호출해 독립 보고서를 남기고 상위가 원본을 읽어 종합(판단·설계·분석·수익 계열).
collapse = 멤버 role을 1 에이전트로 통합해 단일 보고서(코드·실행 산출 계열, 효율 우선).
n/a = 산출 결정이 아니라 조율(FAM-ORCH).
collaboration-default-summary:
fan-out: 21
collapse: 6
n/a: 1
rule: 코드·실행 산출물을 만드는 family만 collapse. 판단·설계·분석·수익 산출물을 만드는 family는 fan-out.
families:
- { family-id: FAM-CEO, collaboration-default: fan-out, member-role-ids: [EXEC-CEO], carries-lenses: [LENS-VALUE], audit-capable: false, default-team-types: [Leadership], instantiation-priority: mvp, invocation-triggers: "전사 방향/포트폴리오/최종 의도 정리, 사용자와의 소통, C-Level 종합", exclusions: "구현/기술결정 -> FAM-CTO, 상태/큐 관리 -> FAM-ORCH" }
- { family-id: FAM-ORCH, collaboration-default: n/a, member-role-ids: [OPS-ORCH], carries-lenses: [], audit-capable: false, default-team-types: [Operations], instantiation-priority: mvp, invocation-triggers: "wave 계획, 상태/큐 갱신, 역할선택 scorecard, tier 선언, 라우팅 조정", exclusions: "제품/기술/재무 결정을 새로 생성 -> 해당 결정권 family(제안만 가능)" }
- { family-id: FAM-CTO, collaboration-default: fan-out, member-role-ids: [EXEC-CTO], carries-lenses: [LENS-TECH], audit-capable: false, default-team-types: [Leadership, Platform], instantiation-priority: mvp, invocation-triggers: "아키텍처/안정성/보안태세/확장성/기술부채 결정, RFC/ADR/SLO/golden-path 승인", exclusions: "제품가치 -> FAM-CPO, 구현 -> FAM-ENG-*, 재무 -> FAM-CFO" }
- { family-id: FAM-CPO, collaboration-default: fan-out, member-role-ids: [EXEC-CPO], carries-lenses: [LENS-PRODUCT], audit-capable: false, default-team-types: [Leadership, Stream-aligned], instantiation-priority: mvp, invocation-triggers: "고객문제/제품가치/로드맵/P&L 결정, PR-FAQ 승인", exclusions: "기술구현 -> FAM-CTO/FAM-ENG-*, 매출운영 -> FAM-REVOPS" }
- { family-id: FAM-CFO, collaboration-default: fan-out, member-role-ids: [EXEC-CFO], carries-lenses: [LENS-FINANCE], audit-capable: false, default-team-types: [Leadership, Enabling], instantiation-priority: mvp, invocation-triggers: "비용/ROI/자본효율/기회비용 판단, 가격 재무모델, 예산", exclusions: "제품 -> FAM-CPO, 기술 -> FAM-CTO" }
- { family-id: FAM-COO, collaboration-default: fan-out, member-role-ids: [EXEC-COO], carries-lenses: [LENS-OPS], audit-capable: false, default-team-types: [Leadership, Enabling], instantiation-priority: standard, invocation-triggers: "운영타당성/프로세스/지원부담/조직 실행 판단, value-stream 승인", exclusions: "제품/기술 결정 -> 해당 C-Level" }
- { family-id: FAM-CPTO, collaboration-default: fan-out, member-role-ids: [EXEC-CPTO], carries-lenses: [LENS-INTEGRATION], audit-capable: false, default-team-types: [Leadership], instantiation-priority: standard, invocation-triggers: "제품-기술 통합/충돌 조정(속도 vs 안정성), CPTO 관점 필요 시", exclusions: "단일 도메인 결정 -> 해당 C-Level" }
- { family-id: FAM-VPENG, collaboration-default: fan-out, member-role-ids: [EXEC-VPENG], carries-lenses: [LENS-TECH], audit-capable: true, default-team-types: [Leadership, Enabling], instantiation-priority: mvp, invocation-triggers: "엔지니어링 딜리버리/리뷰/completion-record 수용 결정, 릴리스 추천", exclusions: "아키텍처 원결정 -> FAM-CTO/FAM-ARCHITECTURE-TECH" }
- { family-id: FAM-PRODUCT-MGMT, collaboration-default: fan-out, member-role-ids: [PROD-PM, PROD-PO, PROD-TPO, PROD-PPO], carries-lenses: [LENS-PRODUCT], audit-capable: false, default-team-types: [Stream-aligned, Complicated Subsystem, Platform], instantiation-priority: mvp, invocation-triggers: "PRD/discovery/우선순위/수용기준 작성, 백로그·스코프 정의", exclusions: "구현 -> FAM-ENG-*, 디자인 -> FAM-DESIGN" }
- { family-id: FAM-UX-RESEARCH, collaboration-default: fan-out, member-role-ids: [UX-RESEARCHER, DATA-ANALYST], carries-lenses: [LENS-CUSTOMER], audit-capable: false, default-team-types: [Enabling, Stream-aligned], instantiation-priority: standard, invocation-triggers: "사용자 리서치/정성 인사이트/제품 지표 분석/이탈 원인 규명", exclusions: "데이터 파이프라인/모델 구축 -> FAM-DATA" }
- { family-id: FAM-DESIGN, collaboration-default: fan-out, lead-role-id: DES-DIRECTOR, member-role-ids: [DES-DIRECTOR, DES-PROD, DES-PLATFORM, DES-INTERNAL, DES-VISUAL], carries-lenses: [LENS-CUSTOMER], audit-capable: false, default-team-types: [Stream-aligned, Platform], instantiation-priority: standard, invocation-triggers: "UI/UX 디자인, 디자인 방향 발산·수렴, 프로토타입, 디자인시스템, 인터널툴 디자인", exclusions: "프론트 구현 -> FAM-ENG-FRONTEND" }
- { family-id: FAM-STRATEGY, collaboration-default: fan-out, member-role-ids: [STR-ANALYST], carries-lenses: [LENS-VALUE, LENS-FINANCE], audit-capable: false, default-team-types: [Enabling], instantiation-priority: standard, invocation-triggers: "전략/시장/포트폴리오 분석 근거 제공", exclusions: "최종 방향 결정 -> FAM-CEO" }
- { family-id: FAM-ENG-FRONTEND, collaboration-default: collapse, primary-role-id: ENG-FE, collapse-routes: [{ when-any: [design-system, component-library, frontend-platform], role-id: ENG-FEPLAT }, { when-any: [interaction, accessibility, ux-implementation], role-id: ENG-FEUX }], member-role-ids: [ENG-FE, ENG-FEPLAT, ENG-FEUX], carries-lenses: [LENS-TECH], audit-capable: false, default-team-types: [Stream-aligned, Platform], instantiation-priority: mvp, invocation-triggers: "프론트엔드/UX 엔지니어링 구현, 프론트 플랫폼 컴포넌트", exclusions: "백엔드 -> FAM-ENG-BACKEND, 디자인 결정 -> FAM-DESIGN" }
- { family-id: FAM-ENG-BACKEND, collaboration-default: collapse, primary-role-id: ENG-BE, collapse-routes: [{ when-any: [generic-server, scaffolding], role-id: ENG-BEGEN }, { when-any: [product-server, domain-service], role-id: ENG-PRODSERVER }, { when-any: [platform-server, shared-service], role-id: ENG-PLATSERVER }, { when-any: [product-engineering, alternative-proposal], role-id: ENG-PRODUCTMINDED }, { when-any: [software-interface, cross-platform], role-id: ENG-SW }], member-role-ids: [ENG-BE, ENG-BEGEN, ENG-PRODSERVER, ENG-PLATSERVER, ENG-PRODUCTMINDED, ENG-SW], carries-lenses: [LENS-TECH], audit-capable: false, default-team-types: [Stream-aligned, Platform], instantiation-priority: mvp, invocation-triggers: "백엔드/서버/API 구현(제품·플랫폼 서버), 비즈니스 로직", exclusions: "인프라/배포기반 -> FAM-PLATFORM-INFRA, 데이터 파이프라인 -> FAM-DATA" }
- { family-id: FAM-ENG-SPECIAL, collaboration-default: collapse, primary-role-id: ENG-DESKTOP, collapse-routes: [{ when-any: [developer-productivity, dev-tooling], role-id: ENG-PRODCHAPTER }], member-role-ids: [ENG-DESKTOP, ENG-PRODCHAPTER], carries-lenses: [LENS-TECH], audit-capable: false, default-team-types: [Complicated Subsystem, Platform], instantiation-priority: later, invocation-triggers: "데스크톱/리눅스 앱 개발(ENG-DESKTOP) 또는 개발생산성 도구/체계(ENG-PRODCHAPTER)", exclusions: "일반 웹 백/프론트 -> FAM-ENG-BACKEND/FRONTEND, 인프라 -> FAM-PLATFORM-INFRA" }
- { family-id: FAM-PLATFORM-INFRA, collaboration-default: collapse, primary-role-id: INFRA-PLATFORM, collapse-routes: [{ when-any: [iac, infrastructure], role-id: INFRA-DEV }, { when-any: [ci-cd, delivery-pipeline], role-id: INFRA-DEVOPS }, { when-any: [slo, reliability, incident], role-id: SRE }, { when-any: [devsecops, security-pipeline], role-id: SEC-DEVSECOPS }], member-role-ids: [INFRA-DEV, INFRA-PLATFORM, INFRA-DEVOPS, SRE, SEC-DEVSECOPS], carries-lenses: [LENS-TECH, LENS-SECURITY], audit-capable: true, default-team-types: [Platform], instantiation-priority: standard, invocation-triggers: "인프라/골든패스/CI-CD/관측성/신뢰성(SRE)/DevSecOps 파이프라인", exclusions: "제품기능 구현 -> FAM-ENG-*, 앱 보안 위협모델 -> FAM-SECURITY" }
- { family-id: FAM-ARCHITECTURE-TECH, collaboration-default: fan-out, member-role-ids: [ARCH-EA, ARCH-SOLUTION, ARCH-APP, ARCH-TECH, ARCH-IT, ARCH-SYSANALYST, ARCH-SWAT], carries-lenses: [LENS-TECH], audit-capable: true, default-team-types: [Complicated Subsystem, Enabling, Platform], instantiation-priority: standard, invocation-triggers: "기술 아키텍처 결정, RFC/ADR, 시스템/솔루션/애플리케이션 설계, SWAT 감사", exclusions: "직접 구현 -> FAM-ENG-*, 비즈니스 아키텍처 -> FAM-ARCHITECTURE-BIZ" }
- { family-id: FAM-ARCHITECTURE-BIZ, collaboration-default: fan-out, member-role-ids: [ARCH-BA, ARCH-BIZANALYST], carries-lenses: [LENS-OPS, LENS-VALUE], audit-capable: false, default-team-types: [Enabling], instantiation-priority: later, invocation-triggers: "비즈니스 역량맵/밸류스트림/프로세스 모델/to-be 아키텍처", exclusions: "기술 아키텍처 -> FAM-ARCHITECTURE-TECH" }
- { family-id: FAM-DATA, collaboration-default: fan-out, member-role-ids: [ARCH-DATA, DATA-ENGINEER, DATA-BIGDATA], carries-lenses: [LENS-TECH], audit-capable: false, default-team-types: [Platform, Complicated Subsystem], instantiation-priority: standard, invocation-triggers: "데이터 아키텍처/모델링/파이프라인/빅데이터 엔지니어링", exclusions: "정성 사용자 리서치/제품지표 해석 -> FAM-UX-RESEARCH" }
- { family-id: FAM-QA, collaboration-default: collapse, primary-role-id: QA, member-role-ids: [QA], carries-lenses: [], audit-capable: true, default-team-types: [Enabling, Stream-aligned], instantiation-priority: mvp, invocation-triggers: "품질 검증/테스트/수용검사(감사), verification-record 작성", exclusions: "구현 -> FAM-ENG-*, 보안 위협 -> FAM-SECURITY" }
- { family-id: FAM-SECURITY, collaboration-default: fan-out, member-role-ids: [SEC-ENGINEER, SEC-APPSEC, SEC-CHAMPION], carries-lenses: [LENS-SECURITY], audit-capable: true, default-team-types: [Enabling, Complicated Subsystem, Stream-aligned], instantiation-priority: standard, invocation-triggers: "위협모델/AppSec/shift-left 보안리뷰/보안챔피언(감사)", exclusions: "DevSecOps 파이프라인 구축 -> FAM-PLATFORM-INFRA, 일반 품질 -> FAM-QA" }
- { family-id: FAM-OPS-DELIVERY, collaboration-default: collapse, primary-role-id: OPS-CREW, collapse-routes: [{ when-any: [customer-support, ticket, support-resolution], role-id: OPS-CH }], member-role-ids: [OPS-CH, OPS-CREW], carries-lenses: [LENS-OPS, LENS-CUSTOMER], audit-capable: false, default-team-types: [Stream-aligned], instantiation-priority: later, invocation-triggers: "고객 상담/운영 크루/지원 운영 실행", exclusions: "제품 결정 -> FAM-CPO, CS 확장/이탈방지 -> FAM-GTM-SALES" }
- { family-id: FAM-GTM-GROWTH, collaboration-default: fan-out, member-role-ids: [GTM-GROWTHPM, GTM-DEMANDGEN, GTM-PMM, GTM-CI], carries-lenses: [LENS-REVENUE], audit-capable: false, default-team-types: [GTM Revenue, Stream-aligned, Enabling], instantiation-priority: standard, invocation-triggers: "수요창출/성장실험/제품마케팅/경쟁정보/캠페인", exclusions: "영업 실행 -> FAM-GTM-SALES, 가격정책 -> FAM-REVOPS" }
- { family-id: FAM-GTM-SALES, collaboration-default: fan-out, member-role-ids: [GTM-SALES, GTM-CS, GTM-PARTNER], carries-lenses: [LENS-REVENUE, LENS-CUSTOMER], audit-capable: false, default-team-types: [GTM Revenue, Stream-aligned], instantiation-priority: standard, invocation-triggers: "영업/파이프라인 실행, 고객성공 확장·이탈방지, 파트너/채널", exclusions: "수요창출 -> FAM-GTM-GROWTH, 가격정책 -> FAM-REVOPS, 계약 법무 -> FAM-LEGAL" }
- { family-id: FAM-REVOPS, collaboration-default: fan-out, member-role-ids: [GTM-REVOPS, GTM-PRICING], carries-lenses: [LENS-REVENUE, LENS-FINANCE], audit-capable: false, default-team-types: [GTM Revenue, Platform, Enabling], instantiation-priority: mvp, invocation-triggers: "레비뉴옵스/파이프라인 인텔리전스/가격·패키징 거버넌스", exclusions: "영업 실행 -> FAM-GTM-SALES, 전사 재무 -> FAM-CFO" }
- { family-id: FAM-LEGAL, collaboration-default: fan-out, member-role-ids: [GTM-LEGAL], carries-lenses: [LENS-LEGAL], audit-capable: true, default-team-types: [GTM Revenue, Enabling], instantiation-priority: standard, invocation-triggers: "계약/컴플라이언스/프라이버시 리뷰(감사), 엔터프라이즈 클레임 검토", exclusions: "상업 협상/딜 실행 -> FAM-GTM-SALES" }
- { family-id: FAM-CONSULTING, collaboration-default: fan-out, lead-role-id: CONSULT-EM, member-role-ids: [CONSULT-EM, CONSULT-STRAT, CONSULT-OPS, CONSULT-ORG, CONSULT-DIGITAL, CONSULT-FIN], carries-lenses: [LENS-ADVISORY], audit-capable: true, default-team-types: [Enabling], instantiation-priority: standard, invocation-triggers: "외부·독립 자문 관점의 진단·권고(전략/운영/조직·변화/디지털/재무·리스크), 컨설팅 문서·덱 산출, /consult", exclusions: "최종 방향 결정 -> FAM-CEO, 사내 전략분석 근거 -> FAM-STRATEGY, 구현 -> FAM-ENG-*, 문서·콘텐츠 설계 자문 -> FAM-DOC-CONSULT" }
- { family-id: FAM-DOC-CONSULT, collaboration-default: fan-out, lead-role-id: DOC-LEAD, member-role-ids: [DOC-LEAD, DOC-WRITER, DOC-IA, DOC-VISUAL, DOC-EDU], carries-lenses: [LENS-ADVISORY], audit-capable: true, default-team-types: [Enabling], instantiation-priority: standard, invocation-triggers: "기술 문서·콘텐츠의 논리흐름/정보구조/다이어그램/학습성 설계 자문(Diátaxis·IA·C4·인지부하), 문서 설계 컨설팅 문서·덱 산출, /consult 문서 엔게이지먼트", exclusions: "비즈니스 채택·전략 자문 -> FAM-CONSULTING, 제품 UX 리서치 -> FAM-UX-RESEARCH, 실제 구현 -> FAM-ENG-*" }