
현존하는 가장 뛰어난 AI 엔지니어 두 명이 지난달 같은 이야기를 했습니다.
OpenClaw의 창시자이자 현재 OpenAI에서 근무하는 Peter Steinberger:
"더 이상 코딩 에이전트에게 프롬프트를 입력하면 안 됩니다. 에이전트에게 프롬프트를 입력하는 루프를 설계해야 합니다."
Anthropic에서 Claude Code를 이끄는 Boris Cherny:
"저는 더 이상 Claude에게 프롬프트를 입력하지 않습니다. Claude에게 프롬프트를 입력하고 무엇을 할지 결정하는 루프를 실행하고 있어요. 제 일은 루프를 작성하는 것입니다."
대부분의 사람들은 이 말을 읽고 생각했습니다: 도대체 그게 무슨 뜻일까?
그리고 더 중요한 건: 어떻게 만들지?
이 글에서 정확히 알려드립니다.
코드 없는 이론은 없습니다. 맥락 없는 코드도 없습니다. 실제 단계. 실제 명령어. 복사해서 실행하세요.

Slate 가 GPT-5.6, Claude, 그리고 전문화된 하위 에이전트를 조율하여 실제 마이그레이션 작업을 수행하는 모습입니다. 모델은 더 똑똑해졌습니다. 더 큰 변화는 Slate 같은 도구가 인간의 프롬프트를 기다리는 대신 모델을 계속 바쁘게 유지할 수 있게 되었다는 점입니다.
대부분의 사람들이 AI를 사용하는 방식은 이미 구식입니다
프롬프트 작성. 기다리기. 출력 읽기. 수동으로 수정. 또 다른 프롬프트 작성.
당신이 루프입니다.
모든 단계가 당신을 거쳐갑니다. AI는 기다립니다. 당신이 결정합니다. AI는 다시 기다립니다.
당신이 멈추는 순간, 모든 것이 멈춥니다.
2026년에 가장 빠르게 움직이는 빌더들은 더 나은 프롬프트를 작성하지 않습니다.
그들을 대신해 프롬프트를 작성하는 시스템을 구축하고 있습니다.
레버리지 포인트가 이동했습니다.
프롬프트 입력 → 루프 설계로.

GPT-5.6에서 무엇이 바뀌었나요?
GPT-5.6은 루프의 필요성을 바꾸지 않습니다.
루프의 가치를 높여줍니다.
모델이 좋아질수록, 프롬프트 사이에 모델을 유휴 상태로 두는 비용이 더 커집니다.
터미널 워크플로에서 GPT-5.6은 다음과 같은 부분에서 눈에 띄게 향상되었습니다:
→ 대규모 코드베이스 이해
→ 구현 일관성 유지
→ 다단계 계획 따르기
→ 실패한 시도에서 복구
→ 엄격한 검증자 역할 수행
결과는 "더 나은 프롬프팅"이 아닙니다.
작업당 인간의 개입 횟수가 줄어드는 것입니다.
루프가 실제로 무엇인가
간단한 정의:
프롬프트는 한 번 응답하고 멈춥니다.
루프는 작업이 실제로 완료될 때까지 계속 작동합니다.
답변을 생성할 때까지가 아닙니다.
검증된 결과에 도달할 때까지입니다.
모든 진지한 AI 에이전트는 동일한 기본 사이클을 실행합니다:
→ 발견 — 무엇을 해야 하나?
→ 실행 — 작업 수행
→ 검증 — 실제로 작동했나?
→ 반복 — 완료되지 않음? 수정하고 반복
→ 중지 — 조건 충족 또는 하드 리미트 도달
Claude Code. Cursor. Codex.
내부적으로 모두 이 루프를 실행합니다.
프롬프트와 루프의 차이는 모델이 아닙니다.
작업을 확인하고 통과할 때까지 계속 진행하는 무언가가 있느냐의 차이입니다.

