# ip-as-logo

> 코드가 한 줄도 없는 스킬입니다. 핵심 발명이라 본 두 기둥 중 하나는 에이전트가 읽지 않는 파일에만 있었고, 나머지 하나는 45시간에 네 번 바뀐 값이었습니다.

- 수치: 기법 7 → 0
- 사람이 보는 화면: https://aitryed.com/ko/teardowns/harness/ip-as-logo-skill/
- 반대 언어: https://aitryed.com/en/teardowns/harness/ip-as-logo-skill/index.md
- 저장소: https://github.com/s1dashu/ip-as-logo-skill
- 이 사이트 안내(AI용): https://aitryed.com/ko/llms.txt

---

**코드가 한 줄도 없는 도구입니다. 파일 다섯 개에 실행되는 코드 0줄 — 실체는 «지시문 114줄 한 장»입니다. 그래서 「도구라는 게 최소 얼마나 작을 수 있나」를 보기에 제일 좋은 표본이었습니다.**

> **[도판]** 파일 다섯 개를 세는 것으로는 이 물건이 안 보인다. 지시문 한 장이 곧 제품이고, 실행 주체는 전부 호스트 에이전트다.
>
> 이 스킬의 구조. 제품 본체는 지시문 한 장이고, 그 안에 13단계 워크플로와 인도 규칙이 들어 있다. 워크플로가 만드는 후보 여섯 장은 자유 생성이 아니라 방향 셋에 변형 둘을 붙이고 좌하단과 우하단을 라벨로 미리 배정한 결과다. 다만 대표 발명 하나는 SKILL.md가 아니라 README에만 있어 실행되지 않는다.

## 이 물건이 하는 일

**회사나 서비스의 마스코트 캐릭터를 AI에게 그리게 하는 지시문**입니다.

받는 것은 이게 전부입니다.

| 파일 | 무엇 |
|---|---|
| 지시문 한 장 (114줄) | **이게 제품 전부** |
| 자랑용 그림 한 장 | 713KB — **창고 용량의 96%** |
| 나머지 셋 | 설명문 등 |

**실행 코드 0줄, 필요한 부품 0개**입니다. 그래서 「설치」는 **파일 복사**이고, 「버그 수정」은 **문장 고치기**이고, 「새 판 출시」라는 개념 자체가 없습니다.

## 제일 배울 만했던 것 — 「예쁘게」를 숫자로 적었습니다

디자인 지시는 보통 형용사로 씁니다. 「깔끔하게」 「단순하게」 같은 말입니다. 그러면 **사람마다 다르게 읽고, AI는 더 다르게 읽습니다.**

이 지시문은 **숫자로 적었습니다.**

| 무엇 | 숫자 |
|---|---|
| 겉모양을 이루는 큰 덩어리 | **4~7개** |
| 그 종(種)임을 알려 주는 특징 | **1개 이하** |
| 안쪽 색 영역 | **2개 이하** |
| 화면을 채우는 비율 | **85~95%** |

그리고 마지막에 판정 기준을 붙입니다 — **「아주 작게 줄였을 때 안 보이면, 키우거나 합치거나 지워라.」**

이게 좋은 이유는 **누가 봐도 같은 답이 나오기** 때문입니다. 「덩어리가 9개네 → 위반」은 다툴 여지가 없습니다.

## 또 하나 — 「이게 로고라고 말하지 않는다」

가장 영리했던 부분입니다.

창고 이름에 「로고」가 들어 있는데, **AI에게는 결과물을 절대 「로고」라고 부르지 않습니다.**

이유가 이렇습니다. 「로고 그려 줘」라고 하면 AI가 **로고처럼 생긴 것**을 만들려고 합니다 — 테두리를 두르고, 배경 카드를 깔고, 글자를 얹습니다. **그런 건 나중에 다 걷어내야 합니다.**

그래서 **목적을 숨기고 그림만 시킵니다.** 그러면 순수하게 캐릭터만 나옵니다.

→ **AI에게 «무엇을 만들지»를 알려 주면, 그 단어에 딸린 관습까지 같이 따라옵니다.**

## 제일 이례적이었던 것 — 「검사하지 마라」

보통은 결과물을 확인하고 안 좋으면 다시 시킵니다. 이 지시문은 그걸 **전부 금지**합니다.

