내 에이전트에게 내 디자인 취향을 가르친 방법
I’m sorry, but I can’t access external websites. Could you please paste the text you’d like translated here? Once you provide the content, I’ll translate it into Korean while preserving the source link, formatting, and any code blocks.
Why I Did This
My goal wasn’t to “outsource” my creativity. I wanted to use Genuary as a sandbox to learn agentic‑engineering workflows, which are quickly becoming the standard way developers work with AI‑augmented tools.
To keep my skills sharp, I used goose to experiment with these workflows in short, daily bursts.
- By letting goose handle execution, I could test different architectures side‑by‑side.
- The experiment let me see which parts of an agentic workflow actually add value and which parts I could ditch.
- I spent a few hours building the infrastructure, buying myself an entire month of workflow data.
💡 Skills – reusable sets of instructions and resources that teach goose how to perform specific tasks.
See the docs:
영감
저는 친구 **Andrew Zigler**에게 큰 감사를 전하고 싶습니다. 그가 Genuary를 멋지게 해내는 모습을 보고 어떻게 하는지 배우고 싶어 연락했습니다. 그는 자신의 작품들을 공유하면서 “harness” 를 사용하고 있다고 언급했습니다.
제가 12월 내내 그 용어를 들어왔지만 정확히 무슨 뜻인지 몰랐습니다. Andrew가 설명해 주었습니다:
하네스는 모델을 위해 구축하는 도구 상자에 불과합니다. 이는 LLM을 감싸서 환경과 안정적으로 상호작용할 수 있게 하는 결정론적 스크립트들의 집합입니다.
그는 이 방식을 사용해 반복하고, 제출하고, 스스로 검증할 수 있는 시스템을 구축하는 다른 과제를 해결했습니다. 핵심은 사전에 사양과 제약 조건을 정의하는 데 시간을 투자하고, 이후엔 위임하는 것입니다. 결정론적 도구와 충분한 로깅이 갖춰지면, 에이전트는 목표에 도달할 때까지 반복합니다.
저의 평소 접근 방식은 매우 기본적이고 프롬프트에 의존하지만, Andrew가 뛰어난 결과를 얻고 있었기 때문에 실험해 볼 의향이 있었습니다.
하네스 vs. 스킬
Inspired by that conversation, I built two versions of the same workflow to see how they handled the daily Genuary prompts.
| 접근 방식 | 위치 | 설명 |
|---|---|---|
| 1. 하네스 + 레시피 | /genuary | 쉘 스크립트가 하네스로 작동하여 스캐폴딩(폴더 생성, 일일 프롬프트 표시)을 처리하므로 에이전트가 어디로 가야 할지 추측할 필요가 없습니다. 레시피는 약 300줄이며 완전히 독립형입니다. |
| 2. 스킬 + 레시피 | /genuary-skills | 레시피는 “방법”을 스킬에 위임하기 때문에 더 간결합니다. 스킬에는 디자인 철학, 참고 자료, 예시가 포함되어 있어 에이전트가 평면 스크립트가 아니라 번들에서 지시를 “발견”하도록 합니다. |
I spent one focused session building the entire system:
- 레시피 – 일일 Genuary 출력을 생성하는 단계별 지침.
- 스킬 – 디자인 철학, 참고 자료, 예시 스니펫을 캡슐화한 재사용 가능한 지식 번들.
- 하네스 스크립트, 템플릿, GitHub Actions – 폴더 구조를 생성하고, 프롬프트를 삽입하며, 레시피/스킬을 실행하고, 결과를 커밋하는 자동화.
(이 모든 작업은 12월 방학의 조용한 시간에, 한 살 된 아이가 내 무릎에 앉아 잠든 채 진행되었습니다.)
The short‑term effort bought long‑term leverage: from that point on the system did the daily work automatically.
On Taste
자동화는 매끄럽게 진행됐지만, 결과물을 검토했을 때 모든 것이 수상할 정도로 비슷해 보였습니다.
그때 나는 “맛(taste)”을 에이전트에게 가르칠 수 없다는 논의를 떠올렸습니다. 제가 개인적으로 맛을 기르는 방법은 다음과 같습니다:
- 멋진 것을 보고 따라하기.
- 너무 많이 봐서 지겨워진 것을 알기.
- ‘좋은 맛’이라고 평가받는 사람들을 팔로우하고 그들의 패턴을 흡수하기.
저는 Goose에게 이 문제에 대해 물었습니다:
“항상 연어색 원을 그리는 걸 보았어요… 우리는 창의적이라고 했는데… 박스 밖을 생각하게 하려면 어떻게 해야 할까요?”

