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,24 @@
# ✅ [완료] live-demo
> **결론** — 내부 운영 대시보드 다크모드 토글은 저위험·가역·단일도메인 UI 개선이므로 FAM-DESIGN·FAM-ENG-FRONTEND가 light-tier converge로 바로 실행하도록 권고한다.
> **결정 필요** — — 아니오
> **확신도** — Med (E2 근거)
`repo: company-haness` · `2026-07-07 18:17` · `-`
## ⚠️ 리스크
- 기존 디자인 토큰/테마 변수가 미비하면 컴포넌트별 스타일 재작업이 발생할 수 있음.
- 사용자 선호 저장(localStorage 등) 미처리 시 세션마다 초기화되는 UX 결함 가능.
## 📎 근거
| # | 출처 | 등급 |
|---|---|---|
| 1 | org-os/06-agent-work/collaboration-modes.yaml | E2 |
| 2 | org-os/06-agent-work/governance-tiers.yaml | E2 |
| 3 | org-os/00-role-registry/capability-families.yaml | E2 |
| 4 | org-os/00-role-registry/roles.yaml | E2 |
## 📂 상세 (에이전트용 YAML)
- 원천 보고서: `_sandbox/completion-records/live-demo/live-demo.report.yaml`
@@ -0,0 +1,19 @@
report-header:
bottom-line: 내부 운영 대시보드 다크모드 토글은 저위험·가역·단일도메인 UI 개선이므로 FAM-DESIGN·FAM-ENG-FRONTEND가 light-tier converge로 바로 실행하도록 권고한다.
decision-needed: { needed: false }
confidence: { value: Med, derived-from: evidence }
risks:
- 기존 디자인 토큰/테마 변수가 미비하면 컴포넌트별 스타일 재작업이 발생할 수 있음.
- 사용자 선호 저장(localStorage 등) 미처리 시 세션마다 초기화되는 UX 결함 가능.
evidence:
- source-uri: org-os/06-agent-work/collaboration-modes.yaml
grade: E2
- source-uri: org-os/06-agent-work/governance-tiers.yaml
grade: E2
- source-uri: org-os/00-role-registry/capability-families.yaml
grade: E2
- source-uri: org-os/00-role-registry/roles.yaml
grade: E2
mode: converge
tier: light
candidate-families: [FAM-DESIGN, FAM-ENG-FRONTEND, FAM-QA]
@@ -0,0 +1,29 @@
# ✅ [완료] probilling-cfo
> **결론** — 사용량 과금은 COGS(변동 인프라 원가)에 연동된 단위마진 하한(floor)을 걸어야 매출 성장이 곧 마진 성장으로 이어진다.
> **결정 필요** — — 아니오
> **확신도** — Med (E2 근거)
`repo: company-haness` · `2026-07-07 19:47` · `-`
## 💡 아이디어
- usage 단위마진 하한선(unit gross-margin floor) 설정 - 과금 단가를 인프라 COGS의 N배 이상으로 고정해 사용량이 늘수록 마진이 방어되게 설계.
- 예측가능성 확보용 하이브리드(약정 base fee + 초과분 usage) - MRR 예측가능성과 현금선회수(prepaid credit)로 현금흐름 변동성 완화.
- 무료->유료 전환의 재무 임팩트 게이팅 - 무료 tier에 usage 원가 상한(cost cap)을 둬 CAC 회수 전 COGS 유출을 통제하고 전환 기여마진을 (+)로 유지.
## 💰 수익화 관점
사용량 과금은 NRR(확장매출)을 통해 코호트 LTV를 우상향시켜 LTV:CAC 3배 이상을 지렛대화하고, base fee로 회수기간(payback)을 단축해 자본효율(현금 재투자 속도)을 정당화한다.
## ⚠️ 리스크
- 사용량 변동성으로 월별 현금흐름/매출 예측가능성 저하 (기업고객 예산 승인 마찰)
- 무료->유료 전환 시 usage 원가가 요금보다 먼저 발생해 초기 단위마진 음(-) 전환 위험
## 📎 근거
| # | 출처 | 등급 |
|---|---|---|
| 1 | org-os/06-agent-work/agent-operating-kpi.yaml | E2 |
## 📂 원본 파일 (에이전트용 YAML)
- 종합/원천: `_sandbox/completion-records/probilling/probilling-cfo.report.yaml`
@@ -0,0 +1,16 @@
report-header:
bottom-line: 사용량 과금은 COGS(변동 인프라 원가)에 연동된 단위마진 하한(floor)을 걸어야 매출 성장이 곧 마진 성장으로 이어진다.
decision-needed: { needed: false }
confidence: { value: Med, derived-from: evidence }
risks:
- 사용량 변동성으로 월별 현금흐름/매출 예측가능성 저하 (기업고객 예산 승인 마찰)
- 무료->유료 전환 시 usage 원가가 요금보다 먼저 발생해 초기 단위마진 음(-) 전환 위험
evidence:
- source-uri: org-os/06-agent-work/agent-operating-kpi.yaml
grade: E2
lens: LENS-FINANCE
ideas:
- usage 단위마진 하한선(unit gross-margin floor) 설정 - 과금 단가를 인프라 COGS의 N배 이상으로 고정해 사용량이 늘수록 마진이 방어되게 설계.
- 예측가능성 확보용 하이브리드(약정 base fee + 초과분 usage) - MRR 예측가능성과 현금선회수(prepaid credit)로 현금흐름 변동성 완화.
- 무료->유료 전환의 재무 임팩트 게이팅 - 무료 tier에 usage 원가 상한(cost cap)을 둬 CAC 회수 전 COGS 유출을 통제하고 전환 기여마진을 (+)로 유지.
monetization-angle: 사용량 과금은 NRR(확장매출)을 통해 코호트 LTV를 우상향시켜 LTV:CAC 3배 이상을 지렛대화하고, base fee로 회수기간(payback)을 단축해 자본효율(현금 재투자 속도)을 정당화한다.
@@ -0,0 +1,30 @@
# ✅ [완료] probilling-cpo
> **결론** — usage-based Pro는 "가치를 쓴 만큼만 낸다"는 고객 문제를 풀어 activation 문턱을 낮추고, 사용량이 곧 확장이 되도록 value-metric을 요금과 정렬하는 방향으로 설계하라.
> **결정 필요** — — 아니오
> **확신도** — Med (E2 근거)
`repo: company-haness` · `2026-07-07 19:47` · `-`
## 💡 아이디어
- 가치정렬 패키징: 좌석당 고정비가 부담인 소규모/불규칙 사용 고객에게 seat 대신 실사용 value-metric(예: 처리 건수)으로 과금해 진입장벽 제거.
- value-first 온보딩: 무료/저한도 구간에서 aha-moment까지 먼저 도달시키고, 한도 근접 시점에 usage 대시보드로 자연스러운 Pro 전환 유도.
- 투명한 usage 계량 UX: 실시간 사용량·예상 청구·한도 알림을 제품 안에 노출해 예측가능성을 제품 가치로 전환(bill-shock 방지).
## 💰 수익화 관점
value-metric이 곧 고객 성공 지표가 되도록 정렬하면 activation(저한도 무료 진입)과 expansion(사용량 증가=자연 매출 증가)이 같은 곡선을 타 land-and-expand가 제품 사용 자체로 구동된다. 구체 재무모델·가격탄력성은 LENS-FINANCE/REVENUE로 이관.
## ⚠️ 리스크
- value-metric을 잘못 고르면(고객 가치와 비상관) 요금 예측불가로 이탈·불신 유발
- usage 미터링/한도 UX 부재 시 bill-shock로 activation 이후 조기 이탈
## 📎 근거
| # | 출처 | 등급 |
|---|---|---|
| 1 | org-os/00-role-registry/lens-registry.yaml | E2 |
## 📂 원본 파일 (에이전트용 YAML)
- 종합/원천: `_sandbox/completion-records/probilling/probilling-cpo.report.yaml`
@@ -0,0 +1,20 @@
report-header:
bottom-line: >
usage-based Pro는 "가치를 쓴 만큼만 낸다"는 고객 문제를 풀어 activation 문턱을 낮추고,
사용량이 곧 확장이 되도록 value-metric을 요금과 정렬하는 방향으로 설계하라.
decision-needed: { needed: false }
confidence: { value: Med, derived-from: evidence }
risks:
- value-metric을 잘못 고르면(고객 가치와 비상관) 요금 예측불가로 이탈·불신 유발
- usage 미터링/한도 UX 부재 시 bill-shock로 activation 이후 조기 이탈
evidence:
- source-uri: org-os/00-role-registry/lens-registry.yaml
grade: E2
lens: LENS-PRODUCT
ideas:
- "가치정렬 패키징: 좌석당 고정비가 부담인 소규모/불규칙 사용 고객에게 seat 대신 실사용 value-metric(예: 처리 건수)으로 과금해 진입장벽 제거."
- "value-first 온보딩: 무료/저한도 구간에서 aha-moment까지 먼저 도달시키고, 한도 근접 시점에 usage 대시보드로 자연스러운 Pro 전환 유도."
- "투명한 usage 계량 UX: 실시간 사용량·예상 청구·한도 알림을 제품 안에 노출해 예측가능성을 제품 가치로 전환(bill-shock 방지)."
monetization-angle: >
value-metric이 곧 고객 성공 지표가 되도록 정렬하면 activation(저한도 무료 진입)과 expansion(사용량 증가=자연 매출 증가)이
같은 곡선을 타 land-and-expand가 제품 사용 자체로 구동된다. 구체 재무모델·가격탄력성은 LENS-FINANCE/REVENUE로 이관.
@@ -0,0 +1,42 @@
# 🟢 [결정] 사용량 기반 Pro 요금제
> **결론** — Pro를 확장-상관 value-metric(호출/크레딧/완료건수) 기반 하이브리드(committed base + metered overage)로 설계하되, 단위마진 하한과 무료 tier 원가상한을 가드레일로 고정하고, 한도 근접을 PQL로 계량해 셀프서비스 전환을 구동하라.
> **결정 필요** — ✅ 예 · 승인자 `HUMAN-001`
> **확신도** — Med (E2 근거)
`repo: company-haness` · `2026-07-07 18:17` · `-`
## ✅ 권고안
하이브리드 구조 채택 - committed base fee(예측가능 ARR)에 확장지표와 정렬된 metered overage를 얹고, 무료 저한도 진입 + 소프트캡/한도알림으로 bill-shock를 막아 land-and-expand를 제품 사용 자체로 구동한다.
## 👥 역할별 핵심 결론
| 역할 | 관점 | 핵심 결론 | 확신도 |
|---|---|---|---|
| probilling-cfo | LENS-FINANCE | 사용량 과금은 COGS(변동 인프라 원가)에 연동된 단위마진 하한(floor)을 걸어야 매출 성장이 곧 마진 성장으로 이어진다. | Med |
| probilling-cpo | LENS-PRODUCT | usage-based Pro는 "가치를 쓴 만큼만 낸다"는 고객 문제를 풀어 activation 문턱을 낮추고, 사용량이 곧 확장이 되도록 value-metric을 요금과 정렬하는 방향으로 설계하라. | Med |
| probilling-revops | LENS-REVENUE | 확장(NRR)과 상관하는 value-metric을 가격 단위로 고정하고, Pro 티어 경계를 PQL 임계로 설정해 사용량 초과 시점이 곧 PLS 이관·확장 파이프라인 트리거가 되도록 lead-to-cash를 설계하라. | Med |
| probilling-growth | LENS-REVENUE-GROWTH | usage-based Pro는 "사용량 증가 곡선"을 그대로 전환 트리거로 삼아라 — 한도 근접·아하모먼트 도달을 PQL 시그널로 계량해 무료 사용자가 스스로 Pro로 넘어오게 만드는 것이 수요/전환 가속의 핵심. | Med |
## ⚠️ 리스크
- value-metric이 고객 가치·계정 성장과 비상관이면 예측불가·과금분쟁·이탈로 activation과 파이프라인이 동시 훼손
- 순수 종량제는 매출/현금흐름 변동성이 커 기업고객 예산승인 마찰 및 forecasting 신뢰도 저하
- 무료->유료 전환 초기 usage COGS가 요금보다 선발생해 전환 기여마진 음(-) 전환 위험
## 📎 근거
| # | 출처 | 등급 |
|---|---|---|
| 1 | _sandbox/completion-records/probilling/probilling-cpo.report.yaml | E2 |
| 2 | _sandbox/completion-records/probilling/probilling-cfo.report.yaml | E2 |
| 3 | _sandbox/completion-records/probilling/probilling-revops.report.yaml | E2 |
| 4 | _sandbox/completion-records/probilling/probilling-growth.report.yaml | E2 |
## 📂 상세 (에이전트용 YAML)
- 원천 보고서: `_sandbox/completion-records/probilling/probilling-exec-packet.report.yaml`
- 역할 보고서: `_sandbox/completion-records/probilling/probilling-cfo.report.yaml`
- 역할 보고서: `_sandbox/completion-records/probilling/probilling-cpo.report.yaml`
- 역할 보고서: `_sandbox/completion-records/probilling/probilling-revops.report.yaml`
- 역할 보고서: `_sandbox/completion-records/probilling/probilling-growth.report.yaml`
@@ -0,0 +1,35 @@
report-header:
bottom-line: >
Pro를 확장-상관 value-metric(호출/크레딧/완료건수) 기반 하이브리드(committed base + metered overage)로 설계하되,
단위마진 하한과 무료 tier 원가상한을 가드레일로 고정하고, 한도 근접을 PQL로 계량해 셀프서비스 전환을 구동하라.
decision-needed: { needed: true, approver: HUMAN-001 }
confidence: { value: Med, derived-from: evidence }
risks:
- value-metric이 고객 가치·계정 성장과 비상관이면 예측불가·과금분쟁·이탈로 activation과 파이프라인이 동시 훼손
- 순수 종량제는 매출/현금흐름 변동성이 커 기업고객 예산승인 마찰 및 forecasting 신뢰도 저하
- 무료->유료 전환 초기 usage COGS가 요금보다 선발생해 전환 기여마진 음(-) 전환 위험
evidence:
- source-uri: _sandbox/completion-records/probilling/probilling-cpo.report.yaml
grade: E2
- source-uri: _sandbox/completion-records/probilling/probilling-cfo.report.yaml
grade: E2
- source-uri: _sandbox/completion-records/probilling/probilling-revops.report.yaml
grade: E2
- source-uri: _sandbox/completion-records/probilling/probilling-growth.report.yaml
grade: E2
recommendation: >
하이브리드 구조 채택 - committed base fee(예측가능 ARR)에 확장지표와 정렬된 metered overage를 얹고,
무료 저한도 진입 + 소프트캡/한도알림으로 bill-shock를 막아 land-and-expand를 제품 사용 자체로 구동한다.
lens-contributions:
product: value-metric을 고객 성공지표와 정렬해 저한도 무료로 activation 문턱을 낮추고 사용량 증가=자연 확장이 되게 하되, 투명한 usage UX로 bill-shock 방지.
finance: 과금 단가를 인프라 COGS의 N배 이상으로 고정한 단위마진 하한 + 무료 tier 원가상한으로, 매출 성장이 곧 마진 성장이 되도록 방어.
revenue: 확장(NRR) 상관 value-unit을 가격단위로 고정하고, Pro 티어 경계를 PQL 임계로 설정해 초과 시점이 자동으로 CRM handoff·확장 파이프라인 트리거가 되게 설계.
growth: 한도 근접·아하모먼트 도달을 복합 PQL 시그널로 계량하고, 60/80/100% 인앱 넛지+셀프서비스 업그레이드 CTA로 무료 사용자가 스스로 전환하게 유도.
tradeoffs:
- 성장(무료 관대·넛지 적극) vs 재무(마진 하한·원가상한) - 해법 무료 tier에 usage 원가 상한을 걸어 관대함의 상한을 재무가 정의, CAC 회수 전 COGS 유출 통제.
- 성장/제품(순수 종량제=낮은 진입장벽) vs 재무/RevOps(예측가능성·forecasting) - 해법 committed base fee로 ARR 예측가능성을 확보하고 초과분만 metered로 land-and-expand.
- 성장(넛지 극대화 전환) vs 제품(넛지 피로·브랜드 신뢰) - 해법 PQL을 사용량 단일축이 아닌 복합 시그널(재사용+팀초대)로 정의해 저의도 헤비유저 오탐·넛지 과다 방지.
user-decision-needed:
- value-metric 최종 선정(호출량 vs 크레딧 vs 완료건수) - 고객 가치·확장 상관성 기준으로 택1.
- 가격 구조 파라미터 확정 - base fee 수준, 단위마진 하한 배수(N), 무료 tier 원가상한 값.
next: 승인 시 가격구조·미터링/빌링 이벤트 스펙과 PQL 트리거 구현을 담은 RFC를 FAM-ENG-BACKEND에 위임, 가격탄력성 상세 재무모델은 LENS-FINANCE에 후속 의뢰.
@@ -0,0 +1,23 @@
# ✅ [완료] probilling-growth
> **결론** — usage-based Pro는 "사용량 증가 곡선"을 그대로 전환 트리거로 삼아라 — 한도 근접·아하모먼트 도달을 PQL 시그널로 계량해 무료 사용자가 스스로 Pro로 넘어오게 만드는 것이 수요/전환 가속의 핵심.
> **결정 필요** — — 아니오
> **확신도** — Med (E3 근거)
`repo: company-haness` · `2026-07-07 18:17` · `-`
## ⚠️ 리스크
- PQL 임계값을 사용량 단일축으로만 잡으면 저의도 헤비유저를 오탐해 세일즈/넛지 리소스 낭비
- 한도 넛지 과다 노출 시 free 사용자 이탈·부정 브랜드 인식(넛지 피로) 유발
## 📎 근거
| # | 출처 | 등급 |
|---|---|---|
| 1 | org-os/06-agent-work/collaboration-modes.yaml | E2 |
| 2 | _sandbox/completion-records/probilling/probilling-cpo.report.yaml | E3 |
## 📂 상세 (에이전트용 YAML)
- 원천 보고서: `_sandbox/completion-records/probilling/probilling-growth.report.yaml`
@@ -0,0 +1,23 @@
report-header:
bottom-line: >
usage-based Pro는 "사용량 증가 곡선"을 그대로 전환 트리거로 삼아라 —
한도 근접·아하모먼트 도달을 PQL 시그널로 계량해 무료 사용자가 스스로 Pro로 넘어오게 만드는 것이 수요/전환 가속의 핵심.
decision-needed: { needed: false }
confidence: { value: Med, derived-from: evidence }
risks:
- PQL 임계값을 사용량 단일축으로만 잡으면 저의도 헤비유저를 오탐해 세일즈/넛지 리소스 낭비
- 한도 넛지 과다 노출 시 free 사용자 이탈·부정 브랜드 인식(넛지 피로) 유발
evidence:
- source-uri: org-os/06-agent-work/collaboration-modes.yaml
grade: E2
- source-uri: _sandbox/completion-records/probilling/probilling-cpo.report.yaml
grade: E3
lens: LENS-REVENUE-GROWTH
ideas:
- "사용량 기반 PQL 정의: '무료 한도 70~80% 소진 + 2주내 재사용(재방문) + 팀 초대' 복합 시그널을 PQL로 계량해 전환 임박 코호트를 자동 세그먼트."
- "한도 근접 인앱 넛지 실험: 한도 60/80/100% 시점에 실시간 usage 대시보드+'이번 달 예상 초과분' 카피를 A/B로 노출, 전환 훅을 마찰 없는 셀프서비스 업그레이드 CTA로 연결."
- "value-based 트리거 온보딩: 아하모먼트(첫 처리 완료) 직후 사용량 여정 리마인드 이메일/인앱 시퀀스를 발화해 TTV를 단축하고 Pro 가치를 사전 전달(PMM 메시지 정합)."
monetization-angle: >
사용량이 곧 전환 시그널이자 확장 매출이므로, 유입-활성화 캠페인을 '많이 쓰게 만드는' 데 집중하면
사용량 증가가 자연스럽게 Pro 전환·PQL 파이프라인을 밀어올려 CAC 회수와 land-and-expand가 제품 사용 자체로 구동된다.
가격구간·탄력성·전사 재무모델은 침범하지 않고 LENS-PRODUCT/FINANCE로 이관.
@@ -0,0 +1,24 @@
# ✅ [완료] probilling-impl
> **결론** — Pro 하이브리드(committed base + metered overage)를 Stripe Billing Meters로 구현한다 — licensed 기본료 price와 meter 연결 metered price를 한 subscription의 두 item으로 묶고, 사용량은 결정론적 identifier를 붙인 Meter Event로 멱등 전송해 Stripe가 집계·티어링·정산하게 한다.
> **결정 필요** — — 아니오
> **확신도** — Med (E3 근거)
`repo: company-haness` · `2026-07-07 18:17` · `-`
## ⚠️ 리스크
- 멱등성/중복계량 - at-least-once 전송·재시도 시 identifier가 없거나 24h 롤링 윈도를 넘겨 재전송되면 이중 계량 → 결정론적 identifier(EVENT_NAME:customer:unit_key) 필수, 윈도 밖 재처리 금지.
- 정산 오차 - timestamp가 과거 35일/미래 5분 밖이면 이벤트가 거부되어 미청구 누락 발생, 클록 스큐·지연배치 주의. 앱측 추정치는 UX 전용이며 Stripe 집계가 원장.
- 파라미터 미확정 - value-metric(호출/크레딧/완료건수), 무료 allotment, 단위마진 하한 배수(overage 단가)가 CPO/CFO 미승인 상태라 price 재발행 시 마이그레이션 비용 발생 가능.
## 📎 근거
| # | 출처 | 등급 |
|---|---|---|
| 1 | _sandbox/evidence/probilling/stripe-usage-billing.md | E3 |
| 2 | _sandbox/evidence/probilling/metering_sample.py | E3 |
## 📂 상세 (에이전트용 YAML)
- 원천 보고서: `_sandbox/completion-records/probilling/probilling-impl.report.yaml`
@@ -0,0 +1,41 @@
report-header:
bottom-line: >
Pro 하이브리드(committed base + metered overage)를 Stripe Billing Meters로 구현한다 —
licensed 기본료 price와 meter 연결 metered price를 한 subscription의 두 item으로 묶고,
사용량은 결정론적 identifier를 붙인 Meter Event로 멱등 전송해 Stripe가 집계·티어링·정산하게 한다.
decision-needed: { needed: false }
confidence: { value: Med, derived-from: evidence }
risks:
- 멱등성/중복계량 - at-least-once 전송·재시도 시 identifier가 없거나 24h 롤링 윈도를 넘겨 재전송되면 이중 계량 → 결정론적 identifier(EVENT_NAME:customer:unit_key) 필수, 윈도 밖 재처리 금지.
- 정산 오차 - timestamp가 과거 35일/미래 5분 밖이면 이벤트가 거부되어 미청구 누락 발생, 클록 스큐·지연배치 주의. 앱측 추정치는 UX 전용이며 Stripe 집계가 원장.
- 파라미터 미확정 - value-metric(호출/크레딧/완료건수), 무료 allotment, 단위마진 하한 배수(overage 단가)가 CPO/CFO 미승인 상태라 price 재발행 시 마이그레이션 비용 발생 가능.
evidence:
- source-uri: _sandbox/evidence/probilling/stripe-usage-billing.md
grade: E3
note: >
공식 Stripe 문서 근거 — 개요 https://docs.stripe.com/billing/subscriptions/usage-based ,
Meter 생성 https://docs.stripe.com/api/billing/meter/create ,
Meter Event https://docs.stripe.com/api/billing/meter-event/create (+ v2 24h 멱등 윈도
https://docs.stripe.com/api/v2/billing/meter-events/object ),
Price(metered/tiered) https://docs.stripe.com/api/prices/create ,
Subscription https://docs.stripe.com/api/subscriptions/create . 인용일 2026-07-07.
- source-uri: _sandbox/evidence/probilling/metering_sample.py
grade: E3
note: 공식 API 시그니처 기반 실행가능 샘플(py_compile 통과). 테스트키로 --demo 프로비저닝 가능.
design:
api-flow:
- "1. Meter 생성: POST /v1/billing/meters (stripe.billing.Meter.create) — event_name=pro_api_call, default_aggregation.formula=sum, customer_mapping.type=by_id."
- "2. Price 생성: POST /v1/prices — (a) licensed 기본료 price(committed base), (b) metered price(recurring.usage_type=metered, recurring.meter=<meter id>, billing_scheme=tiered, tiers_mode=graduated: allotment까지 unit_amount=0, 초과분 overage 단가)."
- "3. 구독: POST /v1/subscriptions (stripe.Subscription.create) — items[]에 기본료 item(quantity=1) + metered item(quantity 없음). Idempotency-Key 헤더로 재시도 안전."
- "4. 계량: POST /v1/billing/meter_events (stripe.billing.MeterEvent.create) — event_name + payload{stripe_customer_id,value} + identifier(멱등)."
- "5. 정산: 청구주기 말에 Stripe가 meter event를 formula로 집계 → metered tier 적용 → 기본료와 합산해 단일 invoice 발행. overage=max(0, 집계량-allotment)*overage단가."
idempotency: >
Meter Event에 결정론적 `identifier`(예: sha256(EVENT_NAME:customer_id:unit_key))를 부여한다.
Stripe는 identifier를 롤링 24시간 윈도 내에서 유일성 강제하므로 동일 unit_key의 재전송·재시도는
이중 계량되지 않는다(공식 권고: 전역 유일 식별자 사용). timestamp는 과거 35일/미래 5분 이내만 허용.
쓰기 API(Meter/Price/Subscription create)는 `Idempotency-Key` 요청 헤더로 재시도 멱등 보장.
interface-for-consuming-teams: >
제품/프론트는 얇은 파사드 두 메서드만 호출한다 —
(1) MeteringClient.report(customer_id, value, unit_key): 사용 1건을 멱등 계량(Stripe API·identifier 은닉),
(2) MeteringClient.estimate(customer_id, aggregated_usage) -> UsageEstimate: 60/80/100% 인앱 넛지용
overage_units·estimated_invoice_total 추정치 반환(표시 전용, 원장은 Stripe). 팀은 Stripe SDK를 직접 다루지 않는다.
@@ -0,0 +1,24 @@
# ✅ [완료] probilling-qa
> **결론** — 통과(Accepted) — RFC 보고서의 evidence 2건이 실존하고 metering_sample.py가 py_compile exit 0로 실행 아티팩트(E5)를 확보했으며, report-header(BLUF)·evidence·confidence 계약을 준수한다.
> **결정 필요** — — 아니오
> **확신도** — High (E5 근거)
`repo: company-haness` · `2026-07-07 18:17` · `-`
## ⚠️ 리스크
- py_compile은 구문/바이트코드 컴파일만 보장하며 Stripe 테스트키 기반 --demo 실런타임 프로비저닝은 미검증(정적 검증 범위).
- value-metric/allotment/overage 단가가 CPO/CFO 미승인 상태 — 파라미터 확정 전 price 재발행 마이그레이션 리스크 잔존(설계 책임 아님, 승인 대기).
- source-uri 2건은 grade E3(문서/코드 인용) — 원장 정합성은 Stripe 집계 실측 시점에 최종 확인 필요.
## 📎 근거
| # | 출처 | 등급 |
|---|---|---|
| 1 | python3 -m py_compile _sandbox/evidence/probilling/metering_sample.py | E5 |
| 2 | _sandbox/completion-records/probilling/probilling-impl.report.yaml | E3 |
## 📂 상세 (에이전트용 YAML)
- 원천 보고서: `_sandbox/completion-records/probilling/probilling-qa.report.yaml`
@@ -0,0 +1,21 @@
report-header:
bottom-line: >
통과(Accepted) — RFC 보고서의 evidence 2건이 실존하고 metering_sample.py가 py_compile exit 0로
실행 아티팩트(E5)를 확보했으며, report-header(BLUF)·evidence·confidence 계약을 준수한다.
decision-needed: { needed: false }
confidence: { value: High, derived-from: evidence }
risks:
- py_compile은 구문/바이트코드 컴파일만 보장하며 Stripe 테스트키 기반 --demo 실런타임 프로비저닝은 미검증(정적 검증 범위).
- value-metric/allotment/overage 단가가 CPO/CFO 미승인 상태 — 파라미터 확정 전 price 재발행 마이그레이션 리스크 잔존(설계 책임 아님, 승인 대기).
- source-uri 2건은 grade E3(문서/코드 인용) — 원장 정합성은 Stripe 집계 실측 시점에 최종 확인 필요.
evidence:
- command: "python3 -m py_compile _sandbox/evidence/probilling/metering_sample.py"
exit-code: 0
grade: E5
- source-uri: _sandbox/completion-records/probilling/probilling-impl.report.yaml
grade: E3
verdict: Accepted
findings:
- evidence source-uri 2건(refs/stripe-usage-billing.md 8305B, refs/metering_sample.py 9994B) 실존 확인 — dead-link 없음.
- metering_sample.py py_compile exit code 0 — 보고서의 "py_compile 통과" 주장이 실행 근거(E5)로 재현됨.
- impl 보고서가 report-header(bottom-line/decision-needed/confidence/risks/evidence) 계약을 충족하고 confidence:Med가 E3 근거와 정합 — 형식/근거 위반 없음.
@@ -0,0 +1,23 @@
# ✅ [완료] probilling-revops
> **결론** — 확장(NRR)과 상관하는 value-metric을 가격 단위로 고정하고, Pro 티어 경계를 PQL 임계로 설정해 사용량 초과 시점이 곧 PLS 이관·확장 파이프라인 트리거가 되도록 lead-to-cash를 설계하라.
> **결정 필요** — — 아니오
> **확신도** — Med (E2 근거)
`repo: company-haness` · `2026-07-07 18:17` · `-`
## ⚠️ 리스크
- value-metric이 계정 가치와 비상관이면 예측 불가·과금 분쟁으로 파이프라인 예측 오차·이탈 확대
- committed base 없는 순수 종량제는 사용량 변동 시 매출 인식 불안정 → forecasting 신뢰도 저하
## 📎 근거
| # | 출처 | 등급 |
|---|---|---|
| 1 | org-os/00-role-registry/team-topology-map.yaml | E2 |
| 2 | org-os/06-agent-work/report-templates.yaml | E2 |
## 📂 상세 (에이전트용 YAML)
- 원천 보고서: `_sandbox/completion-records/probilling/probilling-revops.report.yaml`
@@ -0,0 +1,24 @@
report-header:
bottom-line: >
확장(NRR)과 상관하는 value-metric을 가격 단위로 고정하고, Pro 티어 경계를 PQL 임계로 설정해
사용량 초과 시점이 곧 PLS 이관·확장 파이프라인 트리거가 되도록 lead-to-cash를 설계하라.
decision-needed: { needed: false }
confidence: { value: Med, derived-from: evidence }
risks:
- value-metric이 계정 가치와 비상관이면 예측 불가·과금 분쟁으로 파이프라인 예측 오차·이탈 확대
- committed base 없는 순수 종량제는 사용량 변동 시 매출 인식 불안정 → forecasting 신뢰도 저하
evidence:
- source-uri: org-os/00-role-registry/team-topology-map.yaml
grade: E2
- source-uri: org-os/06-agent-work/report-templates.yaml
grade: E2
lens: LENS-REVENUE
ideas:
- "가격메트릭=확장지표 정렬: 계정 성장과 상관하는 value-unit(호출량/크레딧/완료건수)을 Pro 과금 단위로 고정해 사용량 증가가 자동으로 매출 확장(net-negative churn)이 되게 설계."
- "티어 경계=PLS 트리거: 무료/저한도 구간의 사용량이 PQL 임계(예: value-unit 소진율·연속 초과)를 넘는 순간 SSOT(CRM)에 handoff-brief를 자동 생성해 Sales/CS로 이관하고 확장 파이프라인에 적재."
- "하이브리드 확약+종량 구조: committed base + 소프트캡/초과 알림 기반 metered overage로 bill-shock 이탈을 막고, 확약 갱신 시점을 NRR 방어·업셀 창구로 운영."
monetization-angle: >
가격메트릭은 value-unit(호출/크레딧/완료건수) 종량이며, 미터링 이벤트=billing 이벤트로 연결해 lead-to-cash를 계량화한다.
구조는 committed base(예측가능 ARR) + metered expansion(사용량 연동 확장) + 가드레일(소프트캡·초과 알림)로,
usage 텔레메트리를 CRM에 적재해 lead-score·churn-score·확장 forecast를 사용량 코호트로 구동한다.
제품가치 설계·가격탄력성/전사 재무모델은 LENS-PRODUCT / LENS-FINANCE로 이관.
@@ -0,0 +1,50 @@
# ✅ [완료] wf-churn-01-data-analyst
> **결론** — 실측 로그가 없으므로 지금 할 일은 '왜 안 되는지' 단정이 아니라 온보딩→첫 결제 퍼널을 단계로 계측하는 것 — activation(리텐션 상관으로 역산)·PQL(한도근접+재방문+paywall 복합 시그널)·단계별 cohort-based 전환율을 계측·정의하고, 단계별 '절대 이탈수' 랭킹과 코호트×단계 히트맵으로 병목을 특정하도록 설계한다.
> **결정 필요** — — 아니오
> **확신도** — Med (E2 근거)
`repo: company-haness` · `2026-07-07 19:47` · `wf-churn-01`
## 🔎 핵심 발견
- 가설1(계측 공백): free→Pro 저조의 1차 원인은 '전환이 나쁘다'가 아니라 단계별 이탈을 볼 계측 자체가 없어 병목 단계를 특정 못 하는 것 — 퍼널 계측 신설이 선행 과제.
- 가설2(activation leak): 온보딩→첫 가치경험(activation) 구간 이탈이 가장 클 개연성 — activated vs non-activated 코호트의 전환 격차로 검증 가능.
- 가설3(PQL 부재): 무료 한도 근접·paywall 접촉 같은 전환 임박 시그널이 계량되지 않아 결제 의도 코호트를 놓치고 있을 가능성.
- 가설4(전환 latency): free→Pro 전환은 특정 시점에 집중될 개연 — survival 곡선으로 넛지 타이밍 창을 특정해야 함.
## 📐 계측할 지표
- Activation Rate — 리텐션/전환 상관이 가장 큰 초기 행동으로 activation을 역산 정의 후 (activated 신규/전체 신규).
- 단계별 funnel conversion(S0 Signup→S6 First payment) — 고정 window의 cohort-based 전환율·drop-off율.
- PQL 생성률 및 PQL→결제 전환율 — 한도 70~80% 소진 + 재방문 + paywall 히트 복합 시그널.
- TTV(signup→activation)와 Time-to-Convert(signup→first payment) 분포(중앙값·꼬리).
- 코호트별 D1/D7/D14/D30 retention(activated vs non-activated 분리).
- 단계별 절대 이탈수 = 진입수 × (1-Cn), abandonment point 집계.
## 📊 분석 계획
- Funnel 병목 랭킹: 단계별 절대 이탈수 내림차순으로 최대 leak 단계 우선 지목(전환율%는 보조).
- Cohort × step 히트맵: signup week·channel·device·온보딩 variant별 이탈 편차 탐지.
- Activation↔전환 상관 분석: activated vs non-activated free→Pro 격차로 activation이 leading indicator인지 확정.
- Survival(Kaplan-Meier) 분석: 전환/이탈이 몰리는 시점 구간 특정 → 넛지/트라이얼 타이밍 도출.
- (데이터 확보 후) 병목 단계 A/B 실험 설계 — 온보딩 variant·paywall 타이밍. 현재는 설계만.
## ➡️ 다음 액션
- 이벤트 계측 스펙 확정: 노트 §3의 이벤트 맵(signup/onboarding/activation/paywall/checkout)과 공통 프로퍼티·pseudonymous id를 구현 요청으로 전달.
- Activation 정의 확정 실험: 후보 A1~A3 중 전환 격차가 최대인 정의를 실데이터로 선택(초기 로그 확보 후).
- 퍼널 대시보드 구축: 단계별 cohort-based 전환·절대 이탈수·히트맵을 상시 관측 뷰로.
- placeholder 임계값(활성화 N회·한도%·window)을 초기 데이터로 보정 후 PQL 정의 잠금.
## ⚠️ 리스크
- 실측 데이터 부재 → 모든 임계값(activation N회·한도 70~80%·30일 window)은 placeholder 가정이며 실데이터로 보정 전엔 오정의 위험.
- 전환율(%)만 보고 병목을 정하면 트래픽 작은 단계를 과대평가 → 절대 이탈수와 병행해야 오판을 피함.
- 이벤트 트래킹 인프라가 미비하면 계측 스펙 신설이 선행돼야 하고, 익명 세션만이면 pre-signup 단계 계측이 제한됨.
## 📎 근거
| # | 출처 | 등급 |
|---|---|---|
| 1 | _sandbox/evidence/wf-churn-01/wf-churn-01-data-analyst-notes.md | E2 |
## 📂 원본 파일 (에이전트용 YAML)
- 종합/원천: `_sandbox/completion-records/wf-churn-01/wf-churn-01-data-analyst.report.yaml`
@@ -0,0 +1,42 @@
role-id: DATA-ANALYST
role-name: 데이터 분석가 AI
lens: LENS-CUSTOMER
perspective: "제품 감(感)이 아니라 사용자 행동·전환 지표로 온보딩→첫 결제 이탈을 계량한다 — 정량 관점."
workflow-id: wf-churn-01
report-header:
bottom-line: >
실측 로그가 없으므로 지금 할 일은 '왜 안 되는지' 단정이 아니라 온보딩→첫 결제 퍼널을 단계로 계측하는 것 —
activation(리텐션 상관으로 역산)·PQL(한도근접+재방문+paywall 복합 시그널)·단계별 cohort-based 전환율을 계측·정의하고,
단계별 '절대 이탈수' 랭킹과 코호트×단계 히트맵으로 병목을 특정하도록 설계한다.
decision-needed: { needed: false, approver: EXEC-CPO }
confidence: { value: Med, derived-from: evidence }
risks:
- "실측 데이터 부재 → 모든 임계값(activation N회·한도 70~80%·30일 window)은 placeholder 가정이며 실데이터로 보정 전엔 오정의 위험."
- "전환율(%)만 보고 병목을 정하면 트래픽 작은 단계를 과대평가 → 절대 이탈수와 병행해야 오판을 피함."
- "이벤트 트래킹 인프라가 미비하면 계측 스펙 신설이 선행돼야 하고, 익명 세션만이면 pre-signup 단계 계측이 제한됨."
evidence:
- source-uri: _sandbox/evidence/wf-churn-01/wf-churn-01-data-analyst-notes.md
grade: E2
findings:
- "가설1(계측 공백): free→Pro 저조의 1차 원인은 '전환이 나쁘다'가 아니라 단계별 이탈을 볼 계측 자체가 없어 병목 단계를 특정 못 하는 것 — 퍼널 계측 신설이 선행 과제."
- "가설2(activation leak): 온보딩→첫 가치경험(activation) 구간 이탈이 가장 클 개연성 — activated vs non-activated 코호트의 전환 격차로 검증 가능."
- "가설3(PQL 부재): 무료 한도 근접·paywall 접촉 같은 전환 임박 시그널이 계량되지 않아 결제 의도 코호트를 놓치고 있을 가능성."
- "가설4(전환 latency): free→Pro 전환은 특정 시점에 집중될 개연 — survival 곡선으로 넛지 타이밍 창을 특정해야 함."
metrics-to-instrument:
- "Activation Rate — 리텐션/전환 상관이 가장 큰 초기 행동으로 activation을 역산 정의 후 (activated 신규/전체 신규)."
- "단계별 funnel conversion(S0 Signup→S6 First payment) — 고정 window의 cohort-based 전환율·drop-off율."
- "PQL 생성률 및 PQL→결제 전환율 — 한도 70~80% 소진 + 재방문 + paywall 히트 복합 시그널."
- "TTV(signup→activation)와 Time-to-Convert(signup→first payment) 분포(중앙값·꼬리)."
- "코호트별 D1/D7/D14/D30 retention(activated vs non-activated 분리)."
- "단계별 절대 이탈수 = 진입수 × (1-Cn), abandonment point 집계."
analysis-plan:
- "Funnel 병목 랭킹: 단계별 절대 이탈수 내림차순으로 최대 leak 단계 우선 지목(전환율%는 보조)."
- "Cohort × step 히트맵: signup week·channel·device·온보딩 variant별 이탈 편차 탐지."
- "Activation↔전환 상관 분석: activated vs non-activated free→Pro 격차로 activation이 leading indicator인지 확정."
- "Survival(Kaplan-Meier) 분석: 전환/이탈이 몰리는 시점 구간 특정 → 넛지/트라이얼 타이밍 도출."
- "(데이터 확보 후) 병목 단계 A/B 실험 설계 — 온보딩 variant·paywall 타이밍. 현재는 설계만."
next-actions:
- "이벤트 계측 스펙 확정: 노트 §3의 이벤트 맵(signup/onboarding/activation/paywall/checkout)과 공통 프로퍼티·pseudonymous id를 구현 요청으로 전달."
- "Activation 정의 확정 실험: 후보 A1~A3 중 전환 격차가 최대인 정의를 실데이터로 선택(초기 로그 확보 후)."
- "퍼널 대시보드 구축: 단계별 cohort-based 전환·절대 이탈수·히트맵을 상시 관측 뷰로."
- "placeholder 임계값(활성화 N회·한도%·window)을 초기 데이터로 보정 후 PQL 정의 잠금."
@@ -0,0 +1,113 @@
# 🟢 [결정] 무료→Pro 전환 이탈 규명 (fan-out 종합)
> **결론** — 원인을 단정해 바로 개입하지 말고, 정량 퍼널 계측 신설과 정성 3-트랙 리서치를 병렬로 돌려 activation gap과 'aha-moment 前 paywall' 정렬 가설을 삼각측량으로 확증한 뒤에만 온보딩·paywall 재설계를 결정한다. 두 관점은 activation/전환 window가 핵심이라는 데 합의하며, "가설 확증 우선(정성) vs 계측 신설 우선(정량)"의 순서에서 견해가 갈린다(둘 다 보존).
> **결정 필요** — ✅ 예 · 승인자 `EXEC-CPO`
> **확신도** — Med (E3 근거)
`repo: company-haness` · `2026-07-07 19:47` · `wf-churn-01`
## 🎯 결정해야 할 질문
무료→Pro 전환 이탈에 대해 지금 무엇을 승인할 것인가 — 원인 개입을 바로 할지, 아니면 정량 계측+정성 리서치 병렬 확증을 먼저 할지?
## ✅ 권고안
병렬 삼각측량 승인 — (1) FAM-DATA: 온보딩→첫결제 퍼널 단계 계측 신설(activation 역산·PQL·cohort 전환율·survival), (2) FAM-UX-RESEARCH: Track A 심층인터뷰 + Track B 결제구간 사용성테스트로 aha-paywall 정렬(H1)·TTV(H2) 우선 검증. 두 결과가 일치하는 병목부터 EXEC-CPO/FAM-PRODUCT-MGMT의 온보딩·paywall 재설계 discovery 입력으로 승격.
## 👥 역할별 핵심 결론 (요약)
| 역할 | 관점 | 핵심 결론 | 확신도 |
|---|---|---|---|
| UX 리서처 AI | 무료→Pro 이탈은 '가격 문제'가 아니라 '가치를 체감하기 前에 결제를 요구당하는' 경험 순서(TTV·aha-paywall 정렬)의 문제라는 정성 관점. | 온보딩→첫 결제 이탈의 유력 정성 원인은 aha-moment 도달 前 paywall 등장과 과대한 TTV·결제 마찰의 복합이다 — 단 실제 데이터·인터뷰 원본이 없어 이는 검증 전 가설(E1~E2, Med)이며, 3-트랙 리서치로 원인을 확증한 뒤에만 개입해야 한다. | Med |
| 데이터 분석가 AI | 제품 감(感)이 아니라 사용자 행동·전환 지표로 온보딩→첫 결제 이탈을 계량한다 — 정량 관점. | 실측 로그가 없으므로 지금 할 일은 '왜 안 되는지' 단정이 아니라 온보딩→첫 결제 퍼널을 단계로 계측하는 것 — activation(리텐션 상관으로 역산)·PQL(한도근접+재방문+paywall 복합 시그널)·단계별 cohort-based 전환율을 계측·정의하고, 단계별 '절대 이탈수' 랭킹과 코호트×단계 히트맵으로 병목을 특정하도록 설계한다. | Med |
## 📋 역할별 상세 (관점 원문 그대로)
### UX 리서처 AI — 확신도 Med
*관점:* 무료→Pro 이탈은 '가격 문제'가 아니라 '가치를 체감하기 前에 결제를 요구당하는' 경험 순서(TTV·aha-paywall 정렬)의 문제라는 정성 관점.
> **결론:** 온보딩→첫 결제 이탈의 유력 정성 원인은 aha-moment 도달 前 paywall 등장과 과대한 TTV·결제 마찰의 복합이다 — 단 실제 데이터·인터뷰 원본이 없어 이는 검증 전 가설(E1~E2, Med)이며, 3-트랙 리서치로 원인을 확증한 뒤에만 개입해야 한다.
#### 🔎 핵심 발견
- H1 (핵심 가설) 가치 체감 前 paywall: aha-moment 도달 이전에 결제벽이 등장해 '왜 돈을 내야 하는지' 납득이 서지 않은 채 이탈 — paywall과 aha의 순서/거리 정렬 오류가 유력.
- H2 activation gap: 첫 핵심가치까지의 온보딩 단계·설정이 많아 TTV가 길어 결제 구간 도달 전에 이탈(활성화 실패).
- H3 value gap: 무료 티어가 Pro의 구체적 가치를 미리 보여주지 못해 업그레이드 동기 자체가 형성되지 않음.
- H4 checkout friction·불안: 카드 선입력 요구·해지/환불 정책 불투명이 결제 직전 주저(hesitation)를 유발.
- H5 플랜 인지부하: 플랜/가격 비교가 복잡해 결정을 회피(decision paralysis)하고 무료 유지로 관성 회귀.
- H6 전환 넛지 오타이밍/부재: 한도 근접·가치 순간에 맞춘 컨텍스트 넛지가 없어 전환 window를 놓침(정성 관찰 가설).
#### 🧪 리서치 설계
- Track A — 심층 인터뷰: 이탈군(온보딩 완주·결제 미도달)/중도포기군/전환 성공 대조군 3그룹 각 6~8명(포화까지), JTBD Switch 4-force + Critical Incident로 '결제를 결심/포기한 바로 그 순간'을 역추적.
- Track B — 결제 구간 사용성 테스트: think-aloud 8~10명, '가입→첫 가치 경험→Pro 결제 완료' end-to-end 과업으로 paywall 타이밍·결제폼 마찰·플랜 인지부하를 SEQ/hesitation 코딩으로 계측.
- Track C — 저니/휴리스틱 분석: 온보딩→aha→paywall→checkout 경험 저니맵+감정곡선+friction 히트포인트 작성, Nielsen 10 휴리스틱 워크스루와 (가용 시)세션 관찰을 삼각측량(수치 산출은 FAM-DATA 이관).
#### ➡️ 다음 액션
- 리서치옵스 킥오프: 3그룹 인터뷰 대상 리크루팅 스크리너·인센티브 예산 승인 요청(EXEC-CPO), 4주 내 Track A/B 실행 일정 확정.
- 정량 삼각측량 요청: FAM-DATA에 온보딩→paywall→checkout funnel 드롭 지점·aha 후보 이벤트 계량을 의뢰해 본 정성 가설(H1~H6)과 대조.
- 가설 우선검증 순서 제안: H1(aha-paywall 정렬)·H2(TTV) 먼저 검증 → 확증 시 EXEC-CPO/FAM-PRODUCT-MGMT에 온보딩 재설계·paywall 재배치 discovery 입력으로 전달(결정은 CPO 소관).
*근거:* `_sandbox/evidence/wf-churn-01/wf-churn-01-ux-researcher-notes.md` (E2)
### 데이터 분석가 AI — 확신도 Med
*관점:* 제품 감(感)이 아니라 사용자 행동·전환 지표로 온보딩→첫 결제 이탈을 계량한다 — 정량 관점.
> **결론:** 실측 로그가 없으므로 지금 할 일은 '왜 안 되는지' 단정이 아니라 온보딩→첫 결제 퍼널을 단계로 계측하는 것 — activation(리텐션 상관으로 역산)·PQL(한도근접+재방문+paywall 복합 시그널)·단계별 cohort-based 전환율을 계측·정의하고, 단계별 '절대 이탈수' 랭킹과 코호트×단계 히트맵으로 병목을 특정하도록 설계한다.
#### 🔎 핵심 발견
- 가설1(계측 공백): free→Pro 저조의 1차 원인은 '전환이 나쁘다'가 아니라 단계별 이탈을 볼 계측 자체가 없어 병목 단계를 특정 못 하는 것 — 퍼널 계측 신설이 선행 과제.
- 가설2(activation leak): 온보딩→첫 가치경험(activation) 구간 이탈이 가장 클 개연성 — activated vs non-activated 코호트의 전환 격차로 검증 가능.
- 가설3(PQL 부재): 무료 한도 근접·paywall 접촉 같은 전환 임박 시그널이 계량되지 않아 결제 의도 코호트를 놓치고 있을 가능성.
- 가설4(전환 latency): free→Pro 전환은 특정 시점에 집중될 개연 — survival 곡선으로 넛지 타이밍 창을 특정해야 함.
#### 📐 계측할 지표
- Activation Rate — 리텐션/전환 상관이 가장 큰 초기 행동으로 activation을 역산 정의 후 (activated 신규/전체 신규).
- 단계별 funnel conversion(S0 Signup→S6 First payment) — 고정 window의 cohort-based 전환율·drop-off율.
- PQL 생성률 및 PQL→결제 전환율 — 한도 70~80% 소진 + 재방문 + paywall 히트 복합 시그널.
- TTV(signup→activation)와 Time-to-Convert(signup→first payment) 분포(중앙값·꼬리).
- 코호트별 D1/D7/D14/D30 retention(activated vs non-activated 분리).
- 단계별 절대 이탈수 = 진입수 × (1-Cn), abandonment point 집계.
#### 📊 분석 계획
- Funnel 병목 랭킹: 단계별 절대 이탈수 내림차순으로 최대 leak 단계 우선 지목(전환율%는 보조).
- Cohort × step 히트맵: signup week·channel·device·온보딩 variant별 이탈 편차 탐지.
- Activation↔전환 상관 분석: activated vs non-activated free→Pro 격차로 activation이 leading indicator인지 확정.
- Survival(Kaplan-Meier) 분석: 전환/이탈이 몰리는 시점 구간 특정 → 넛지/트라이얼 타이밍 도출.
- (데이터 확보 후) 병목 단계 A/B 실험 설계 — 온보딩 variant·paywall 타이밍. 현재는 설계만.
#### ➡️ 다음 액션
- 이벤트 계측 스펙 확정: 노트 §3의 이벤트 맵(signup/onboarding/activation/paywall/checkout)과 공통 프로퍼티·pseudonymous id를 구현 요청으로 전달.
- Activation 정의 확정 실험: 후보 A1~A3 중 전환 격차가 최대인 정의를 실데이터로 선택(초기 로그 확보 후).
- 퍼널 대시보드 구축: 단계별 cohort-based 전환·절대 이탈수·히트맵을 상시 관측 뷰로.
- placeholder 임계값(활성화 N회·한도%·window)을 초기 데이터로 보정 후 PQL 정의 잠금.
*근거:* `_sandbox/evidence/wf-churn-01/wf-churn-01-data-analyst-notes.md` (E2)
## ⚖️ 합의 / 충돌
**합의**
- 지금은 원인 단정 단계가 아니라 검증·계측 설계 단계 — confidence Med, 조기 개입 금지(양측 명시).
- activation gap(TTV·첫 가치경험까지의 이탈)이 최우선 후보 원인 (UX H2 ↔ DATA 가설2).
- 전환 window(한도 근접·paywall 접촉 시점)가 개입 지렛대 — 타이밍이 관건 (UX H1/H6 ↔ DATA PQL/survival).
- 정성×정량 삼각측량이 필수라는 데 양측이 서로를 명시적으로 참조함(상호 이관 요청 존재).
**충돌(보존)**
- 접근 순서: UX는 'aha-paywall 순서(H1)를 유력 원인으로 먼저 리서치 확증' vs DATA는 '원인 단정 말고 먼저 퍼널 계측 신설로 병목 단계부터 특정' — 가설주도 vs 계측주도 (병렬로 보존).
- 증거 우선순위: UX는 '그 순간'의 의미(소표본 심층) 중시 vs DATA는 규모·유의성(절대 이탈수·코호트) 중시 — 각자 상대의 대표성/편향을 리스크로 지목.
## ⚠️ 리스크
- 실데이터·인터뷰 원본 부재 상태의 가설을 사실로 오인해 조기 개입하면 잘못된 지점을 고쳐 전환이 안 오르거나 free 경험을 훼손(양 워커 공통 리스크).
- 정성 소표본 과일반화 위험 ↔ 전환율%만 보고 소트래픽 단계 과대평가 위험 — 두 방법의 편향은 삼각측량으로만 상쇄됨.
- 이벤트 계측 인프라 미비 시 계측 스펙 신설이 선행돼야 하며, 그 전엔 정량 확증이 지연됨.
## 📎 근거
| # | 출처 | 등급 |
|---|---|---|
| 1 | _sandbox/completion-records/wf-churn-01/wf-churn-01-ux-researcher.report.yaml | E3 |
| 2 | _sandbox/completion-records/wf-churn-01/wf-churn-01-data-analyst.report.yaml | E3 |
| 3 | org-os/06-agent-work/collaboration-map.yaml | E3 |
## 📂 원본 파일 (에이전트용 YAML)
- 종합/원천: `_sandbox/completion-records/wf-churn-01/wf-churn-01-synthesis.report.yaml`
- 역할 보고서: `_sandbox/completion-records/wf-churn-01/wf-churn-01-ux-researcher.report.yaml`
- 역할 보고서: `_sandbox/completion-records/wf-churn-01/wf-churn-01-data-analyst.report.yaml`
@@ -0,0 +1,38 @@
synthesized-by: Orchestrator (fan-out 종합 — 워커가 아님)
workflow-id: wf-churn-01
title: 무료→Pro 전환 이탈 원인 규명 (FAM-UX-RESEARCH fan-out 종합)
decision-question: "무료→Pro 전환 이탈에 대해 지금 무엇을 승인할 것인가 — 원인 개입을 바로 할지, 아니면 정량 계측+정성 리서치 병렬 확증을 먼저 할지?"
report-header:
bottom-line: >
원인을 단정해 바로 개입하지 말고, 정량 퍼널 계측 신설과 정성 3-트랙 리서치를 병렬로 돌려
activation gap과 'aha-moment 前 paywall' 정렬 가설을 삼각측량으로 확증한 뒤에만
온보딩·paywall 재설계를 결정한다. 두 관점은 activation/전환 window가 핵심이라는 데 합의하며,
"가설 확증 우선(정성) vs 계측 신설 우선(정량)"의 순서에서 견해가 갈린다(둘 다 보존).
decision-needed: { needed: true, approver: EXEC-CPO }
confidence: { value: Med, derived-from: evidence }
risks:
- "실데이터·인터뷰 원본 부재 상태의 가설을 사실로 오인해 조기 개입하면 잘못된 지점을 고쳐 전환이 안 오르거나 free 경험을 훼손(양 워커 공통 리스크)."
- "정성 소표본 과일반화 위험 ↔ 전환율%만 보고 소트래픽 단계 과대평가 위험 — 두 방법의 편향은 삼각측량으로만 상쇄됨."
- "이벤트 계측 인프라 미비 시 계측 스펙 신설이 선행돼야 하며, 그 전엔 정량 확증이 지연됨."
evidence:
- source-uri: _sandbox/completion-records/wf-churn-01/wf-churn-01-ux-researcher.report.yaml
grade: E3
- source-uri: _sandbox/completion-records/wf-churn-01/wf-churn-01-data-analyst.report.yaml
grade: E3
- source-uri: org-os/06-agent-work/collaboration-map.yaml
grade: E3
recommendation: >
병렬 삼각측량 승인 — (1) FAM-DATA: 온보딩→첫결제 퍼널 단계 계측 신설(activation 역산·PQL·cohort 전환율·survival),
(2) FAM-UX-RESEARCH: Track A 심층인터뷰 + Track B 결제구간 사용성테스트로 aha-paywall 정렬(H1)·TTV(H2) 우선 검증.
두 결과가 일치하는 병목부터 EXEC-CPO/FAM-PRODUCT-MGMT의 온보딩·paywall 재설계 discovery 입력으로 승격.
consensus:
- "지금은 원인 단정 단계가 아니라 검증·계측 설계 단계 — confidence Med, 조기 개입 금지(양측 명시)."
- "activation gap(TTV·첫 가치경험까지의 이탈)이 최우선 후보 원인 (UX H2 ↔ DATA 가설2)."
- "전환 window(한도 근접·paywall 접촉 시점)가 개입 지렛대 — 타이밍이 관건 (UX H1/H6 ↔ DATA PQL/survival)."
- "정성×정량 삼각측량이 필수라는 데 양측이 서로를 명시적으로 참조함(상호 이관 요청 존재)."
conflicts:
- "접근 순서: UX는 'aha-paywall 순서(H1)를 유력 원인으로 먼저 리서치 확증' vs DATA는 '원인 단정 말고 먼저 퍼널 계측 신설로 병목 단계부터 특정' — 가설주도 vs 계측주도 (병렬로 보존)."
- "증거 우선순위: UX는 '그 순간'의 의미(소표본 심층) 중시 vs DATA는 규모·유의성(절대 이탈수·코호트) 중시 — 각자 상대의 대표성/편향을 리스크로 지목."
linked-reports:
- _sandbox/completion-records/wf-churn-01/wf-churn-01-ux-researcher.report.yaml
- _sandbox/completion-records/wf-churn-01/wf-churn-01-data-analyst.report.yaml
@@ -0,0 +1,40 @@
# ✅ [완료] wf-churn-01-ux-researcher
> **결론** — 온보딩→첫 결제 이탈의 유력 정성 원인은 aha-moment 도달 前 paywall 등장과 과대한 TTV·결제 마찰의 복합이다 — 단 실제 데이터·인터뷰 원본이 없어 이는 검증 전 가설(E1~E2, Med)이며, 3-트랙 리서치로 원인을 확증한 뒤에만 개입해야 한다.
> **결정 필요** — — 아니오
> **확신도** — Med (E2 근거)
`repo: company-haness` · `2026-07-07 19:47` · `wf-churn-01`
## 🔎 핵심 발견
- H1 (핵심 가설) 가치 체감 前 paywall: aha-moment 도달 이전에 결제벽이 등장해 '왜 돈을 내야 하는지' 납득이 서지 않은 채 이탈 — paywall과 aha의 순서/거리 정렬 오류가 유력.
- H2 activation gap: 첫 핵심가치까지의 온보딩 단계·설정이 많아 TTV가 길어 결제 구간 도달 전에 이탈(활성화 실패).
- H3 value gap: 무료 티어가 Pro의 구체적 가치를 미리 보여주지 못해 업그레이드 동기 자체가 형성되지 않음.
- H4 checkout friction·불안: 카드 선입력 요구·해지/환불 정책 불투명이 결제 직전 주저(hesitation)를 유발.
- H5 플랜 인지부하: 플랜/가격 비교가 복잡해 결정을 회피(decision paralysis)하고 무료 유지로 관성 회귀.
- H6 전환 넛지 오타이밍/부재: 한도 근접·가치 순간에 맞춘 컨텍스트 넛지가 없어 전환 window를 놓침(정성 관찰 가설).
## 🧪 리서치 설계
- Track A — 심층 인터뷰: 이탈군(온보딩 완주·결제 미도달)/중도포기군/전환 성공 대조군 3그룹 각 6~8명(포화까지), JTBD Switch 4-force + Critical Incident로 '결제를 결심/포기한 바로 그 순간'을 역추적.
- Track B — 결제 구간 사용성 테스트: think-aloud 8~10명, '가입→첫 가치 경험→Pro 결제 완료' end-to-end 과업으로 paywall 타이밍·결제폼 마찰·플랜 인지부하를 SEQ/hesitation 코딩으로 계측.
- Track C — 저니/휴리스틱 분석: 온보딩→aha→paywall→checkout 경험 저니맵+감정곡선+friction 히트포인트 작성, Nielsen 10 휴리스틱 워크스루와 (가용 시)세션 관찰을 삼각측량(수치 산출은 FAM-DATA 이관).
## ➡️ 다음 액션
- 리서치옵스 킥오프: 3그룹 인터뷰 대상 리크루팅 스크리너·인센티브 예산 승인 요청(EXEC-CPO), 4주 내 Track A/B 실행 일정 확정.
- 정량 삼각측량 요청: FAM-DATA에 온보딩→paywall→checkout funnel 드롭 지점·aha 후보 이벤트 계량을 의뢰해 본 정성 가설(H1~H6)과 대조.
- 가설 우선검증 순서 제안: H1(aha-paywall 정렬)·H2(TTV) 먼저 검증 → 확증 시 EXEC-CPO/FAM-PRODUCT-MGMT에 온보딩 재설계·paywall 재배치 discovery 입력으로 전달(결정은 CPO 소관).
## ⚠️ 리스크
- 원본 인터뷰·이벤트 로그 부재 상태에서 가설을 사실로 오인해 조기 개입 시, 잘못된 지점을 고쳐 전환율이 개선되지 않거나 free 경험을 훼손할 수 있음.
- 정성 표본(인터뷰 6~8명×3그룹)은 전환율 크기를 대표하지 못함 — funnel 규모/유의성은 FAM-DATA 정량과 삼각측량해야 하며 정성 단독 결론은 과일반화 위험.
## 📎 근거
| # | 출처 | 등급 |
|---|---|---|
| 1 | _sandbox/evidence/wf-churn-01/wf-churn-01-ux-researcher-notes.md | E2 |
## 📂 원본 파일 (에이전트용 YAML)
- 종합/원천: `_sandbox/completion-records/wf-churn-01/wf-churn-01-ux-researcher.report.yaml`
@@ -0,0 +1,32 @@
role-id: UX-RESEARCHER
role-name: UX 리서처 AI
lens: LENS-CUSTOMER
perspective: "무료→Pro 이탈은 '가격 문제'가 아니라 '가치를 체감하기 前에 결제를 요구당하는' 경험 순서(TTV·aha-paywall 정렬)의 문제라는 정성 관점."
workflow-id: wf-churn-01
report-header:
bottom-line: >
온보딩→첫 결제 이탈의 유력 정성 원인은 aha-moment 도달 前 paywall 등장과 과대한 TTV·결제 마찰의 복합이다 —
단 실제 데이터·인터뷰 원본이 없어 이는 검증 전 가설(E1~E2, Med)이며, 3-트랙 리서치로 원인을 확증한 뒤에만 개입해야 한다.
decision-needed: { needed: false, approver: EXEC-CPO }
confidence: { value: Med, derived-from: evidence }
risks:
- "원본 인터뷰·이벤트 로그 부재 상태에서 가설을 사실로 오인해 조기 개입 시, 잘못된 지점을 고쳐 전환율이 개선되지 않거나 free 경험을 훼손할 수 있음."
- "정성 표본(인터뷰 6~8명×3그룹)은 전환율 크기를 대표하지 못함 — funnel 규모/유의성은 FAM-DATA 정량과 삼각측량해야 하며 정성 단독 결론은 과일반화 위험."
evidence:
- source-uri: _sandbox/evidence/wf-churn-01/wf-churn-01-ux-researcher-notes.md
grade: E2
findings:
- "H1 (핵심 가설) 가치 체감 前 paywall: aha-moment 도달 이전에 결제벽이 등장해 '왜 돈을 내야 하는지' 납득이 서지 않은 채 이탈 — paywall과 aha의 순서/거리 정렬 오류가 유력."
- "H2 activation gap: 첫 핵심가치까지의 온보딩 단계·설정이 많아 TTV가 길어 결제 구간 도달 전에 이탈(활성화 실패)."
- "H3 value gap: 무료 티어가 Pro의 구체적 가치를 미리 보여주지 못해 업그레이드 동기 자체가 형성되지 않음."
- "H4 checkout friction·불안: 카드 선입력 요구·해지/환불 정책 불투명이 결제 직전 주저(hesitation)를 유발."
- "H5 플랜 인지부하: 플랜/가격 비교가 복잡해 결정을 회피(decision paralysis)하고 무료 유지로 관성 회귀."
- "H6 전환 넛지 오타이밍/부재: 한도 근접·가치 순간에 맞춘 컨텍스트 넛지가 없어 전환 window를 놓침(정성 관찰 가설)."
research-design:
- "Track A — 심층 인터뷰: 이탈군(온보딩 완주·결제 미도달)/중도포기군/전환 성공 대조군 3그룹 각 6~8명(포화까지), JTBD Switch 4-force + Critical Incident로 '결제를 결심/포기한 바로 그 순간'을 역추적."
- "Track B — 결제 구간 사용성 테스트: think-aloud 8~10명, '가입→첫 가치 경험→Pro 결제 완료' end-to-end 과업으로 paywall 타이밍·결제폼 마찰·플랜 인지부하를 SEQ/hesitation 코딩으로 계측."
- "Track C — 저니/휴리스틱 분석: 온보딩→aha→paywall→checkout 경험 저니맵+감정곡선+friction 히트포인트 작성, Nielsen 10 휴리스틱 워크스루와 (가용 시)세션 관찰을 삼각측량(수치 산출은 FAM-DATA 이관)."
next-actions:
- "리서치옵스 킥오프: 3그룹 인터뷰 대상 리크루팅 스크리너·인센티브 예산 승인 요청(EXEC-CPO), 4주 내 Track A/B 실행 일정 확정."
- "정량 삼각측량 요청: FAM-DATA에 온보딩→paywall→checkout funnel 드롭 지점·aha 후보 이벤트 계량을 의뢰해 본 정성 가설(H1~H6)과 대조."
- "가설 우선검증 순서 제안: H1(aha-paywall 정렬)·H2(TTV) 먼저 검증 → 확증 시 EXEC-CPO/FAM-PRODUCT-MGMT에 온보딩 재설계·paywall 재배치 discovery 입력으로 전달(결정은 CPO 소관)."
@@ -0,0 +1,62 @@
# 🔍 [리뷰] 하네스 효율성 감사
> **결론** — 사용자 하네스의 골격은 2025~2026 업계 합의(멀티에이전트는 판단/리서치에만, 코딩엔 단일; 종합 시 요약 말고 원본 트레이스 공유)와 정합하며 그 두 교훈을 스펙으로 성문화했다 — fan-out/collapse 분기 + synthesis-rehydration. 효율의 골격 근거는 탄탄하다. 실패는 구조가 아니라 운영 규율(tier 게이트·렌즈 상한·dissent 보존 검증을 정책 텍스트가 아니라 hook 강제로 배선했는가)에서 온다.
> **결정 필요** — — 아니오
> **확신도** — Med (E3 근거)
`repo: company-haness` · `2026-07-07 11:12:50+00:00` · `wf-harness-audit`
## · report id
harness-comparison-20260707T111250Z
## · created at
2026-07-07 11:12:50+00:00
## · verdict
이례적으로 자기인식이 높은 설계. Anthropic(코딩엔 멀티에이전트 비권장)과 Cognition(요약 말고 full trace)의 핵심 교훈을 각각 collaboration-default와 synthesis-rehydration으로 코드화했고, 다양성을 headcount가 아니라 11 렌즈로 고정해 spawn 폭발을 구조적으로 억제했다.
## · strengths
- fan-out/collapse 분기 = 업계 최선 판단과 정합(코드는 collapse로 접어 Anthropic/Cognition의 코딩 경고 반영). MetaGPT/ChatDev/CrewAI엔 이 구분 없음 → 더 방어적·토큰효율적.
- synthesis-rehydration이 Cognition 1순위 비판(요약이 관점 유실)을 정면 방어 — 하위 .report.yaml 전문 재적재.
- 다양성을 11 렌즈로 고정한 것이 토큰 폭증의 구조적 방파제(Anthropic '단순 질의 50 subagent' 실패를 스펙 차원에서 억제). 조사대상 중 가장 독창적.
- mode×tier 경제성 게이트가 Anthropic의 '고가치 과제에만 멀티에이전트'를 정책화(AWS routing-vs-full과 동형, 2직교축으로 더 세밀).
- 파일기반·계약기반 소통이 org OS(내구·감사) 목적에 정확 — 12-factor own-context, LangGraph checkpoint 계열. 지연 민감 코드루프는 collapse로 상쇄.
## · closest industry
- Anthropic multi-agent research system — 가장 직접적 원형(Orchestrator + fan-out worker + clean context).
- Magentic-One Task/Progress Ledger — plan.md+progress.yaml 듀얼 원장으로 직접 차용.
- Cognition Don't Build Multi-Agents — 명시 인용·방어한 반론 진영.
- AWS Bedrock routing vs full = light vs heavy tier와 동형. LangGraph FSM = state-transition-rules.
## · recommendations
- wave당 토큰·비용 계측 + tier별 fan-out 예산 하드 상한(초과 시 자동 collapse 강등). 정책 텍스트를 hook 강제로 승격. (근거: Anthropic 15배 토큰)
- standard tier fan-out 폭을 family가 아니라 lens로 상한(공유렌즈 primary 1개, heavy만 sub-angle 분화). 이미 있는 shared-lens-selection을 기본 강제로. (근거: 50 subagent 실패)
- fan-out phase 내부에 '공유 제약 pre-brief'(승인 Packet+공통 설계제약)를 context-package에 동봉 — 발산 다양성은 유지하되 충돌 결정만 사전 정렬. (근거: Cognition Flappy Bird)
- 종합자에 dissent-보존 검증 강제기: 종합 .report.yaml에 conflicts/dissent 필드 + 하위 보고서 링크 존재를 validate_report가 검사. (근거: dissent 삭제 금지 must-not)
- 초장기 wave용 compaction 단계 형식화하되 결정 재적재(synthesis-rehydration) 경로는 압축 대상에서 제외. (근거: 12-factor dumb-zone 40~60%)
## · sources
- Anthropic multi-agent research system: https://www.anthropic.com/engineering/multi-agent-research-system
- Cognition Don't Build Multi-Agents: https://cognition.com/blog/dont-build-multi-agents
- MetaGPT arXiv 2308.00352 / ChatDev arXiv 2307.07924
- Magentic-One (Microsoft Research) / AWS Bedrock multi-agent collaboration / 12-Factor Agents
- 전체 출처·비교표: docs/superpowers/harness-efficiency-audit-2026-07-07.md
## ⚠️ 리스크
- 토큰·지연 비용: Anthropic 관측상 멀티에이전트 ~15배 토큰, 토큰량이 성능분산 80% 설명. fan-out 위에 전문 재적재를 쌓아 종합 지점이 특히 무겁다.
- 단일 fan-out phase 내부 발산: 8 family가 clean context로 병렬 시작하면 미명시 가정 충돌(Cognition Flappy Bird) 잔존 — 재조정 부담이 종합자에 집중.
- 종합자가 품질 병목·미검증 지점: dissent 보존을 강제하는 hook이 종합 단계에 약함.
- 62->26 taxonomy 책임 중복 리스크: AWS 베스트프랙티스는 collaborator 중복 최소화 권고 — family 수가 많아 오라우팅 확률↑.
## 📎 근거
| # | 출처 | 등급 |
|---|---|---|
| 1 | docs/superpowers/harness-efficiency-audit-2026-07-07.md | E2 |
| 2 | org-os/06-agent-work/execution-policy.yaml | E3 |
| 3 | org-os/06-agent-work/collaboration-map.yaml | E3 |
## 📂 원본 파일 (에이전트용 YAML)
- 종합/원천: `_sandbox/completion-records/wf-harness-audit/harness-comparison-20260707T111250Z.report.yaml`
@@ -0,0 +1,50 @@
report-id: harness-comparison-20260707T111250Z
workflow-id: wf-harness-audit
role-id: harness-comparison
created-at: 2026-07-07T11:12:50Z
title: Org OS 하네스 vs 업계 멀티에이전트 오케스트레이션 — 효율성 감사
report-header:
bottom-line: >
사용자 하네스의 골격은 2025~2026 업계 합의(멀티에이전트는 판단/리서치에만, 코딩엔 단일; 종합 시 요약 말고 원본 트레이스 공유)와
정합하며 그 두 교훈을 스펙으로 성문화했다 — fan-out/collapse 분기 + synthesis-rehydration. 효율의 골격 근거는 탄탄하다.
실패는 구조가 아니라 운영 규율(tier 게이트·렌즈 상한·dissent 보존 검증을 정책 텍스트가 아니라 hook 강제로 배선했는가)에서 온다.
decision-needed: { needed: false, approver: EXEC-CEO }
confidence: { value: Med, derived-from: evidence }
risks:
- "토큰·지연 비용: Anthropic 관측상 멀티에이전트 ~15배 토큰, 토큰량이 성능분산 80% 설명. fan-out 위에 전문 재적재를 쌓아 종합 지점이 특히 무겁다."
- "단일 fan-out phase 내부 발산: 8 family가 clean context로 병렬 시작하면 미명시 가정 충돌(Cognition Flappy Bird) 잔존 — 재조정 부담이 종합자에 집중."
- "종합자가 품질 병목·미검증 지점: dissent 보존을 강제하는 hook이 종합 단계에 약함."
- "62->26 taxonomy 책임 중복 리스크: AWS 베스트프랙티스는 collaborator 중복 최소화 권고 — family 수가 많아 오라우팅 확률↑."
evidence:
- source-uri: docs/superpowers/harness-efficiency-audit-2026-07-07.md
grade: E2
- source-uri: org-os/06-agent-work/execution-policy.yaml
grade: E3
- source-uri: org-os/06-agent-work/collaboration-map.yaml
grade: E3
verdict: >
이례적으로 자기인식이 높은 설계. Anthropic(코딩엔 멀티에이전트 비권장)과 Cognition(요약 말고 full trace)의 핵심 교훈을
각각 collaboration-default와 synthesis-rehydration으로 코드화했고, 다양성을 headcount가 아니라 11 렌즈로 고정해 spawn 폭발을 구조적으로 억제했다.
strengths:
- "fan-out/collapse 분기 = 업계 최선 판단과 정합(코드는 collapse로 접어 Anthropic/Cognition의 코딩 경고 반영). MetaGPT/ChatDev/CrewAI엔 이 구분 없음 → 더 방어적·토큰효율적."
- "synthesis-rehydration이 Cognition 1순위 비판(요약이 관점 유실)을 정면 방어 — 하위 .report.yaml 전문 재적재."
- "다양성을 11 렌즈로 고정한 것이 토큰 폭증의 구조적 방파제(Anthropic '단순 질의 50 subagent' 실패를 스펙 차원에서 억제). 조사대상 중 가장 독창적."
- "mode×tier 경제성 게이트가 Anthropic의 '고가치 과제에만 멀티에이전트'를 정책화(AWS routing-vs-full과 동형, 2직교축으로 더 세밀)."
- "파일기반·계약기반 소통이 org OS(내구·감사) 목적에 정확 — 12-factor own-context, LangGraph checkpoint 계열. 지연 민감 코드루프는 collapse로 상쇄."
closest-industry:
- "Anthropic multi-agent research system — 가장 직접적 원형(Orchestrator + fan-out worker + clean context)."
- "Magentic-One Task/Progress Ledger — plan.md+progress.yaml 듀얼 원장으로 직접 차용."
- "Cognition Don't Build Multi-Agents — 명시 인용·방어한 반론 진영."
- "AWS Bedrock routing vs full = light vs heavy tier와 동형. LangGraph FSM = state-transition-rules."
recommendations:
- "wave당 토큰·비용 계측 + tier별 fan-out 예산 하드 상한(초과 시 자동 collapse 강등). 정책 텍스트를 hook 강제로 승격. (근거: Anthropic 15배 토큰)"
- "standard tier fan-out 폭을 family가 아니라 lens로 상한(공유렌즈 primary 1개, heavy만 sub-angle 분화). 이미 있는 shared-lens-selection을 기본 강제로. (근거: 50 subagent 실패)"
- "fan-out phase 내부에 '공유 제약 pre-brief'(승인 Packet+공통 설계제약)를 context-package에 동봉 — 발산 다양성은 유지하되 충돌 결정만 사전 정렬. (근거: Cognition Flappy Bird)"
- "종합자에 dissent-보존 검증 강제기: 종합 .report.yaml에 conflicts/dissent 필드 + 하위 보고서 링크 존재를 validate_report가 검사. (근거: dissent 삭제 금지 must-not)"
- "초장기 wave용 compaction 단계 형식화하되 결정 재적재(synthesis-rehydration) 경로는 압축 대상에서 제외. (근거: 12-factor dumb-zone 40~60%)"
sources:
- "Anthropic multi-agent research system: https://www.anthropic.com/engineering/multi-agent-research-system"
- "Cognition Don't Build Multi-Agents: https://cognition.com/blog/dont-build-multi-agents"
- "MetaGPT arXiv 2308.00352 / ChatDev arXiv 2307.07924"
- "Magentic-One (Microsoft Research) / AWS Bedrock multi-agent collaboration / 12-Factor Agents"
- "전체 출처·비교표: docs/superpowers/harness-efficiency-audit-2026-07-07.md"
@@ -0,0 +1,248 @@
"""
Pro hybrid billing (committed base + metered overage) — Stripe Billing Meters sample.
Grounded in official Stripe docs (see refs/stripe-usage-billing.md for source URLs, cited 2026-07-07):
- POST /v1/billing/meters stripe.billing.Meter.create (S2)
- POST /v1/billing/meter_events stripe.billing.MeterEvent.create (S3, dedup via `identifier`)
- POST /v1/prices stripe.Price.create (S5, metered + tiered overage)
- POST /v1/subscriptions stripe.Subscription.create (S6, licensed base + metered item)
This is a reference implementation of the backend metering + billing slice. It is runnable against
a Stripe *test* account (STRIPE_API_KEY=sk_test_...). No network calls happen at import time.
pip install stripe
export STRIPE_API_KEY=sk_test_xxx
python metering_sample.py --demo # provisions meter/prices in the test account
Design intent:
* The committed base fee is a LICENSED price (fixed, predictable ARR).
* Overage is a METERED price whose graduated tier-1 (the included allotment) costs 0, so only
usage above the allotment is billed. Stripe does the aggregation + tiering; the app only emits
idempotent meter events.
"""
from __future__ import annotations
import argparse
import hashlib
import os
import uuid
from dataclasses import dataclass, field
from datetime import datetime, timezone
from typing import Optional
import stripe
stripe.api_key = os.environ.get("STRIPE_API_KEY", "")
# ---------------------------------------------------------------------------
# Config — the value-metric + pricing parameters (to be finalized by CPO/CFO,
# per exec packet user-decision-needed). Amounts are in the smallest currency unit.
# ---------------------------------------------------------------------------
CURRENCY = "usd"
EVENT_NAME = "pro_api_call" # the value-metric event; keep <=100 chars, stable forever
AGGREGATION_FORMULA = "sum" # sum | count | last (sum of `value` per period)
INCLUDED_ALLOTMENT = 10_000 # units covered by the committed base fee (tier-1 = 0)
BASE_FEE_AMOUNT = 2_000 # $20.00/mo committed base (licensed)
OVERAGE_UNIT_AMOUNT = 2 # $0.02 per unit above the allotment (unit-margin floor guarded)
# ---------------------------------------------------------------------------
# 1. Provision the billing primitives (run once per environment)
# ---------------------------------------------------------------------------
@dataclass
class ProPlan:
meter_id: str
product_id: str
base_price_id: str
metered_price_id: str
def create_meter() -> stripe.billing.Meter:
"""POST /v1/billing/meters — defines how usage events aggregate over a period. (S2)"""
return stripe.billing.Meter.create(
display_name="Pro API Calls",
event_name=EVENT_NAME,
default_aggregation={"formula": AGGREGATION_FORMULA},
value_settings={"event_payload_key": "value"},
customer_mapping={"type": "by_id", "event_payload_key": "stripe_customer_id"},
)
def create_base_price(product_id: str) -> stripe.Price:
"""POST /v1/prices — licensed committed base fee (predictable ARR). (S5)"""
return stripe.Price.create(
currency=CURRENCY,
product=product_id,
unit_amount=BASE_FEE_AMOUNT,
recurring={"interval": "month"}, # default usage_type = licensed
)
def create_metered_overage_price(product_id: str, meter_id: str) -> stripe.Price:
"""POST /v1/prices — metered price with graduated tiers: allotment free, overage billed. (S5)"""
return stripe.Price.create(
currency=CURRENCY,
product=product_id,
recurring={"interval": "month", "usage_type": "metered", "meter": meter_id},
billing_scheme="tiered",
tiers_mode="graduated",
tiers=[
{"up_to": INCLUDED_ALLOTMENT, "unit_amount": 0}, # included in base fee
{"up_to": "inf", "unit_amount": OVERAGE_UNIT_AMOUNT}, # overage
],
)
def provision_pro_plan() -> ProPlan:
meter = create_meter()
product = stripe.Product.create(name="Pro")
base_price = create_base_price(product.id)
metered_price = create_metered_overage_price(product.id, meter.id)
return ProPlan(
meter_id=meter.id,
product_id=product.id,
base_price_id=base_price.id,
metered_price_id=metered_price.id,
)
# ---------------------------------------------------------------------------
# 2. Subscribe a customer to the hybrid plan
# ---------------------------------------------------------------------------
def subscribe_customer(customer_id: str, plan: ProPlan) -> stripe.Subscription:
"""
POST /v1/subscriptions — one subscription, two items. (S6)
NOTE: the metered item must NOT carry a `quantity`; usage is reported via meter events.
The Idempotency-Key header makes the create safe to retry.
"""
return stripe.Subscription.create(
customer=customer_id,
items=[
{"price": plan.base_price_id, "quantity": 1}, # licensed committed fee
{"price": plan.metered_price_id}, # metered overage — no quantity
],
idempotency_key=f"sub-create:{customer_id}:pro-v1",
)
# ---------------------------------------------------------------------------
# 3. Record usage — the hot path. Idempotent by construction.
# ---------------------------------------------------------------------------
def _dedup_identifier(customer_id: str, unit_key: str) -> str:
"""
Deterministic identifier so at-least-once delivery / retries never double-count.
Stripe enforces uniqueness within a rolling 24h window (S4), so `unit_key` must be
unique per real-world usage unit within that window (e.g. request id, job id).
"""
raw = f"{EVENT_NAME}:{customer_id}:{unit_key}"
return hashlib.sha256(raw.encode()).hexdigest()[:64]
def record_usage(
customer_id: str,
value: int,
unit_key: str,
when: Optional[datetime] = None,
) -> stripe.billing.MeterEvent:
"""
POST /v1/billing/meter_events — report one usage event. (S3)
* `identifier` = deterministic dedup key (idempotency within 24h).
* `timestamp` = event time; Stripe accepts within past 35 days / +5 min (S4). Defaults to now.
"""
payload = {"stripe_customer_id": customer_id, "value": str(value)}
kwargs = {
"event_name": EVENT_NAME,
"payload": payload,
"identifier": _dedup_identifier(customer_id, unit_key),
}
if when is not None:
kwargs["timestamp"] = int(when.replace(tzinfo=timezone.utc).timestamp())
return stripe.billing.MeterEvent.create(**kwargs)
# ---------------------------------------------------------------------------
# 4. Overage estimate (UX-only). Stripe remains the ledger of record.
# ---------------------------------------------------------------------------
@dataclass
class UsageEstimate:
aggregated_usage: int
included_allotment: int = INCLUDED_ALLOTMENT
overage_unit_amount: int = OVERAGE_UNIT_AMOUNT
base_fee_amount: int = BASE_FEE_AMOUNT
@property
def overage_units(self) -> int:
return max(0, self.aggregated_usage - self.included_allotment)
@property
def estimated_overage_charge(self) -> int:
return self.overage_units * self.overage_unit_amount
@property
def estimated_invoice_total(self) -> int:
# Single invoice at renewal: committed base + metered overage (S6).
return self.base_fee_amount + self.estimated_overage_charge
def estimate_overage(aggregated_usage: int) -> UsageEstimate:
"""
Client-facing estimate for 60/80/100% nudges. This mirrors Stripe's tiering math for UX only;
the authoritative amount is computed by Stripe at invoice finalization.
"""
return UsageEstimate(aggregated_usage=aggregated_usage)
# ---------------------------------------------------------------------------
# Simple consuming-team interface (product/frontend call these two, nothing else)
# ---------------------------------------------------------------------------
@dataclass
class MeteringClient:
"""Thin facade the rest of the product uses. Hides Stripe API surface + idempotency."""
plan: ProPlan
_seen: set = field(default_factory=set) # optional local guard; Stripe is source of truth
def report(self, customer_id: str, value: int, unit_key: str) -> None:
record_usage(customer_id=customer_id, value=value, unit_key=unit_key)
def estimate(self, customer_id: str, aggregated_usage: int) -> UsageEstimate:
return estimate_overage(aggregated_usage)
# ---------------------------------------------------------------------------
# Demo
# ---------------------------------------------------------------------------
def _demo() -> None:
if not stripe.api_key:
raise SystemExit("Set STRIPE_API_KEY=sk_test_... to run the demo.")
plan = provision_pro_plan()
print("Provisioned:", plan)
customer = stripe.Customer.create(name="Demo Co")
sub = subscribe_customer(customer.id, plan)
print("Subscription:", sub.id, "status:", sub.status)
# Emit a couple of idempotent usage events (retry-safe by unit_key).
req_id = str(uuid.uuid4())
record_usage(customer.id, value=25, unit_key=req_id)
record_usage(customer.id, value=25, unit_key=req_id) # duplicate -> deduped by identifier
est = estimate_overage(aggregated_usage=12_500)
print(f"Est. overage units={est.overage_units} charge={est.estimated_overage_charge} "
f"invoice_total={est.estimated_invoice_total}")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Stripe metered-overage sample")
parser.add_argument("--demo", action="store_true", help="provision + run against test account")
args = parser.parse_args()
if args.demo:
_demo()
else:
print(__doc__)
@@ -0,0 +1,175 @@
# Stripe Usage-Based / Metered Billing — Official API Reference
> Local reference distilled from official Stripe documentation for the Pro hybrid
> (committed base + metered overage) billing slice.
>
> **Cited:** 2026-07-07 (Asia/Seoul). API surface: Billing Meters (v1) + Meter Events (v1/v2).
> **Note:** Stripe now surfaces Metronome as its recommended platform for *new* high-volume
> integrations, but the first-party **Billing Meters API documented here is fully supported**
> and is the correct primitive for a self-serve metered-overage subscription. Sources below.
## Sources (official URLs)
| # | Topic | URL |
|---|-------|-----|
| S1 | Usage-based billing overview | https://docs.stripe.com/billing/subscriptions/usage-based |
| S2 | Create a Billing Meter (`POST /v1/billing/meters`) | https://docs.stripe.com/api/billing/meter/create |
| S3 | Create a Meter Event (`POST /v1/billing/meter_events`) | https://docs.stripe.com/api/billing/meter-event/create |
| S4 | Meter Event object v2 (dedup window) (`POST /v2/billing/meter_events`) | https://docs.stripe.com/api/v2/billing/meter-events/object |
| S5 | Create a Price (metered / tiered) (`POST /v1/prices`) | https://docs.stripe.com/api/prices/create |
| S6 | Create a Subscription (multi-item) (`POST /v1/subscriptions`) | https://docs.stripe.com/api/subscriptions/create |
| S7 | Recording usage | https://docs.stripe.com/billing/subscriptions/usage-based/recording-usage |
| S8 | Advanced usage-based (flat fee + overage) | https://docs.stripe.com/billing/subscriptions/usage-based/advanced/compare |
---
## Data model (end to end)
```
Billing Meter ──defines──▶ event_name + aggregation (sum/count/last)
▲ │
│ recurring.meter │ meter events (usage) reference event_name
│ ▼
Metered Price ──item──▶ Subscription ◀──item── Licensed base Price (committed fee)
│ │
tiered/per_unit ▼
End of billing period: aggregated usage → invoice line item
```
The **hybrid** = one Subscription carrying **two items**:
1. a **licensed** base price (fixed committed fee, `usage_type` unset/licensed, has `quantity`), and
2. a **metered** price linked to a Meter (`usage_type=metered`, **no `quantity`**), whose graduated
tiers make the *included allotment* cost 0 and only bill the **overage** per unit.
---
## 1. Create a Billing Meter — `POST /v1/billing/meters` (S2)
A Meter specifies how to aggregate meter events over a billing period.
Key parameters:
- `display_name` (string, required) — internal name, not shown to customers.
- `event_name` (string, required, max 100 chars) — links meter to its events.
- `default_aggregation.formula` (enum, required) — `sum` | `count` | `last`.
- `value_settings.event_payload_key` (string) — payload key holding the numeric value (default `value`).
- `customer_mapping.type` (enum) — `by_id`.
- `customer_mapping.event_payload_key` (string) — payload key holding the customer id (default `stripe_customer_id`).
- `event_time_window` (nullable enum, optional) — `hour` | `day` for pre-aggregated events.
Python signature:
```python
stripe.billing.Meter.create(
display_name="Pro API Calls",
event_name="pro_api_call",
default_aggregation={"formula": "sum"},
value_settings={"event_payload_key": "value"},
customer_mapping={"type": "by_id", "event_payload_key": "stripe_customer_id"},
)
# -> billing.meter { id: "mtr_...", status: "active", ... }
```
## 2. Record a Meter Event — `POST /v1/billing/meter_events` (S3, S4)
Reports one usage event. Aggregated into invoice line items at end of period.
Key parameters:
- `event_name` (string, required) — must match a Meter's `event_name`.
- `payload` (object, required) — must contain the meter's `customer_mapping.event_payload_key`
(default `stripe_customer_id`) and `value_settings.event_payload_key` (default `value`).
- `identifier` (string, optional) — **idempotency / dedup key**. Uniqueness is enforced within a
**rolling 24-hour window**; a repeated `identifier` is not counted twice. If omitted, Stripe
generates one. Recommend a globally unique id (UUID / deterministic business key). (S4)
- `timestamp` (unix seconds, optional) — must be **within the past 35 calendar days or up to 5
minutes in the future**; defaults to now. (S4)
Python signature:
```python
stripe.billing.MeterEvent.create(
event_name="pro_api_call",
payload={"stripe_customer_id": "cus_123", "value": "25"},
identifier="pro_api_call:cus_123:2026-07-07T09:00Z:req_abc", # dedup within 24h
timestamp=1751878800, # optional
)
```
> v2 equivalent `POST /v2/billing/meter_events` returns `v2.billing.meter_event` and does
> synchronous validation; same `identifier` 24h-uniqueness rule. (S4)
## 3a. Create a metered Price — `POST /v1/prices` (S5)
Link a price to the meter and choose per-unit or tiered.
Key parameters:
- `currency` (required) — e.g. `usd`.
- `product` or `product_data` (one required).
- `recurring.interval` (required) — `day` | `week` | `month` | `year`.
- `recurring.usage_type` = `metered` (required for usage billing).
- `recurring.meter` = `<meter id>` (required for metered) — ties price to the Meter from step 1.
- `billing_scheme``per_unit` (with `unit_amount`) or `tiered`.
- For tiered overage: `tiers_mode` = `graduated` | `volume`, and `tiers[]` = `{up_to, unit_amount}`.
Graduated overage example (first N units free/included, rest billed):
```python
stripe.Price.create(
currency="usd",
product="prod_pro",
recurring={"interval": "month", "usage_type": "metered", "meter": "mtr_..."},
billing_scheme="tiered",
tiers_mode="graduated",
tiers=[
{"up_to": 10000, "unit_amount": 0}, # included allotment (covered by base fee)
{"up_to": "inf", "unit_amount": 2}, # $0.02/unit overage above the allotment
],
)
```
## 3b. Create the base (committed) Price — `POST /v1/prices` (S5)
Fixed committed fee = a licensed recurring price (no `usage_type=metered`):
```python
stripe.Price.create(
currency="usd", product="prod_pro",
unit_amount=2000, # $20.00 committed base
recurring={"interval": "month"}, # licensed (default usage_type)
)
```
## 4. Create the hybrid Subscription — `POST /v1/subscriptions` (S6)
One subscription, two items. **Metered items must NOT include `quantity`.**
```python
stripe.Subscription.create(
customer="cus_123",
items=[
{"price": "price_base", "quantity": 1}, # licensed committed fee
{"price": "price_metered"}, # metered overage — no quantity
],
idempotency_key="sub-create:cus_123:pro-v1", # safe retry (request header)
)
```
- Metered usage from the previous period is charged **alongside** the fixed base for the new period
on a **single invoice** at each renewal. (S6, quantities doc)
- Use the `Idempotency-Key` request header to safely retry create requests (returns the same object).
---
## Overage calculation (concept)
Overage is computed by Stripe, not the app: it aggregates meter events per customer per period via
`default_aggregation.formula`, then applies the metered price's tiers. With `graduated` tiers where
tier-1 (`up_to = included_allotment`) has `unit_amount = 0`, the customer pays only for units above
the allotment:
```
billed_overage = max(0, aggregated_usage - included_allotment) * overage_unit_amount
invoice_total = committed_base_fee + billed_overage # single invoice at renewal
```
App-side we only *emit events* and (optionally) *mirror a usage estimate* for UX; the ledger of
record is Stripe's aggregation.
## Idempotency & correctness rules (official)
- **Meter events:** set a deterministic `identifier`; dedup is enforced for a rolling 24h window (S4).
Choose one identifier per real-world usage unit so retries/at-least-once delivery never double-count.
- **Timestamp:** only accepted within past 35 days / +5 min; late or clock-skewed events are rejected (S4).
- **Write APIs (Meter/Price/Subscription create):** pass the `Idempotency-Key` header to make retries safe (S6).
@@ -0,0 +1,99 @@
# wf-churn-01 — DATA-ANALYST 계측·분석 설계 노트 (LENS-CUSTOMER, 정량)
> 정직성 제약: **실제 제품 로그/행동 데이터 없음.** 아래는 "무엇을 계측·분석해야 하는가"의 설계이며,
> 근거는 방법론 + 업계 벤치마크(E1~E2)로만 제시한다. 실측치가 없으므로 E4/E5 주장·수치 확언은 하지 않는다.
> 모든 임계값(예: activation 기준, PQL threshold)은 **가정(placeholder)**이며 실데이터로 보정해야 한다.
---
## 0. 문제 프레이밍 (정량 관점)
- 대상 구간: **온보딩(가입/첫 진입) → 첫 결제(Pro 전환)**.
- 관측 대상: free → Pro **전환율(conversion rate)** 이 낮다 → 이 구간의 **단계별 이탈(drop-off)** 을 계량해 병목 단계를 특정한다.
- 이 lens는 **정량 계측/분석 설계만** 다룬다. 정성 UX 원인·제품 의사결정·타 역할 종합은 범위 밖.
---
## 1. 정의할 지표 (metric definitions)
### 1.1 Activation metric (활성화 = "가치를 처음 경험한 상태")
- **정의 원칙**: activation은 "리텐션/전환과 상관이 가장 높은 초기 행동"으로 **데이터로 역산**해 정의한다(선험적 추측 금지).
- **후보 activation event (가정, 검증 대상)**:
- A1: 첫 핵심 액션 완료(제품의 aha-action 1회) — 예: 첫 산출물/처리 1건 완료.
- A2: 첫 세션 내 핵심 액션 N회(예: 3회) 도달.
- A3: 가입 후 X일(예: 7일) 내 재방문(Day-1/Day-7 return).
- **채택 방법**: 각 후보에 대해 "activated 코호트 vs non-activated 코호트의 D30 유지·Pro 전환율 격차"를 비교해 **격차가 가장 큰 정의**를 activation으로 확정.
- **핵심 파생지표**: Activation Rate = activated 신규 / 전체 신규(코호트 기준).
### 1.2 PQL (Product-Qualified Lead) — 전환 임박 시그널
- **정의**: 무료 사용 중 "Pro 가치를 이미 체감했고 유료 한도/기능에 부딪힌" 사용자 = 결제 확률 높은 리드.
- **후보 시그널(복합, 가정)**: 무료 한도 70~80% 소진 + 재방문(주 2회+) + 팀/공유 액션 + 유료 전용 기능 시도(paywall 히트).
- **파생지표**: PQL 생성률, PQL→결제 전환율, PQL 생성까지 소요시간(TTV proxy).
### 1.3 Funnel step conversion (단계별 전환율)
표준 온보딩→결제 퍼널을 단계로 쪼개 **각 단계 전환율·이탈률**을 계측:
| # | 단계(step) | 진입 정의 | 완료 정의(다음 단계 진입) | 계측 지표 |
|---|---|---|---|---|
| S0 | Signup | 가입 시작 | 계정 생성 완료 | signup completion rate |
| S1 | Onboarding start | 계정 생성 | 온보딩 플로우 진입 | onboarding entry rate |
| S2 | Setup/First-value | 온보딩 진입 | **activation event 도달** | activation rate (핵심) |
| S3 | Habit/Return | activation | Day-7 재방문 | early retention |
| S4 | Paywall exposure | 재방문 | 유료 한도/기능 접촉(PQL) | paywall hit rate |
| S5 | Checkout start | paywall 접촉 | 결제 화면 진입 | intent rate |
| S6 | First payment | checkout 진입 | 결제 성공(Pro) | checkout completion / free→Pro |
- **전환율 계산**: 각 단계 `Cn = 완료수 / 진입수`. 전체 free→Pro = ∏(S0..S6) 근사.
- **관례**: window(예: 가입 후 30일) 고정한 **cohort-based conversion**으로 계산(단순 누적비율 금지 — 최근 코호트 미성숙 편향).
### 1.4 보조 지표
- **Time-to-Value(TTV)**: signup → activation 소요시간(중앙값/분포).
- **Time-to-Convert**: signup → first payment 소요시간(전환 latency 분포, 리드타임 설계용).
- **Drop-off rate per step**: `1 - Cn`, 절대 이탈수 = 진입수 × (1-Cn).
---
## 2. 코호트 / 리텐션 분석 계획
- **코호트 기준축**: (a) signup week(가입 주차), (b) acquisition channel/source, (c) activation 여부, (d) plan intent(무료 진입 경로).
- **리텐션 커브**: D1/D7/D14/D30 return retention을 코호트별로. activated vs non-activated 분리 → activation의 리텐션 리프트 정량화.
- **전환 코호트 분석**: 가입 주차별 30/60/90일 누적 free→Pro 전환율(코호트 성숙도 보정). 최근 코호트는 censored 표기.
- **Survival 분석(권장)**: 전환까지 시간을 event로 본 Kaplan-Meier 곡선 — "언제 전환/이탈이 집중되는가" 구간 특정. 단계 간 이탈이 특정 일자에 몰리면 그 지점을 우선 조사.
- **Funnel segmentation**: 위 퍼널을 채널·디바이스·온보딩 variant별로 분해해 **가장 이탈이 큰 (단계 × 세그먼트) 셀**을 탐지.
---
## 3. Drop-off 계측 이벤트 (instrumentation event map)
각 단계 경계마다 이벤트를 심어 진입/완료/이탈을 관측한다. (이벤트명은 제안, 스키마는 설계)
- `signup_started`, `signup_completed`
- `onboarding_step_viewed {step_id, index}` / `onboarding_step_completed {step_id}` / `onboarding_abandoned {last_step}`
- `activation_event {type}` (1.1 확정 후 단일 표준 이벤트로)
- `session_started` / `session_ended {duration, actions}` (재방문·retention 계산)
- `paywall_viewed {trigger, feature, usage_pct}` (PQL·S4)
- `checkout_started` / `checkout_completed {plan, amount}` / `checkout_failed {reason}` (결제 실패=이탈 vs 미의도 구분)
- 공통 프로퍼티: `user_id(pseudonymous)`, `cohort_week`, `channel`, `timestamp`, `device`.
- **이탈 정의**: 단계 진입 이벤트는 있으나 window 내 다음 단계 완료 이벤트 없음 = drop-off. 각 단계 마지막 이벤트를 **abandonment point**로 집계.
- **PII/보안**: raw PII·이메일·결제 원문 미수집(pseudonymous id + 마스킹). tool-permission/redaction 정책 준수.
---
## 4. 원인을 좁히는 분석 (어떤 분석으로 좁힐지)
1. **Funnel 병목 랭킹**: 단계별 절대 이탈수(진입수 × drop-off%) 내림차순 → 가장 큰 leak 단계 우선. (전환율%만 보면 트래픽 작은 단계 과대평가 위험 → 절대수 병행.)
2. **Cohort × step heatmap**: 세그먼트별 이탈 편차 → 특정 채널/디바이스/온보딩 variant에 이탈 집중 여부.
3. **Activation ↔ 전환 상관**: activated vs non-activated의 free→Pro 격차로 activation이 전환의 leading indicator인지 확인.
4. **Time-to-event 분포**: 전환 latency로 넛지/트라이얼 타이밍 창(window) 도출.
5. **(데이터 충분 시) 실험 설계**: 병목 단계에 A/B 테스트 프레임(온보딩 variant, paywall 타이밍) — 지금은 **설계만**, 결과 해석은 데이터 확보 후.
---
## 5. 가정 (assumptions) — 명시
- (G1) 이벤트 트래킹 인프라가 아직 없거나 부분적 → **계측 스펙 신설**이 선행 과제.
- (G2) free→Pro는 **셀프서브 self-serve** 결제 흐름을 가정(세일즈 주도 시 퍼널 단계 상이).
- (G3) 사용자 식별이 로그인 기반으로 코호트 추적 가능하다고 가정(익명 세션만이면 pre-signup 단계 계측 제한).
- (G4) 위 임계값(activation N회, 한도 70~80%, 30일 window)은 placeholder — 실데이터로 재보정 필수.
---
## 6. 근거 (evidence basis)
- **E1 (방법론)**: funnel/cohort/activation/retention·survival 분석은 표준 product analytics 방법론.
- **E2 (업계 벤치마크·관례)**: activation을 리텐션 상관으로 역산해 정의하는 관행, PQL 복합 시그널링, cohort-based conversion(누적비율 편향 회피)은 널리 통용되는 practice.
- 실측 로그가 없어 **E3+ 주장·구체 전환 수치는 제시하지 않음**. 결론 confidence = **Med 이하**.
@@ -0,0 +1,70 @@
# wf-churn-01 — UX 리서처 정성 리서치 노트 (LENS-CUSTOMER)
역할: UX-RESEARCHER (UX 리서처 AI) · lens: LENS-CUSTOMER
workflow: wf-churn-01 — 무료→Pro 전환율 저조, 온보딩→첫 결제 구간 이탈 원인 규명(정성 관점)
작성일: 2026-07-07
> **정직성 경계(HONESTY)**: 실제 제품 이벤트 로그·유저 인터뷰 원본·세션리플레이는 **아직 없음**.
> 아래 가설·매핑은 **방법론·UX 휴리스틱·공개 SaaS 시장자료 수준(E1~E2)** 이며, 검증 전 가설이다.
> 정량 funnel 수치, 가격탄력성, 제품 결정, 타 역할 종합은 **본 역할 범위 밖**(각각 FAM-DATA / FAM-REVOPS / FAM-CPO).
> confidence는 Med 이하로만 제시한다.
---
## 1. 정성 리서치 방법 (설계 원칙)
이탈 원인은 "왜"를 물어야 하므로 정량 funnel(어디서 빠지나)만으로는 부족하다. 정성 3-트랙으로 원인을 규명한다.
### Track A — 이탈자/전환자 심층 인터뷰 (Depth Interview)
- **대상 세그먼트(3그룹, 각 6~8명, 포화까지)**:
1. 온보딩 완주 후 결제 미도달 무료 유저(핵심 이탈군)
2. 활성화 이전 이탈(온보딩 중도 포기)
3. 최근 Pro 전환 성공 유저(대조군 — aha-moment/전환 트리거 확인)
- **기법**: 반구조화 인터뷰 + Critical Incident Technique(마지막으로 이탈을 결심한 순간 재구성) + Jobs-to-be-Done "Switch" 인터뷰(밀어낸 힘/끌어당긴 힘/불안/관성 4force).
- **핵심 질문축**: 기대가치 vs 체감가치 gap, 결제 결심 직전의 불안(가격·해지·데이터), 대안(경쟁/무료 유지) 비교.
### Track B — 결제 구간 사용성 테스트 (Moderated Usability Test)
- **대상**: 프록시 참가자 8~10명, think-aloud.
- **과업**: "무료로 가입 → 첫 핵심 가치 경험 → Pro 업그레이드 및 결제 완료"까지 end-to-end.
- **측정**: task success/시간, 에러·주저(hesitation) 지점, SEQ(Single Ease Question), 이탈 발화 코딩.
- **집중 관찰**: paywall 등장 타이밍/맥락, 결제폼 마찰, 플랜 비교 인지부하.
### Track C — 경험 저니 분석 (Journey/Heuristic + 세션 관찰)
- **산출**: 온보딩→aha→paywall→결제 완료의 경험 저니맵 + 감정 곡선 + friction 히트포인트.
- **기법**: Nielsen 10 휴리스틱 워크스루, 인지부하/전환 마찰 휴리스틱, (데이터 가용 시)세션 리플레이·rage-click 관찰과 삼각측량.
- **주의**: 세션 데이터/이벤트 로그는 FAM-DATA 소관 — 본 트랙은 정성 해석만, 수치 산출은 이관.
---
## 2. 이탈 friction 가설 (온보딩→첫 결제, 정성)
TTV(Time-to-Value) 관점에서 "가치를 체감하기 전에 결제를 요구"당하면 이탈한다는 것이 중심 가설.
| # | Friction 가설 | 저니 위치 | 근거등급 | 검증 트랙 |
|---|---|---|---|---|
| H1 | **가치 체감 前 paywall** — aha-moment 도달 전에 결제벽이 등장해 "왜 돈을 내야 하는지" 납득 안 됨 | onboarding→paywall | E1(휴리스틱) | A,B,C |
| H2 | **온보딩 TTV 과대** — 첫 핵심가치까지 단계·설정이 많아 활성화 전 이탈(activation gap) | onboarding | E2(SaaS 벤치마크) | B,C |
| H3 | **가치 불명확** — 무료 기능이 Pro 가치를 미리 보여주지 못해 업그레이드 동기 부재(value gap) | activation→paywall | E1 | A |
| H4 | **결제 마찰·불안** — 카드 선입력/해지 불안/환불 정책 불투명이 결제 직전 주저 유발 | checkout | E1(휴리스틱) | B |
| H5 | **플랜 인지부하** — 플랜/가격 비교가 복잡해 결정 회피(decision paralysis) | paywall | E1 | B |
| H6 | **넛지 부재/오타이밍** — 한도 근접·가치 순간에 맞춘 컨텍스트 넛지가 없어 전환 창(window) 상실 | activation→paywall | E1 | A,C |
| H7 | **신뢰·기대 gap** — 마케팅 약속과 첫 경험 불일치로 신뢰 하락, 지불의사 하락 | onboarding | E1 | A |
## 3. Aha-moment 매핑 (가설)
- **정의**: 유저가 제품의 핵심 약속을 처음으로 체감하는 순간(첫 성공적 산출/결과). 전환은 aha 이후에 붙어야 한다.
- **가설 매핑**: 현재 퍼널은 aha-moment와 paywall의 **순서/거리**가 어긋나 있을 가능성 — paywall이 aha보다 앞서거나, aha 후 전환 넛지까지의 공백이 큼.
- **검증 포인트**: 전환 성공군(Track A 그룹3) 인터뷰로 "결제를 결심하게 만든 바로 그 경험(트리거 이벤트)"을 역추적 → aha 정의를 데이터화(FAM-DATA와 협업해 이벤트로 계량)할 후보 시그널 도출.
- **활성화 지표 후보(정성→정량 번역 입력)**: 첫 핵심산출 완료, N회 재방문, 팀 초대, 한도 X% 소진 등 — 수치 확정은 FAM-DATA/FAM-REVOPS로 이관.
## 4. 가정 (Assumptions)
- A1: 제품은 free→Pro 셀프서브 SaaS이며 온보딩→paywall→checkout 퍼널이 존재한다(과업 서술 기반 가정).
- A2: 이탈은 단일 원인이 아니라 activation gap + value gap + checkout friction의 복합이다.
- A3: 정량 funnel 드롭 지점은 별도 역할(FAM-DATA)이 제공하며, 본 노트는 그 "왜"를 정성으로 채운다.
- A4: 인터뷰/UT 참가자 리크루팅과 인센티브 예산은 후속 승인 필요(리서치옵스).
## 5. 산출물 경계
- 본 역할 = 정성 이탈원인 가설 + 검증 리서치 설계 + 다음 액션 제안까지.
- **결정/종합/우선순위 확정은 Orchestrator·EXEC-CPO** 소관(fan-out 워커 계약).
+36
View File
@@ -0,0 +1,36 @@
# 📇 보고서 목차 (대표용)
생성: 2026-07-08 17:07 · 총 12건 · 워크플로 4개
> 보고서는 **불변**이다 — 매 실행은 새 버전 파일로 쌓인다(덮어쓰기 없음). 아래는 워크플로별 append-only 뷰(최신순).
## live-demo
| created-at | 보고서(YAML) | 결론 | 결정필요 | MD |
|---|---|---|---|---|
| 2026-07-07T05:51:03Z | `_sandbox/completion-records/live-demo/live-demo.report.yaml` | 내부 운영 대시보드 다크모드 토글은 저위험·가역·단일도메인 UI 개선이므로 FAM-DESIGN·FAM-ENG-FRONTEND가 light-tie | — | `_sandbox/completion-records/live-demo/live-demo.md` |
## probilling
| created-at | 보고서(YAML) | 결론 | 결정필요 | MD |
|---|---|---|---|---|
| 2026-07-08T08:00:08Z | `_sandbox/completion-records/probilling/probilling-exec-packet.report.yaml` | Pro를 확장-상관 value-metric(호출/크레딧/완료건수) 기반 하이브리드(committed base + metered overage)로 | ✅ | `_sandbox/completion-records/probilling/probilling-exec-packet.md` |
| 2026-07-08T08:00:08Z | `_sandbox/completion-records/probilling/probilling-growth.report.yaml` | usage-based Pro는 "사용량 증가 곡선"을 그대로 전환 트리거로 삼아라 — 한도 근접·아하모먼트 도달을 PQL 시그널로 계량해 무료 | — | `_sandbox/completion-records/probilling/probilling-growth.md` |
| 2026-07-08T08:00:08Z | `_sandbox/completion-records/probilling/probilling-impl.report.yaml` | Pro 하이브리드(committed base + metered overage)를 Stripe Billing Meters로 구현한다 — licen | — | `_sandbox/completion-records/probilling/probilling-impl.md` |
| 2026-07-08T08:00:08Z | `_sandbox/completion-records/probilling/probilling-qa.report.yaml` | 통과(Accepted) — RFC 보고서의 evidence 2건이 실존하고 metering_sample.py가 py_compile exit 0로 | — | `_sandbox/completion-records/probilling/probilling-qa.md` |
| 2026-07-07T06:30:05Z | `_sandbox/completion-records/probilling/probilling-revops.report.yaml` | 확장(NRR)과 상관하는 value-metric을 가격 단위로 고정하고, Pro 티어 경계를 PQL 임계로 설정해 사용량 초과 시점이 곧 PLS | — | `_sandbox/completion-records/probilling/probilling-revops.md` |
| 2026-07-07T06:29:29Z | `_sandbox/completion-records/probilling/probilling-cfo.report.yaml` | 사용량 과금은 COGS(변동 인프라 원가)에 연동된 단위마진 하한(floor)을 걸어야 매출 성장이 곧 마진 성장으로 이어진다. | — | `_sandbox/completion-records/probilling/probilling-cfo.md` |
| 2026-07-07T06:29:21Z | `_sandbox/completion-records/probilling/probilling-cpo.report.yaml` | usage-based Pro는 "가치를 쓴 만큼만 낸다"는 고객 문제를 풀어 activation 문턱을 낮추고, 사용량이 곧 확장이 되도록 va | — | `_sandbox/completion-records/probilling/probilling-cpo.md` |
## wf-churn-01
| created-at | 보고서(YAML) | 결론 | 결정필요 | MD |
|---|---|---|---|---|
| 2026-07-08T08:00:08Z | `_sandbox/completion-records/wf-churn-01/wf-churn-01-data-analyst.report.yaml` | 실측 로그가 없으므로 지금 할 일은 '왜 안 되는지' 단정이 아니라 온보딩→첫 결제 퍼널을 단계로 계측하는 것 — activation(리텐션 상 | — | `_sandbox/completion-records/wf-churn-01/wf-churn-01-data-analyst.md` |
| 2026-07-08T08:00:08Z | `_sandbox/completion-records/wf-churn-01/wf-churn-01-synthesis.report.yaml` | 원인을 단정해 바로 개입하지 말고, 정량 퍼널 계측 신설과 정성 3-트랙 리서치를 병렬로 돌려 activation gap과 'aha-moment | ✅ | `_sandbox/completion-records/wf-churn-01/wf-churn-01-synthesis.md` |
| 2026-07-08T08:00:08Z | `_sandbox/completion-records/wf-churn-01/wf-churn-01-ux-researcher.report.yaml` | 온보딩→첫 결제 이탈의 유력 정성 원인은 aha-moment 도달 前 paywall 등장과 과대한 TTV·결제 마찰의 복합이다 — 단 실제 데이 | — | `_sandbox/completion-records/wf-churn-01/wf-churn-01-ux-researcher.md` |
## wf-harness-audit
| created-at | 보고서(YAML) | 결론 | 결정필요 | MD |
|---|---|---|---|---|
| 2026-07-07 11:12:50+00:00 | `_sandbox/completion-records/wf-harness-audit/harness-comparison-20260707T111250Z.report.yaml` | 사용자 하네스의 골격은 2025~2026 업계 합의(멀티에이전트는 판단/리서치에만, 코딩엔 단일; 종합 시 요약 말고 원본 트레이스 공유)와 정 | — | `_sandbox/completion-records/wf-harness-audit/harness-comparison-20260707T111250Z.md` |
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ARCH-APP/application-design 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ARCH-APP-application-design-golden
workflow-id: cutover-all
role-id: ARCH-APP
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ARCH-APP
method-id: application-design
contract-sha256: 31e060c7deff9536578e0a4a8c41d3b23b6b73eda0780167db322f298eeacac0
step-results:
- step-id: model-c4
status: completed
artifact-refs:
- report-id: ARCH-APP-application-design-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: bound-context
status: completed
artifact-refs:
- report-id: ARCH-APP-application-design-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ARCH-BA/business-architecture 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ARCH-BA-business-architecture-golden
workflow-id: cutover-all
role-id: ARCH-BA
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ARCH-BA
method-id: business-architecture
contract-sha256: 2727c9975d8dff4977af2db4215389441bdd033262c0136a1589a6aacea5d9d6
step-results:
- step-id: map-capability
status: completed
artifact-refs:
- report-id: ARCH-BA-business-architecture-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: translate-strategy
status: completed
artifact-refs:
- report-id: ARCH-BA-business-architecture-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ARCH-BIZANALYST/requirements-analysis 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ARCH-BIZANALYST-requirements-analysis-golden
workflow-id: cutover-all
role-id: ARCH-BIZANALYST
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ARCH-BIZANALYST
method-id: requirements-analysis
contract-sha256: a7abb0165ccaabb0cc265f4ef9541791c436dc84e37dab39404cf23cd1ed3f62
step-results:
- step-id: elicit
status: completed
artifact-refs:
- report-id: ARCH-BIZANALYST-requirements-analysis-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: model-and-define
status: completed
artifact-refs:
- report-id: ARCH-BIZANALYST-requirements-analysis-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ARCH-DATA/data-architecture 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ARCH-DATA-data-architecture-golden
workflow-id: cutover-all
role-id: ARCH-DATA
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ARCH-DATA
method-id: data-architecture
contract-sha256: 21ab65312411cec305e7f0fac904f6cdf2e949797453ff952107b800ac89f12a
step-results:
- step-id: model-3layer
status: completed
artifact-refs:
- report-id: ARCH-DATA-data-architecture-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: govern-quality
status: completed
artifact-refs:
- report-id: ARCH-DATA-data-architecture-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,34 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ARCH-EA/enterprise-architecture 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ARCH-EA-enterprise-architecture-golden
workflow-id: cutover-all
role-id: ARCH-EA
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ARCH-EA
method-id: enterprise-architecture
contract-sha256: afb5f0db894852c008481ab087e7d4f576a6eb18c36f47cfe702154d4a8f371c
step-results:
- step-id: baseline-target-gap
status: completed
artifact-refs:
- report-id: ARCH-EA-enterprise-architecture-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: integrate-roadmap
status: completed
artifact-refs:
- report-id: ARCH-EA-enterprise-architecture-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ARCH-IT/it-architecture 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ARCH-IT-it-architecture-golden
workflow-id: cutover-all
role-id: ARCH-IT
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ARCH-IT
method-id: it-architecture
contract-sha256: 00864413e69ff6f290d1dc04486542edaa001da715eff62558e0818e9da76ad9
step-results:
- step-id: integrate-domains
status: completed
artifact-refs:
- report-id: ARCH-IT-it-architecture-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: check-consistency
status: completed
artifact-refs:
- report-id: ARCH-IT-it-architecture-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,34 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ARCH-SOLUTION/solution-design 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ARCH-SOLUTION-solution-design-golden
workflow-id: cutover-all
role-id: ARCH-SOLUTION
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ARCH-SOLUTION
method-id: solution-design
contract-sha256: b2ee91e0e314fdf6ff184625282e8b9ae961037f30404b3f07cd13c2afb3757b
step-results:
- step-id: define-nfr-options
status: completed
artifact-refs:
- report-id: ARCH-SOLUTION-solution-design-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: atam-select
status: completed
artifact-refs:
- report-id: ARCH-SOLUTION-solution-design-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,34 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ARCH-SWAT/reference-architecture 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ARCH-SWAT-reference-architecture-golden
workflow-id: cutover-all
role-id: ARCH-SWAT
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ARCH-SWAT
method-id: reference-architecture
contract-sha256: 4828f5951aa62ca597c7df0df534e8db1a5b329d17939389345cc6ec86a43297
step-results:
- step-id: define-pattern
status: completed
artifact-refs:
- report-id: ARCH-SWAT-reference-architecture-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: validate-poc
status: completed
artifact-refs:
- report-id: ARCH-SWAT-reference-architecture-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ARCH-SYSANALYST/system-analysis 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ARCH-SYSANALYST-system-analysis-golden
workflow-id: cutover-all
role-id: ARCH-SYSANALYST
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ARCH-SYSANALYST
method-id: system-analysis
contract-sha256: fe92b81cf6413aa8bc2911599829e4100ffa641872bfa8b2a22872001208862c
step-results:
- step-id: model-usecase
status: completed
artifact-refs:
- report-id: ARCH-SYSANALYST-system-analysis-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: spec-dataflow
status: completed
artifact-refs:
- report-id: ARCH-SYSANALYST-system-analysis-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ARCH-TECH/technical-design 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ARCH-TECH-technical-design-golden
workflow-id: cutover-all
role-id: ARCH-TECH
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ARCH-TECH
method-id: technical-design
contract-sha256: bb74d9f556534c38c8db0f333ae2facee7be6d3c0f69611590b43477eec1229c
step-results:
- step-id: design-landing-zone
status: completed
artifact-refs:
- report-id: ARCH-TECH-technical-design-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: design-dr
status: completed
artifact-refs:
- report-id: ARCH-TECH-technical-design-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] CONSULT-DIGITAL/digital-consulting 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: CONSULT-DIGITAL-digital-consulting-golden
workflow-id: cutover-all
role-id: CONSULT-DIGITAL
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: CONSULT-DIGITAL
method-id: digital-consulting
contract-sha256: 980b437d8e568938a79c48e76b5e30dfc20c599770117027077f7c6ba794fc7d
step-results:
- step-id: assess-maturity
status: completed
artifact-refs:
- report-id: CONSULT-DIGITAL-digital-consulting-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: prioritize-roadmap
status: completed
artifact-refs:
- report-id: CONSULT-DIGITAL-digital-consulting-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,34 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] CONSULT-EM/frame-engagement 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: CONSULT-EM-frame-engagement-golden
workflow-id: cutover-all
role-id: CONSULT-EM
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: CONSULT-EM
method-id: frame-engagement
contract-sha256: a1280f8d1b4fd10d720293ca12b152557b0388e431df47fcffc165a3684dd8da
step-results:
- step-id: structure-issue-tree
status: completed
artifact-refs:
- report-id: CONSULT-EM-frame-engagement-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: build-workplan
status: completed
artifact-refs:
- report-id: CONSULT-EM-frame-engagement-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] CONSULT-EM/synthesize-storyline 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: CONSULT-EM-synthesize-storyline-golden
workflow-id: cutover-all
role-id: CONSULT-EM
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: CONSULT-EM
method-id: synthesize-storyline
contract-sha256: b7c39e61a75c8591b9fb6663ced0322c5705ccccc9c4b3e7733284018996e1fe
step-results:
- step-id: rehydrate-read
status: completed
artifact-refs:
- report-id: CONSULT-EM-synthesize-storyline-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: pyramid-storyline
status: completed
artifact-refs:
- report-id: CONSULT-EM-synthesize-storyline-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] CONSULT-FIN/financial-consulting 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: CONSULT-FIN-financial-consulting-golden
workflow-id: cutover-all
role-id: CONSULT-FIN
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: CONSULT-FIN
method-id: financial-consulting
contract-sha256: 25f63430b987d492d44a4cdcd5faa2793fd91b9228ed69dd42b706859da9e5cd
step-results:
- step-id: normalize-earnings
status: completed
artifact-refs:
- report-id: CONSULT-FIN-financial-consulting-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: valuation-risk
status: completed
artifact-refs:
- report-id: CONSULT-FIN-financial-consulting-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] CONSULT-OPS/operations-consulting 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: CONSULT-OPS-operations-consulting-golden
workflow-id: cutover-all
role-id: CONSULT-OPS
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: CONSULT-OPS
method-id: operations-consulting
contract-sha256: 0b1be1275a215777630a607ec0e47ca229e76d0410351364d5b74202972f2459
step-results:
- step-id: map-and-baseline
status: completed
artifact-refs:
- report-id: CONSULT-OPS-operations-consulting-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: dmaic-tom
status: completed
artifact-refs:
- report-id: CONSULT-OPS-operations-consulting-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] CONSULT-ORG/org-consulting 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: CONSULT-ORG-org-consulting-golden
workflow-id: cutover-all
role-id: CONSULT-ORG
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: CONSULT-ORG
method-id: org-consulting
contract-sha256: f25bca92ffb935569e2ac7e2c65f5014e86dc0feed54b8533fede3613a7c08c1
step-results:
- step-id: diagnose-org
status: completed
artifact-refs:
- report-id: CONSULT-ORG-org-consulting-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: change-handoff
status: completed
artifact-refs:
- report-id: CONSULT-ORG-org-consulting-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] CONSULT-STRAT/strategy-consulting 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: CONSULT-STRAT-strategy-consulting-golden
workflow-id: cutover-all
role-id: CONSULT-STRAT
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: CONSULT-STRAT
method-id: strategy-consulting
contract-sha256: 65279ff20bcc365e6cd17c007c5d305d26cd18bfc10f135ddba744e3b3a14b15
step-results:
- step-id: analyze-industry
status: completed
artifact-refs:
- report-id: CONSULT-STRAT-strategy-consulting-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: portfolio-roadmap
status: completed
artifact-refs:
- report-id: CONSULT-STRAT-strategy-consulting-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] DATA-ANALYST/metrics-analysis 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: DATA-ANALYST-metrics-analysis-golden
workflow-id: cutover-all
role-id: DATA-ANALYST
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: DATA-ANALYST
method-id: metrics-analysis
contract-sha256: 99ee73b968022f3c6443963638571bbf7fc6fa9d9eca51f5832528248a50f312
step-results:
- step-id: define-north-star
status: completed
artifact-refs:
- report-id: DATA-ANALYST-metrics-analysis-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: explain-movement
status: completed
artifact-refs:
- report-id: DATA-ANALYST-metrics-analysis-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] DATA-BIGDATA/bigdata-pipeline 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: DATA-BIGDATA-bigdata-pipeline-golden
workflow-id: cutover-all
role-id: DATA-BIGDATA
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: DATA-BIGDATA
method-id: bigdata-pipeline
contract-sha256: eee406ff1df03b6a50a788b11ea0c65ad747dde35fd1da3a195f85026afce39a
step-results:
- step-id: choose-architecture
status: completed
artifact-refs:
- report-id: DATA-BIGDATA-bigdata-pipeline-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: optimize-reliability
status: completed
artifact-refs:
- report-id: DATA-BIGDATA-bigdata-pipeline-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] DATA-ENGINEER/data-pipeline 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: DATA-ENGINEER-data-pipeline-golden
workflow-id: cutover-all
role-id: DATA-ENGINEER
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: DATA-ENGINEER
method-id: data-pipeline
contract-sha256: b5e7fdfc0159ad5ba5695b7c21ad455bd4b295b14558c52d435e3c4b0114c520
step-results:
- step-id: ingest-transform
status: completed
artifact-refs:
- report-id: DATA-ENGINEER-data-pipeline-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: test-lineage
status: completed
artifact-refs:
- report-id: DATA-ENGINEER-data-pipeline-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,40 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] DES-DIRECTOR/frame-divergence 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: DES-DIRECTOR-frame-divergence-golden
workflow-id: cutover-all
role-id: DES-DIRECTOR
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: DES-DIRECTOR
method-id: frame-divergence
contract-sha256: 76ded6dd3c2686e857dec0d75a6e6b615d325495df212618d11f3ee8dfa3cc22
step-results:
- step-id: set-brief
status: completed
artifact-refs:
- report-id: DES-DIRECTOR-frame-divergence-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: define-axes
status: completed
artifact-refs:
- report-id: DES-DIRECTOR-frame-divergence-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: frame-questions
status: completed
artifact-refs:
- report-id: DES-DIRECTOR-frame-divergence-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
- option-id: opt-c
@@ -0,0 +1,46 @@
report-header:
bottom-line: '[WAVE GOLDEN v2] DES-DIRECTOR/converge-directions from-method 수정본
실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: design
report-id: DES-DIRECTOR-golden
workflow-id: wave-design-family
role-id: DES-DIRECTOR
tier: standard
verification-performed: 'wave golden: workflow 완결+대안'
method-execution:
role-id: DES-DIRECTOR
method-id: converge-directions
contract-sha256: b14280040149c809cefd05a25467f0f591ecb688b27bf40fa7e6e958eb9f0215
step-results:
- step-id: rehydrate-originals
status: completed
artifact-refs:
- report-id: DES-DIRECTOR-golden
sha256: wave00000000000000000000000000000000000000000000000000000000000
- step-id: compare-tradeoffs
status: completed
artifact-refs:
- report-id: DES-DIRECTOR-golden
sha256: wave00000000000000000000000000000000000000000000000000000000000
- step-id: converge-one
status: completed
artifact-refs:
- report-id: DES-DIRECTOR-golden
sha256: wave00000000000000000000000000000000000000000000000000000000000
- step-id: preserve-dissent
status: completed
artifact-refs:
- report-id: DES-DIRECTOR-golden
sha256: wave00000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
- option-id: opt-c
@@ -0,0 +1,40 @@
report-header:
bottom-line: '[WAVE GOLDEN] DES-INTERNAL/internal-tool-design 대표 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: design
report-id: DES-INTERNAL-golden
workflow-id: wave-design-family
role-id: DES-INTERNAL
tier: standard
verification-performed: 'wave golden: workflow step 완결+대안정책'
method-execution:
role-id: DES-INTERNAL
method-id: internal-tool-design
contract-sha256: f94ac559fc439a30091796560db4f87ff8a7ba224e396daff1cf83561910013d
step-results:
- step-id: frame-operator-brief
status: completed
artifact-refs:
- report-id: DES-INTERNAL-golden
sha256: wave00000000000000000000000000000000000000000000000000000000000
- step-id: design-workflow
status: completed
artifact-refs:
- report-id: DES-INTERNAL-golden
sha256: wave00000000000000000000000000000000000000000000000000000000000
- step-id: record-decisions
status: completed
artifact-refs:
- report-id: DES-INTERNAL-golden
sha256: wave00000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
note: WAVE 활성화 검증용 golden(대표 실행). 라이브 산출물 아님.
@@ -0,0 +1,37 @@
report-header:
bottom-line: '[PILOT GOLDEN] DES-PLATFORM/tokenize 계약을 대표 입력으로 실행해 step-results·handoff
가 계약대로 산출됨을 실증한다.'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: design
report-id: DES-PLATFORM-golden
workflow-id: pilot-des-chain
role-id: DES-PLATFORM
tier: standard
verification-performed: 'pilot golden: 계약 workflow step 전부 완결 + 대안정책 충족'
method-execution:
role-id: DES-PLATFORM
method-id: tokenize
contract-sha256: aef450224cbab5a505d33db80da6dbb8a0c09728be2706e4526fc4c63c7bbfb8
step-results:
- step-id: derive-tokens
status: completed
artifact-refs:
- report-id: DES-PLATFORM-golden
sha256: pilot00000000000000000000000000000000000000000000000000000000000
- step-id: promote-components
status: skipped
skip-rule-id: no-repeat-pattern
reason: 'pilot: 해당 없음'
decisions:
- decision-id: golden-d1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
rejection-rationales:
opt-b: pilot 근거
note: PILOT 활성화 검증용 golden 아티팩트(대표 실행). 라이브 프로덕션 설계 산출물 아님.
@@ -0,0 +1,43 @@
report-header:
bottom-line: '[PILOT GOLDEN] DES-PROD/post-direction 계약을 대표 입력으로 실행해 step-results·handoff
가 계약대로 산출됨을 실증한다.'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: design
report-id: DES-PROD-golden
workflow-id: pilot-des-chain
role-id: DES-PROD
tier: standard
verification-performed: 'pilot golden: 계약 workflow step 전부 완결 + 대안정책 충족'
method-execution:
role-id: DES-PROD
method-id: post-direction
contract-sha256: 941898c8a963e2392fb401a3223c819ec28fe7a595985cd4b512f8f967456e5e
step-results:
- step-id: honor-invariants
status: completed
artifact-refs:
- report-id: DES-PROD-golden
sha256: pilot00000000000000000000000000000000000000000000000000000000000
- step-id: model-interactions
status: completed
artifact-refs:
- report-id: DES-PROD-golden
sha256: pilot00000000000000000000000000000000000000000000000000000000000
- step-id: record-decisions
status: completed
artifact-refs:
- report-id: DES-PROD-golden
sha256: pilot00000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: golden-d1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
rejection-rationales:
opt-b: pilot 근거
note: PILOT 활성화 검증용 golden 아티팩트(대표 실행). 라이브 프로덕션 설계 산출물 아님.
@@ -0,0 +1,39 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] DES-PROD/pre-direction 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: DES-PROD-pre-direction-golden
workflow-id: cutover-all
role-id: DES-PROD
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: DES-PROD
method-id: pre-direction
contract-sha256: 1c62d7fb64879275e5610d65d29eeb88d3e841042ef5f6f991ff725442c614f3
step-results:
- step-id: frame-brief
status: completed
artifact-refs:
- report-id: DES-PROD-pre-direction-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: discover
status: completed
artifact-refs:
- report-id: DES-PROD-pre-direction-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: author-input-brief
status: completed
artifact-refs:
- report-id: DES-PROD-pre-direction-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,39 @@
report-header:
bottom-line: '[WAVE GOLDEN] DES-VISUAL/art-direction 대표 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: design
report-id: DES-VISUAL-golden
workflow-id: wave-design-family
role-id: DES-VISUAL
tier: standard
verification-performed: 'wave golden: workflow step 완결+대안정책'
method-execution:
role-id: DES-VISUAL
method-id: art-direction
contract-sha256: 328dfe50f686ffa37f9b5c3ffd90b756584d7f5ae86a68d7b75b52fcb0174e00
step-results:
- step-id: narrow-references
status: completed
artifact-refs:
- report-id: DES-VISUAL-golden
sha256: wave00000000000000000000000000000000000000000000000000000000000
- step-id: set-visual-thesis
status: completed
artifact-refs:
- report-id: DES-VISUAL-golden
sha256: wave00000000000000000000000000000000000000000000000000000000000
- step-id: define-signature-interaction
status: completed
artifact-refs:
- report-id: DES-VISUAL-golden
sha256: wave00000000000000000000000000000000000000000000000000000000000
- step-id: build-coded-slice
status: completed
artifact-refs:
- report-id: DES-VISUAL-golden
sha256: wave00000000000000000000000000000000000000000000000000000000000
note: WAVE 활성화 검증용 golden(대표 실행). 라이브 산출물 아님.
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] DOC-EDU/learning-design 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: DOC-EDU-learning-design-golden
workflow-id: cutover-all
role-id: DOC-EDU
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: DOC-EDU
method-id: learning-design
contract-sha256: 1654dadb9e0369973442b6ff145a5de5f0ab77eadba7ef02c43d9e9e8a5ada3c
step-results:
- step-id: manage-load
status: completed
artifact-refs:
- report-id: DOC-EDU-learning-design-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: break-curse
status: completed
artifact-refs:
- report-id: DOC-EDU-learning-design-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] DOC-IA/information-architecture 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: DOC-IA-information-architecture-golden
workflow-id: cutover-all
role-id: DOC-IA
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: DOC-IA
method-id: information-architecture
contract-sha256: c8885b08fa716100a71a70435713a7f0ce9a50e10991262045f6e1d1193681bc
step-results:
- step-id: inventory-audit
status: completed
artifact-refs:
- report-id: DOC-IA-information-architecture-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: hierarchy-disclosure
status: completed
artifact-refs:
- report-id: DOC-IA-information-architecture-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] DOC-LEAD/frame-docs 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: DOC-LEAD-frame-docs-golden
workflow-id: cutover-all
role-id: DOC-LEAD
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: DOC-LEAD
method-id: frame-docs
contract-sha256: 5f70d1f2a48c0e83af9556c5bdc770d8e3d12499fe3ddae557c267be556ec2a1
step-results:
- step-id: declare-audience
status: completed
artifact-refs:
- report-id: DOC-LEAD-frame-docs-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: outline-first
status: completed
artifact-refs:
- report-id: DOC-LEAD-frame-docs-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] DOC-LEAD/synthesize-docs 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: DOC-LEAD-synthesize-docs-golden
workflow-id: cutover-all
role-id: DOC-LEAD
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: DOC-LEAD
method-id: synthesize-docs
contract-sha256: 4233a33024bb0f6795788822da289518d8609d3f1548dbe020213a7efe01c23f
step-results:
- step-id: pyramid-assemble
status: completed
artifact-refs:
- report-id: DOC-LEAD-synthesize-docs-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: two-pass-edit
status: completed
artifact-refs:
- report-id: DOC-LEAD-synthesize-docs-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] DOC-VISUAL/diagram-design 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: DOC-VISUAL-diagram-design-golden
workflow-id: cutover-all
role-id: DOC-VISUAL
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: DOC-VISUAL
method-id: diagram-design
contract-sha256: fb102452919ec903bbd73372e06b5324e95c85d85535f1b62041666c7d43e4e6
step-results:
- step-id: abstract-first
status: completed
artifact-refs:
- report-id: DOC-VISUAL-diagram-design-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: render-d2
status: completed
artifact-refs:
- report-id: DOC-VISUAL-diagram-design-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] DOC-WRITER/technical-writing 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: DOC-WRITER-technical-writing-golden
workflow-id: cutover-all
role-id: DOC-WRITER
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: DOC-WRITER
method-id: technical-writing
contract-sha256: b1e12dc6500ec1d9f358ee6529f764991ae102694b8cd5637811c12fe5630f12
step-results:
- step-id: write-typed
status: completed
artifact-refs:
- report-id: DOC-WRITER-technical-writing-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: dogfood-edit
status: completed
artifact-refs:
- report-id: DOC-WRITER-technical-writing-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ENG-BE/backend-implementation 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ENG-BE-backend-implementation-golden
workflow-id: cutover-all
role-id: ENG-BE
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ENG-BE
method-id: backend-implementation
contract-sha256: dcf809e1812587ef24edc9a185f004fe7455081da38708fbcf2ecdfde5c8e5e7
step-results:
- step-id: design-api
status: completed
artifact-refs:
- report-id: ENG-BE-backend-implementation-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: implement-verify
status: completed
artifact-refs:
- report-id: ENG-BE-backend-implementation-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ENG-BEGEN/backend-general 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ENG-BEGEN-backend-general-golden
workflow-id: cutover-all
role-id: ENG-BEGEN
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ENG-BEGEN
method-id: backend-general
contract-sha256: b1312f4efbe9e8af4d4d0a8dbbb67b5e545becf2b3ec16e60d55a9bf65649a51
step-results:
- step-id: implement-server
status: completed
artifact-refs:
- report-id: ENG-BEGEN-backend-general-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: verify-server
status: completed
artifact-refs:
- report-id: ENG-BEGEN-backend-general-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ENG-DESKTOP/desktop-app 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ENG-DESKTOP-desktop-app-golden
workflow-id: cutover-all
role-id: ENG-DESKTOP
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ENG-DESKTOP
method-id: desktop-app
contract-sha256: 616e4d701cef0ef6af3d67c401c48c5dcd18719bd4bc291184b4a8d0206c8e67
step-results:
- step-id: package-sandbox
status: completed
artifact-refs:
- report-id: ENG-DESKTOP-desktop-app-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: verify-integration
status: completed
artifact-refs:
- report-id: ENG-DESKTOP-desktop-app-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ENG-FE/frontend-implementation 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ENG-FE-frontend-implementation-golden
workflow-id: cutover-all
role-id: ENG-FE
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ENG-FE
method-id: frontend-implementation
contract-sha256: 0464eead5e973155d003539b00b7b4b5c8b392de952ee16fd22eb63997a38f2d
step-results:
- step-id: implement-ui
status: completed
artifact-refs:
- report-id: ENG-FE-frontend-implementation-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: verify-ui
status: completed
artifact-refs:
- report-id: ENG-FE-frontend-implementation-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ENG-FEPLAT/frontend-platform 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ENG-FEPLAT-frontend-platform-golden
workflow-id: cutover-all
role-id: ENG-FEPLAT
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ENG-FEPLAT
method-id: frontend-platform
contract-sha256: c9e80bd0f49a9d2dc0a804ccbcb5711cb365d6ccbf545b693b81a2e190d0e539
step-results:
- step-id: abstract-components
status: completed
artifact-refs:
- report-id: ENG-FEPLAT-frontend-platform-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: provide-golden-path
status: completed
artifact-refs:
- report-id: ENG-FEPLAT-frontend-platform-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ENG-FEUX/frontend-ux 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ENG-FEUX-frontend-ux-golden
workflow-id: cutover-all
role-id: ENG-FEUX
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ENG-FEUX
method-id: frontend-ux
contract-sha256: f91d038c79a922e5f12c765fd5807ea7fbe5b0fedae2b01ebb9f7fc6e9395dfc
step-results:
- step-id: map-design-intent
status: completed
artifact-refs:
- report-id: ENG-FEUX-frontend-ux-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: verify-interaction
status: completed
artifact-refs:
- report-id: ENG-FEUX-frontend-ux-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ENG-PLATSERVER/platform-server 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ENG-PLATSERVER-platform-server-golden
workflow-id: cutover-all
role-id: ENG-PLATSERVER
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ENG-PLATSERVER
method-id: platform-server
contract-sha256: a7fa795c8058cc7796006a8e8ee5053af6b49665f2aa48281bd2dac9cd35e30e
step-results:
- step-id: build-platform
status: completed
artifact-refs:
- report-id: ENG-PLATSERVER-platform-server-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: verify-reliability
status: completed
artifact-refs:
- report-id: ENG-PLATSERVER-platform-server-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ENG-PRODCHAPTER/dev-tooling 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ENG-PRODCHAPTER-dev-tooling-golden
workflow-id: cutover-all
role-id: ENG-PRODCHAPTER
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ENG-PRODCHAPTER
method-id: dev-tooling
contract-sha256: 8129233dfb257561ef460b882b7f092016d1a22f142fb6159b7ccda0fb3f2a73
step-results:
- step-id: diagnose-friction
status: completed
artifact-refs:
- report-id: ENG-PRODCHAPTER-dev-tooling-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: tool-and-measure
status: completed
artifact-refs:
- report-id: ENG-PRODCHAPTER-dev-tooling-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ENG-PRODSERVER/product-server 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ENG-PRODSERVER-product-server-golden
workflow-id: cutover-all
role-id: ENG-PRODSERVER
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ENG-PRODSERVER
method-id: product-server
contract-sha256: 1c5d191c9ca4be099973c678a3989298f25bc5ad335a17512614ceaa51dbf1fc
step-results:
- step-id: implement-domain
status: completed
artifact-refs:
- report-id: ENG-PRODSERVER-product-server-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: verify-domain
status: completed
artifact-refs:
- report-id: ENG-PRODSERVER-product-server-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,34 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ENG-PRODUCTMINDED/product-engineering 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ENG-PRODUCTMINDED-product-engineering-golden
workflow-id: cutover-all
role-id: ENG-PRODUCTMINDED
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ENG-PRODUCTMINDED
method-id: product-engineering
contract-sha256: ced096c8313355ddbebbf58f33a09d24f081e1622694d3dab4c541bb17ba2221
step-results:
- step-id: challenge-and-propose
status: completed
artifact-refs:
- report-id: ENG-PRODUCTMINDED-product-engineering-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: implement-and-validate
status: completed
artifact-refs:
- report-id: ENG-PRODUCTMINDED-product-engineering-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] ENG-SW/software-implementation 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: ENG-SW-software-implementation-golden
workflow-id: cutover-all
role-id: ENG-SW
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: ENG-SW
method-id: software-implementation
contract-sha256: af6d6ed9a6c8019bbcb6b441b92165f965b65e3b9bd2109369541b0c34cdb67a
step-results:
- step-id: define-and-contract
status: completed
artifact-refs:
- report-id: ENG-SW-software-implementation-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: implement-verify
status: completed
artifact-refs:
- report-id: ENG-SW-software-implementation-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,39 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] EXEC-CEO/decide-direction 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: EXEC-CEO-decide-direction-golden
workflow-id: cutover-all
role-id: EXEC-CEO
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: EXEC-CEO
method-id: decide-direction
contract-sha256: b5d36495b0e7e9a82fab77979a91c0144b1c51dbe1e6153352b6162272bb0d46
step-results:
- step-id: read-evidence
status: completed
artifact-refs:
- report-id: EXEC-CEO-decide-direction-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: evaluate-options
status: completed
artifact-refs:
- report-id: EXEC-CEO-decide-direction-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: converge-decision
status: completed
artifact-refs:
- report-id: EXEC-CEO-decide-direction-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,34 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] EXEC-CFO/financial-judgment 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: EXEC-CFO-financial-judgment-golden
workflow-id: cutover-all
role-id: EXEC-CFO
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: EXEC-CFO
method-id: financial-judgment
contract-sha256: 4b0ee2a71e26bdfdabf8b1f746e4281517051b07296051da479dfab506d60314
step-results:
- step-id: model-3statement
status: completed
artifact-refs:
- report-id: EXEC-CFO-financial-judgment-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: scenario-test
status: completed
artifact-refs:
- report-id: EXEC-CFO-financial-judgment-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,29 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] EXEC-COO/ops-judgment 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: EXEC-COO-ops-judgment-golden
workflow-id: cutover-all
role-id: EXEC-COO
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: EXEC-COO
method-id: ops-judgment
contract-sha256: d588442dc8bd2894c4e6627113e9c39b0c3ce78c1b00edb7401dfbe3dc5a10ff
step-results:
- step-id: assess-feasibility
status: completed
artifact-refs:
- report-id: EXEC-COO-ops-judgment-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,29 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] EXEC-CPO/product-judgment 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: EXEC-CPO-product-judgment-golden
workflow-id: cutover-all
role-id: EXEC-CPO
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: EXEC-CPO
method-id: product-judgment
contract-sha256: 88012b396184bdd574f91f404c5c72f2fe7e3d2f1b2cd988b17655032b6d022d
step-results:
- step-id: assess-product
status: completed
artifact-refs:
- report-id: EXEC-CPO-product-judgment-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,29 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] EXEC-CPTO/integration-judgment 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: EXEC-CPTO-integration-judgment-golden
workflow-id: cutover-all
role-id: EXEC-CPTO
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: EXEC-CPTO
method-id: integration-judgment
contract-sha256: 9c1b4251277cbdd6fbe6512088a53bce14fab66d2c4806ee00cd722e8dda96a4
step-results:
- step-id: reconcile
status: completed
artifact-refs:
- report-id: EXEC-CPTO-integration-judgment-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,29 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] EXEC-CTO/tech-judgment 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: EXEC-CTO-tech-judgment-golden
workflow-id: cutover-all
role-id: EXEC-CTO
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: EXEC-CTO
method-id: tech-judgment
contract-sha256: 0b70fd46727d28b5441adc6f75e28845195f81e66b15d51e22ba0e0e12165a27
step-results:
- step-id: assess-tech
status: completed
artifact-refs:
- report-id: EXEC-CTO-tech-judgment-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] EXEC-VPENG/delivery-acceptance 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: EXEC-VPENG-delivery-acceptance-golden
workflow-id: cutover-all
role-id: EXEC-VPENG
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: EXEC-VPENG
method-id: delivery-acceptance
contract-sha256: f9c0c48348f425cbbd169a88f080fdf735f7b498a8a2de22b664c4b50e261628
step-results:
- step-id: review-delivery
status: completed
artifact-refs:
- report-id: EXEC-VPENG-delivery-acceptance-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: recommend-release
status: completed
artifact-refs:
- report-id: EXEC-VPENG-delivery-acceptance-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] GTM-CI/competitive-intelligence 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: GTM-CI-competitive-intelligence-golden
workflow-id: cutover-all
role-id: GTM-CI
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: GTM-CI
method-id: competitive-intelligence
contract-sha256: 6d861945e364ddf222889a0dbbe42e08def4eb0d17f1a3d58a2dc87a4de86d7f
step-results:
- step-id: collect-signals
status: completed
artifact-refs:
- report-id: GTM-CI-competitive-intelligence-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: winloss-battlecard
status: completed
artifact-refs:
- report-id: GTM-CI-competitive-intelligence-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] GTM-CS/customer-success 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: GTM-CS-customer-success-golden
workflow-id: cutover-all
role-id: GTM-CS
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: GTM-CS
method-id: customer-success
contract-sha256: ff1521cc2d29920ab306c67dd48a76c9ddb20eb769c2e8f8468baf876f3684cf
step-results:
- step-id: onboard-adopt
status: completed
artifact-refs:
- report-id: GTM-CS-customer-success-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: value-expand
status: completed
artifact-refs:
- report-id: GTM-CS-customer-success-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] GTM-DEMANDGEN/demand-generation 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: GTM-DEMANDGEN-demand-generation-golden
workflow-id: cutover-all
role-id: GTM-DEMANDGEN
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: GTM-DEMANDGEN
method-id: demand-generation
contract-sha256: e1fbc87420fe8450c9a66aa4b17927e9f619eeebc8bd0947fd2fc237b0750cb8
step-results:
- step-id: define-target
status: completed
artifact-refs:
- report-id: GTM-DEMANDGEN-demand-generation-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: orchestrate-pipeline
status: completed
artifact-refs:
- report-id: GTM-DEMANDGEN-demand-generation-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,34 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] GTM-GROWTHPM/growth 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: GTM-GROWTHPM-growth-golden
workflow-id: cutover-all
role-id: GTM-GROWTHPM
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: GTM-GROWTHPM
method-id: growth
contract-sha256: 583d92ea8d72ceb320c9a447d1bb1ff567cb3b2af37469de8fdbfd0bc9647fbf
step-results:
- step-id: find-bottleneck
status: completed
artifact-refs:
- report-id: GTM-GROWTHPM-growth-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: experiment-loop
status: completed
artifact-refs:
- report-id: GTM-GROWTHPM-growth-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] GTM-LEGAL/legal 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: GTM-LEGAL-legal-golden
workflow-id: cutover-all
role-id: GTM-LEGAL
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: GTM-LEGAL
method-id: legal
contract-sha256: 4e9e28f3c8daf573ef24812c6061a5b5b30038aea55dad38c97a6e94ec4fc1b8
step-results:
- step-id: review-stack
status: completed
artifact-refs:
- report-id: GTM-LEGAL-legal-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: allocate-risk
status: completed
artifact-refs:
- report-id: GTM-LEGAL-legal-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] GTM-PARTNER/partnership 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: GTM-PARTNER-partnership-golden
workflow-id: cutover-all
role-id: GTM-PARTNER
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: GTM-PARTNER
method-id: partnership
contract-sha256: b148f1f013f2b59415ee2a1ff8ad2365577f03c8ef00944f9d24369692bb6278
step-results:
- step-id: program-onboard
status: completed
artifact-refs:
- report-id: GTM-PARTNER-partnership-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: dealreg-cosell
status: completed
artifact-refs:
- report-id: GTM-PARTNER-partnership-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] GTM-PMM/product-marketing 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: GTM-PMM-product-marketing-golden
workflow-id: cutover-all
role-id: GTM-PMM
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: GTM-PMM
method-id: product-marketing
contract-sha256: a1b665ecb8f9fdce2fd432cc56799961fd9bea65fadefa3385f260bfcecadd40
step-results:
- step-id: position
status: completed
artifact-refs:
- report-id: GTM-PMM-product-marketing-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: message-enable
status: completed
artifact-refs:
- report-id: GTM-PMM-product-marketing-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,34 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] GTM-PRICING/pricing 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: GTM-PRICING-pricing-golden
workflow-id: cutover-all
role-id: GTM-PRICING
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: GTM-PRICING
method-id: pricing
contract-sha256: ededd37e9f919dd17ca6ad5a4332cbb06d3a93f68117364fbeecbe301a6dfbc1
step-results:
- step-id: model-value
status: completed
artifact-refs:
- report-id: GTM-PRICING-pricing-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: package-govern
status: completed
artifact-refs:
- report-id: GTM-PRICING-pricing-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] GTM-REVOPS/revenue-operations 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: GTM-REVOPS-revenue-operations-golden
workflow-id: cutover-all
role-id: GTM-REVOPS
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: GTM-REVOPS
method-id: revenue-operations
contract-sha256: 5ade89f13c42839d6d9b7910ad8293e62a7e4e1d56b0230fc1db9483bcb1639e
step-results:
- step-id: build-ssot
status: completed
artifact-refs:
- report-id: GTM-REVOPS-revenue-operations-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: forecast-cadence
status: completed
artifact-refs:
- report-id: GTM-REVOPS-revenue-operations-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] GTM-SALES/sales 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: GTM-SALES-sales-golden
workflow-id: cutover-all
role-id: GTM-SALES
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: GTM-SALES
method-id: sales
contract-sha256: facb6fc717769fc479e5b6ad0ed4649b155312f8636b4fbbe49f87a694698542
step-results:
- step-id: qualify-meddpicc
status: completed
artifact-refs:
- report-id: GTM-SALES-sales-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: negotiate-close
status: completed
artifact-refs:
- report-id: GTM-SALES-sales-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] INFRA-DEV/infrastructure 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: INFRA-DEV-infrastructure-golden
workflow-id: cutover-all
role-id: INFRA-DEV
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: INFRA-DEV
method-id: infrastructure
contract-sha256: 260606b3e5782da501b92a8df14fcd09dd49045561ec4bf86922609da8ae136a
step-results:
- step-id: declare-iac
status: completed
artifact-refs:
- report-id: INFRA-DEV-infrastructure-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: automate-and-recover
status: completed
artifact-refs:
- report-id: INFRA-DEV-infrastructure-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] INFRA-DEVOPS/devops-delivery 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: INFRA-DEVOPS-devops-delivery-golden
workflow-id: cutover-all
role-id: INFRA-DEVOPS
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: INFRA-DEVOPS
method-id: devops-delivery
contract-sha256: acd44f9524cacd3b0109eaebd1e25ea3fff7eee8f97f52cdb966ab370a0cb683
step-results:
- step-id: automate-delivery
status: completed
artifact-refs:
- report-id: INFRA-DEVOPS-devops-delivery-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: measure-dora
status: completed
artifact-refs:
- report-id: INFRA-DEVOPS-devops-delivery-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] INFRA-PLATFORM/platform-engineering 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: INFRA-PLATFORM-platform-engineering-golden
workflow-id: cutover-all
role-id: INFRA-PLATFORM
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: INFRA-PLATFORM
method-id: platform-engineering
contract-sha256: cc1579481ab3cda088efed159ad1554a5593d9115f15162b00f50cbd08e8fb0a
step-results:
- step-id: map-and-design
status: completed
artifact-refs:
- report-id: INFRA-PLATFORM-platform-engineering-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: abstract-selfservice
status: completed
artifact-refs:
- report-id: INFRA-PLATFORM-platform-engineering-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] OPS-CH/support-operations 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: OPS-CH-support-operations-golden
workflow-id: cutover-all
role-id: OPS-CH
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: OPS-CH
method-id: support-operations
contract-sha256: 95d6a28e95d28b67bf0553a9354ca61124ff93adfd3f9c2cdee91d479e79f92c
step-results:
- step-id: triage-route
status: completed
artifact-refs:
- report-id: OPS-CH-support-operations-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: resolve-voc
status: completed
artifact-refs:
- report-id: OPS-CH-support-operations-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] OPS-CREW/operations-improvement 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: OPS-CREW-operations-improvement-golden
workflow-id: cutover-all
role-id: OPS-CREW
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: OPS-CREW
method-id: operations-improvement
contract-sha256: 078dd8bd20516ab05c479767d9443f5a2888b2871690e203cf0111cc20d98a06
step-results:
- step-id: map-current
status: completed
artifact-refs:
- report-id: OPS-CREW-operations-improvement-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: design-future
status: completed
artifact-refs:
- report-id: OPS-CREW-operations-improvement-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] OPS-ORCH/orchestrate 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: OPS-ORCH-orchestrate-golden
workflow-id: cutover-all
role-id: OPS-ORCH
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: OPS-ORCH
method-id: orchestrate
contract-sha256: 9fb0453eb4b8ade5a3a09d25ba339443a54978720499aa13de5b5258533db383
step-results:
- step-id: decompose
status: completed
artifact-refs:
- report-id: OPS-ORCH-orchestrate-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: route-and-gate
status: completed
artifact-refs:
- report-id: OPS-ORCH-orchestrate-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,34 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] PROD-PM/product-discovery 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: PROD-PM-product-discovery-golden
workflow-id: cutover-all
role-id: PROD-PM
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: PROD-PM
method-id: product-discovery
contract-sha256: 26952bd19d4b39ecf35f674ba2abbcbf5ec14294911ef7f973bd63dc7666ed4a
step-results:
- step-id: frame-outcome
status: completed
artifact-refs:
- report-id: PROD-PM-product-discovery-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: write-prd
status: completed
artifact-refs:
- report-id: PROD-PM-product-discovery-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
decisions:
- decision-id: g1
selected-option-id: opt-a
alternatives:
- option-id: opt-a
- option-id: opt-b
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] PROD-PO/backlog-definition 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: PROD-PO-backlog-definition-golden
workflow-id: cutover-all
role-id: PROD-PO
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: PROD-PO
method-id: backlog-definition
contract-sha256: 2e233338fb4f316efbd68ae3af77b36474ecec9683f759bfbbb51bd55eecb34e
step-results:
- step-id: set-goal
status: completed
artifact-refs:
- report-id: PROD-PO-backlog-definition-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: define-acceptance
status: completed
artifact-refs:
- report-id: PROD-PO-backlog-definition-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] PROD-PPO/platform-product 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: PROD-PPO-platform-product-golden
workflow-id: cutover-all
role-id: PROD-PPO
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: PROD-PPO
method-id: platform-product
contract-sha256: 23aa164bdb0454a0270fd876ceb2b59195102b6a148fb9096226590c5c8d4c5e
step-results:
- step-id: define-internal-customers
status: completed
artifact-refs:
- report-id: PROD-PPO-platform-product-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: platform-roadmap
status: completed
artifact-refs:
- report-id: PROD-PPO-platform-product-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
@@ -0,0 +1,28 @@
report-header:
bottom-line: '[CUTOVER GOLDEN] PROD-TPO/technical-product 계약 실행 실증'
decision-needed:
needed: false
confidence:
value: Med
risks: []
report-type: work
report-id: PROD-TPO-technical-product-golden
workflow-id: cutover-all
role-id: PROD-TPO
tier: standard
verification-performed: 'cutover golden: workflow 완결'
method-execution:
role-id: PROD-TPO
method-id: technical-product
contract-sha256: 6e94690ee3a8d228f9073f2b9fa869e2749aa88370690af70f56afaf0bba7edc
step-results:
- step-id: decompose-technical
status: completed
artifact-refs:
- report-id: PROD-TPO-technical-product-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000
- step-id: write-technical-prd
status: completed
artifact-refs:
- report-id: PROD-TPO-technical-product-golden
sha256: golden0000000000000000000000000000000000000000000000000000000000

Some files were not shown because too many files have changed in this diff Show More