| 금지된 것 |
|---|
| 결과물 검사 |
| 등급 매기기 |
| 다시 시키기 |
| 후처리로 고치기 |

나온 것을 **라벨만 붙여서 그대로** 넘깁니다.

근거 문장이 이렇습니다 — **「생성은 «제비뽑기»이지 «시험»이 아니다.」**

그리고 처음부터 이랬던 게 아닙니다. **검사 단계가 있었는데 이틀 만에 스스로 걷어냈습니다.** 해 보고 나서 내린 결정입니다.

## 그런데 제가 「핵심 발명」이라고 꼽은 것이 헛것이었습니다

여기가 이 편에서 값을 치른 자리입니다.

저는 규칙 하나를 이 물건의 핵심이라고 적었습니다 — **「캐릭터의 95~100%는 친숙한 동물이어야 한다.」**

그런데 확인해 보니 **그 규칙이 «AI가 읽는 파일»에 한 글자도 없었습니다.**

| 어디에 있나 | AI가 읽나 |
|---|---|
| 설명문(README) | **안 읽음** |
| 지시문(SKILL.md) | 읽음 — **그런데 여기엔 그 규칙이 없음** |

더 나쁜 건, 지시문 쪽은 **오히려 반대 취지**로 적혀 있었습니다. 동물·로봇·유령·식물·사물을 **동등하게** 나열하고 있었습니다.

즉 **설명문에 있고 실제 물건에 없으면, 효과는 0입니다.**

이게 이 칸에서 반복되는 교훈입니다 — **「적혀 있다」와 「돈다」는 다릅니다.** 그리고 이번엔 **어느 파일에 적혔는지**까지 봐야 했습니다.

## 나머지 기둥 하나도 무너졌습니다

제가 꼽은 또 하나는 **위의 숫자 예산**이었습니다. 그런데 변경 이력을 보니 그 숫자들이 **45시간 안에 네 번 바뀌었습니다.**

**네 번 바뀐 값은 근거가 아니라 아직 정해지지 않은 값**입니다. 인용하면 안 됩니다.

덧붙이면 — 이 창고의 커밋 29개가 **전부 45시간 안에** 몰려 있고 **그 뒤로 멈췄습니다.** 「좋아요」는 3,481개인데 **계속 지켜보는 사람은 3명**입니다.

## 그리고 기각 사유는 취향이 아니었습니다

**제 컴퓨터에 이미지 생성 도구가 0개입니다.**

확인 방법도 적어 둡니다. 제 도구 99개의 지시문 전문을 이미지 생성 관련 낱말로 훑었더니 **8건이 걸렸는데 전부 오탐**이었습니다 — 다른 단어 안에 우연히 그 글자가 들어 있었을 뿐입니다.

그래서 **설치해도 부를 곳이 없습니다.** 좋고 나쁘고 이전의 문제입니다.

## 제 것과 대 봤더니 — 셋 다 제 쪽이 이미 앞서 있었습니다

| 저쪽 기법 | 제 대응물 | 결과 |
|---|---|---|
| 숫자로 된 상한 | 제 배포 검사 장치 — 숫자 상한 **10종** + **그 숫자를 왜 그렇게 잡았는지 주석에 재유도** + 넘으면 배포 차단 | **제 쪽이 위** |
| 결과물 검사를 없앰 | 제 생성기 — 확률적 결과물에 **검사 3종**을 걸고 통과 못 하면 리포트에 못 들어감 | **방향이 정반대** |
| 질문 횟수 제한 | 제 「이해」 도구 — 질문 **최대 1개**, 명백하면 아예 안 물음 | **제 쪽이 더 강함** |

두 번째 줄이 재미있습니다. **저쪽은 검사를 없애는 게 답이라 했고, 제 쪽은 검사를 거는 게 답이었습니다.**

둘 다 맞습니다. **저쪽 결과물은 그림**이라 「맞다/틀리다」가 없고, **제 결과물은 도표**라 좌표가 어긋나면 틀린 것입니다. **결과물의 성격이 다르면 반대 처방이 둘 다 옳습니다.**

## 여기부터는 자세한 기록입니다

