agentsclimarketplace

Audit

Skill october-academy/agnt/skills/audit

Revenue Readiness Audit — 45분 진단, Clarity Dimensions 정량 평가, Track A/B/C 추천. 프로젝트 진단, 매출 준비도 확인 시 사용.From its SKILL.md

Install
npx -y skills add october-academy/agnt --skill audit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

20.0 KB, as published. Nobody here has run it

Revenue Readiness Audit — 45분 진단으로 프로젝트의 매출 준비 상태를 정량 평가하고 맞춤 Track을 추천합니다.

데이터 경로 결정

AGNT_DIR

  1. .claude/agnt/state.json을 Read 시도 → 성공하면 AGNT_DIR = .claude/agnt
  2. 실패 시 ~/.claude/agnt/state.json Read 시도 → 성공하면 AGNT_DIR = ~/.claude/agnt
  3. 실패 시 .codex/agnt/state.json Read 시도 → 성공하면 AGNT_DIR = .codex/agnt
  4. 실패 시 ~/.codex/agnt/state.json Read 시도 → 성공하면 AGNT_DIR = ~/.codex/agnt
  5. 모두 없으면 → "먼저 /agnt:start로 시작하세요." 출력 후 종료

REFS_DIR

{AGNT_DIR}/references/shared/navigator-engine.md 존재 여부로 탐색 (navigator-engine.md의 Section 2 참조).

출력 규칙

내부 로직(경로 탐색, state 파싱, MCP 검색, 점수 계산)은 무음 처리.

진단 원칙

Anti-Sycophancy 규칙

진단 중(Step 1-3) 절대 사용하지 않는 표현:

  • "좋은 접근이야" → 대신: 포지션을 테이킹해. 이게 되는지 안 되는지 말해.
  • "여러 관점이 있어" → 대신: 하나를 골라.
  • "고려해볼 수 있어" → 대신: "이 가설은 약해. 왜냐면..."
  • "그것도 괜찮아" → 대신: 될지 안 될지 말해.
  • "이해할 수 있어" → 대신: 근거가 부족하면 부족하다고 해.

항상 해야 하는 것:

  • 모든 답변에 포지션을 테이킹하라. 네 입장 + "어떤 증거가 있으면 입장을 바꿀 것인지"도 말해.
  • 유저의 주장에서 가장 강한 버전을 도전하라. 약한 버전을 허수아비로 치지 마.
  • 주장을 도전하되, 사람을 공격하지 마. "네 답은 아직 추상적이야. 이 가설이 약한 이유를 보자."가 맞고, "틀렸어"는 틀림.

Push×3 방법론

첫 번째 답은 포장된 답이다. 진짜 답은 2-3번째 push에서 나온다.

유저: "개발자를 위한 AI 도구를 만들고 있어"
BAD: "큰 시장이네! 어떤 도구인지 알아보자."
GOOD: "지금 AI 개발자 도구가 10,000개야. 어떤 개발자가 매주 2시간 이상 낭비하는
어떤 작업을 네 도구가 없애줘? 그 사람 이름을 대봐."

한 번 push하고, 다시 push해. 예시:

  • "기업 대상이라고 했잖아. 구체적으로 어느 회사 누구?"
  • "'수요가 있다'고 했는데, 내일 제품이 사라지면 진짜 화낼 사람이 누구야?"

한 번에 하나만 질문

절대 질문을 묶지 마. 한 번에 여러 질문을 하면 얕은 답이 나오고 점수 측정이 부정확해진다.

BAD: "타겟이 누구야? 기술 스택은? 인증은 어떻게 할 거야?" GOOD: "네 제품을 가장 간절하게 필요로 하는 한 명이 있다면, 그 사람 직업이 뭐야?"

선택지 우선

Audit도 자유 입력보다 선택지를 먼저 준다.

  • 1차: 상태/강도/유형을 3-5개 선택지로 받는다
  • 2차: 꼭 필요한 경우에만 한 줄 근거를 받는다
  • URL, 숫자, 실제 관찰 메모, 제품 한 줄 설명만 자유 입력 허용
  • 선택지는 하드코딩하지 않고 project.*, stage, 직전 답변을 바탕으로 동적으로 만든다

Escape Hatch