4가지 조건 테스트 — 무엇이든 구축하기 전에 실행하세요
대부분의 루프는 여기서 실패합니다.
루프는 4가지 조건이 모두 참일 때만 설정 비용을 충당합니다.
하나라도 놓치면 루프는 반환하는 것보다 더 많은 비용이 듭니다.
1. 작업이 반복됩니다. 적어도 주 1회. 일회성 작업은 여전히 하나의 좋은 프롬프트로 처리하는 것이 더 낫습니다.
2. 검증이 자동화되어 있습니다. 당신이 없이도 작업을 실패하게 만드는 무언가가 있어야 합니다. 테스트. 린터. 빌드. 타입 검사. 게이트가 없으면 = 에이전트가 자기 숙제를 스스로 채점하는 것입니다.
3. 토큰 예산이 낭비를 감당할 수 있습니다. 루프는 모든 반복에서 전체 컨텍스트를 다시 읽습니다. 재시도하고, 탐색하고, 실행이 결과물을 내놓든 말든 토큰을 소모합니다. 이것은 아무도 언급하지 않는 비용입니다.
4. "완료"가 객관적입니다. 통과하거나 실패하는 테스트. 컴파일되거나 되지 않는 빌드. "보기에 좋을 때"가 아닙니다. 완료에 인간의 의견이 필요하다면 수동으로 유지하세요.
4개 모두 통과 → 루프 구축.
하나라도 실패 → 대신 프롬프트 사용.
솔직히 말하면: 대부분의 개발자에게 아직 무거운 루프는 필요하지 않습니다. 누구나 사용할 수 있는 것은 간단한 루프입니다. 곧 하나를 만들어 보겠습니다.
Slate 설치
Slate 는 정확히 이것을 위해 만들어진 AI 코딩 에이전트입니다 — 터미널에서 길고, 병렬적이며, 다단계 작업을 실행합니다.
RandomLabs에서 제작했습니다. 스웜 오케스트레이션을 위해 특별히 만들어진 최초의 에이전트입니다.
Claude Code나 Cursor와 다른 점:
→ 각 단계에 적합한 모델을 자동으로 선택합니다. Claude로 계획하고, 다른 모델로 검색하고, Codex로 실행 — Slate가 결정합니다.
→ 코드베이스 전반에 걸쳐 병렬 하위 에이전트를 동시에 실행합니다.
→ 긴 다중 세션 동안 자체 컨텍스트를 관리합니다.
→ 당신을 위해 뿐만 아니라 당신과 함께 작동합니다.
한 줄로 설치:
1npm i -g @randomlabs/slate
프로젝트로 이동하여 시작:
1cd /path/to/your/project2slate
그러면 Slate TUI가 열립니다 — 작업을 지시하고 작업을 지켜볼 수 있는 터미널 인터페이스입니다.

1단계 — 작업 공간 설정
Slate가 프로젝트에서 루프를 실행하려면 먼저 코드베이스를 이해해야 합니다.
프로젝트 루트에 AGENTS.md 파일을 만드세요. 이것은 Slate가 매 세션 시작 시 읽는 컨텍스트입니다.
1# AGENTS.md23## 이 코드베이스가 하는 일4[프로젝트에 대한 한 문단 설명]56## 아키텍처7- src/api/ — Express API 라우트8- src/services/ — 비즈니스 로직9- src/db/ — 데이터베이스 모델 (PostgreSQL via Prisma)10- tests/ — Jest 테스트 스위트1112## 주요 명령어13- npm test — 전체 테스트 스위트 실행14- npm run build — TypeScript 컴파일15- npm run lint — ESLint 검사16- npm run typecheck — tsc --noEmit1718## 규칙19- 인간 승인 없이 src/billing/ 또는 src/auth/를 수정하지 마세요20- 작업 완료 표시 전에 항상 테스트를 실행하세요21- src/utils/errors.ts에 있는 기존 오류 처리 패턴을 사용하세요2223## 환경24- .env.slate에 Slate가 필요한 모든 환경 변수가 있습니다
Slate는 시작 시 이 파일을 자동으로 읽습니다 — 매 세션마다 붙여넣을 필요가 없습니다.
Slate 내부에 작업 디렉토리를 추가하세요:
1/workspace add ./src2/workspace add ./tests3/workspace list
또는 @ 멘션을 사용하여 특정 파일을 인라인으로 참조하세요:
1@src/api/routes.ts 를 검토하고 개선 제안을 해주세요

