Imported from Me1e/ralphthon (
.agent/skills/tacigent-ralph-loop/SKILL.md). Install upstream withnpx skills add Me1e/ralphthon --skill tacigent-ralph-loop. Copyright stays with the author.
Tacigent Ralph Loop
이 스킬이 invoke되면, 당신은 Tacigent의 Ralph loop를 시작한다. Ralph loop는 아래 7개 stage를 끊이지 않고 순서대로 실행한다:
intake → problem → solution → design → build → marketing → pitch
중간에 멈추는 것은 허용되지 않는다. 사용자에게 되묻는 것은 intake 전에만 허용된다. 각 stage가 끝나면 반드시 다음 stage로 진행한다.
유일한 정지 조건:
clean_exit— pitch가 완료되어 모든 산출물이 존재hard_block— external credential 부재, v1 spec 충돌
위 두 경우가 아니면 절대 멈추지 않는다.
당신의 역할
당신은 Tacigent의 오케스트레이터다. 사용자가 제품 아이디어(짧은 한 줄이든, 상세한 brief이든)를 주면:
- RunSpec을 구성하고
- 7개 stage를 순서대로 실행하며
- 각 stage의 산출물을
.tacigent/디렉토리에 축적하고 - 최종적으로 working product + aligned artifacts를 생성한다
실행 흐름
digraph ralph_loop {
"사용자 요청 수신" [shape=doublecircle];
"RunSpec 구성" [shape=box];
"Preflight Review" [shape=box];
"Stage 1: Intake" [shape=box];
"Stage 2: Problem" [shape=box];
"Stage 3: Solution" [shape=box];
"Stage 4: Design" [shape=box];
"Stage 5: Build" [shape=box];
"Stage 6: Marketing" [shape=box];
"Stage 7: Pitch" [shape=box];
"Clean Exit" [shape=doublecircle];
"사용자 요청 수신" -> "RunSpec 구성";
"RunSpec 구성" -> "Preflight Review";
"Preflight Review" -> "Stage 1: Intake";
"Stage 1: Intake" -> "Stage 2: Problem";
"Stage 2: Problem" -> "Stage 3: Solution";
"Stage 3: Solution" -> "Stage 4: Design";
"Stage 4: Design" -> "Stage 5: Build";
"Stage 5: Build" -> "Stage 6: Marketing";
"Stage 6: Marketing" -> "Stage 7: Pitch";
"Stage 7: Pitch" -> "Clean Exit";
}
Phase 0: RunSpec 구성
먼저 .tacigent/run-spec.json이 이미 존재하는지 확인한다.
- 존재하면: RunSpec 생성을 건너뛰고,
artifacts/디렉토리를 확인하여 이어갈 stage를 결정한다. AGENTS.md의 Resume 규칙과 Stage 완료 판단 기준을 따른다. - 존재하지 않으면: 아래 절차대로 새로 생성한다.
사용자의 원본 요청을 아래 구조로 정리한다:
0.1 사용자 입력 수집
사용자가 이미 충분한 정보를 제공했다면 그 입력만으로 바로 진행한다. 정보가 부족해도 질문은 최소한으로 한다 (Tacigent는 모호한 입력도 처리할 수 있다).
수집할 입력 (대부분 optional):
intake— 무엇을 만들고 싶은가 (필수: 최소 한 줄)problem— 어떤 문제를 풀고 싶은가 (optional)solution— 이미 생각한 솔루션이 있는가 (optional)design— 원하는 디자인 방향이 있는가 (optional)stack— 특정 기술 스택 선호가 있는가 (optional, v1은 고정 baseline)marketing— 마케팅 아이디어가 있는가 (optional)pitch— 피치 대상이나 방향이 있는가 (optional)
0.2 RunSpec 파일 생성
.tacigent/ 디렉토리를 생성하고 RunSpec을 기록한다:
.tacigent/
run-spec.json
artifacts/
workspace/
app/
run-spec.json 구조:
{
"runId": "<timestamp-based-id>",
"productName": "<사용자 요청에서 추출한 working title>",
"executionMode": "tight",
"inputs": {
"intake": "<사용자의 핵심 요청>",
"problem": null,
"solution": null,
"design": null,
"stack": null,
"marketing": null,
"pitch": null
},
"normalization": {},
"createdAt": "<ISO timestamp>"
}
0.3 Execution Mode
executionMode는 전체 파이프라인의 볼륨을 결정한다.
| Mode | Branch | Critique | Meta-Research | Research | 목표 시간 | 용도 |
|---|---|---|---|---|---|---|
tight |
7 | 5회 | 필수 | full | ~7시간 | 기본값. 시연/발표용 |
aggressive |
3 | 2회 | 선택 | focused | ~3시간 | 빠른 검증용 |
terminal |
1 | 1회 | skip | skip | ~1.5시간 | 최소 실행 |
기본값은 tight다. 사용자가 명시적으로 다른 mode를 지정하지 않으면 tight로 실행한다.
tight mode 규칙:
- swarm branch: 7개 관점 (다양한 시각 확보)
- critique: 5회 (제1원칙 비평 루프를 충분히 반복)
- meta-research: 필수 (리서치 방법 자체를 먼저 리서치)
- research: full (8개 query family 전부, 다양한 플랫폼 횡단)
- build: solution의 fullFeatureSet 전체 구현 (1-screen 금지, 최소 3개 route)
- output review: 5회 (제1원칙 산출물 리뷰)
0.4 Time Budget
| Stage | 목표 | 상한 | 비고 |
|---|---|---|---|
| intake | ~10분 | 15분 | lightweight, 빠르게 |
| problem | ~60분 | 80분 | meta-research + full research + 7-branch + 5 critique + 5 review |
| solution | ~50분 | 70분 | meta-research + 7-branch + 5 critique + 5 review |
| design | ~60분 | 80분 | meta-research + 7-branch + 5 critique + contract + 5 review |
| build | ~150분 | 180분 | 7-branch + 5 critique + scaffold + implement + verify + 5 review |
| marketing | ~50분 | 70분 | meta-research + 7-branch + 5 critique + 5 review |
| pitch | ~50분 | 70분 | meta-research + 7-branch + 5 critique + HTML + 5 review |
| 합계 | ~430분 (≈7h) | ~565분 (≈9.5h) |
시간 초과 방지:
- 각 stage에서 상한에 근접하면 scope를 줄이되 산출물 구조는 유지한다
- build에서 시간이 부족하면: optional polish 제거 → animation 제거 순서 (페이지 수 축소 금지)
- 절대로 stage를 건너뛰지 않는다
너무 빠른 완료 방지:
- 각 stage에서 method-plan artifact가 비어 있으면 진행하지 않는다
- meta-research 단계를 생략하지 않는다
- critique round를 생략하지 않는다 (tight에서 5회 mandatory)
- output review round를 생략하지 않는다 (tight에서 5회 mandatory)
- build에서 verification baseline을 생략하지 않는다
- build에서 페이지 수를 축소하지 않는다 (solution의 fullFeatureSet 전체 구현 필수)
0.5 Preflight Review
실행 전 간단한 체크:
- v1 범위 확인 — 웹 제품인가? (모바일 네이티브, 운영 자동화 등은 정규화)
- 입력 충분성 — 최소 intake 입력이 있는가?
- 실행 계획 요약 — 사용자에게 간단히 알린다:
📋 Tacigent Run: [productName]
━━━━━━━━━━━━━━━━━━━━━━━━━━
Mode: [executionMode] (~[목표시간])
입력 요약:
- intake: [요약]
- problem: [있으면 요약 / 없으면 "에이전트가 탐색"]
- solution: [있으면 요약 / 없으면 "에이전트가 선택"]
...
실행 계획:
intake → problem → solution → design → build → marketing → pitch
⚡ Ralph loop를 시작합니다. 중간에 멈추지 않습니다.
Phase 1-7: Stage Execution
tacigent-stage-intake스킬을 읽고 실행 → 완료 시 자동으로:tacigent-stage-problem스킬을 읽고 실행 → 완료 시 자동으로:tacigent-stage-solution스킬을 읽고 실행 → 완료 시 자동으로:tacigent-stage-design스킬을 읽고 실행 → 완료 시 자동으로:tacigent-stage-build스킬을 읽고 실행 → 완료 시 자동으로:tacigent-stage-marketing스킬을 읽고 실행 → 완료 시 자동으로:tacigent-stage-pitch스킬을 읽고 실행 → 완료 시 clean exit
이것이 가장 흔한 실패 패턴이다: 에이전트가 "효율"을 위해 intake, problem, solution, design 산출물을 한 번에 몰아서 파일로 쓰는 것. 이것은 금지다.
반드시 이 순서를 지켜야 한다:
- 현재 stage의 스킬을 읽는다
- 현재 stage의 method framing을 수행한다 (meta-research 포함)
- 현재 stage의 swarm exploration을 수행한다 (7 branch, 순차 role-play)
- 현재 stage의 critique round를 수행한다 (5회, 제1원칙 적용)
- 현재 stage의 산출물을 작성한다
- 그 다음에야 다음 stage 스킬을 읽는다
한 stage의 산출물이 완성되기 전에 다음 stage 스킬을 미리 읽지 않는다. 한 stage의 swarm/critique를 거치지 않고 산출물만 쓰면 그 stage는 완료가 아니다.
하나의 <stage>.md 파일에 모든 과정을 몰아 쓰면 안 된다. 다음 순서대로 파일을 작성한다:
artifacts/<stage>-method-plan.json작성 — method framing + meta-research 결과artifacts/<stage>-exploration.md작성 — 7개 branch 심층 탐색 + 합성 결과artifacts/<stage>-critique-1.md작성 — 5명 critic의 상세 비평 + 1차 수정안artifacts/<stage>-critique-2.md작성 — 5명 critic의 상세 재비평 + 2차 수정안artifacts/<stage>-critique-3.md작성 — 5명 critic의 3차 비평 + 3차 수정안artifacts/<stage>-critique-4.md작성 — 5명 critic의 4차 비평 + 4차 수정안artifacts/<stage>-critique-5.md작성 — 5명 critic의 최종 비평 + 5차 수정안- (problem, solution만) 추가로
artifacts/<stage>-compare.md작성 — 후보 비교 + scoring + selection justification
- (problem, solution만) 추가로
artifacts/<stage>.md작성 — 산출물 초안- (design만) 추가로
artifacts/design-contract.json작성 — machine-readable design contract
- (design만) 추가로
artifacts/<stage>-review-1.md작성 — 1차 제1원칙 리뷰 + 산출물 수정artifacts/<stage>-review-2.md작성 — 2차 리뷰 + 산출물 수정artifacts/<stage>-review-3.md작성 — 3차 리뷰 + 산출물 수정artifacts/<stage>-review-4.md작성 — 4차 리뷰 + 산출물 수정artifacts/<stage>-review-5.md작성 — 최종 리뷰 + 산출물 확정
위 파일들(intake 등 lightweight 예외 제외)이 모두 명시적으로 독립 생성되지 않으면 미완성으로 간주한다.
이것은 swarm/critique와 별개다. swarm/critique는 "무엇을 만들 것인가"를 탐색하고 비평하는 과정이고, 산출물 리뷰는 "만들어진 결과물 자체"를 제1원칙으로 개선하는 과정이다.
리뷰 사이클 공통 프로토콜
각 round에서:
- 산출물을 처음 보는 것처럼 다시 읽는다
- 제1원칙을 적용한다:
- "이것이 정말 필요한가?" — 불필요한 부분 삭제
- "더 단순하게 할 수 없는가?" — 복잡한 부분 압축
- "convention이 아니라 fundamentals로 설명 가능한가?" — 관습적 구조 의심
- "add보다 delete/compress/simplify가 먼저인가?" — 줄일 수 있는 곳 먼저 줄임
- 구체적 문제를 찾아 기록한다 (문제가 없으면 "문제 없음"과 이유를 기록)
- 산출물을 실제로 수정한다
- 수정 사항과 이유를 review-N.md에 기록한다
리뷰 파일 형식
# [Stage] Review Round N
## 발견한 문제
- [문제 1]: [제1원칙 근거]
- [문제 2]: [제1원칙 근거]
## 수정 사항
- [수정 1]: [변경 전] → [변경 후] — [이유]
- [수정 2]: [변경 전] → [변경 후] — [이유]
## 이번 round에서 삭제한 것
- [삭제 항목]: [불필요한 이유]
## 남은 문제 (다음 round로)
- [있으면 기록]
5회 리뷰를 모두 완료하지 않으면 해당 stage는 미완성이다.
Stage-specific 리뷰 기준 적용: 각 stage 스킬에 정의된 리뷰 기준은 매 round에서 모두 확인한다. 기준 N번을 round N에서만 확인하는 1:1 매핑이 아니다.
메타리서치란: "이 주제를 가장 잘 리서치하려면 어디서 무엇을 찾아야 하는가"를 먼저 리서치하는 것이다.
메타리서치 절차:
- 이 stage에서 답해야 할 핵심 질문들을 나열한다
- 각 질문에 가장 적합한 검색 플랫폼과 키워드 전략을 정한다
- 어떤 종류의 evidence가 있으면 결정을 내릴 수 있는지 미리 정의한다
- 이 메타리서치 결과를
<stage>-method-plan.json의metaResearch필드에 기록한다
메타리서치 없이 바로 web search부터 시작하는 것은 금지한다.
공통 프로토콜
각 stage 스킬은 아래 공통 프로토콜을 참조한다. stage 스킬이 지시할 때 해당 프로토콜 스킬을 읽는다:
tacigent-method-first— 산출물 전에 방법을 먼저 정하는 절차tacigent-swarm-critique— 홀수 탐색 + 비평/수정 looptacigent-research— live internet research 프로토콜tacigent-evidence-ladder— external claim의 source class prior와 claim status 규칙tacigent-readiness-gates— ready/needs_validation/not_ready 3단계 판정과 소비/전이 규칙
핵심 원칙
Tacit Interpretation
사용자가 적은 정보만 주더라도, 숨은 의도를 사업 가능한 방향으로 해석한다. 정답을 맞히려 하지 않고, 여러 해석 후보를 펼친 뒤 가장 유망한 방향으로 수렴한다.
Preserve And Extend
사용자 입력이 있으면:
- preserve — 원형 보존
- extend — 개선/보강
- de-risk — 위험 낮추기
- deviate only if necessary — 불가피할 때만 변경 (이유 기록)
Company-Style Convergence
문제, 솔루션, 디자인, 구현, 마케팅, 피치가 각각 따로 놀면 안 된다. 하나의 회사적 판단 흐름을 여러 산출물에 반영한다.
Greenfield First
v1은 greenfield web product만 다룬다. 기존 서비스 수정은 v2+ 범위.
Red Flags — 이런 생각이 들면 STOP
| 생각 | 현실 |
|---|---|
| "intake~design까지 한 번에 쓰면 효율적이겠다" | 가장 흔한 실패. 각 stage는 독립적으로 swarm/critique를 거쳐야 한다. 배칭 금지. |
| "이 stage는 건너뛰어도 되겠다" | 모든 stage는 필수. 건너뛰기 불가. |
| "사용자에게 확인받아야겠다" | intake 전에만 질문 가능. 이후는 assume/defer. |
| "여기서 일단 멈추겠다" | 멈추기 금지. pitch까지 계속 진행. |
| "이건 너무 복잡하다" | method-first로 분해한 뒤 실행. 멈추지 않는다. |
| "research가 필요한데 시간이 오래 걸린다" | timeboxed로 제한하고 진행. |
| "build에서 에러가 나서 못 하겠다" | repair 시도 후 unresolvedIssues로 기록하고 진행. |
| "marketing은 간단히 하겠다" | marketing도 full stage로 실행. launch cells 필수. |
| "pitch는 summary만 쓰면 되겠다" | pitch는 decision-support artifact. pre-read + HTML 필수. |
디렉토리 구조
최종 run이 완료되면 아래 구조가 생성된다. 각 stage의 artifact 순서는 위 ARTIFACT-SEPARATION이 canonical 기준이다.
.tacigent/
run-spec.json
artifacts/
# Intake (lightweight — exploration/critique/review 없음)
intake-method-plan.json
interpretation-ledger.md
intake.md
# Problem — 13-step + compare
problem-method-plan.json
problem-exploration.md
problem-critique-1.md … problem-critique-5.md
problem-compare.md
problem.md
problem-review-1.md … problem-review-5.md
# Solution — 13-step + compare
solution-method-plan.json
solution-exploration.md
solution-critique-1.md … solution-critique-5.md
solution-compare.md
solution.md
solution-review-1.md … solution-review-5.md
# Design — 13-step + design-contract.json
design-method-plan.json
design-exploration.md
design-critique-1.md … design-critique-5.md
design-contract.json
design.md
design-review-1.md … design-review-5.md
# Build — 13-step + verification-report.md
build-method-plan.json
build-exploration.md
build-critique-1.md … build-critique-5.md
build.md
verification-report.md
build-review-1.md … build-review-5.md
# Marketing — 13-step + launch-cells.json
marketing-method-plan.json
marketing-exploration.md
marketing-critique-1.md … marketing-critique-5.md
launch-cells.json
marketing.md
marketing-review-1.md … marketing-review-5.md
# Pitch — 13-step, 산출물이 pitch/ 디렉토리
pitch-method-plan.json
pitch-exploration.md
pitch-critique-1.md … pitch-critique-5.md
pitch/
index.html
pre-read.md
pitch-review-1.md … pitch-review-5.md
workspace/
app/
… (실제 web application 코드)
Clean Exit
pitch stage가 완료되면 Ralph loop는 정상 종료한다. pitch 스킬이 clean exit summary를 작성한다.
Hard Block
아래 경우에만 loop를 중단할 수 있다:
- External credential 부재 — LLM API, Map API 등 외부 서비스 키가 필요하지만 없는 경우
- v1 spec 충돌 — 사용자 요청이 v1 범위와 직접 충돌하고, 정규화로도 해결 불가능한 경우
Hard block 시에도 그 시점까지의 모든 산출물은 보존한다.