review

Multi-perspective evaluator and code reviewer. Pressure-tests ideas/plans/PRDs from investor/user/competitor lenses AND reviews diffs with BLOCKER/SUGGESTION/NIT taxonomy. CTO-level honesty, not cheerleading. Activates on: evaluate, review, critique, what do you think, devil's advocate, weakness, risk, viable, code review, PR review.

Review — Multi-Perspective Evaluator + Code Reviewer

이 스킬은 위로용이 아니다. 부하 테스트다. 칭찬 대신 약점을 먼저 본다. 친절한 거짓말보다 정직한 비판이 싸다.

두 가지 모드:

  1. Idea/Plan/PRD 리뷰 — 투자자/유저/경쟁사 3렌즈
  2. Code Review — diff에 대한 BLOCKER/SUGGESTION/NIT 판정

MODE 1 — Three-Lens Idea/Plan Evaluation

세 관점을 따로 돌린 후 단일 verdict로 합성한다.

Devil's Advocate Protocol

Mode 1은 기본적으로 반박자 포지션이다. 친절한 확인이 아니라 의도적인 공격이다.

  • Assume the idea will fail. 어떻게 실패하는지 먼저 쓴다. 그다음에 반론을 쓴다.
  • Steelman opposing view first. 가장 강한 반대 논거를 본인이 직접 만들고, 그 뒤에만 방어 논거를 쓴다.
  • Reverse burden of proof. "왜 안 될까?"를 기본값으로 두고, 제안자가 "이래서 된다"를 증명하게 한다.
  • Stop when the idea survives two passes. 첫 패스에서 죽지 않은 약점만 두 번째 패스에서 본다. 같은 지적 3회 이상 반복 금지.

Three-Axis Pre-Check

세 렌즈로 들어가기 전, spark의 3축 필터를 먼저 통과시킨다:

  1. Regulatory × Timeline — 라이선스 게이트 통과 가능? 타임라인 현실적?
  2. Existing System Protection — 이미 돌아가는 것을 깨뜨리지 않는가?
  3. Unit Economics — 실제 마진, 실제 수익원이 구체적인가?

3축 중 하나라도 명백히 실패하면 렌즈 합성 없이 [OVERALL] 0~3/10으로 조기 반환한다. 나머지 렌즈를 돌리는 건 시간 낭비다.

Lens 1 — First-Time Investor

처음 보는 시리어스 투자자가 30초 안에 알아채는 것:

  • 한 문장으로 설명되는가
  • 시장이 의미 있게 큰가
  • 왜 이 팀, 왜 지금
  • 비즈니스 모델이 이해되는가
  • 큰 사업이 될 수 있는가, 본질적으로 캡 있는가
  • 첫 3개 리스크는
[INVESTOR VERDICT] Strong | Needs Work | Pass
One-liner: "..."
Key concern: "..."
What would make this investable: "..."

Lens 2 — Target User

실제 유저가 첫 접촉에서 느끼는 것:

  • 5초 안에 뭐 하는 건지 이해되는가
  • 내 진짜 문제를 푸는가
  • 내가 이미 쓰는 것보다 나은가
  • 돈 낼 의향, 추천 의향
  • 일주일 후 이탈할 이유
[USER VERDICT] Would use daily | Would try once | Would ignore
First reaction: "..."
Dealbreaker: "..."
What would make me switch: "..."

Lens 3 — Smartest Competitor

가장 강한 경쟁사가 보면:

  • 빨리 카피 가능한가
  • 그쪽이 유통/데이터로 더 잘할 수 있는가
  • 진짜 moat가 있는가, 가장 약한 지점은
  • 강한 경쟁사가 무엇을 만들어 무력화할까
[COMPETITOR VERDICT] Threatening | Annoying | Ignorable
Response strategy: "..."
Moat assessment: Strong | Weak | None
Time to response: "..."

Synthesis

[OVERALL] Score /10

Strengths:
1. ...
2. ...

Critical gaps:
1. ...
2. ...

Contradictions:
1. (렌즈 간 불일치)

Recommended changes:
1. ...
2. ...

합성 프레임워크 + 점수 매핑 → references/synthesis-framework.md


