아이디어 사이클 회고 #4 — Picker가 가장 중요하다는 걸 30편쯤 만들고 알았다
결론부터
처음엔 Implementer(Stage 4)가 핵심이라고 생각했다. 틀렸다. 30편쯤 쌓이고 보니 사이클 품질의 거의 전부는 Stage 3 — Picker가 결정한다. 무엇을 만드냐가 어떻게 만드냐를 거의 항상 이긴다. Implementer는 5번째 자리수, Picker는 첫째 자리수다.
지금 Picker는 5축 점수(engagement / buildable / originality / tech_leverage / category_novelty)로 5개 후보 아이디어에 점수를 매기고, 거기에 Stage 0에서 미리 빌드해둔 recent_critiques 메모리를 주입해서 "지난주 Reviewer가 지적한 약점을 이번 픽이 안고 가지 않게" 가중치를 준다.
5축이 왜 5개인가
각 축은 한 번씩 데인 자국이다.
| 축 | 잡아내는 실패 모드 |
|---|---|
| engagement | 1-2분 안에 이해되지만 30분을 못 버틴다. 한 화면 토이, 클릭 두 번이면 끝나는 데모 |
| buildable | HTML+CSS+JS 800줄 안에 안 들어온다. Stage 4가 시간 안에 못 끝낸다 |
| originality | todo·계산기·날씨 위젯 클리셰. 새 기술을 가져다 클리셰에 입혀봐야 의미 없다 |
| tech_leverage | Stage 1이 가져온 신기술을 "장식"으로만 쓴다. View Transitions를 박는 흉내만 내고 실제로는 그냥 라우터인 케이스 |
| category_novelty | 같은 productivity 버킷(memo-sketch / learn-drill / explain-interactive / focus-time / convert-inspect / capture-organize / write-edit)이 5일 연속으로 나온다 |
5개 점수의 단순 합이 가장 높은 아이디어가 픽되고, 동점이면 originality 우선이다. Stage 3의 출력은 fenced JSON으로 강제돼서, 5개 후보 모두의 점수표가 그대로 사이클 README에 박혀 들어간다 — 나중에 "왜 이 아이디어가 뽑혔지?"를 audit할 수 있다.
{
"picked": "Pomodoro Garden",
"slug": "pomodoro-garden",
"scores": [
{ "title": "Pomodoro Garden", "engagement": 5, "buildable": 4,
"originality": 4, "tech_leverage": 5, "category_novelty": 5, "total": 23 },
{ "title": "Regex Playground", "engagement": 3, "buildable": 5,
"originality": 2, "tech_leverage": 3, "category_novelty": 2, "total": 15 }
],
"rationale": "focus-time 버킷이 최근 5편에 없었고 View Transitions가 레벨 전환에 직접 쓰인다."
}참고
category_novelty는 hard cap이다. 후보 5개 전부가 이 축에서 1점이면 Stage 2로 돌려보내서 다른 버킷의 아이디어를 새로 받는다. 이게 없으면 LLM은 "어제 잘됐던 패턴"을 매일 반복한다.
Stage 0 — recent_critiques 메모리
5축만으로는 부족했다. 지난 사이클에서 Reviewer가 "모바일에서 진행 단계가 너무 얕다"고 지적했는데, 다음날 Picker는 그걸 모르고 비슷한 깊이의 아이디어를 또 픽하는 일이 잦았다. 그래서 Stage 0(stage marker는 안 찍는 준비 단계)을 따로 만들었다.
절차는 이렇다 — data/cycles.json에서 최근 14편을 꺼내고, 각 항목의 meta.reviewerImprovement(Stage 6이 직전 사이클에서 남긴 🛠 한 줄)를 모아서 oldest-first로 한 줄씩 포맷한다. 그 블록을 Stage 3에만 주입한다 — Picker가 점수표 위에 verbatim으로 출력하고, 새 후보를 평가할 때 가중치로 쓴다.
- 2026-04-25 view-transition-deck: 첫 카드만 화려하고 2~3 카드부터 단조롭다
- 2026-04-26 spaced-recall: 모바일에서 키보드 올라오면 입력창이 가린다
- 2026-04-27 anchor-tooltips: hover 의존도가 높아 모바일 경험이 비어있다Picker는 이걸 보고 "이번엔 모바일 입력 패스가 깔끔한 아이디어"·"카드 2장 너머의 다양성이 있는 아이디어"에 가중치를 더 준다. 강제 룰이 아니라 가이드 — must-cite는 없다. forward-only로만 쌓아서, meta 필드가 없는 옛 사이클은 silently skip한다(backfill 없음).
이 메모리는
들어간다. Implementer(Stage 4)에게 같은 비판 리스트를 주면 이전 사이클을 흉내내거나 과보정한다. 비판은 픽 단계에서만 쓰일 때 가장 effective했다 — 무엇을 만들지 결정하는 곳에서.
결과적으로 Picker는 두 종류의 입력을 받는다 — Stage 2가 만든 5개 후보(현재 옵션)와 Stage 0이 만든 비판 메모리(과거의 약점). 그 둘 위에 5축 점수를 얹으면, 매일 "오늘 가장 약점을 덜 안고 갈 수 있는 픽"이 한 줄 rationale과 함께 떨어진다.
다음 편 예고
마지막 편 — 지금까지의 가드레일·QA·Picker 메모리를 다 알고 다시 처음부터 만든다면 어디를 다르게 할지에 대한 회고다.