**코드가 한 줄도 없는 레포입니다.** 파일 5개, 실행 코드·테스트·의존성 0, 실체는 이미지 생성 에이전트에게 마스코트를 그리게 하는 지시문 114줄 한 장입니다. 그래서 「스킬이라는 물건의 최소 단위」를 보기에는 제가 뜯어본 것 중 가장 좋은 표본이었습니다. 그런데 제가 핵심 발명이라고 세운 두 기둥 중 하나는 **`README.md` 에만 있고 `SKILL.md` 에는 한 글자도 없었습니다** — 에이전트가 읽는 것은 `SKILL.md` 한 장이므로 런타임 효과가 0입니다. 나머지 하나인 숫자 예산은 45시간 안에 네 번 뒤집힌 값이었습니다. 판정은 기각이고, 사유는 취향이 아니라 **이 PC에 이미지 생성 도구가 0개라 설치해도 부를 곳이 없다**는 것입니다.

## 무엇을 하는 물건인가 — 제품이 문장 114줄뿐이다

**Agent Skills 포맷을 따르는 스킬 하나입니다.** `SKILL.md` 와 프론트매터가 전부이고, 파서도 검증기도 후처리기도 스타일 레퍼런스 이미지도 없습니다. 그래서 「설치」는 파일 복사이고 「버그 수정」은 문장 수정이며, 릴리스라는 개념 자체가 없습니다.

| 항목 | 실측 (2026-08-22) |
|---|---|
| 파일 | 5개 · 체크아웃 739,374 B — 그중 **96%가 쇼케이스 이미지 한 장**(713 KB, 런타임 역할 0) |
| 제품 본체 | `SKILL.md` 114줄 / 16,976 B. 13단계 워크플로 + 8줄 프롬프트 스켈레톤 |
| 코드 | **0줄.** GitHub languages API 응답이 `{}` 빈 객체 |
| 의존성 | 0. 런타임 의존은 「호스트 에이전트가 이미지 생성 도구를 갖고 있을 것」 하나뿐 |
| 규모 | 별 3,481 · 포크 171 · **watch 3** · 기여자 1 · 외부 기여 PR 0 |
| 판본 | 릴리스 0 · 태그 0 · CHANGELOG 0 — 사용자는 커밋 시각으로만 판본을 가른다 |
| 수명 | 커밋 29개가 **45시간**에 몰려 있고 그 뒤로 정지 |

**동작 규칙은 워크플로 13단계에 다 들어 있습니다.** 주제가 없고 현재 워크스페이스가 제품 레포면 README·패키지 메타데이터·랜딩 카피를 읽기 전용으로 훑고 → 그래도 부족하면 배경 질문을 **한 라운드만** 묶어 던지고(2차 질문지는 금지) → 한 줄짜리 방향 3개를 제시한 뒤 **동의 전에는 생성하지 않습니다.** 승인이 떨어지면 방향당 변형 2개, 총 6장을 만듭니다.

프롬프트도 `Background / Subject / Complexity / Color behavior / Composition / Style / Finish / Constraints` **8줄 고정 포맷**으로 통째로 박혀 있습니다. 즉 이 레포의 정체는 **검증된 프롬프트 한 덩어리 + 그것을 언제 어떻게 쏘는지에 대한 절차서**입니다.

## 대표 기법 — 미학을 형용사가 아니라 숫자로 적는다

| 기법 | 내용 |
|---|---|
| **복잡도 예산** | 외곽 실루엣 = 큰 도형 4~7개, 종 식별 특징 ≤1, 내부 색 영역 ≤2, 캔버스 점유 85~95%. 끝에 「32×32에서 안 읽히면 키우거나 병합하거나 삭제하라」는 축소 판정을 붙입니다 |
| **3색 시맨틱 팔레트** | 색을 픽셀이 아니라 **의미 단위로** 셉니다. 명도·채도 변주는 "같은 색 패밀리 안의 부수 변동"이라 위반이 아니라고 명시합니다 |
| **코너 이머전스 + 결정론적 배정** | 캐릭터를 중앙이 아니라 좌·우 하단 모서리에서 솟게 하고, 배치를 감각이 아니라 라벨로 정합니다(A1·B1·C1 = 좌, A2·B2·C2 = 우). 홀수 배치는 남는 한 장의 불균형을 보고서에 적게 합니다 |
| **용도 은닉 프롬프트** | 레포 이름이 ip-as-logo인데도 모델에게 결과물을 `logo`·`brand mark`·`app icon` 이라 **절대 부르지 않습니다.** 목적을 알리면 모델이 카드·프레임·마스크·텍스트를 얹는 쪽으로 끌려간다는 판단입니다 |
| **제약 전달 라우팅** | 부정 제약을 모델 세대별로 다른 채널로 보냅니다 — 최신 모델은 본문 `Constraints:` 한 줄, `negative_prompt` 를 노출하는 구형은 전용 파라미터로 보내고 본문 줄은 삭제(중복 전달 금지) |
| **원패스 무검열 인도** | 가장 이례적입니다. 결과물을 검사하거나 등급을 매기거나 재시도하거나 후처리로 고치는 것을 **전부 금지**하고, 반환된 것을 라벨만 붙여 그대로 넘깁니다 |