2단계 — Slate 설정
프로젝트 루트에 slate.json을 만들어 Slate의 동작을 제어하세요.
1{2 "$schema": "https://randomlabs.ai/config.json",3 "permission": {4 "*": "allow",5 "bash": "ask"6 },7 "models": {8 "main": { "default": "anthropic/claude-opus-4.6" },9 "subagent": { "default": "anthropic/claude-sonnet-4.6" },10 "search": { "default": "anthropic/claude-haiku-4.5" },11 "reasoning": { "default": "openai/gpt-5.6" }12 }13}
이것이 하는 일:
→ "*": "allow" — Slate가 매번 묻지 않고 파일을 읽고 쓸 수 있습니다
→ "bash": "ask" — Slate가 셸 명령어를 실행하기 전에 묻습니다 (신뢰할 때까지 켜두세요)
→ Models config — 검색에는 저렴하고 빠른 모델, 주요 추론에는 비싼 모델
CI 또는 프롬프트 없이 자동화 실행을 원할 경우:
1slate run "테스트 스위트를 실행하고 실패를 모두 수정하세요" --dangerously-skip-permissions --output-format stream-json
3단계 — 첫 번째 작업 (아직 루프가 아닙니다)
루프를 구축하기 전에, 단일 수동 실행이 안정적인지 확인하세요.
가장 많이 건너뛰는 단계입니다. 그리고 대부분의 루프가 프로덕션에서 실패하는 이유입니다.
Slate에게 실제 작업을 주세요:
1내 전체 코드베이스의 아키텍처를 검토해주세요.2ARCH.md를 생성하세요:3- 현재 구조4- 모듈 간 의존성5- 개선할 점 3가지6먼저 @src/ 를 확인한 다음 @tests/ 를 확인하세요
Slate가 작업하는 것을 지켜보세요. 다음을 수행합니다:
- 파일 검색
- 아키텍처 이해 구축
- ARCH.md 초안 작성
- 요청에 대해 검토한 후 중지
이것은 이미 미니 루프입니다 — 완료 전에 자체 출력을 확인합니다.
더 긴 작업의 경우:
1Slate, 내 코드베이스에서 인증 흐름을 조사하고,2OAuth2 지원 추가를 위한 계획을 세워주세요.3@src/auth/ 와 @src/api/routes.ts 를 확인해야 합니다
Slate가 계획을 반환합니다. 반복합니다:
1아니요, 새 인증 제공자 클래스를 추가하지 마세요.2src/auth/api-key.ts 에 있는 기존 ApiKeyAuth와 동일한 패턴을 따르게 하세요
계획을 승인하세요. Slate가 자율적으로 실행합니다.

