| name | interview-synthesis |
| description | Import AI synthesis output (BuildBetter MCP, Perspective AI, and similar AI synthesis tools) into hplan, then force a human to tag each quote with strength (strong/medium/weak) and Push/Pull/Habit/Anxiety/workaround/trigger axes. AI extracts quotes; humans assign evidence strength. Audits the SKILL.md rule: 5 interviews with 3 distinct strong-Push signals โ proceed to Product Gate. |
| argument-hint | [import|tag|audit|list] <path or id> |
| allowed-tools | ["Read","Write","Bash"] |
| model | inherit |
Interview Synthesis โ AI Extracts, Human Tags
Running for: $ARGUMENTS
Core Goal
- 2026 ํ์ค ๋ฐ์ โ 78% PM ํ์ด AI ํฉ์ฑ ์ฌ์ฉ. ์ฐจ๋จํ์ง ๋ง๊ณ ๋ฐ์๋ค์ด๋, evidence strength ํ๊น
์ ์ธ๊ฐ์๊ฒ ๊ฐ์ .
- AI๋ quote ์ถ์ถ + ํ
๋ง ํด๋ฌ์คํฐ๋ง; ์ธ๊ฐ์ strong/medium/weak + Push/Pull/Habit/Anxiety ์ถ ๋ถ์ฌ.
- "5 interviews ์ค 3๋ช
์ด ๊ฐ์ ๊ฐํ Push๋ฅผ ๋งํ๋ฉด Product Gate๋ก" ๊ท์น์ ์ฝ๋๋ก ๊ฐ์ (
PROCEED_TO_PRODUCT_GATE verdict).
Trigger Gate
Use This Skill When
- BuildBetter / Perspective / similar synthesis tools export JSON์ด ์์ ์์ ๋
- ์ธํฐ๋ทฐ 5๊ฑด ์ด์ โ ์๋ ์ ๋ฆฌ๋ ๋น์ฉ ๋นํจ์จ์
evidence-rubric ์ ์์์ interview_notes ๋ณด๊ฐ์ด ํ์ํ ๋
- ์ ๊ท PM์ด ์ธํฐ๋ทฐ evidence๋ฅผ ์ด๋ป๊ฒ ํ๊น
ํด์ผ ํ๋์ง ํ์ตํ ๋
Route to Other Skills When
- 5/3 ํจํด ํต๊ณผ โ Product Gate (
ost skill)
- 5๋ช
๋ฏธ๋ง โ ์ถ๊ฐ ์ธํฐ๋ทฐ (skill ์ธ ์ค์ธ๊ณ ํ๋)
- ํ๊ทธ๋ quote ๊ฐ๋๊ฐ ๋๋ฌด ๋ฎ์ โ
pivot ๋๋ hold ๊ฒฐ์ โ decision-log
Boundary Checks
- โ AI ํฉ์ฑ์ด evidence๋ฅผ ๋์ฒดํ ์ ์๋ค. ํ๊ทธ ์ ๋ quote๋ evidence๊ฐ ์๋๋ค.
- โ AI sentiment โ evidence strength. ์ธ๊ฐ์ด ์ง์ ํ๋จ.
Inputs
Expected AI export JSON shape:
{
"source": "buildbetter",
"interviews": [
{
"person": "ICP candidate 1",
"role": "HR ๋ด๋น์ (์ ํ ์
๋ ฅ)",
"company_size": "50-200๋ช
(์ ํ ์
๋ ฅ)",
"date": "2026-05-09",
"quotes": [
{"text": "์ง๋์ฃผ์ 30๋ถ ๋ ๋ ๋ ธ์ด์", "theme": "manual workaround"},
{"text": "์ด๊ฑฐ ์ ๋๋ฉด ์์
๋ชป ๋ฐ์", "theme": "economic pain"}
]
}
]
}
role ํ๋ ์ฒ๋ฆฌ ์ ์ฑ
: role์ด AI export JSON์ ์์ผ๋ฉด PERSONA_SPECS.json์ ๊ทธ๋๋ก ๊ธฐ์
(๊ฒฐ์ ๋ก ). ์์ผ๋ฉด null๋ก ์ ์ฅ โ ์ด ๊ฒฝ์ฐ LLM์ด ICP ์ปจํ
์คํธ ๊ธฐ๋ฐ์ผ๋ก ์ถ๋ก ํ์ง ์์ผ๋ฉฐ, ์๋์ผ๋ก ์ฑ์์ผ ํฉ๋๋ค. role์ PERSONA_SPECS ์์ฑ ๊ท์น์ "LLM ์ถ๋ก ๊ธ์ง" ์์น์ ์์ธ๊ฐ ์๋, ์
๋ ฅ ๋ฐ์ดํฐ ๋ถ์ฌ ์ ๋ช
์์ null ์ฒ๋ฆฌ๋ก ๋์ํฉ๋๋ค.
Steps
์คํ์ python3 hplan/scripts/interview_synthesis.py <subcommand> ํํ๋ก ํธ์ถํฉ๋๋ค.
python3 hplan/scripts/interview_synthesis.py import <ai_export.json> โ quotes๋ฅผ harness/evidence/snapshots.jsonl ์ ingest (status: awaiting_human_tag).
python3 hplan/scripts/interview_synthesis.py list --untagged โ ๋ฏธํ๊น
quote ํ์ธ.
- quote๋ง๋ค
python3 hplan/scripts/interview_synthesis.py tag <quote_id> --strength strong --axes push,anxiety โ ์ธ๊ฐ ์
๋ ฅ.
python3 hplan/scripts/interview_synthesis.py audit โ 5/3 ๊ท์น ํต๊ณผ ์ฌ๋ถ + ๋ค์ ์ก์
๊ฐ์ด๋.
audit ๊ฒฐ๊ณผ๊ฐ PROCEED_TO_PRODUCT_GATE์ด๋ฉด PERSONA_SPECS.json ์ ์ฅ โ ํ๊น
๋ ์ธํฐ๋ทฐ์ด๋ฅผ QA ๋ผ์ด๋์ฉ ํ๋ฅด์๋๋ก ๊ตฌ์กฐํํด harness/PERSONA_SPECS.json์ ๊ธฐ๋ก.
PERSONA_SPECS.json ์์ฑ ๊ท์น
- ๋์:
strength: strong ๋๋ medium quote๊ฐ 2๊ฐ ์ด์์ธ ์ธํฐ๋ทฐ์ด๋ง ํฌํจ (noise ์ ๊ฑฐ)
- ๊ฒฐ์ ๋ก : idยทnameยทanxiety_tagsยทtriggerยทexperience_level์ ํ๊น
๋ฐ์ดํฐ์์ ์ง์ ์ถ์ถ (LLM ์ถ๋ก ๊ธ์ง)
- null ์ฒ๋ฆฌ:
role๊ณผ company_size๋ AI export JSON์ ํด๋น ํ๋๊ฐ ์์ผ๋ฉด ๊ธฐ์
, ์์ผ๋ฉด null ์ ์ฅ โ LLM ์ถ๋ก ์ผ๋ก ์ฑ์ฐ์ง ์์.
- experience_level:
axes์ habit strong์ด ์์ผ๋ฉด "์๋ จ", push strong๋ง ์์ผ๋ฉด "์
๋ฌธ", ํผ์ฌ ์ "์ค๊ธ", strong ์ ํธ ์์ผ๋ฉด "์
๋ฌธ" (default) โ ๊ฒฐ์ ๋ก ๋งคํ, 4 ์ผ์ด์ค ๋ชจ๋ ์ฝ๋์์ ์ฒ๋ฆฌ
[
{
"id": "P01",
"name": "์ธํฐ๋ทฐ์ด ์ด๋ฆ ๋๋ ์ต๋ช
ID",
"role": "AI export JSON passthrough โ ์์ผ๋ฉด null (์๋ ์
๋ ฅ)",
"anxiety_tags": ["anxiety"],
"trigger": "๊ฐ์ฅ ๊ฐํ strong push quote ์ 80์ (์์ผ๋ฉด ๋น ๋ฌธ์์ด)",
"experience_level": "์
๋ฌธ | ์ค๊ธ | ์๋ จ",
"company_size": "AI export JSON passthrough โ ์์ผ๋ฉด null (์๋ ์
๋ ฅ)"
}
]
PROCEED_TO_PRODUCT_GATE๊ฐ ์๋ ๊ฒฝ์ฐ PERSONA_SPECS.json ์์ฑํ์ง ์์ โ ๋ฏธ์ถฉ์กฑ evidence๋ก QA ์ง์
๋ฐฉ์ง.
Outputs
harness/evidence/snapshots.jsonl โ append-only quote ์ ์ฅ์
- audit returns:
interviews, tagged_quotes, untagged_quotes, by_strength, persons_with_strong_push, verdict, persona_specs, guidance
harness/PERSONA_SPECS.json โ PROCEED_TO_PRODUCT_GATE ์์๋ง ์์ฑ. QA ๋ผ์ด๋(qa-checklist --mode adversarial)์ ํ๋ฅด์๋ ์์ด์ ํธ ์ค์ ์์ค.
Verification
Why this design
๋ค๋ฅธ ์ธํฐ๋ทฐ ๋๊ตฌ๋ค์ "AI summary"๋ฅผ evidence์ฒ๋ผ ๋ค๋ฃฌ๋ค โ ์ํ. ํ LLM์ด 5๊ฐ ์ธํฐ๋ทฐ๋ฅผ ์์ฝํ๋ฉด ์๊ธฐ bias๊ฐ ๋ค์ด๊ฐ. hplan์ AI = quote ์ถ์ถ๊ธฐ, human = strength ํ๋จ์ผ๋ก ๋ช
ํํ ๋ถ๋ฆฌ.