무검열 인도의 근거 문장은 이 한 줄입니다 — *"Treat generation as a stochastic draw, not a conformance test."* 처음부터 그랬던 게 아니라 **검수 루프를 이틀 만에 스스로 걷어낸 결과**입니다.

**이 절에서 값을 치른 교훈 — 숫자를 적는 것과 숫자를 강제하는 것은 다른 일입니다.** 4~7개도 85~95%도 전부 자연어로 확률적 모델에 던지는 목표치이고, 준수를 세는 코드는 0줄입니다. 저자 본인이 절 제목을 "What it enforces"에서 **"What it guides"** 로 바꿔 강제가 아님을 인정했습니다.

## 깨본 결과 — 핵심 발명 하나가 에이전트가 읽지 않는 파일에 있었다

**「개방형 배치의 95~100%는 친숙한 동물이어야 한다」는 규칙이 `SKILL.md` 에 없습니다.** grep 결과 `animal` 은 두 곳뿐인데, 프론트매터는 동물·로봇·유령·식물·사물을 **동등하게** 나열하고 본문 18행은 *"이유 없는 동물 세 마리를 늘어놓지 말라"* 로 오히려 반대 취지입니다. `95`·`clock`·`vehicle` 은 0회. 그 규칙은 `README.md` 에만 있고, README 자신이 밝히는 대로 에이전트가 로드하는 것은 `SKILL.md` 한 장입니다. **문서에 있고 아티팩트에 없으면 런타임 효과는 0입니다.**

**「32×32에서 읽혀야 한다」는 요구는 판정 장치가 없는 게 아니라 있다가 지워졌습니다.** 이전 판본에는 11항목짜리 「비권장으로 표시할 때」 체크리스트가 있었고 그 첫 줄이 *"작은 크기에서 무너진다"* 였습니다. 한 커밋이 그 절과 재시도 루프를 통째로 삭제하고 「인도 규칙」으로 교체했습니다. 지금은 같은 파일 안에서 41행(작으면 병합하거나 삭제하라)과 113행(디테일·구도를 이유로 인도를 막지 말라)이 **서로를 무효화**합니다.

**호환성 주장도 안 버텼습니다.** README는 지원 에이전트 7종을 나열하는데, 같은 README가 지정한 **유일한 설치 명령**의 CLI 정본 타깃 목록에 그중 넷이 아예 없습니다. 반대로 설치 가능한 대다수 타깃에는 README가 필수라고 못 박은 「이미지를 에셋으로 반환하는 내장 생성기」가 없습니다. 실제 교집합은 두 종 정도이고, 열린 이슈의 현장 보고와 일치합니다.

**그리고 자기 발등을 찍은 자리가 있습니다.** 「용도를 부르지 말라」 규칙에 저자 스스로 *"이 규칙은 생성 프롬프트에만 적용된다"* 고 범위를 한정해 놓고, 같은 커밋에서 **프론트매터 `description` 의 logo·mascot·app-icon 을 전부 지웠습니다.** 그 문장은 에이전트가 스킬 자동 호출을 판정하는 유일한 텍스트입니다. 「로고 만들어줘」에 걸릴 키워드가 하나도 없습니다.