4단계 — Skill 생성 (루프를 재사용 가능하게 만들기)
Skill은 매 세션마다 프로젝트를 다시 설명하지 않도록 하는 방법입니다.
한 번 작성하면 Slate가 관련 실행마다 읽습니다.
폴더 구조를 만드세요:
1mkdir -p .slate/skills/ci-triage2touch .slate/skills/ci-triage/SKILL.md
Skill을 작성하세요:
1---2name: "ci-triage"3description: "CI 실패를 근본 원인별로 분류하고 쉬운 것에 대한 수정 초안을 작성합니다."4---56# CI 트라이어지 Skill78## 내가 하는 일9CI 실행이 실패하면:101. 테스트 출력 읽기112. 실패 분류: 환경 문제 / 불안정 테스트 / 실제 버그 / 의존성 업데이트 / 인프라123. 버그 및 의존성 문제에 대한 수정 초안 작성134. 환경 및 인프라 문제는 인간에게 에스컬레이션1415## 분류 규칙16- env: 누락된 시크릿, 잘못된 환경 변수 → 인간에게 플래그17- flake: 코드 변경 없이 재시도 시 통과 → 한 번 재시도 후 이슈 등록18- bug: 최근 커밋과 관련된 결정적 실패 → 수정 초안 작성19- dependency: 버전 업데이트와 관련된 실패 → 롤백 PR 초안 작성20- infra: 타임아웃, OOM, 러너 문제 → 즉시 에스컬레이션2122## 수정 패턴23- 인증 테스트 실패 → 먼저 src/auth/middleware.ts 확인24- 데이터베이스 테스트 실패 → CI 환경에서 마이그레이션이 실행되었는지 확인25- E2E 실패 → 최신 스냅샷에 대한 UI 선택자 확인2627## 절대 하지 않음28- 실패하는 테스트 비활성화29- 묻지 않고 CI 설정 수정30- src/billing/ 또는 src/payments/ 건드리기3132## 상태33매 실행 후 STATE.md 업데이트:34- 확인한 파일35- 수행한 분류36- 연 PR37- 에스컬레이션한 항목
Slate 내부에서 사용 가능한 Skill을 확인하세요:
1/skills
수동으로 하나 활성화:
1@ci-triage 오늘 실패한 테스트를 트라이어지해주세요
또는 Slate가 현재 작업과 관련 있다고 판단하면 자동으로 Skill을 활성화합니다.
5단계 — 상태 추가 (루프의 메모리)
에이전트는 잊어버립니다.
파일은 그렇지 않습니다.
프로젝트 루트에 STATE.md를 만드세요:
1# 루프 상태 — CI 트라이어지23## 마지막 실행42026-06-28 03:30 UTC — 7개 실패 분류됨, 3개 수정 초안 작성됨, 4개 에스컬레이션됨56## 진행 중7- claude/fix-auth-token-refresh — 테스트 로컬 통과, CI 대기 중8- claude/fix-flaky-payment-webhook — 재시도 패턴 적용됨, 모니터링 중910## 완료됨11- claude/bump-axios-1.7.4 → 병합됨 (CI 통과)12- claude/lint-fix-pass-june-28 → 병합됨1314## 인간에게 에스컬레이션됨15- src/billing/refund.ts — 테스트가 3가지 방식으로 실패, 근본 원인 불명확16- ci/staging-runner — 인프라 타임아웃, 코드 문제 아님1718## 배운 점19- 2026-06-27: PowerShell이 이 Windows 러너에서 TLS 1.2 문제 발생. bash 사용.20- 2026-06-26: tests/e2e/checkout에 Stripe 웹훅 시크릿이 env에 필요함. 없으면 건너뜀.
AGENTS.md에 추가하여 매 세션 시작 시 사용하도록 Slate에 지시하세요:
1## 세션 시작2항상 STATE.md를 먼저 읽으세요. 마지막 실행이 중단된 지점부터 이어받으세요.3매 실행 종료 시 STATE.md에 수행한 내용과 다음에 할 일을 업데이트하세요.
상태가 없으면: 모든 실행이 0부터 시작합니다.
상태가 있으면: 모든 실행이 마지막 실행을 이어받아 누적됩니다.
6단계 — 실제 루프 구축
이제 다음이 준비되었습니다:
→ 작업 공간 설정 (AGENTS.md)
→ 설정 완료 (slate.json)
→ 안정적인 단일 수동 실행 확인됨
→ Skill 작성됨 (ci-triage)
→ 상태 파일 생성됨 (STATE.md)
이제 실제 루프로 감쌀 시간입니다.
옵션 A: 큐 파일 루프 (가장 간단함)
loop.md 생성:
1STATE.md를 읽어 이미 시도된 내용을 파악하세요.23마지막 빌드에서 실패한 모든 테스트에 대해 CI 트라이어지 Skill을 실행하세요.45각 실패에 대해:6- ci-triage Skill 규칙을 사용하여 분류7- 버그 및 의존성 문제에 대한 수정 초안 작성8- 환경 및 인프라 문제 에스컬레이션910수정 사항을 실행하세요. 테스트가 통과하는지 확인하세요.11테스트가 통과하면 → PR을 엽니다.12테스트가 여전히 실패하면 → STATE.md에 기록하고 중지합니다.1314이번 실행에서 완료된 모든 내용으로 STATE.md를 업데이트하세요.1516하드 스톱: 최대 8회 시도. 제한에 도달하면 현재 상태를 보고합니다.
실행:
1slate --queue loop.md
Slate가 큐 파일을 읽고 각 블록을 큐에 넣은 메시지로 실행합니다.
옵션 B: 헤드리스/CI 루프 (자동화)
GitHub Action 또는 cron 작업에서 비대화형으로 실행:
1slate run "$(cat loop.md)" --output-format stream-json --dangerously-skip-permissions
GitHub Actions 워크플로에서:
1name: CI 트라이어지 루프2on:3 workflow_run:4 workflows: ["CI"]5 types: [completed]67jobs:8 triage:9 if: ${{ github.event.workflow_run.conclusion == 'failure' }}10 runs-on: ubuntu-latest11 steps:12 - uses: actions/checkout@v41314 - name: Slate 설치15 run: npm i -g @randomlabs/slate1617 - name: 트라이어지 루프 실행18 env:19 SLATE_API_KEY: ${{ secrets.SLATE_API_KEY }}20 run: |21 slate run "$(cat loop.md)" \22 --output-format stream-json \23 --dangerously-skip-permissions \24 --workspace ./src \25 --workspace ./tests
이제 모든 CI 실패가 자동으로 트라이어지 루프를 트리거합니다.
에스컬레이션될 때까지 인간이 필요하지 않습니다.

