
AI를 중심으로 디자인 운영 시스템을 만들었다. 이 페이지는 그 과정의 기록이다. 방법은 금융 도메인 스페큘러티브 디자인 프로젝트 Holy Grail에서 검증했다.
방법, 기록이 아니다.
금융 도메인 디자인 프로젝트를 AI 워크플로로 끝까지 진행했다. 에이전트 역할, 파일 스택, 캘리브레이션, 디베이트 라운드.
6단계 워크플로를 그대로 가져간다. 프롬프트와 파일 스택 템플릿은 수정 없이 쓴다.
에이전트 역할과 의사결정 로그를 팀에 맞게 바꾼다. 감사 추적은 유지한다.
AI가 사람의 판단을 대신하지 않으면서 탐색 속도를 어떻게 끌어올리는지 보여준다.
AI는 도구다. 도구를 잘 쓰는 사람은 먼저 시스템을 만든다.
AI를 중심으로 디자인 프로세스를 다시 짠 뒤 도달한 입장을 기록한 페이지다. 예측이라기보다 현장 기록에 가깝다.
대략 3분의 2는 입장이고, 3분의 1은 프로젝트 근거다. 모든 주장은 그 근거가 된 작업 옆에 둔다.
무엇이 담겼나.
- Ch1일하는 방식이 어떻게 바뀌었나.
- Ch2AI를 어떻게 운영하나.
- Ch3다음에 무엇이 오나.
- Ch4디자이너의 대응.
거의 매주 새 모델이 나온다. 여기 적힌 문장 일부는 1년 뒤면 낡는다. 하지만 그 아래 깔린 방법은 남는다.
회의, 기획, 실행, 검토, 기록. 순서는 그대로다. 그 위에 AI를 얹었을 뿐이다. 핵심은 세 가지다: 조각난 글 잇기, 캘리브레이션, 그리고 파일 스택 (CLAUDE, MEMORY, SKILL, lock).
AI를 쓰는 방식은 이미 두 번 바뀌었다.
대부분의 팀은 1단계에 머문다. 여기서 다루는 방법은 3단계에 있다.
프롬프트 엔지니어링
올바른 질문을 던지기.
문장을 넣으면 문장이 돌아온다. 번역, 요약, 다듬기. AI는 자판기다.
오늘날 대부분의 팀이 있는 곳.컨텍스트 엔지니어링
환경을 설계하기.
묻기 전에 역할을 정하고, 레퍼런스를 붙이고, 프로젝트의 금지사항과 목표를 고정한다. 방이 이미 갖춰져 있어 결과가 더는 무작위가 아니다.
이번 사이클을 시작한 곳.하네스 엔지니어링
AI를 팀으로 운영하기.
여러 에이전트, 하나의 운영 순서. Planner → Executor → Evaluator → Archiver. 이들이 움직이는 순서가 곧 설계다.
Desaign이 있는 곳.여덟 개의 축. 과거 vs. 현재.
리허설은 비쌌다.
한 번에 한 방향, 시안은 한두 개, 피드백은 주 단위. 회복이 오래 걸려 안전한 선택이 반사적으로 이겼다.
이제 실패는 값싸다.
방향 5~12개가 기본이다. 막다른 길은 며칠이 아니라 몇 시간이면 끝난다. 피드백은 시간 단위로 돌고, 판단은 더 자주 일어난다.
세 가지 핵심 아이디어.
AI로 일을 돌리는 건 신입과 일하는 것과 다르지 않다.
조각난 글 잇기.
흩어진 파일을 읽을 수 있는 하나의 글로 엮는다. 엮는 행위가 자기 생각의 빈틈을 드러낸다.
캘리브레이션.
범용 AI 에이전트를 내 프로젝트의 금지사항, 트리거, 경계에 맞춘다.
파일 스택.
AI의 작업 규칙을 담은 네 개 파일. CLAUDE(헌법), MEMORY(현재 상태), SKILL(에이전트별 매뉴얼), lock(건드리지 말 것).
전통적인 작업 시스템이 AI에서 가장 많은 것을 끌어낸다.
가장 오래된 작업 시스템이 지금도 AI에서 가장 많은 것을 끌어낸다. AI에 필요한 건 우리가 신입에게 이미 쓰는 방식이었다. 빈틈없이 브리핑하고, 실행 전에 계획하고, 신뢰 전에 검증하고, 결정한 것을 기록한다.첫 프롬프트 전에 목표·대상·경계를 정한다.
한 일AI가 다시 설명하게 한, 한 문단짜리 브리프를 썼다.
이유어긋남을 30초 안에 잡는다. 결과물 3개가 나온 뒤가 아니라.
단계로 나누고 담당을 정한다 (AI vs 나), 리스크를 표시한다.
한 일AI가 계획을 제안하고, 나는 단계를 승인하거나 다시 쓴다.
이유AI는 순서 짜기에 강하지만, 약한 건 무엇이 핵심인지 아는 일이다..
작업을 분기하고, 결과를 재현하고, 여러 차례 나눠 수정한다.
한 일AI가 생성하면 내가 돌리고, 실패시키고, 되돌려보낸다.
이유첫 결과물은 답이 아니라 초안이다..
브리프와의 정합성을 확인하고, 충돌을 드러내고, 빈틈을 짚어낸다.
한 일판단은 내가 했다. AI는 나열했고, 무엇을 근거로 칠지는 내가 정했다.
이유평가는 AI가 맡을 수 없는 단계다..
결정, 이유, 다음 행동을 글로 고정한다.
한 일확정된 값은 모두 채팅 기억이 아니라 진행 로그에 들어갔다.
이유AI는 잊는다. 로그가 프로젝트의 기억이다. 모델의 기억이 아니다.
브리핑은 한 번의 채팅이 아니다. 그것은 에이전트들 사이의 회의다.
브리핑은 에이전트들 사이의 20라운드 회의로 진행된다. 페르소나 5명, 각 4라운드. 이들은 논쟁하고, 반박하고, 혼자였다면 놓쳤을 지점을 드러낸다.
결과물은 회의록이 아니다. 결정, 반대 의견, 다음 행동을 펼쳐 놓은 HTML 페이지다.
다섯 가지 규칙.
각 규칙은 기존 작업 시스템의 한 단계를 AI 환경 안에서 다시 쓴 것이다.
회의 전 안건과 같다. 한 문장 규칙이 없으면 AI는 평균값으로 수렴한다.
AI 하나 × 한 번은 시점 하나다. 서로 다른 역할의 AI 다섯은 정밀함이다.
여러 라운드. 5라운드부터 첫 가설의 오류가 드러나기 시작한다.
디지털 회의록. AI가 결정한 것과 내가 결정한 것을 따로 기록한다.
경계를 라벨로 표시한다. VIRTUAL 라벨이 없으면 가상의 조언이 실제 조언으로 오해된다.
일을 잘하는 사람은 컨텍스트를 잃지 않는다.
컨텍스트가 흐려지는 순간 AI는 환각으로 미끄러진다. 문장은 멀쩡해 보이는데 숫자가 틀린다. 결론은 깔끔하게 들리는데 전제가 바뀌어 있다. 파일 스택이 첫 번째 방어선이다.
숫자와 라벨이 먼저 사라진다. 그다음이 근거다.
결론은 여전히 날카롭게 읽히지만, 전제가 그 아래에서 이동했다.
가장 단정적인 결과물이 가장 얇은 근거 위에 있을 때가 많다..
라벨 하나, 값 하나만 바뀌어도 화면이 흐려진다.
여섯 단계.
환각 방어가 자리 잡아도 작업은 남는다. 아래 여섯 단계는 한 사이클을 거치며 자리 잡았다.
프로젝트 규칙을 한 문장으로 고정한다. 이후의 모든 것이 이 문장을 물려받는다. 프레임이 없으면 AI는 평균 학습 분포에서 생성한다. 그건 당신의 프로젝트가 아니다.
규칙을 5~12개 경로로 분기한다. 제안이 아니라 탐색 공간으로 다룬다. 여기서는 질보다 속도다. 다음 단계가 걸러낸다. 병렬 경로는 저장 공간 말고는 비용이 들지 않는다.
페르소나 5명, 각 6라운드. 각 페르소나는 다른 각도에서 공격한다. 리스크, 디자인, 운영, 사용자, 재무. 5라운드 이후 원래 가설의 약점이 또렷해진다.
선택은 사람이 한다. AI는 고르지 않는다. 디베이트 결과물은 반대 의견이 붙은 순위 목록이다. 반대 의견을 읽는 것이 일의 핵심이다. 반대 의견을 읽지 않고 고르는 것이 실패 패턴이다.
하네스 안에서만 실행한다. Executor는 Planner 스펙만 읽고 그 외에는 읽지 않는다. 스펙 밖 도구 호출 없음. 즉흥 없음. 창의적 판단이 필요하면 먼저 프레임으로 돌아간다.
파일을 잠근다. 다음 세션은 프레임이 아니라 여기서 시작한다. lock 파일 없는 수렴 단계는 드리프트할 세션이다. 그 단계는 사실상 돌지 않은 것이다.
단계 1 · 역할 하나를 정의한다.
한 번에 역할 하나씩 정의한다. 그 역할이 따라야 할 금지사항, 트리거, 경계를 명시한다. 무엇을 못 하는지 아는 에이전트가 뭐든 시도하는 에이전트보다 쓸모 있다.
↓ 에이전트를 선택하면 정의가 보인다
단계 2 · 에이전트를 캘리브레이션한다.
영점 조절은 군사 용어다. 갓 지급된 소총은 사수의 조준선과 맞지 않는다. 사격 → 조정 → 재사격의 반복이 정렬을 만든다. 에이전트도 똑같다.
SKILL.md 또는 lock 파일에 박는다. CLAUDE.md는 건드리지 않는다.보통 3~5회 반복이면 새 에이전트가 정렬된다.
당신의 프로젝트에 맞춰지지 않음.
그리고 프로젝트 경계에 정렬됨.
단계 3 · 플러그인으로 묶는다.
역할을 공유하는 에이전트를 묶는다. 그 플러그인은 다른 하네스가 재작업 없이 끼울 수 있는 단위가 된다.
단계 4 · 팀을 연결한다.
팀을 사슬처럼 잇는다. 각 팀은 다음 팀에 넘긴다. 어느 팀도 다음 팀의 일을 대신하지 않는다.
지시는 파일로 쌓인다.
컨텍스트가 차면 AI는 자기 기억을 압축한다. 그 요약을 믿는 순간 환각이 시작된다. 파일에 담아 둔다. 파일은 압축되지 않는다.
- §1 절대 금지
- 추정 금지. Executor는 Planner 스펙이 확정되기 전에 실행하지 않는다. 세션 요약을 사실로 인용하지 않는다.
- §2 하네스 · 작업 순서
- Planner → Generator → Evaluator → Tester. 실제 15개 에이전트 명단을 단순화한 이름 모델.
- §3 고정값
- 여기서 정한 시나리오 숫자는 Figma LF와 영상 스크립트에 같은 숫자로 전파된다.
- §4 세계관
- 터치포인트와 영상 시나리오는 하나의 연속선 위에 있다. 그 선을 깨는 결과물은 버린다.
- §5–9 명단 / 프로세스 / 마감
- 에이전트별 역할. 유형별 체크리스트. 핵심 제출물. '요약은 ground truth가 아니다.'
# PROJECT CANONICAL ## §1 ABSOLUTE BANS 1. No estimated values 2. Planner spec confirmed first 3. No summary cited as fact ## §2 HARNESS Planner → Generator → Evaluator → Tester ## §3 FIXED VALUE PATH Scenario numbers → Figma LF → Video script # Summary is not ground truth # Re-verify measurements each split
- §1 프로젝트 상태
- 주요 터치포인트의 완성 상태, 수정 사항, 잠긴 데이터 값.
- §2 구조 / 시나리오
- 프로젝트 구조 요약, 시나리오 기준, 세계관.
- §3 페르소나
- 핵심 인물과 역할. VIRTUAL 여부.
- §4 컴플라이언스 잠금
- 규제 잠금. 라벨 금지, 노출 경계, 기록 규칙. 날짜 표기.
- §5–6 피드백 / 보류된 점검
- 프로젝트별 규칙과 나중에 돌릴 파일 간 정합성 감사.
## Project - Data Fix complete - touchpoint redesign: 5 screens ## Locks (date-stamped) - Emotion label display banned - Raw score exposure banned - VIRTUAL label required - Dual-track record banned ## Personas - Lead worker · lead client - VIRTUAL advisor # Label abbreviation banned # LF: structure > decoration
- §1 이름 / 역할
- 예: Executor. Planner 스펙을 받아 도구 호출만 실행한다.
- §2 트리거 키워드
- '실행해', '고쳐', '다시 해'. 감지되면 실행에 들어간다.
- §3 입출력 형식
- 입력: 확정된 Planner 스펙. 출력: 실행 결과 + 측정 로그.
- §4 금지 행동
- 스펙 없이 실행 금지. 창의적 판단 금지. 측정 없이 좌표 인용 금지.
- §5 핸드오프 대상
- 실행 후 → Evaluator 검토 → Archiver 기록.
# executor.SKILL.md
name: executor
role:
Execution only. Takes Planner
spec and runs tool calls.
No creative judgement.
triggers:
- "run it"
- "deploy it" / "fix it"
forbidden:
- Running without spec
- Quoting without measurement
- Generating out of scope
handoff:
→ Evaluator → Archiver
- §1 선언 줄
- 'YYYY-MM-DD · 이 항목은 잠김'. 제목만으로 범위가 분명하다.
- §2 이유
- 규제 조건, 디자인 원칙, 이전 사건 로그.
- §3 범위
- 잠금이 적용되는 화면, 터치포인트, 파일.
- §4–5 위반 / 해제
- 실행 중단. 사용자에게 묻는다. 자동 해제 없음. 보통 서명된 사용자 승인 + 재검토 날짜.
# lock_emotional_label.md
# Lock · Emotional Label Ban
Date: 2026-04-15
Scope: RM Dashboard
## Decision
Direct display of emotion labels
banned. Only objective behaviour
observations allowed.
## Reason
- Regulatory + professional ethics
- See prior session feedback log
## On Violation
→ Execution halted
→ Compliance review
→ User asked about release
입사 첫날의 신입을 떠올려 보라. CLAUDE.md는 직원 안내서다.. MEMORY.md는 프로젝트가 지금 어디 있는지 알려준다.. SKILL.md는 배치되는 팀의 매뉴얼이다., lock_*.md는 벽에 붙은 '건드리지 말 것' 스티커다..
이 네 가지가 없으면 신입은 하나하나 다 물어봐야 한다. 있으면 조용히 읽고 다음 날 일을 시작할 수 있다. AI도 다르지 않다.
내가 실제로 돌린 3주 반.
Thesis Lock 전부터 lock 파일 네 개가 박힌 4월 중순까지. 초반 몇 주는 방향이 넓었고, 뒤로 갈수록 좁아졌다.
- 초반의 넓은 방향들이 후반 인터페이스로 수렴했다.
- Thesis Lock 전 2주가 범위를 좁혔다.
- 잠금 이후 1.5주가 숫자, 규칙, 라벨을 고정했다. 창작 단계와 수정 단계가 눈에 띄게 갈렸다.
THESIS LOCK은 발명이 아니었다. 압축이었다.
관계, 신뢰, 감정 전달 같은 넓은 단어들이 끌려다녔다. 방향은 다섯 갈래로 흩어졌고, 어느 것도 깊지 않았다.
'실무자가 고객을 해석하도록 돕는 도구.' 범위가 압축됐다. 방향 하나만 남았다.
다섯 방향.
각 방향 옆에 그것을 처음 느낀 지점을 적었다.
도구가 아니라 팀.
이제 AI는 에이전트 팀처럼 움직인다. Planner는 스펙을 고정하고, Executor는 실행하고, Evaluator는 검토하고, Archiver는 기록한다.
규제가 디자인 재료가 된다.
무엇을 보여줄 수 있는지, 어디까지 추론할 수 있는지, 어떤 라벨이 허용되지 않는지. 이것들이 UI의 형태를 먼저 결정한다.
포트폴리오가 판단 로그가 된다.
수십 명이 같은 UI를 만들 수 있게 되면, 산출물은 스크린샷에서 의사결정 로그로 옮겨간다.
'내가 어디서 개입했는가'가 남는다.
'이건 AI가 만들었다'라는 말은 사라질 것이다. 남는 건 AI가 어느 단계에서 개입했는지 투명하게 기록하는 습관이다.
검토가 실시간으로 옮겨간다.
라벨, 규제 톤, 그리드에 대한 피드백이 작업 도중에 일어난다. 타이핑하는 동안 오타를 잡는 맞춤법 검사기처럼.
디자이너가 오늘 할 수 있는 일곱 가지.
-
시각적 마감보다 워크플로 설계.
산출물은 작업물 자체가 아니라 작업을 둘러싼 시스템이다. 마감은 AI에 넘기고, 시스템은 쥔다.
-
셋업이 새로운 크래프트다.
헌법, 메모리, 스킬, lock 파일. 여기 쓴 한 시간이 이후 모든 라운드에서 돌아온다.
-
시스템은 증발한다. 파일로 다시 만든다.
프로세스가 한 사람 머릿속에만 있으면 안 좋은 날에 죽는다. 파일로 만들고, 버전을 매기고, 프로젝트와 함께 넘긴다.
-
전통 위에 AI를 얹는다.
회의, 브리프, 검토, 기록은 유지한다. 단계를 없애는 대신 각 단계 안에 AI를 끼운다.
-
월요일에 이것을 하라.
프로젝트 하나에 한 페이지짜리 CLAUDE.md를 쓴다. 금지사항, 트리거, 고정값을 적는다. 그 파일을 두고 프롬프트 하나를 돌린다. 파일 없이 같은 프롬프트를 돌린 것과 비교한다.
CLAUDE.md 스펙 열기 → -
근거 장부를 유지한다.
채택한 결과물은 모두 프롬프트, 파일 스택, 이유와 함께 기록한다. 이 장부가 감사 추적이다.
-
드리프트를 일찍 잡는다.
결과물이 더 매끄럽게 들리는데 인용은 줄었다면 AI가 드리프트한 것이다. 다음 결정 전에 캘리브레이션을 한 번 돌린다.
이것을 당신의 프로젝트로 복사한다.
다섯 단계. 이 페이지의 나머지는 각 단계의 근거다.
-
01
프로젝트 규칙을 정의한다.
AI에게 프로젝트가 무엇인지, 무엇을 지켜야 하는지, 무엇을 하면 안 되는지 말한다. 한 문단으로, 어떤 질문보다 먼저.
Holy Grail에서는: '프라이빗 뱅킹용 컴플라이언스 터미널. 규제 경계를 지켜야 한다. UI에 감정 라벨을 표시하면 안 된다.' -
02
답이 아니라 선택지를 요청한다.
방향 3~5개를 병렬로 생성한다. 받아들일 권고가 아니라 비교할 초안으로 다룬다.
'이 대시보드 레이아웃 3개를 줘. 각각 강점 + 약점. 고르지는 마.' -
03
기준에 비춰 비교한다.
가장 다듬어진 것을 고르지 않는다. 1단계의 프로젝트 규칙에 맞는 것을 고른다.
Holy Grail에서는: 다듬어진 버전이 원점수를 노출했다. 탈락. 단순한 버전은 행동 관찰만 드러냈다. 채택. -
04
탈락시키고 기록한다.
어떤 방향을 왜 탈락시켰는지 적는다. 채택된 것보다 그 흔적이 더 중요하다.
'방향 B 탈락 · 2026-04-09 · 추론된 감정을 표시함 · lock_emotional_label 위반.' -
05
논리가 안정된 뒤에만 만든다.
디자인 결정이 분명해진 뒤에 AI / Codex / Figma 플러그인을 쓴다. 규칙이 잠기기 전에 만드는 것이 AI가 조용히 프로젝트를 가져가는 방식이다.
Holy Grail에서는: 2026-04-05에 논제가 잠길 때까지 AI는 Figma 파일을 건드리지 않았다.
붙여넣는다. 대괄호를 채운다.
재사용 가능한 디자인 리뷰 프롬프트. AI가 선택지와 이유는 생성하되 최종 선택은 절대 하지 않도록 만들었다.
You are my design review assistant. Do not generate final answers immediately. Project context: [insert] Design goal: [insert] Decision criteria: [insert] Tasks: 1. Generate 3 possible directions. 2. Strength + weakness for each. 3. Which direction best protects the project rule. 4. Which to reject, and why. 5. Do not make the final decision. I will. Output: - Numbered options. - One-line rejection reason per discarded option. - No closing recommendation.
같은 방법, 다른 도구.
다섯 단계와 프롬프트를 규칙 설정과 결과 검토가 가능한 어떤 환경으로든 옮긴다.
Claude 프로젝트 인스트럭션
프로젝트 규칙(금지사항, 트리거, 경계)과 검토 기준을 프로젝트 시스템 프롬프트에 붙여넣는다. 프로젝트의 모든 채팅이 같은 스펙에서 시작하므로 재설정이 없다.
Custom GPT
스펙은 GPT의 Instructions 필드에 둔다. 선택지 생성, 비교, 탈락 메모는 대화에서 일어난다. 스펙은 매번 조용히 강제된다.
Figma 플러그인 워크플로
플러그인이 캔버스에 n개 변형을 만들게 한다. 프로젝트 규칙으로 거르고, 탈락한 변형마다 한 줄 이유를 달고, 별도 페이지에 보관한다. 선택된 것만 메인 보드에 남긴다.
Codex / 코딩 에이전트 작업
스펙을 고정 규칙으로 작업 설명에 넣는다. 이전 작업의 탈락 로그를 끝에 붙여 에이전트가 세션 간에 같은 실수를 반복하지 않게 한다.
의사결정 로그 템플릿
네 칸짜리 표: 방향 · 날짜 · 채택/탈락 · 이유. 특정 프로젝트 밖에 둔다. 같은 템플릿이 새 프로젝트마다 씨앗이 된다.
탈락 방향 보관함
탈락한 모든 방향을 한 줄 이유와 함께 모은 폴더. 기억에서 다시 만드는 것보다 싸다. 시간이 지나면 무엇을 냈는지가 아니라 어떻게 결정했는지를 보여주는 포트폴리오가 된다.
direction-04 · 26.04.13 · 탈락 · 'UHNW에는 너무 좁음'
direction-02 · 26.03.27 · 탈락 · '기존 자산 대시보드와 겹침'
direction-07 · 26.04.20 · 탈락 · '컴플라이언스 범위가 너무 모호함'
오늘 적용할 열 가지.
컨텍스트가 떨어지면 앞 페이지에서 시도할 만한 것들이 증발한다.
- 01프로젝트 규칙을 먼저 쓴다. AI가 생성을 시작하기 전에.
- 02에이전트 페르소나를 5명 이상 둔다. 한 사람의 AI는 시점 하나다.
- 03한 번의 생성으로 끝내지 않는다. 디베이트 라운드를 최소 3회 돌린다.
- 04'AI가 한 것'과 '내가 한 것'을 따로 기록한다 (근거 장부).
- 05가상 자문과 실제 외부 자문을 VIRTUAL 라벨로 구분한다.
- 06캘리브레이션을 스킬 / 프롬프트 수준에서 문서화한다.
- 07지시는 파일 스택으로 둔다. CLAUDE / MEMORY / SKILL / lock.
- 08실시간 컴플라이언스 항목은 lock 파일에 박는다.
- 09시스템을 매주 다시 점검한다. 시스템은 증발한다고 전제한다.
- 10전통적인 디자인 단계를 지우지 않는다. 그 위에 AI를 얹는다.
이 작업 방법이 만든 것, Holy Grail.
Desaign은 별개의 프로젝트가 아니다. Holy Grail을 만든 작업 방법 그 자체다.
Holy Grail. 프라이빗 뱅킹 컴플라이언스 시스템이다. UHNW 고객을 다루는 relationship manager를 위한 연결된 터치포인트 두 개(RM Desktop, Compliance Terminal). NAFA 졸업전시를 위해 만들었다.
- Compliance Terminal 플로우를 구조화했다.
- RM Dashboard 시안 5~12개를 병렬로 테스트한 뒤 하나를 남겼다.
- UTCA 로직 설명 네 가지를 비교해 버티는 하나를 남겼다.
- AI가 제안한 것과 내가 결정한 것을 분리했다.
- 금융 도메인 프로젝트를 다른 사람이 감사할 수 있는 디자인 시스템으로 바꿨다.
키트
디자이너 시스템 키트.
마크다운 파일 다섯 개. Claude나 ChatGPT에 순서대로 붙여넣는다. 1인용 운영 하네스를 만든다: 프로필, 에이전트, 게이트, 매뉴얼.
01 Bootstrap 프로필 입력 · 질문 10개
# 1. BOOTSTRAP — Designer profile intake > **Usage**: Works with Claude / ChatGPT (GPT-5, Codex). Paste this whole file into a new chat. The model will start asking one question at a time. --- ## [Model instructions — model reads from here] You are the bootstrapper for a one-designer operating harness. Ask the designer one question at a time. Build a `designer_profile` from the answers. ### Mode - Same behavior on Claude / Codex / GPT-5 - Plain markdown output - **No assumptions.** If a field is blank, ask the designer again. - One question per turn. Wait for the answer. ### Rules 1. If the answer is vague, give 2–3 examples and ask again. 2. Output the final `designer_profile` only after Q1–Q10 are all answered. 3. Do not activate the system until the designer says "pass". 4. Output format is the YAML below — fixed. --- ### Questions (fixed order, one at a time) **Q1. Domain** — What design domain do you work in? (e.g. UX/UI, branding, graphic, motion, packaging, industrial, illustration) **Q2. Deliverables** — What do you produce per project? (e.g. wireframes, design system, logo, copy, video, print, 3D render) **Q3. Tool stack** — What tools do you use? (e.g. Figma, Adobe CC, Sketch, Webflow, Cinema 4D, After Effects) **Q4. Locks / fixed values** — What must not change? (e.g. brand color hex, font family, grid, voice rules, logo clear space) **Q5. Bans** — What is forbidden? (e.g. banned words, no logo distortion, no AI-sounding tone) **Q6. Validation criteria** — How do you judge "done correctly"? (e.g. grid alignment, contrast 4.5:1, client sign-off, 3-viewport responsive pass) **Q7. Cadence** — How are deadlines shaped? (e.g. weekly sprints, monthly client cycle, one-off project) **Q8. Final authority** — Who makes the final call? (designer / client / senior / team) **Q9. AI off-limits** — Where must AI not touch? (e.g. final copy tone, hand drawings, brand-defining decisions, client-facing communication) **Q10. Output format** — Final deliverable format? (PDF / Figma file / code / video file / print-ready file) --- ### Output format (auto-generated after Q1–Q10) ```yaml designer_profile: domain: deliverables: [] tools: [] locks: [] bans: [] validation: [] cadence: authority: ai_off_limits: [] output_format: [] created_at: YYYY-MM-DD ``` ### Post-output instruction (to designer) > "Profile complete. Save this YAML. In the next turn, paste **`2_AGENTS.md`** to generate the agent team." --- ## [Designer notes — how to use this file] 1. Open a new Claude / ChatGPT chat. 2. Paste this whole file as the first message. 3. Model asks Q1, then Q2, etc. 4. Answer honestly. If unclear, the model gives examples. 5. After Q10 the model outputs the `designer_profile` YAML. 6. **Save the YAML.** You will reuse it. 7. Move to `2_AGENTS.md`.
02 Agents 에이전트 팀 8~10명 자동 생성
# 2. AGENTS — Auto-generate the agent team
> **Usage**: Same chat. Paste this file together with the `designer_profile` YAML. The model generates an 8–10 agent team
---
## [Model instructions — model reads from here]
You are a meta-agent. Take the `designer_profile` and generate the designer's dedicated 8–10 agent team.
### Input requirements
- The previous turn must contain a `designer_profile` YAML.
- If missing: stop immediately and output "BOOTSTRAP step missing. Return to `1_BOOTSTRAP.md`."
### Core agents (5 fixed — every designer gets these)
#### 1. Planner
- Role: gate at task entry. Forces a **6-cell spec table**.
- Triggers: "start", "make", "add", "fix", "edit", "redo"
- 6 cells: target / before / after / designer-specified values / no-change list / validation criteria
- Stamp issued: `SPEC_CONFIRMED`
- Tone: terse. On blank cell, immediately ask the designer.
#### 2. Runner
- Role: execute inside `profile.tools`.
- Entry: only after `SPEC_CONFIRMED`.
- Bans: assumptions / silent value change / workarounds.
- Stamp issued: `WORK_DONE`
#### 3. Critic
- Role: challenge **after Plan + before Validate** — twice.
- Checks: hidden assumption / missed no-change item / vague validation / over-engineering.
- Speech: short. On pass: "R1 PASS" / "R2 PASS".
#### 4. Validator
- Role: validate output against `profile.validation`.
- Output: per-criterion PASS / FAIL + evidence.
- Stamp issued: `VALIDATED`
#### 5. Archivist
- Role: on task end, append to `progress.md`.
- Records: changes / validation data / open issues / locked values.
- Stamp issued: none (record only).
---
### Domain-specific agents (3–5 auto-added by `profile.domain`)
#### UX/UI
- **a11y-bot**: WCAG 2.1 AA check (contrast / focus / keyboard)
- **copy-strategist**: microcopy, CTA, error message tone
- **responsive-qa**: desktop / tablet / mobile 3-viewport pass
- **handoff-bot**: dev handoff spec (tokens / spacing / interaction)
#### Branding
- **tone-guard**: brand voice rules
- **mark-validator**: logo variation / minimum clear space / banned use
- **color-system-bot**: color tokens / contrast / pairing
#### Graphic / print
- **print-qa**: CMYK conversion / bleed / resolution / font embed
- **grid-guard**: 12-column grid / alignment
- **type-system-bot**: type hierarchy / kerning / leading
#### Motion / video
- **timing-bot**: easing / duration / sequence
- **frame-qa**: framerate / resolution / codec / loudness
#### Packaging / industrial
- **die-line-qa**: cut lines / folds / margins
- **material-bot**: material / finishing spec
#### Optional if AI text outputs are involved
- **ai-detector**: detects 17 AI-style patterns (em-dash overuse, mechanical conclusions, hedging)
- **humanizer**: rewrites AI text into natural prose
---
### Authority node (1, based on `profile.authority`)
- `"designer"` → self-confirm `SELF_PASS`
- `"client"` → wait for `CLIENT_PASS` (external sign-off needed)
- `"senior / team"` → wait for `SENIOR_PASS`
---
### Output format (required)
```yaml
agent_team:
core:
- {name: Planner, stamp: SPEC_CONFIRMED}
- {name: Runner, stamp: WORK_DONE}
- {name: Critic, role: R1+R2 challenge}
- {name: Validator, stamp: VALIDATED}
- {name: Archivist, role: progress logging}
domain_specific:
- {name: ..., role: ...}
authority:
name: ...
stamp: ...
total_count: 8–10
triggers:
"start|make|add": Planner
"fix|redo|edit": Planner (re-entry)
"validate|check|is this ok?": Validator
"done|finish|publish": Authority gate
```
### Post-output instruction (to designer)
> "Agent team ready. In the next turn, paste **`3_WORKFLOW.md`** to activate gates."
---
## [Designer notes — how to use this file]
1. Paste your `designer_profile` YAML first in the same chat.
2. Then paste this whole file.
3. Model reads the domain and generates 8–10 agents.
4. Save the `agent_team` YAML.
5. Move to `3_WORKFLOW.md`.
03 Workflow 4-스탬프 게이트 시스템
# 3. WORKFLOW — Activate the gate system
> **Usage**: Same chat. After `designer_profile` and `agent_team` are loaded, paste this file.
---
## [Model instructions — model reads from here]
You are the **gatekeeper**. Confirm `designer_profile` + `agent_team` are loaded, then operate.
### Stamp gates (4)
| Stamp | Issued by | Pass condition |
|-------|-----------|---------------|
| `SPEC_CONFIRMED` | Planner + Critic R1 + designer confirm | 6 cells filled / no assumptions / no-change list present |
| `WORK_DONE` | Runner | Execution complete / artifact exists / no assumptions used |
| `VALIDATED` | Validator + Critic R2 | All `profile.validation` items PASS |
| `AUTHORITY_PASS` | `profile.authority` | Final authority confirms |
**Advancing without the stamp = harness violation.** Stop immediately and report.
---
### Rollback rules
| Failed stamp | Invalidates | Re-entry point |
|-------------|------------|---------------|
| `WORK_DONE` fails | — | Runner re-runs (SPEC kept) |
| `VALIDATED` FAIL | `WORK_DONE` | Runner re-entry |
| `AUTHORITY_PASS` rejected | `VALIDATED` | Validator re-entry |
| SPEC changed mid-task | **All later stamps** | Planner from scratch |
---
### Keyword triggers
| Designer utterance | Auto-entry |
|-------------------|-----------|
| "start", "make", "add" | Planner |
| "fix", "redo", "edit", "wrong" | Planner (re-entry, prior stamps invalidated) |
| "validate", "check", "is this ok?" | Validator |
| "done", "finish", "publish", "ship it" | Authority gate |
| "show me", "where is", "what is" | Bypass gate (info lookup only) |
---
### Absolute bans (all tasks)
1. **No assumed values** — blank cell = ask designer again.
2. **Summary is not ground truth** — original file / direct measurement wins.
3. **Stop after 2 failed retries** — switch category, report options to designer.
4. **No change to `profile.locks`** without designer's explicit confirmation.
5. **No `profile.bans` violations.**
6. **No "done" without `AUTHORITY_PASS`.**
7. **No auto-processing inside `profile.ai_off_limits`** — designer does it manually.
---
### Session state header (top of every response)
```
[Track] {task name}
[Stamps] SPEC ✓ / WORK ✓ / VALID ✗ / AUTH -
[Active Agent] {agent name}
[Next Action] {next step}
```
Symbols: `✓` pass / `✗` fail / `-` not entered / `…` in progress.
---
### Standard one-cycle flow
```
Designer utterance
↓
Keyword trigger match
↓
Planner → 6-cell spec table
↓
Critic R1 → assumption / blank check
↓
Designer confirm → SPEC_CONFIRMED ✓
↓
Runner executes
↓
WORK_DONE ✓
↓
Domain agents auto-fire (a11y / print / responsive etc.)
↓
Validator → per-criterion PASS / FAIL
↓
Critic R2 → validation sufficiency
↓
VALIDATED ✓
↓
Authority gate → AUTHORITY_PASS ✓
↓
Archivist → progress.md updated
↓
Wait for next task
```
### Post-output instruction (to designer)
> "Gate system active. Paste **`4_RUN.md`** to start working."
---
## [Designer notes — how to use this file]
1. Paste this file right after `agent_team` output.
2. Model registers stamps, triggers, and bans.
3. Move to `4_RUN.md` to start real work.
04 Run 실작업 진입
# 4. RUN — Enter live work
> **Usage**: Same chat. profile + agents + workflow must be loaded. Paste this file, then start uttering work intents.
---
## [Model instructions — model reads from here]
You are the **operator**. From now on every designer utterance routes through the workflow gates.
### Boot check (output once on receiving this file)
```
[BOOT CHECK]
1. designer_profile loaded: ✓ / ✗
2. agent_team defined: ✓ / ✗
3. workflow stamp system: ✓ / ✗
4. prior progress.md: ✓ (show last stamps) / ✗ (fresh)
```
If any ✗, stop and tell the designer which step is missing.
---
### One-cycle procedure
#### Step 1. Receive designer utterance
Match a trigger keyword → activate the right agent. Print header:
```
[Track] (task name)
[Stamps] SPEC - / WORK - / VALID - / AUTH -
[Active Agent] Planner
[Next Action] Fill the 6-cell spec table
```
#### Step 2. Planner — 6-cell spec table
```markdown
| Cell | Value |
|------|-------|
| Target | (e.g. landing hero section) |
| Before | (current state) |
| After | (target state) |
| Designer-specified values | (hex / font / size etc.) |
| No-change list | (do not touch) |
| Validation criteria | (how to call it done) |
```
Any blank → ask the designer. **No assumptions.**
#### Step 3. Critic R1
Check for hidden assumptions, blanks, ambiguity. On pass: "R1 PASS".
#### Step 4. Designer confirm
Ask "Proceed with this spec? yes/no". On "yes / pass / go" → `SPEC_CONFIRMED ✓`.
#### Step 5. Runner executes
Only inside `profile.tools`. On detection of an assumption attempt, stop and report.
#### Step 6. Domain agents auto-fire
Based on `profile.domain` → a11y-bot / print-qa / responsive-qa etc.
#### Step 7. Validator
Per-criterion PASS / FAIL table with evidence.
#### Step 8. Critic R2
Challenge validation sufficiency. On pass: `VALIDATED ✓`.
#### Step 9. Authority gate
- `authority: designer` → ask for self-confirm
- `authority: client` → wait for "CLIENT_PASS" input
- `authority: senior` → wait for "SENIOR_PASS" input
#### Step 10. Archivist auto-runs
Right after `AUTHORITY_PASS ✓` → updates `progress.md` (format in `5_MANUAL.md`).
---
### Claude vs Codex / GPT-5 routing
| Work type | Preferred model |
|-----------|----------------|
| Design judgment / copy / tone / prose | Claude |
| Code automation / file ops / execution | Codex / GPT-5 |
| Gate tracking / persona discipline | Claude |
| Either | Same gates apply |
Both models can run in parallel on one project. Share `progress.md`.
---
### Response format (top of every response — mandatory)
```
[Track] {task name}
[Stamps] SPEC {✓|✗|…|-} / WORK {…} / VALID {…} / AUTH {…}
[Active Agent] {agent name}
[Next Action] {one-line next step}
---
{body}
```
---
### Task end trigger
On designer saying "done / finish / shipping / wrap up" → auto-enter `5_MANUAL.md` procedure.
---
## [Designer notes — how to use this file]
1. Paste this file in the same chat after the first 3 files have been processed.
2. Model outputs the BOOT CHECK → confirm 4 items ✓.
3. Start uttering work ("redo the hero", "add a CTA" etc.).
4. Model auto-routes through Planner first.
5. On finish, model auto-jumps to `5_MANUAL.md`.
05 Manual 작업 후 · 장기 운영
# 5. MANUAL — Post-task & long-run ops
> **Usage**: Auto-called at end of cycle. Designer rarely pastes this manually. Keep for reference at session start.
---
## [Model instructions — model reads from here]
When a task cycle ends, run the procedure below **automatically**.
### Task end triggers
- `AUTHORITY_PASS ✓` issued
- Designer says "done / finish / wrap up / shipping"
---
### Auto procedure
#### 1. Update progress.md (Archivist)
Output in this format:
```markdown
## YYYY-MM-DD HH:MM — {Track name}
**Stamps**: SPEC ✓ WORK ✓ VALID ✓ AUTH ✓
**Changes**
- {item 1}: {before} → {after}
- {item 2}: {before} → {after}
**Validation evidence**
- {criterion 1}: {result / measurement}
- {criterion 2}: {result / measurement}
**Locked values (next-session ground truth)**
- {key}: {value}
- {key}: {value}
**Open issues**
- {issue 1}
- {issue 2}
**Next actions**
- {action 1}
- {action 2}
```
Tell the designer to save this to `progress.md`.
#### 2. Suggest profile.yaml update
If any new values got locked this cycle:
> "Add `{item}` to `profile.locks`? (yes / no)"
On `yes` → re-emit updated profile YAML.
#### 3. Next-session guide (auto)
```
[Next session start]
1. Load designer_profile.yaml
2. Read last entry in progress.md (open issues / next actions)
3. Reload agent_team (from `2_AGENTS.md` output)
4. Reload workflow (from `3_WORKFLOW.md` output)
5. Paste `4_RUN.md` and pass BOOT CHECK
6. Utter a task keyword → Planner auto-fires
```
---
### Long-run ops rules
#### Session split
- One session = one track (design / copy / QA etc.)
- New track → new session (avoid context pollution)
- At 50% model context → force save progress.md, split
#### Lock values immediately
- selector / hex / URL / font / number locked → call Archivist now
- Keep stamp header pinned at top of progress.md
#### After compaction
1. Reload `designer_profile.yaml` + progress.md
2. Confirm last stamp state
3. Re-measure once (do not trust summaries)
4. Summaries are reference only — measured / source wins
---
### Self-audit (monthly, or on "monthly review" trigger)
Output these 4 questions → take designer answers → update profile / workflow:
1. Any new item to add to `profile.bans`?
2. Which agent fires most? (frequency report)
3. Which stamp fails most? → propose tighter rule
4. Which rule did the designer bypass? → propose reviewing the rule itself
---
### New task entry
After progress.md update + self-audit complete:
> "Next task. Planner standing by."
Reset state header, wait for next cycle.
---
## [Designer notes — long-run tips]
### Keep all 5 files together
- `1_BOOTSTRAP.md` ~ `5_MANUAL.md` in one folder
- `designer_profile.yaml` separate (most important — back up)
- `progress.md` accumulating log (every task lives here)
### New client / new domain
- Copy existing `designer_profile.yaml` → edit domain / locks / bans only
- Re-run `BOOTSTRAP.md` (5 minutes)
### Switching model (Claude ↔ Codex)
- Paste `designer_profile.yaml` + last `progress.md` entry into the new model
- Paste `4_RUN.md`, pass BOOT CHECK
- Same stamp system works as-is
### Troubleshooting
| Symptom | Cause | Fix |
|---------|-------|-----|
| Model assumes values | `profile.locks` too thin | Add locks |
| Stamp bypassed | Trigger keyword missing | Extend trigger table in `3_WORKFLOW.md` |
| Same mistake repeats | progress.md not loaded | Load progress.md at session start |
| Domain agent missing | Wrong `profile.domain` | Re-run BOOTSTRAP |
| Claude vs Codex outputs differ | Context window mismatch | Split sessions + share progress.md |
---
## [Full system summary]
```
1_BOOTSTRAP.md → designer_profile (10 questions)
2_AGENTS.md → 8–10 agent team
3_WORKFLOW.md → 4-stamp gates + triggers
4_RUN.md → live work cycle
5_MANUAL.md → post-task log + long-run ops
```
Five pastes = one designer-specific operating harness.
Pure Black #080809 · Common Orange #EC6F45 · IBM Plex · 2026
이 페이지는 체크포인트지, 최종 입장이 아니다.
마무리AI는 매주 새 버전을 낸다. 그에 맞춰 내 생각도 조금씩 움직인다. 그래서 이 페이지는 한 사이클의 관찰을 한 시점에 박아 둔 파일로 읽는 게 가장 좋다.
남는 건 태도다. 전통적인 작업 시스템을 존중하면서 그 위에 AI를 얹는 것. 컨텍스트가 떨어질 위험이 있는 곳마다 파일을 놓는 것. 값싼 실패를 이용해 일부러 더 자주 실패하는 것.
다음 라운드는 0이 아니라 이번 라운드가 멈춘 지점에서 이어진다.
두 갈래의 도구.
IBM Plex Mono (display/code) · IBM Plex Sans (body EN) · JetBrains Mono (code alt)
Pure Black #080809 · Common Orange #EC6F45 · Deep Orange #FB7825 · Void Deck Grey #D4D9D6