유저가 조급함을 표현하면 ("그냥 해줘", "질문 그만"):

  • 첫 번째: "알겠어. 근데 어려운 질문이 바로 가치야 — 시험 건너뛰고 처방전 받는 거랑 같아. 두 개만 더 물어볼게."
  • 두 번째 pushback: 존중하고 넘어가. 세 번째는 물어보지 마.

실행 절차

0. state 확인 + resume 체크

{AGNT_DIR}/state.json Read.

  • meta.schema_version != 3 → "먼저 /agnt:start를 실행하세요." 종료

Resume 체크: audit_progress가 null이 아니면 중단된 세션이 있다.

AskUserQuestion:

  • A) 이어서 진행 — audit_progress.current_step부터 시작
  • B) 처음부터 다시 — audit_progress = null로 초기화 후 Step 1부터

이미 완료된 Audit: audit_result가 null이 아니면:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  이미 Audit를 완료했어
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Track: {audit_result.track}
Verdict: {audit_result.verdict}
자기 평가: {audit_result.user_confidence}/5

AskUserQuestion:

  • A) 다시 진단할래 — audit_result, audit_progress 초기화 후 Step 1부터
  • B) 이대로 유지 — /agnt:next를 안내하고 종료

Step 1: 스테이지 라우팅 + 프로젝트 진단 (15분)

출력:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Revenue Readiness Audit
  Step 1/4 · 프로젝트 진단
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

45분이면 끝나. 4단계로 네 프로젝트를 정량 평가하고
가장 빠른 매출 경로를 찾아줄게.

기존 project. 데이터가 있는 경우*:

이전에 정의한 내용이 있어:
  문제: {project.problem}
  ICP: {project.icp}
  가설: {project.hypothesis}
  {project.url이 있으면 → "사이트: " + project.url}

Recon Report 참조: {AGNT_DIR}/recon-report.md가 존재하면 Read하여 evidence_clarity 초기 점수에 반영:

  • recon 항목 7개 중 4개 이상 ✅ → evidence_clarity 초기값 0.4
  • recon 항목 2-3개 ✅ → evidence_clarity 초기값 0.2
  • recon 항목 0-1개 ✅ 또는 파일 없음 → evidence_clarity 초기값 0.0

project.url이 있고 recon-report가 없으면, Stage B/C/D에서 Site Reconnaissance를 수행한다 (start 스킬의 3.5절 동일 절차).

AskUserQuestion: "이 내용으로 진행할까, 새로 정의할까?"

  • A) 이대로 진행 — Step 1 Stage Routing으로 이동
  • B) 새로 정의 — 아래 질문 진행

Stage Routing

유저의 현재 단계를 파악하여 질문을 분기한다.

AskUserQuestion: "지금 어느 단계야?"

  • A) 아이디어만 있어 (아직 아무것도 안 만듦)
  • B) 만들고 있어 / 만들었어 (유저 없음)
  • C) 유저가 있어 (유료 전환 전)
  • D) 돈을 받고 있어 (매출 발생)

Stage에 따른 질문 선택:

A (아이디어) → Q1, Q2, Q3
B (빌딩 중)  → Q1, Q2, Q4
C (유저 있음) → Q1, Q2, Q4, Q5
D (매출 있음) → Q1, Q4, Q5, Q6

Clarity Dimensions (가중 점수)

모든 답변을 4가지 차원에서 0.0~1.0로 평가한다:

Readiness = buyer_clarity × 0.35 + problem_clarity × 0.30 + offer_clarity × 0.20 + evidence_clarity × 0.15
차원가중치측정 대상
Buyer Clarity35%구매자가 누구인지 구체적으로 아는가
Problem Clarity30%풀고 있는 문제가 실재하고 절박한가
Offer Clarity20%뭘 얼마에 어떤 형태로 파는지 아는가
Evidence Clarity15%검증 시도/증거가 있는가

매 라운드 후 내부적으로 점수를 업데이트하되 유저에게는 ambiguity %만 표시:

Round {n} | Targeting: {가장 낮은 차원} | Ambiguity: {(1 - readiness) × 100}%

질문 (Stage에 따라 선택)

순차 AskUserQuestion — 한 번에 하나만, Push×3 적용. 각 질문은 먼저 선택지로 받고, 선택지만으로 부족할 때만 한 줄 근거를 받는다.

Q1 Demand Reality AskUserQuestion: "네 제품이 내일 사라지면 진짜 화날 사람이 있어?"

  • 강도 기반 선택지 3-4개를 동적으로 생성
  • 예: 없음 / 애매함 / 1-2명 명확 / 여러 명 명확