7단계 — 하위 에이전트 추가 (메이커-체커 분할)
모든 루프에 대한 가장 중요한 구조적 개선 사항입니다.
동일한 에이전트가 자신의 숙제를 채점하도록 절대 두지 마세요.
수정을 작성한 모델은 너그러운 채점자입니다.
Slate에서는 역할에 따라 다른 모델을 설정할 수 있습니다:
1{2 "models": {3 "main": { "default": "anthropic/claude-opus-4.6" },4 "subagent": { "default": "anthropic/claude-sonnet-4.6" },5 "search": { "default": "anthropic/claude-haiku-4.5" }6 }7}
그런 다음 Slate가 이 분할을 자연스럽게 사용하도록 작업을 작성하세요:
1실패하는 인증 테스트를 수정해주세요.231단계: 검색 에이전트가 src/auth/를 탐색하여 현재 구현을 이해하게 하세요.42단계: 별도의 에이전트가 발견된 내용을 기반으로 수정을 구현하게 하세요.53단계: 세 번째 에이전트가 원래 테스트 요구 사항에 대해 수정을 검증하게 하세요 —6 이 에이전트는 구현을 보지 않아야 합니다.74단계: 검증자가 승인할 때만 PR을 여세요.
Slate가 하위 에이전트를 자동으로 조율합니다.
검색 에이전트는 빠르고 저렴한 모델을 사용합니다. 구현 에이전트는 더 강력한 모델을 사용합니다. 검증자는 메이커의 추론에 접근할 수 없는 엄격한 모델을 사용합니다.
이 분할 덕분에 Slate는 단일 작업에서 5개의 병렬 하위 에이전트를 실행할 수 있습니다 — 각각 전문화되고, 각각 격리됩니다.