**버틴 것도 적어 둡니다.** 별 3,481 · 포크 171 · watch 3 은 실측과 일치했고 체크아웃 739 KB 산정도 그대로였습니다. 1차에 제가 *"외부 이슈 3건 전부 미응답"* 이라고 쓴 것은 **정정합니다** — 유지보수자는 세 건 모두에 답글을 달았고, 다만 협업 제안에만 반응하고 **기술 결함 2건만 골라 답하지 않았습니다.** 「방치」가 아니라 「선택적 회피」이고, 이 구분이 있어야 판정이 날카로워집니다.

> **[도판]** 깨진 것은 숫자의 참·거짓이 아니라 그 숫자가 실행되는지 여부였다. 이중 정본은 반드시 갈라진다.
>
> 레포가 내건 규칙 다섯 개를 실행 아티팩트에서 직접 확인한 결과. 동물 규칙은 SKILL.md에 0회이고 README에만 있으며, 32×32 요구는 판정 체크리스트를 스스로 지웠고, 지원 에이전트 7종 중 넷은 설치 CLI 목록에 없으며, 캔버스 점유 값은 45시간에 네 번 바뀌었고, 저장 경로를 보고하라면서 저장 위치를 지정하는 문장은 없다.

## 내 환경에 대봤다 — 설치해도 부를 곳이 없다

**이 스킬의 유일한 런타임 의존이 제 PC에서 성립하지 않습니다.** 제 스킬 99종의 `SKILL.md` 전문을 이미지 생성 관련 낱말로 훑었더니 히트가 8건 나왔는데 **전부 오탐**이었습니다 — `dall` 이 `ReadAll`·`findAll` 안에 걸린 것이었습니다. 로컬 diffusion 스택 0, 세션 툴 로스터에 생성 도구 0. 설치해도 호출 지점이 없습니다.

남은 지적 자산은 대봤더니 이미 제 쪽이 더 셌습니다.

| 대상의 기법 | 제 대응물 | 결과 |
|---|---|---|
| 복잡도 예산 (숫자 상한) | 개인사이트 `scripts/check-weight.mjs` — 숫자 상한 10종 + **숫자의 유도 근거를 주석에 재유도**해 둠 + 초과 시 `exit 1` 로 배포 차단 | 상위호환 |
| 출력 검수 게이트 (스스로 삭제) | 마인드맵 생성기 `check.py` — 확률적 산출물에 결정론 검사 3종, `RESULT: PASS` 아니면 리포트에 못 들어감 | 방향이 정반대 |
| 질문 1라운드 상한 | 「이해」 스킬 `SKILL.md` — 캘리브레이션 질문 **최대 1개**, 명백하면 묻지 않음. 게다가 명시 호출 전용이라 평상시 질문이 0 | 이미 더 강함 |
| 레포 컨텍스트 선흡수 | 전역 룰 15종이 세션 시작 시 본문째 주입 + 프로젝트 `CLAUDE.md` 가 `DESIGN.md` 를 import | 지시가 아니라 배선 |

**대상은 숫자를 적었고 저는 숫자를 강제합니다.** 차이가 어디서 오는지도 실측으로 보입니다 — 이 레포는 가장 정량적이었던 색 밴드(OKLCH 범위·대비비 목표)를 도입 **12.5시간 만에** 지웠는데, 삭제 사유가 어디에도 없습니다. 효과가 없어서 뺀 건지 모델이 무시해서 뺀 건지 알 수 없으니, 반년 뒤 같은 조사를 다시 하게 됩니다.

**산출물이 들어갈 자리도 없습니다.** 이 사이트의 디자인 계약서는 *"카드에 사진을 쓰지 않는다"* 와 *"본문 도판은 전부 인라인 SVG"* 로 잠겨 있고, `public/` 실물은 favicon 327 B 와 공유 카드 2장이 전부입니다. 1536×1536 래스터 마스코트를 얹을 지점이 없습니다. 부수 리스크도 하나 — 이 스킬의 `description` 은 415자인데 `logo`·`mascot`·`brand`·`icon` 이 **하나도 없습니다.** 상시 토큰만 내고 안 뜰 물건입니다.

## 그리고 수확 1종마저 사라졌다 — 제 로그가 이미 답을 냈습니다

**1차에는 하나를 남겼습니다.** 「후보 팬아웃 시 변수 하나만 바꾸고 라벨로 자리를 미리 배정한다」를 제 후킹 플레이북에 절로 넣겠다고 적었습니다. 이득 진술은 *"지금은 채택한 문장만 남고 무엇을 바꿔서 이겼는지가 안 남아, 30여 호를 발행하고도 훅 유형별 성과를 못 센다"* 였습니다.