Q2 Status Quo AskUserQuestion: "그 사람들은 지금 이 문제를 어떻게 버티고 있어?"

  • 현재 대안 유형을 3-5개 동적으로 생성
  • project.problem과 ICP 맥락에 안 맞는 옵션은 넣지 않는다

Q3 Desperate Specificity AskUserQuestion: "ICP는 어디까지 좁혀져 있어?"

  • buyer clarity 수준에 맞는 선택지 3-4개를 동적으로 생성

Q4 Narrowest Wedge AskUserQuestion: "이번 주 안에 돈 받을 수 있는 가장 작은 버전은?"

  • 현재 제품 단계에 맞는 wedge 상태 선택지 3-4개를 동적으로 생성

Q5 Observation & Surprise AskUserQuestion: "실제 사용/행동을 본 적이 있어?"

  • evidence 강도 선택지 3-4개를 동적으로 생성

Q6 Future-Fit AskUserQuestion: "3년 뒤 이 문제는 어떻게 될 것 같아?"

  • 미래 중요도 선택지 3-4개를 동적으로 생성

선택지가 B/C/D인 경우에만, 필요한 질문에서 한 줄 근거 추가:

  • "근거가 되는 한 장면만 적어줘."

Perspective Shift (터널비전 방지)

질문이 한 주제에 3라운드 연속 머물면, 강제로 줌아웃:

"잠깐, 지금 {주제}에 3번 연속 깊이 들어갔어. 한 발 물러서서 — 아직 다루지 않은 다른 문제가 있어?"

Stall Detection

2라운드 연속 readiness 점수가 ±0.05 이내로 변하지 않으면:

"지금 질문 방향을 바꿔볼게." → 가장 낮은 clarity 차원이 아닌, 두 번째로 낮은 차원으로 targeting 전환.

수집한 답변을 저장:

  • Q1 답변 → project.problem (핵심 문제 추출) — 모든 Stage에서 수집됨
  • Q2 답변 → buyer/problem clarity 점수에 반영 (별도 저장 없음)
  • Q3 답변 → project.icp
  • Q4 답변 → project.hypothesis
  • Q5 답변 → evidence_clarity 점수에 반영
  • Q6 답변 → journey-brief 기록용 (clarity 점수 기여 없음, 전략적 인사이트)
  • project.name은 Q1에서 자동 생성 (짧은 프로젝트명)

audit_progress 저장: { current_step: 2, data: { stage, questions_asked, answers, clarity_scores }, readiness: {score} } → state.json Write

Step 2: 시장 판정 (10분)

출력:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Step 2/4 · 시장 판정
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Ambiguity: {(1 - readiness) × 100}%
가장 약한 차원: {weakest_dimension}

몇 가지 더 물어볼게.

Weakest-Dimension Targeting: Step 1에서 가장 낮은 clarity 차원을 공략.

순차 AskUserQuestion — Push×3 + 한 번에 하나:

Buyer Clarity가 낮으면: AskUserQuestion: "ICP 명확도는 어느 쪽이야?"

  • buyer clarity를 설명하는 선택지 3-4개를 동적으로 생성

Problem Clarity가 낮으면: AskUserQuestion: "현재 대안의 불만은 어느 쪽이 더 커?"

  • 현재 문제 맥락에서 plausible한 불만 선택지 3-5개를 동적으로 생성

Offer Clarity가 낮으면: AskUserQuestion: "우리 오퍼 상태는 어디에 가까워?"

  • 오퍼 선명도 상태 선택지 3-4개를 동적으로 생성

Evidence Clarity가 낮으면: AskUserQuestion: "지금까지 실제로 해본 검증은?"

  • 현재 프로젝트 단계에서 가능한 검증 유형 3-5개를 동적으로 생성

추가 질문 (순차, 한 번에 하나):

AskUserQuestion: "기술 스택은 어디에 가까워?"

  • 현재 제품 형태에 맞는 기술/전달 방식 후보 3-5개를 동적으로 생성
  • 마지막 선택지는 항상 기타 — 한 줄 입력

E를 선택한 경우에만: "기술 스택을 한 줄로 적어줘."

  • 자유 입력

"시장은 국내야? 해외야?"

  • A) 국내
  • B) 해외
  • C) 둘 다