8단계 — 상태 루프 패턴 (장기 실행 작업용)
몇 시간 또는 며칠에 걸쳐 실행되는 작업의 경우 작업 프롬프트에서 이 패턴을 사용하세요:
1당신은 다중 세션 루프를 실행하고 있습니다.23목표: 모든 Express 라우트를 새 ApiError 패턴으로 마이그레이션하세요.4STATE.md에서 진행 상황을 추적하세요.56각 세션 시작:71. STATE.md 읽기82. "남은 라우트"에서 첫 번째 미완료 항목 찾기93. 해당 항목만 수행1011각 세션 종료:121. 완료된 항목을 STATE.md의 "완료된 라우트"로 이동132. "차단 항목"에 차단 요인 기록143. "마지막 실행" 타임스탬프 업데이트154. 깔끔하게 중지1617STATE.md 형식:18---19## 완료된 라우트20- [x] /api/users (2026-06-27)21- [x] /api/auth/login (2026-06-28)2223## 남은 라우트24- [ ] /api/payments/checkout25- [ ] /api/payments/refund26- [ ] /api/admin/users2728## 차단 항목29- /api/payments/refund — 인간 검토 필요 (결제 로직 관련)3031## 마지막 실행322026-06-28 14:30 UTC33---3435하드 규칙:36- 인간 승인 없이 src/billing/ 건드리지 않음37- 각 라우트 마이그레이션 후 항상 테스트 실행38- 세션당 하나의 라우트만 완료 후 중지
매일 아침 실행:
1slate --continue "$(cat loop.md)"
--continue는 새로 시작하는 대신 가장 최근 세션을 이어받습니다.
매일 하나의 라우트씩. STATE.md가 모든 것을 추적합니다.
루프는 중단된 지점에서 정확히 재개됩니다.
9단계 — 가장 많이 사용하는 루프에 대한 사용자 지정 명령어
slate.json에 사용자 지정 슬래시 명령어를 추가하여 루프가 항상 한 번의 키 입력으로 실행되도록 하세요:
1{2 "command": {3 "triage": {4 "description": "CI 트라이어지 루프 실행",5 "template": "STATE.md 읽기. 실패한 모든 테스트에 대해 ci-triage Skill 실행. 완료되면 STATE.md 업데이트.",6 "agent": "build"7 },8 "review": {9 "description": "파일의 정확성 검토",10 "template": "@$ARGUMENTS 를 정확성, 엣지 케이스, 주변 코드와의 일관성에 대해 검토.",11 },12 "migrate": {13 "description": "하나의 라우트를 ApiError 패턴으로 마이그레이션",14 "template": "STATE.md 읽기. 다음 미완료 라우트를 ApiError 패턴으로 마이그레이션. 테스트 실행. STATE.md 업데이트."15 }16 }17}
이제 Slate 내부에서:
1/triage2/review src/api/payments.ts3/migrate
각각 미리 작성된 루프 프롬프트를 즉시 실행합니다.
오늘 실행할 수 있는 3가지 완전한 루프
루프 1: CI 실패 트라이어지 (우리가 만든 것)
시기: 모든 CI 실패 시 무엇: 분류 → 쉬운 것 수정 → 어려운 것 에스컬레이션 → PR 열기 상태: STATE.md 게이트: 테스트 통과 설정 시간: 30분
1# 트리거2slate run "$(cat loop.md)" --dangerously-skip-permissions --output-format stream-json34# 또는 GitHub Actions에서 — 위 6단계 참조
루프 2: 아침 브리핑
시기: 평일 오전 7시 (cron 작업) 무엇: 지난 24시간의 커밋, PR, 공개 이슈 스캔 → 5개 요점 브리핑 작성 → Slack에 게시
1# morning brief용 loop.md2cat > morning-brief-loop.md << 'EOF'3지난 24시간 동안의 다음 항목을 읽으세요:4- git log --since="24 hours ago" --oneline5- 초안 또는 검토 중인 공개 PR6- 지난 24시간 동안 열리거나 업데이트된 GitHub 이슈78아침 브리핑을 작성하세요:9- 발생한 가장 중요한 일 3가지10- 오늘 주의가 필요한 일 2가지11- 누군가를 차단할 위험이 있는 일 1가지1213120단어 미만으로 유지하세요. #engineering Slack 채널에 게시하세요.14EOF1516# cron으로 스케줄 실행170 7 * * 1-5 slate run "$(cat morning-brief-loop.md)" --dangerously-skip-permissions
루프 3: 의존성 업데이트 루프
시기: 매주 월요일 무엇: 오래된 패키지 스캔 → 호환성 테스트 → 안전한 업데이트에 대한 PR 열기
1cat > deps-loop.md << 'EOF'2STATE.md 읽기.34실행: npm outdated56각 오래된 패키지에 대해:71. 버전 업데이트가 메이저(호환성 깨짐)인지 마이너/패치(안전)인지 확인82. 마이너/패치: 패키지 업데이트, npm test 실행93. 테스트 통과: PR 열기104. 테스트 실패: STATE.md에 "인간 검토 필요"로 기록115. 메이저 업데이트: 항상 인간에게 에스컬레이션1213하드 규칙:14- 단일 루프에서 5개 이상의 패키지 업데이트 금지15- "피어 의존성" 섹션의 패키지 업데이트 금지16- 각 업데이트 후 관련 테스트뿐만 아니라 전체 테스트 스위트 실행17- 업데이트된 내용과 에스컬레이션된 내용으로 STATE.md 업데이트18EOF1920# 매주 월요일 실행210 9 * * 1 slate run "$(cat deps-loop.md)" --dangerously-skip-permissions