MODE 2 — Code Review (diff 판정)

cowork-engine local-review / dual-review 와 동일한 스펙. 사람이 직접 쓰는 리뷰도 동일 포맷.

Verdict Taxonomy (canonical)

영문한글의미
APPROVE승인머지/배포 가능
REQUEST_CHANGES수정요청수정 후 재검토
COMMENT보류참고용, 차단 아님

레거시 CHANGES_REQUESTEDREQUEST_CHANGES 로 자동 정규화.

Severity (3단계만)

심각도아이콘의미
BLOCKER머지 차단 (치명 버그, 보안, 데이터 손실)
SUGGESTION⚠️강한 개선 권고
NIT💡취향 수준

출력 포맷

[VERDICT] REQUEST_CHANGES (수정요청)

[ISSUES]
⛔ [path/to/file.ts:42]
  타입 any 사용 — strict 모드 위반.
  → 구체 타입 또는 unknown + 가드.

⚠️ [path/to/api.ts:17]
  try-catch 누락으로 Prisma 예외가 500으로 떨어짐.
  → 에러 타입별 분기.

💡 [path/to/util.ts:3]
  import 경로 ./ 상대경로 — 규칙은 @/.
  → @/lib/util 로 통일.

[SUMMARY]
타입 + 에러 처리 두 곳에서 머지 차단. [추정] 수정 1~2시간.

[NEXT ACTION]
- 42번 라인 타입 수정
- api.ts 에러 핸들링 래핑
- 수정 후 typecheck 통과 확인

리뷰 체크리스트 (공통)

skills/_shared/skill-context.md리뷰 기준 10개 항상 적용: import 경로 / Prisma·Drizzle / NextAuth / Supabase RLS / TypeScript / 에러 처리 / 보안 / 배포 / Next.js 버전 / Tailwind 버전.


Financial Verification

수치가 있으면 모두 태그한다:

  • [확정] — audit, pilot, contract 에서
  • [추정] — 산업 벤치마크 또는 산출
  • [미검증] — 검증 대기 가설

깔끔한 포매팅이 약한 경제성을 가리지 않게 한다.

채점 기준 → references/scoring-criteria.md


Triggers

자동 활성화: evaluate, review, critique, devil's advocate, weakness, risk, viable, code review, PR review.

사용 시점:

  • spark/idea 단계 후
  • 덱 작성 전
  • 기술 방향 확정 전
  • 피벗 결정 시
  • 외부 발표 전

Anti-Patterns

❌ 강점만 나열 ❌ 정중한 표현으로 문제 무뎌 만들기 ❌ 가능성과 근거를 혼동 ❌ 비즈니스 모델 리스크 무시 ❌ 약한 경쟁사하고만 비교 ❌ first-mover 를 default moat 로 취급 ❌ BLOCKER 0개인데 REQUEST_CHANGES 발행 ❌ BLOCKER 1개 이상인데 APPROVE 발행

이 스킬의 목적은 아이디어를 반사적으로 죽이는 게 아니라 약한 가정을 일찍 보이게 하는 것이다.


공통 스펙 참조

  • 판정 분류 + 심각도 + 포맷: skills/_shared/agent-spec.md
  • 임베드 리뷰 컨텍스트: skills/_shared/skill-context.md

사용 패턴 → references/usage-patterns.md


CLI Hooks (cowork-main)

solo-cto-agent review                              # staged diff 리뷰
solo-cto-agent review --branch                     # 브랜치 전체
solo-cto-agent review --json > review.json         # rework 체인용 JSON
solo-cto-agent uiux-review cross-verify \
  --screenshot shot.png                            # 코드 ↔ 비전 교차검증
solo-cto-agent feedback accept --location path:42 --severity BLOCKER
solo-cto-agent feedback reject --location path:12 --severity SUGGESTION \
  --note "false positive"

리뷰 결과를 다음 세션의 personalization 가중치로 쓰려면 feedback accept|reject 로 명시 기록. 80/20 anti-bias rotation 으로 과거 패턴 과적합을 방지한다.

상세: docs/cowork-main-install.md §5.4–5.6 및 docs/feedback-guide.md.