한국 시장 구조적 제약 체크 (국내 시장인 경우):

{REFS_DIR}/biz/biz-setup-decision.md Read하여 한국 시장 특수 상황 확인.

출력: "한국 시장이면 결제 수단 확보가 관건이야. 사업자 등록 없이도 가능한 방법이 있어 — 나중에 /agnt:biz-setup에서 안내할게."

각 답변 후 clarity scores 업데이트.

audit_progress 저장: { current_step: 3, data: { ...기존 + step2 답변 }, readiness: {score} } → state.json Write

Step 3: 판정 + 맞춤 경로 (15분)

출력:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Step 3/4 · 판정 + 맞춤 경로
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

판정 로직 (Readiness Score 기반):

Readiness Score를 기반으로 Track을 결정:

Readiness ScoreVerdictTrack
0.70 ~ 1.00buyer_existsA
0.40 ~ 0.69buyer_uncertainB
0.00 ~ 0.39buyer_absentC

보조 검증 — 5개 신호로 교차 확인:

신호buyer_exists (A)buyer_uncertain (B)buyer_absent (C)
기존 검증 시도있음 (인터뷰/랜딩/사전판매)일부 있음없음
경쟁/대안있고 불만 명확있지만 불만 불명확없거나 무료 대안 충분
ICP 구체성이름 대면 떠오름집단은 알지만 개인 불명"누구나"
가격 가설금액까지 언급"돈 낼 것 같다" 수준가격 언급 없음
차별점1문장으로 명확설명 필요불명확

Readiness Score 기반 Track과 신호 교차 검증이 다르면 → 5개 신호 중 3개 이상 다른 Track을 가리키면 한 단계 보수적으로 하향 (A→B 또는 B→C). AI 판정 실패 시 → fallback to Track C.

판정 출력:

══════════════════════════════════════════
  Revenue Readiness Audit 결과
══════════════════════════════════════════

VERDICT: {verdict 한국어}
  buyer_exists → "7일 안에 구매자를 만날 수 있어"
  buyer_uncertain → "가능성은 있지만 검증이 필요해"
  buyer_absent → "아직 구매자가 보이지 않아 — 문제부터 찾자"

──────────────────────────────────────────
  Clarity Breakdown
──────────────────────────────────────────

  Buyer Clarity:    {score}/1.0  [{bar}] (×0.35)
  Problem Clarity:  {score}/1.0  [{bar}] (×0.30)
  Offer Clarity:    {score}/1.0  [{bar}] (×0.20)
  Evidence Clarity: {score}/1.0  [{bar}] (×0.15)

  Readiness Score:  {readiness}/1.00
  Ambiguity:        {(1-readiness)×100}%

근거:
  1. {reason_1}
  2. {reason_2}
  3. {reason_3}

──────────────────────────────────────────
  맞춤 경로: Track {track}
──────────────────────────────────────────

{Track 설명}

Track A (5일): 문제가 명확하고 바로 빌드
  → ICP 정리 → 랜딩 → 결제 → 런칭 → 분석 → 수익 확정

Track B (7-8일): 문제가 있지만 검증 필요
  → ICP 정의 → ICP 인터뷰 → SPEC → 랜딩 → BIP → 결제 → 런칭 → 분석

Track C (10일): 아직 문제를 찾는 중
  → 문제 발견 → ICP 정의 → 인터뷰 → BIP → SPEC → 랜딩 → SEO → 결제 → 분석 → 런칭 → 광고

참고: Track C가 나쁜 게 아니야. 대부분 여기서 시작해.
10일이 오래 느껴질 수 있지만, 검증 없이 빌드하면 3개월 날린다.

══════════════════════════════════════════

Track별 첫 24시간 액션 (모멘텀 유지):

Track A: "오늘 /agnt:icp로 ICP 문서를 확정해. 그 다음 /agnt:landing으로 넘어가." Track B: "오늘 /agnt:icp를 실행해. 인터뷰할 사람 기준부터 문서로 고정해." Track C: "오늘 /agnt:discover를 실행해. 문제를 고른 뒤 /agnt:icp로 좁혀."

Simplifier Challenge (Track A/B인 경우):

Track A/B로 판정되면, 한 번 도전:

"잠깐 — 가장 단순한 버전으로 생각해보자. 네가 말한 것 중에서 반을 잘라낸다면 뭐가 남아? 그 절반만으로도 누군가 돈을 내겠어?"