비용이 드는 실패 모드
무엇이든 스케줄하기 전에 이것들을 알아두세요.
Ralph Wiggum 루프
에이전트가 반쯤 완료된 작업을 완료했다고 선언합니다.
일찍 종료합니다. 루프는 계속 비용을 소모합니다. 조용히.
수정: 새 모델이 확인하는 하드 스톱 조건.
1중지 조건: tests/auth/ 의 모든 테스트 통과 AND lint가 0 반환.2에이전트 자체 판단이 아닌 별도의 검사 실행을 사용하여 확인하세요.3하드 리미트: 8회 반복. 제한 도달 시: 상태 보고 후 중지.
목표 이탈
긴 세션에서 초기 제약 조건이 사라집니다.
메시지 3의 "src/billing/ 건드리지 않음"이 메시지 47에서는 사라집니다.
수정: Slate가 매 세션 시작 시 다시 읽는 VISION.md를 추가하세요.
1# VISION.md — 매 세션 시작 시 읽기23## 핵심 목표4모든 Express 라우트를 ApiError 패턴으로 마이그레이션.56## 하드 제약 조건 (절대 위반 금지)7- 인간 승인 없이 src/billing/ 건드리지 않음8- 실패하는 테스트 비활성화 금지9- PR을 열기 전에 항상 전체 테스트 스위트 실행1011## 현재 우선순위12src/api/payments/ 의 라우트 — 특별히 주의하여 처리
자기 선호 편향
메이커가 자신의 숙제를 채점합니다. 항상 자신에게 통과를 줍니다.
수정: 메이커의 추론에 전혀 접근할 수 없는 검증자 하위 에이전트.
Slate에게 명시적으로 지시하세요:
1검증자 에이전트는 구현 에이전트의 작업을 보면 안 됩니다.2오직 다음만 볼 수 있습니다: 원래 테스트 요구 사항과 테스트 출력.3테스트 통과 → 승인. 테스트 실패 → 거부. 그 외 의견 없음.
에이전트 게으름
루프가 부분 완료에서 작업을 "충분히 완료됨"이라고 부릅니다.
특히 모호한 성공 기준에서 그렇습니다.
수정: 객관적인 중지 조건만.
1완료 조건: npm test가 종료 코드 0을 반환 AND npm run lint가 종료 코드 0을 반환.2"테스트가 괜찮아 보일 때"가 아닙니다. "대부분의 테스트가 통과할 때"가 아닙니다.3두 명령어 모두 종료 코드 0. 그것이 유일한 완료 조건입니다.
실제로 중요한 Slate 특화 팁
실제로 Slate를 다른 에이전트와 다르게 만드는 몇 가지 사항입니다.
작업 중 메시지 큐잉
Slate가 긴 작업을 실행 중입니다. 중요한 것이 생각났습니다.
Tab을 눌러 메시지를 큐에 넣으세요 — 현재 작업을 방해하지 않고 완료된 후 실행됩니다.
1[Slate가 마이그레이션 작업 중...]23당신: 아, 새 패턴이 userId가 null인 경우도 처리하는지 확인하세요4[Tab — 큐에 넣음]56[Slate가 현재 단계를 완료한 후, 큐에 넣은 메시지를 읽음]
중간에 방향 전환
Slate가 잘못된 방향으로 가고 있다면, 중지할 필요가 없습니다:
1[Slate가 수정 구현을 반쯤 진행 중...]23당신: 잠깐만요 — 이걸 위해 새 클래스를 추가하지 마세요. src/utils/errors.ts의 기존 BaseError를 사용하세요.4[Enter — 즉시 방향 전환]56Slate: 알겠습니다, BaseError를 사용하도록 전환합니다...
/enter-mode-next 를 사용하여 방향 전환 / 큐 / 중단 모드 간에 전환하세요.셸 명령어 직접 실행
다른 터미널로 전환하지 않고 Slate 세션 내에서 명령어를 실행하세요:
1!npm test # 테스트 실행하고 출력을 Slate로 보내기2!git diff HEAD # 변경 사항 확인3!git status # 현재 상태 확인
Slate가 출력을 읽고 다음 작업에 사용합니다.
팀 설정을 위한 서버 모드
Slate를 서버로 실행하고 여러 터미널에서 연결하세요:
1# 터미널 1 — 서버 시작2slate serve --port 777734# 터미널 2 — TUI 연결5slate attach http://localhost:7777 --dir /path/to/project
Slate와 페어 프로그래밍을 하거나 원격 머신에서 실행할 때 유용합니다.
전체 설정 체크리스트
첫 번째 실제 루프를 실행하기 전에:
1□ npm i -g @randomlabs/slate 설치 완료2□ AGENTS.md 생성됨 (프로젝트 개요, 명령어, 규칙 포함)3□ slate.json 생성됨 (권한 및 모델 설정 포함)4□ 단일 수동 실행 완료 및 안정성 확인됨5□ 첫 번째 반복 작업에 대한 SKILL.md 작성됨6□ STATE.md 생성됨 및 AGENTS.md에서 참조됨7□ 명시적 중지 조건이 포함된 loop.md 작성됨8□ 반복 횟수 하드 리미트 (시작 시 최대 8회)9□ 검증자는 메이커와 동일한 에이전트가 아님10□ 되돌릴 수 없는 작업(PR, 배포)에 대한 인간 검토 게이트
무엇이든 스케줄하기 전에 모든 상자를 확인하세요.
하나를 건너뛰면 루프는 조용히 실패하거나 아무것도 하지 않고 비용을 청구합니다.
더 많은 루프 영감을 위해
패턴을 이해하면 병목 현상이 "루프를 어떻게 구축하나"에서 "다음엔 어떤 루프를 구축해야 하나"로 이동합니다.
Forward Future Loop Library (signals.forwardfuture.com/loop-library)는 콘텐츠, 엔지니어링, 운영, 연구 등 다양한 카테고리의 실제 실행 중인 루프를 살펴보기에 좋은 곳입니다.
한 곳에서 20 개의 작동하는 루프를 보면 일회성 프롬프트로 생각하는 것을 멈추게 됩니다.
불편한 진실
두 명의 빌더가 똑같은 루프를 실행해도 정반대의 결과를 얻을 수 있습니다.
한 명은 이미 깊이 이해하고 있는 작업을 더 빠르게 진행하기 위해 사용합니다.
다른 한 명은 작업을 전혀 이해하지 않기 위해 사용합니다.
루프는 그 차이를 알지 못합니다.
당신은 압니다.
루프 설계는 프롬프트 엔지니어링보다 어렵습니다. 더 쉽지 않습니다.
요점은 작업이 더 쉬워졌다는 것이 아닙니다.
레버리지 포인트가 이동했습니다.
루프를 구축하세요.
하지만 엔지니어로 남으려는 사람처럼 구축하세요.
단순히 실행 버튼을 누르는 사람이 아니라.
그리고 새로운 GPT-5.6 도 이 원칙을 대체하지 않습니다. 오히려 강화합니다.
더 이상 최고의 프롬프트를 작성하는 사람이 최전선이 아닙니다.
점점 더 강력해지는 모델을 중심으로 최고의 시스템을 설계하는 사람이 최전선입니다.
60 초 요약
루프란 무엇인가:
→ 프롬프트 = 질문. 루프 = 작업.
→ 발견 → 실행 → 검증 → 반복 → 중지
4 가지 조건 테스트:
→ 작업 반복 / 검증 자동화 / 예산이 낭비 흡수 / 완료가 객관적
5 가지 설정 단계:
→ AGENTS.md → slate.json → 수동 실행 1 회 → SKILL.md → STATE.md
그리고 마무리:
→ loop.md 큐 파일 또는 CI 에서 헤드리스 slate 실행
실패 모드:
→ Ralph Wiggum (조기 종료) / 목표 표류 (제약 조건 망각) / 자기 선호 편향 (제작자 = 검사자) / 에이전트 나태 (충분히 함)
Slate 의 장점:
→ 단계별 자동 모델 선택 → 격리된 병렬 하위 에이전트 → 긴 세션 관리 → 당신의 루프, 당신의 설계
도움이 되었다면:
→ 알고 있는 모든 빌더와 공유하려면 리포스트하세요
→ 더 많은 시스템을 보려면 @sairahul1을 팔로우하세요
→ 북마크하세요 — 설정 체크리스트만으로도 저장할 가치가 있습니다
더 흥미로운 기사를 보려면 theaibuilders.co를 구독하세요
저는 AI, 제품 구축, 그리고 당신이 잠자는 동안 실행되는 시스템에 대해 씁니다.
언급된 도구:
→ Slate 문서: docs.randomlabs.ai
→ Forward Future Loop Library: signals.forwardfuture.com/loop-library