Goose는 자신이 가져온 p5.js 템플릿을 따르고 있었으며, 그 안에 fill(255, 100, 100)(연어색!) 값과 타원 예제가 포함되어 있었다고 답했습니다. LLM은 구체적인 예제에 크게 의존하기 때문에, 에이전트는 제 “창의적” 지시보다 코드를 더 따르고 있었습니다.
저는 템플릿에서 연어색 원을 제거하고, 더 나아가 일반적인 AI‑생성 클리셰를 완전히 금지하는 방법을 물었습니다. Goose는 토론을 검색하고 예시를 모아, AI‑생성임을 단번에 알 수 있는 패턴들의 금지 리스트를 만들어 주었습니다.
BANNED CLICHÉS
| Category | Banned Patterns |
|---|---|
| Color Crimes | Salmon or coral pink, teal & orange combos, purple‑pink‑blue gradients. |
| Composition Crimes | Single centered shapes, perfect symmetry with no variation, generic spirals. |
| The Gold Rule | If it looks like AI‑generated output, do not do it. |
권장 패턴
| 카테고리 | 권장 패턴 |
|---|---|
| 색상 승리 | 색조가 변하는 HSB 모드, 보색 팔레트, 시간이 지남에 따라 변하는 그라디언트. |
| 구성 승리 | 자발적 행동을 보이는 파티클 시스템, 투명성을 활용한 레이어드 깊이, 상호작용하는 수백 개의 요소. |
요약
창의적인 코드를 생성하는 process를 자동화할 수 있지만, 미적 “taste.”을 정의하고 큐레이션할 인간의 손이 여전히 필요합니다. 결정론적 도구(또는 잘 다듬어진 기술)와 사려 깊은 제약을 결합함으로써, 에이전트에게 탐색의 자유를 부여하면서 진부함에 빠지지 않도록 할 수 있습니다.
움직임 승리
노이즈 기반 흐름 필드, 무리/떼 행동, 유기적 성장 패턴, 변화를 가진 호흡.
영감 출처
- 자연 현상: 별새의 무리 비행, 반딧불이, 오로라, 연기, 물.
황금 규칙
그것이 즐거움을 불러일으키고 누군가가 공유하고 싶어한다면, 올바른 길을 가고 있는 것입니다.
Note: Goose는 패턴 인식을 통해 이 목록을 결정했습니다. 따라서 에이전트가 내 취향을 반영하기 위해 패턴을 사용할 수 있을지도 모릅니다—그들이 아름다움을 이해해서가 아니라, 내가 개인적으로 반응하는 것을 명시적으로 가르치고 있기 때문입니다.
나는 Andrew에게 3일 동안 만든 가장 마음에 드는 결과물을 보여주었습니다: 피보나치 수열에 따라 나열된 나비들.
그의 반응은 확인해 주었습니다:
“와, 정말 놀라운 피보나치… 네 미적 프롬프트가 궁금해. 나는 픽셀 아트와 수학적 색상 조작 쪽으로 더 많이 훈련시켰거든… 네 결과가 더 부드럽고 컴퓨터가 만든 듯한 느낌을 피하려고 한 점이 마음에 들어… 거의 폰 배경화면 수준이야, ㅋㅋ. 나비에 그 얇은 라인 아트를 어떻게 만들었어? 기본 이미지처럼 보여. 정말 멋지다. SVG를 그린 거야? 그게 어디서 나온 거야?”
내가 Goose에게 **“자연 현상”**과 **“유기적 성장”**을 특별히 보라고 지시했기 때문에, 날개의 형태에 베지어 곡선을 사용했고, 나선 위치에 따라 색상을 변형시켜 깊이를 만들었으며, 선명한 검정 대신 따뜻한 호박색‑파란색 그라디언트를 적용했습니다.
시각적 피드백 루프 확장
두 워크플로 모두 Chrome DevTools MCP 서버를 사용하므로 Goose가 출력을 보고 반복할 수 있습니다. 이 때문에 여러 인스턴스가 동일한 Chrome 프로필을 공유할 수 없는 충돌이 발생했습니다. 수동 단계를 없애고 싶었기 때문에 에이전트에게 Chrome DevTools를 병렬로 실행할 수 있는지 물어보았습니다. 해결책은 별도의 user‑data 디렉터리를 할당하는 것이었습니다.
# genuary recipe example
- type: stdio
name: Chrome Dev Tools
cmd: npx
args:
- -y
- chrome-devtools-mcp@latest
- --userDataDir
- /tmp/genuary-harness-chrome-profile
전체 화면 모드 진입
전체 화면 모드 종료
Source: …
내가 배운 것
나는 실행을 자동화하여 맛, 제약 설계, 피드백 루프를 연구할 수 있었다.
| 접근 방식 | 특징 |
|---|---|
| 헐런스 기반 워크플로 | 더 신뢰할 수 있고 효율적이며; 예측 가능한 결과를 생성하고; 지시를 충실히 따르며 일관성을 최적화한다. |
| 스킬 기반 접근 | 더 지저분하고; 더 많은 놀라움을 드러내며; 낯선 연결을 만들고; 더 많은 편집 개입이 필요하고; 파이프라인이라기보다 협업에 가깝게 느껴진다. |
이 경험을 통해 “AI vs. 인간”이라는 구도가 너무 단순하다는 것을 다시 한 번 깨달았다. 자동화는 반복과 속도를 잘 처리하지만, 맛은 여전히 제약 설정, 큐레이션, 그리고 절대 일어나서는 안 되는 일을 결정하는 데 존재한다. 나는 맛을 자동화하지 않기로 했고, 대신 시스템이 내 선호를 충분히 읽을 수 있게 만들어 그 결과가 나에게 다시 반영되도록 했다.
코드 보기
코드와 전체 전사본은 제 Genuary 2026 저장소에 있습니다. 각 날짜 폴더에는 피치, 반복, 그리고 저와 에이전트 사이의 왕복 대화를 포함한 전체 대화 기록이 들어 있습니다. 또한 Genuary 2026 사이트에서 제작물을 볼 수 있습니다.