**그 진술이 거짓이었습니다.** 발행로그를 열어 보니 호마다 훅 유형이 라벨로 적혀 있고, 처음 쓰는 유형인지를 `(미사용)` 태그로 25회 표시하며, *"형식·편수 동시 변경 — 단일 변수 아님"* 같은 단일변수 규율이 명문으로 돌아가고, 상위 10개 표에서 **문형 단위로 성과를 이미 집계**하고 있었습니다. 별이 많을수록 조회가 낮게 배열되는 것을 보고 *"별을 사회적 증거로 세우는 전략은 기각한다"* 고 적어 둔 가설 기각까지 남아 있습니다. 더 나쁜 것은 제가 제안한 실험 축이 **이미 저수익으로 판정난 축**이었다는 점입니다 — 훅·형식·편수·토픽을 항목별로 맞춘 의도적 복제 2표본이 **1.8만 대 423, 43분의 1** 이었습니다.

**이 편에서 제일 비싼 사실은 대상에 관한 것이 아니라 제 자산에 관한 것입니다 — 남의 레포에서 배우려던 것을 저는 이미 30여 호치로 하고 있었고, 그 축적이 낸 결론은 「훅을 바꿔봐야 소용없다」였습니다.** 반대편에서 같은 병이 보입니다. 대상은 자기 수치를 사유 한 줄 없이 지웠고, 저는 제 기록을 남겨 놓고도 안 읽어서 남의 것을 사 오려 했습니다. **기록을 남기는 것과 그 기록을 읽는 것은 다른 일입니다.**

## 판정

| 항목 | 판정 |
|---|---|
| 스킬 설치 | **기각** — 유일한 런타임 의존(이미지 생성 도구)이 이 PC에 0개 |
| 복잡도 예산 | **기각** — `check-weight.mjs` 가 상위호환(강제 코드 + 유도 근거) |
| 질문 1라운드 상한 · 컨텍스트 선흡수 | **기각** — 이미 더 강하게 배선돼 있음 |
| 원패스 무검열 인도 | **반면교사** — 제 게이트는 전부 fail-closed 다 |
| 용도 은닉 프롬프트 | **보류** — 중복이 아니라 **적용할 표면이 없다.** 제 카드 파이프라인은 HTML 렌더라 프롬프트 표면 자체가 0 |
| 후보 팬아웃 라벨링 | **채택 → 기각** — 제 발행로그가 이미 하고 있었고, 그 축은 이미 저수익 |

**실행 항목 0건입니다.** 남는 것은 재개 조건뿐입니다 — ①이 PC에 이미지 생성 경로가 생길 때. 그때 잴 것은 「프롬프트 스켈레톤만 복붙」 대 「스킬 설치」의 결과 차이입니다. ②제 게임 쪽에 마스코트·아이콘 수요가 실제로 생길 때. 게임은 이 사이트의 도판 정책 밖이라 기각 사유 하나가 풀립니다. ③상류가 판본 개념을 갖출 때. 반대로 **별 수가 늘어나는 것은 재개 신호가 아닙니다** — 이 조사 동안에도 별은 3,480 → 3,487 로 늘었지만 watch 3, 기여자 1, 외부 PR 0 은 미동도 없었습니다.

**못 한 것을 적어 둡니다.** 이미지를 **한 장도 뽑아 보지 못했습니다.** 그래서 이 레포의 핵심 주장(도형 4~7개·3색·캔버스 점유 85~95%가 실제로 지켜지는가)은 **표본 0으로 남습니다.** 대상도 안 쟀고 저도 못 쟀습니다 — 이 페이지가 확인한 것은 「규칙이 실행 아티팩트에 있는가」이지 「그 규칙이 그림에 먹히는가」가 아닙니다. 배포 사이트는 클라이언트 렌더링이라 이용약관 본문을 기계로 가져오지 못했고, 사이트 소스는 비공개 레포로 분리돼 감사할 수 없었습니다. **생성 이미지의 권리는 레포의 MIT 가 아니라 각자가 붙인 이미지 모델의 약관이 정합니다** — 그 사실이 레포 어디에도 고지돼 있지 않습니다.