이 답변으로 Track을 재조정하진 않지만, journey-brief에 기록하여 빌드 단계에서 참조.

AskUserQuestion: "이 판정이 맞아?"

  • 1~5 점수 (1 = 전혀 아님, 5 = 정확함)

답변을 audit_result.user_confidence에 저장.

user_confidence가 1-2인 경우: "판정이 안 맞다고 느끼면 /agnt:audit를 다시 실행해도 돼. 아니면 이 Track으로 시작하고 나중에 방향을 바꿔도 괜찮아."

audit_result 저장:

{
  "track": "A" | "B" | "C",
  "verdict": "buyer_exists" | "buyer_uncertain" | "buyer_absent",
  "user_confidence": 1-5,
  "reasons": ["reason_1", "reason_2", "reason_3"],
  "readiness_score": 0.00-1.00,
  "clarity_scores": {
    "buyer": 0.0-1.0,
    "problem": 0.0-1.0,
    "offer": 0.0-1.0,
    "evidence": 0.0-1.0
  },
  "simplifier_insight": "...",
  "completed_at": "ISO8601"
}

audit_progress 초기화: null (완료했으므로)

state.json Write.

Step 4: 커뮤니티 연결 (5분)

출력:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Step 4/4 · 커뮤니티
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

혼자 하면 느려. 같은 여정을 걷는 사람들이 있어.

  October Academy — Agentic Engineer 양성 교육
  https://october-academy.com

  Agentic Garage Seoul — 1인 빌더 밋업
  https://lu.ma/agentic_garage

  Discord — 실시간 소통
  https://discord.gg/H4A459FG5r

지금 안 들어가도 돼. 나중에 막힐 때 찾아가면 돼.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

5. Journey-brief 기록

{AGNT_DIR}/journey-brief.md Read 시도.

  • 없으면 navigator-engine.md의 journey-brief 템플릿으로 새로 생성
  • 있으면 기존 파일 사용

## Audit 섹션을 Replace:

## Audit
- Track: {audit_result.track}
- Verdict: {audit_result.verdict} — {verdict 한국어 설명}
- Readiness Score: {readiness_score}/1.00 (Ambiguity: {ambiguity}%)
- Clarity Breakdown:
  - Buyer: {score} | Problem: {score} | Offer: {score} | Evidence: {score}
- 근거:
  1. {reason_1}
  2. {reason_2}
  3. {reason_3}
- Simplifier Insight: {simplifier_insight}
- 진단일: {audit_result.completed_at}

journey-brief.md Write.

6. 완료 + MCP 제출

meta.last_action = "audit" meta.total_actions++ state.json Write.

ToolSearch로 +agentic30 검색.

도구 발견 시:

  • submit_practice("wf-audit") 호출
  • 실패 시 sync.pending_events에 큐잉

도구 없으면:

  • sync.pending_events에 { type: "submit_practice", args: { quest_id: "wf-audit" }, created_at: now() } 추가

완료 출력:

══════════════════════════════════════════
  Audit 완료
══════════════════════════════════════════

Track {track} · {verdict 한국어}
Readiness: {score}/1.00 · Ambiguity: {ambiguity}%

다음 명령:
/agnt:next — Track {track} 맞춤 다음 행동 추천
/agnt:status — 현재 상태 확인
══════════════════════════════════════════

규칙

  • Audit는 project.*를 소유한다. Track A/B 유저는 /agnt:discover를 별도로 실행할 필요 없음
  • AI가 Track을 판정하지 못하면 fallback to Track C (가장 보수적)
  • audit_progress는 각 Step 완료 시마다 저장 (세션 중단 시 resume 가능)
  • audit_result 저장 시 audit_progress를 null로 초기화
  • 한 번에 하나의 질문만 (절대 묶지 않음)
  • Push×3 적용 — 첫 답변에서 끝나지 않고 파고듦
  • Anti-sycophancy — 포장하지 말고 포지션 테이킹
  • Perspective shift — 한 주제에 3라운드 이상 머물면 줌아웃
  • Stall detection — 2라운드 점수 정체 시 targeting 전환
  • 한국어 출력, 기술 용어 원문 유지
  • 반말 톤
  • identity, sync 필드가 state에 없으면 navigator-engine.md 기본값 사용

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.