X Article · dex @dexhorthy · HumanLayer

/show-me: 코딩 에이전트를 위한 압축 시각 표현

에이전트가 산문 벽 대신 컴포넌트 트리·콜스택·다이어그램·diff로 대화하게 만드는 스킬 — 완역·요약·팩트체크

읽기 전에

핵심 질문 — 코딩 에이전트가 갈수록 똑똑해지는데, 왜 에이전트와의 "대화"는 갈수록 읽기 힘들어지는가? 그리고 산문(prose) 대신 무엇으로 대화해야 하는가?

멘탈 모델

인간의 시각 피질은 수백만 년간 훈련된 공짜 병렬 프로세서다 — 텍스트 분석은 비싸고, 시각 정보 처리는 거의 공짜다. 그러니 에이전트의 출력을 "장황한 산문 벽"에서 "코드의 모양(shape)을 보여주는 컴팩트한 시각 표현"으로 바꾸면, 같은 정보를 훨씬 싸게 소화할 수 있다. /show-me는 이 원칙을 스킬 하나로 패키징한 것이다: 컴포넌트 트리·콜스택·다이어그램·파일 레이아웃·수도코드·타입 시그니처·diff·HTML 목업 8종의 표현 도구.

선행 개념 — 모르면 막히는 것만

권장 읽기 순서

요약만 볼 사람 (약 3분): tl;dr 한 줄 + 설치 명령 → "my proposal: show me" 섹션(coda hale 3줄 원칙 포함) → "What's inside"의 8개 소제목만 훑고 이미지 예시 2~3장 확인 → "go try it"의 사용법 두 줄.

완독할 사람 (약 12~15분): ① 도입부의 인용 트윗 4개(yishan·Mario Zechner·Connor·/bro 스킬)로 문제의식을 체감 → ② "i am so sick of this"에서 저자의 진단(RL이 모델의 voice를 갈아냈다는 주장 — 이건 사실이 아니라 저자 의견임을 표시해두고) → ③ 8개 표현 도구를 예시 이미지와 함께 하나씩, 특히 "types and signatures"와 "diff syntax"는 program design(코드 작성 전 코드의 모양을 먼저 논의하는 단계) 관점에서 정독 → ④ mattpocockuk의 /teach 스킬 힌트와 마무리 사용법.

점검 질문

  1. 저자가 coda hale의 강연에서 빌려온 3줄 원칙(정보 분석은 힘들다 / 시각 피질은 공짜다 / 도구를 거기에 맞춰라)이 /show-me의 8개 표현 도구 각각에 어떻게 구현되어 있는지 두 가지 이상 예로 설명할 수 있는가?
  2. 저자는 이 기법이 "program design" 단계 — 에이전트가 코드를 쓰기 전에 타입·시그니처·콜스택을 먼저 논의하는 단계 — 에 특히 유효하다고 주장한다. 왜 사후 리뷰(대형 diff 탐색)보다 이 단계에서 더 큰 레버리지가 생기는가?
  3. HTML 목업/HTML 다이어그램과 나머지 텍스트 기반 표현(트리·수도코드·diff)의 트레이드오프는 무엇이며, 저자가 "Lighter and faster than HTML, good enough for most dev-work shaped problems"라고 말한 기준선은 어디인가?

Executive Summary

한 줄 요약

코딩 에이전트가 산문의 벽(walls of prose) 대신 압축된 시각 표현으로 대화하게 만들자 — 그것을 스킬 하나로 패키징한 것이 HumanLayer의 /show-me다.

저자dex (@dexhorthy, HumanLayer) — X 롱폼 아티클, 2026-08-12 게시, 캡처 시점 조회수 30만

① 문제 제기 — "코딩 에이전트의 글은 사실상 읽을 수 없다"

dex는 자신의 경험("하루에도 여러 번 겪는다")에 더해, 커뮤니티 4인의 공개 불만을 증거로 쌓는다.

dex의 진단: 에이전트는 서류상(벤치마크상) 더 똑똑해졌지만, 이 축에서의 사용 경험은 눈에 띄게 나빠졌다. 사람들이 사랑하던 Claude의 목소리·인격·"소울"은 "RL 던전에서 씻겨 나갔고", sol은 덜 오글거리지만 여전히 눈이 풀리는 전문용어의 벽을 던진다.

② 제안 — /show-me: 산문 대신 시각 표현

HumanLayer가 내부 도구로 실험하던 것을 스킬로 공개. 에이전트가 무슨 일이 벌어지는지 산문의 벽 대신 간결한 비주얼로 설명하도록 프롬프트한다. HTML 렌더링보다 가볍고 빠르며, "대부분의 개발 작업 형태 문제에는 충분히 좋다(good enough)"는 포지셔닝.

③ 이론적 근거 — Coda Hale의 직관 vs 주의력

인프라 시스템에서의 직관 vs 주의력에 관한 Coda Hale의 강연에서 영감을 받았다고 밝힌다.

정보를 분석하는 것은 어렵고 피곤한 일이다. 당신의 시각피질은 수백만 년에 걸쳐 풍부한 시각 정보를 힘들이지 않고 처리하도록 훈련됐다. 도구를 그에 맞게 최적화하라. — 도끼가 사람 손에 맞아야 쓸모 있듯, 소프트웨어는 사람의 마음에 맞아야 쓸모 있다.

④ 스킬 내부 — 8가지 시각 표현 형식

Component trees

프론트엔드 컴포넌트 트리 — 중요한 state hook·모듈 경계만 남기고 나머지는 전부 생략. dex가 2025년 12월부터 리팩토링 때 써온 기법("에이전트·팀과의 멘탈 정렬에 super helpful").

Call stacks

오케스트레이션·제어 흐름·백엔드형 문제용. Dillon Mulroy가 준 형식("내 계획은 대부분 타입/인터페이스 + 콜스택 의사코드"), Tanishq는 AST에서 콜스택을 직접 계산하는 도구까지 제작.

Diagrams

클래식. 인라인 mermaid를 지원하는 채팅이면 큰 도움 — "가끔은 여전히 슬롭이지만 보통 글 읽기보단 낫다". 팀 선호는 state diagram과 sequence diagram.

File layouts

얕은 파일 트리 + 엔트리당 책임 한 줄. "이게 어디 사는가"와 리팩토링 스코핑에 좋다.

Pseudocode

특히 알고리즘성 작업에서 실코드보다 간결하다.

Types & signatures

코드가 존재하기 전의 "코드의 형태" — 아키텍처 문서에 넣기엔 너무 내부적이지만 에이전트가 틀릴 수 있는 것들 (예: resolveTarget(items, cursor) -> ItemId | null).

Diff syntax

내용 대부분이 불변일 때 위 형식들에 diff 표기를 얹는다 — 컴포넌트 변경, 콜트리 변경, 파일 배치 변경, 상태/제어 흐름 변경 4종 예시.

HTML mockups·diagrams

"HTML이 우리 프로토타이핑에서 Figma를 대체했다." humanlayer 제품에선 에이전트 응답에 HTML을 직접 인라인 — 아니면 그냥 브라우저로 연다. @mattpocockuk의 /teach 스킬 HTML 설명서도 영감으로 인용.

⑤ 설치·사용법

⑥ Program design 단계와의 연결

이 기법이 가장 빛나는 곳은 요즘 다들 건너뛰지만 dex가 필수라 보는 program design 단계 — 에이전트가 코드를 쓰기 시작하기 전에 코드의 형태(타입·시그니처·콜스택)를 먼저 논의해야 한다는 주장. 같은 기법을 사후(post-hoc)에 대형 diff 탐색에 써서 리뷰 때 어디를 파야 할지 파악하는 용도로도 쓴다.

이 글의 성격: 1인칭 제품 소개 + 방법론 에세이 — 커뮤니티 불만을 근거로 자사(HumanLayer) 스킬/제품 설치를 유도하는 광고성이 섞여 있다.


팩트체크
B+ — 인용·레퍼런스는 전부 실명·실존으로 사실 정합성이 높지만, "시각 표현이 더 낫다"는 효용 주장은 일화적 증언 + 저자 자사 제품(HumanLayer)·자작 스킬 홍보 맥락 위에 서 있다.
검증 가능한 사실 주장(임베드 트윗 7건, 링크된 에세이·강연·스킬 레포, 인물 소개)은 전수 확인 결과 모두 실존하고 원문과 일치한다. 다만 핵심 논지 — 산문 대신 시각 표현으로 대화하면 리뷰가 빨라진다 — 는 저자와 지인들의 체감 증언이 근거의 전부이며 정량 비교는 없다. Coda Hale 강연 인용문 1건은 강연 실존은 확인했으나 정확한 문구의 텍스트 출전은 복원하지 못했다.
임베드 트윗 7건(yishan, badlogicgames, connortbot, dillon_mulroy ×2, dexhorthy, tanishqk)이 실존하며 아티클 인용과 원문이 일치한다 — 7건 전부 X 공식 syndication API로 원문 대조 확인. "Okay, I keep trying to correct Claude's gratingly awful speaking style…"(yishan), "good morning, slop gang"(badlogicgames), "am I the only one who can't read Claude's garbage writing anymore?"(connortbot), "/bro remains undefeated"(dillon_mulroy), component trees(dexhorthy 2025-12-11), pseudo-code plans + call stacks(dillon_mulroy), "call stack diffs have completely changed how I read markdown plans"(tanishqk) 모두 원문 그대로다. yishan · badlogicgames · connortbot · dillon_mulroy(/bro) · dexhorthy · dillon_mulroy(call stacks) · tanishqk
yishan은 "former CEO of reddit"이다 — Yishan Wong은 2012–2014년 Reddit CEO를 지낸 인물로 널리 확립된 사실이다(예산 내 별도 웹 재조회는 생략, 오인 위험 낮음). 계정 실존과 인용 원문은 위 syndication API 검증에 포함. x.com/yishan
Mario Zechner(@badlogicgames)는 "creator of pi"다 — 사실. pi는 Zechner가 만든 미니멀 오픈소스(MIT) 코딩 에이전트로, npm `@mariozechner/pi-coding-agent`로 배포되며 본인이 "π the shitty coding agent"라 부른다(현재 earendil-works 산하). 참고로 그는 게임 프레임워크 libGDX의 창시자이기도 하다. npmjs.com/@mariozechner/pi-coding-agent · github.com/badlogic (WebSearch 경유)
`npx skills add humanlayer/skills --skill show-me`로 설치하는 show-me 스킬이 실존한다 — 실존. humanlayer/skills 레포 README에 show-me가 등재되어 있고("Explains the current topic with concise diagrams, code-shape sketches, and focused HTML artifacts"), 설치 커맨드도 아티클 표기와 동일하다. github.com/humanlayer/skills
Matt Pocock(@mattpocockuk)의 /teach 스킬이 실존한다 — 실존. mattpocock/skills 레포의 스킬로 `npx skills add mattpocock/skills --skill teach`로 설치하며, Pocock 본인의 aihero.dev 소개 글과 X 공지가 확인된다. aihero.dev/learn-anything-with-my-teach-skill · x.com/mattpocockuk (WebSearch 경유)
hlyr.dev/wsff-gh 링크는 dex의 "Why Software Factories Fail" 에세이로 연결되며, 구현 전에 타입·시그니처·콜스택을 논의하라는 program design 섹션이 있다 — 확인. 해당 단축 URL은 humanlayer/advanced-context-engineering-for-coding-agents 레포의 wsff.md로 307 리다이렉트되고, program design 섹션이 실존한다. github.com/humanlayer/…/wsff.md
🟡 "Just as an axe must fit the human hand…" 인용은 Coda Hale의 강연에서 왔다 — 부분 확인 / 정확 출전 미복원. 강연 자체는 실존한다: Coda Hale, "The Programming Ape", Philly ETE 2012 (인간 인지에 맞게 도구를 최적화하라는 주제로, 인용의 취지와 정합). 그러나 해당 문구의 텍스트 출전은 검색으로 찾지 못했다 — 강연이 영상으로만 존재해 정확한 워딩은 영상 대조 없이는 미확인. dex의 의역이거나 강연 내 발화일 수 있으며, 문구 단위 출처는 불확실로 남긴다. youtube.com — Philly ETE: Coda Hale, The Programming Ape
⚠️ 시각 표현(컴포넌트 트리·콜스택·다이어그램)으로 대화하면 에이전트 산출물 리뷰가 훨씬 낫다 — 효용 주장은 검증 불가한 일화적 증언(저자 본인 + dillon_mulroy·tanishqk의 체감 후기)이 전부이며 정량 비교·대조군은 없다. 또한 저자 dex는 HumanLayer 창업자로, show-me 스킬과 회사 제품("AI IDE, building blocks for your software factory")이 같은 마케팅 라인 위에 있다 — 이해관계가 있는 주장으로 읽어야 한다. humanlayer.com
🟡 "에이전트 글이 읽기 힘들다 / 최근 모델의 산문이 더 나빠졌다"류의 전제 — 의견·정서 영역. 인용된 불만 트윗들(yishan·connortbot·badlogicgames)이 실존하는 것은 사실이나, 이는 "그런 불만이 존재한다"의 증거이지 모델 산문 품질 저하의 측정 증거가 아니다.

원본 (완역)

/show-me: 코딩 에이전트를 위한 압축 시각 표현

tl;dr 에이전트가 산문 벽(walls of prose) 대신 시각적으로 대화하게 만들어라.

npx skills add humanlayer/skills --skill show-me

HTML보다 가볍고 빠르며, 대부분의 개발 작업 형태 문제에는 충분히 좋다.

show-me 스킬이 생성한 압축 시각 표현 예시 커버 이미지
show-me가 만들어내는 압축 시각 표현

코딩 에이전트는 사실상 읽을 수가 없다

레딧 전 CEO:

Yishan @yishan · 2026-08-09

좋아, Claude의 거슬리게 끔찍한 말투(과장된 장황함 + 불필요한 축약이 뒤섞인 이상한 조합)를 계속 고쳐보려 하는데, 도저히 안 된다. 모델에 너무 깊이 박혀 있는 것 같다. 이 모델을 만드는 Anthropic 사람들은 하루 종일 이걸 대체 어떻게 쓰는 거지??

Okay, I keep trying to correct Claude's gratingly awful speaking style (a weird mix of over-dramatic wordiness + unnecessary terseness) and I can't. It seems to be too embedded in the model. How do all the people at Anthropic who work on this model use this thing all day??

pi를 만든 Mario Zechner:

Mario Zechner @badlogicgames · 2026-08-11

좋은 아침, 슬롭 갱(slop gang).

good morning, slop gang. https://t.co/9PD5qvuVBS Mario Zechner가 첨부한 AI 슬롭 밈 이미지

Replicas의 Connor:

Connor Loi @connortbot · 2026-07-27

Claude의 쓰레기 같은 글을 더는 못 읽겠는 게 나뿐인가? AI 특유의 말버릇 때문에 가장 기본적인 개념조차 알아들을 수 없게 된다

am I the only one who can’t read Claude’s garbage writing anymore? Like the most basic concepts become unintelligible because of its AI mannerisms

Dillon Mulroy는 모델에게 언어를 단순화해 달라고 요청하는 /bro라는 스킬까지 만들었다.

Dillon Mulroy @dillon_mulroy · 2026-07-20

/bro는 여전히 무패다

/bro remains undefeated https://t.co/T0dmAg1xRq /bro 스킬이 에이전트 응답을 단순한 언어로 재진술한 결과 스크린샷

그 내용은 이렇다:

마지막 메시지를 다시 말하라. 전문용어(jargon) 사용을 멈추고 조리 있게 말하라.
사람이 사람에게 말하듯, 더 단순하고 간결하게 진술하라.

이제 정말 지긋지긋하다

에이전트는 서류상으로는 더 똑똑해졌지만, 이 측면에서의 사용 경험은 눈에 띄게 나빠졌다

사람들이 claude에서 사랑했던 것 — 그 목소리, 그 개성, 그 "영혼"은 RL 던전에서 씻겨 내려가 버렸다

sol은 그보다는 덜 오글거리지만, 여전히 눈이 게슴츠레해지는 전문용어 벽으로 우리를 정기적으로 때린다

최근에 받은 응답 하나를 보자. 이런 일이 하루에도 몇 번씩 일어난다

에이전트가 쏟아낸 전문용어 벽 응답 스크린샷
하루에도 몇 번씩 마주치는 전문용어 벽 응답

내 제안: show me

우리는 이 문제를 개선하기 위해 — 특히 코딩용으로 — 내부 도구들을 만지작거려 왔고, 그것들을 show-me라고 부르는 스킬로 공개하고 있다.

오늘부터 humanlayer에 탑재돼 있고, 다른 코딩 에이전트에서 쓰고 싶다면 여기서 받을 수 있다:

npx skills add humanlayer/skills --skill show-me

또는 인라인 HTML과 다이어그램을 일급(first-class)으로 지원하는 humanlayer 내장 버전을 받아라:

brew trust humanlayer/humanlayer
brew tap humanlayer/humanlayer
brew install humanlayer

인프라 시스템에서 직관(intuition) vs 주의(attention)를 다룬 coda hale의 강연을 본 적이 있다면, 여기서 어느 정도 영감을 받았다:

정보를 분석하는 일은 어렵고 지치는 일이다

너의 시각 피질은 수백만 년에 걸쳐 풍부한 시각 정보를 힘들이지 않고 처리하도록 훈련되었다

도구를 그에 맞게 최적화하라

도끼가 유용하려면 사람의 손에 맞아야 하듯, 소프트웨어가 유용하려면 사람의 마음에 맞아야 한다

/show-me는 에이전트에게 산문 벽 대신 간결한 시각 자료로 무슨 일이 일어나고 있는지 설명하도록 프롬프트한다.

show-me가 산문 대신 간결한 시각 자료로 상황을 설명한 예시
show-me가 생성한 압축 시각 표현 예시

이건 프로그램 설계(program design)에 정말 좋다 — 요즘 많은 사람이 건너뛰는 단계지만, 나는 필수라고 생각한다. 에이전트가 코드를 쓰는 작업에 들어가기 전에 코드의 형태(타입, 시그니처, 콜스택)를 논의해야 한다.

같은 기법은 대형 diff를 사후(post-hoc)에 탐색해서 리뷰 때 어디를 파고들지 파악하는 데도 쓸 수 있다.

안에 뭐가 들었나

컴포넌트 트리

프런트엔드에서도 같은 아이디어다 — 중요한 state hook과 모듈 경계는 남기고, 나머지는 전부 뺀다.

state hook과 모듈 경계만 남긴 컴포넌트 트리 예시

이건 2025년 12월에 트위터에 공유했던 것이다:

dex @dexhorthy · 2025-12-11

컴포넌트를 리팩토링하고 복잡한 state와 너무 많은 useEffect를 제거할 때, claude에게 이런 컴포넌트 트리를 그려 달라고 프롬프트해 왔다. 실제 계획을 쓰기 전에 에이전트와(그리고 팀과) 멘탈을 정렬하는 데 엄청나게 유용하다

have been prompting claude to make me component trees like this when refactoring components and eliminating complex state and too many useEffects. super helpful for mental alignment with the agent (and with the team) before writing the actual plan https://t.co/GzxQa1WfAd dex가 공유한 리팩토링용 컴포넌트 트리 다이어그램

콜스택

오케스트레이션이나 제어 흐름(control-flow) 작업, 혹은 그냥 백엔드 형태의 문제라면 — dillon이 우리에게 이 "콜스택(call stack)" 형태를 알려줬다.

백엔드 제어 흐름을 표현한 콜스택 형태 예시
Dillon Mulroy @dillon_mulroy · 2026-05-28

내 "계획서"는 대체로 타입/인터페이스, 그것들이 어떻게 조합되는지, 그리고 그 경계로 이루어진 의사코드(pseudo code)처럼 생겼다

최근에는 콜스택도 넣기 시작했다 — 구현할 때 나에게도 에이전트에게도 아주 유용했다

my "plans" largely look like pseudo code composed of mostly types/interfaces, how they compose, and their boundaries ive recently started including call stacks - been very helpful for both me and agents when implementing https://t.co/SLrYX3ywqc 타입/인터페이스와 콜스택으로 구성된 Dillon Mulroy의 계획서 예시

Tanishq는 AST에서 곧바로 콜스택을 계산해 내는 도구까지 만들었다

Tanishq (tk) @tanishqk · 2026-08-07

콜스택 diff가 내가 마크다운 계획서를 읽는 방식을 완전히 바꿔놨다

고마워요 @dillon_mulroy

call stack diffs have completely changed how I read markdown plans thank u @dillon_mulroy https://t.co/kYFucQV4bM AST에서 계산한 콜스택 diff 도구 출력 스크린샷

다이어그램

클래식이다. 채팅 인터페이스가 인라인 mermaid를 지원한다면 큰 도움이 된다. (가끔은 여전히 슬롭이지만, 보통은 글을 읽는 것보단 낫다)

채팅 안에 인라인으로 렌더된 mermaid 다이어그램 예시

선택지는 많다. 우리는 상태 다이어그램(state diagram)과 시퀀스 다이어그램(sequence diagram)을 가장 좋아한다.

상태 다이어그램과 시퀀스 다이어그램 예시

파일 레이아웃

얕은 파일 트리에, 항목당 책임 한 줄. "이건 어디에 사는가" 질문과 리팩터 범위 잡기(scoping)에 좋다.

항목당 책임 한 줄이 달린 얕은 파일 트리 예시

의사코드 (pseudocode)

특히 알고리즘 관련 작업에서는 의사코드가 더 간결할 수 있다.

알고리즘을 간결하게 표현한 의사코드 예시

타입과 시그니처

코드가 하나도 존재하기 전의 코드의 형태 — 아키텍처 문서에 넣기엔 너무 내부적이지만, 에이전트가 여전히 틀릴 수 있는 것들이다.

interface Item {
  id: ItemId
  parentId: ItemId | null
  // ...
}

interface Cursor {
  position: ItemId
  direction: 'up' | 'down'
  // ...
}

resolveTarget(items: Item[], cursor: Cursor) -> ItemId | null

diff 문법

내용 대부분이 그대로라면, 여기에 diff 문법을 쓸 수도 있다:

컴포넌트 변경이라면:

diff 문법으로 표현한 컴포넌트 변경 예시

콜 트리 변경이라면:

diff 문법으로 표현한 콜 트리 변경 예시

파일 레이아웃 변경이라면:

diff 문법으로 표현한 파일 레이아웃 변경 예시

그리고 형태가 실제 코드가 아니라 의사코드인 상태·제어 흐름 변경이라면:

의사코드 위에 diff 문법으로 표현한 상태·제어 흐름 변경 예시

HTML 목업

우리 프로토타이핑 작업의 상당 부분에서 HTML이 figma를 대체했다. (솔직히 말하면 나는 애초에 figma를 그렇게 잘 다루지도 못했다)

figma 대신 HTML로 만든 프로토타입 목업 예시

HTML 다이어그램

때로는 다이어그램이나 설명 페이지(explainer)가 딱 필요한 것일 때가 있다.

humanlayer에서는 에이전트가 어시스턴트 응답 안에 HTML을 직접 포함할 수 있게 한다.

어시스턴트 응답 안에 직접 렌더된 HTML 다이어그램

물론 그냥 브라우저에서 열어 볼 수도 있다.

브라우저에서 직접 연 HTML 다이어그램 화면

다른 영감들

그의 /teach 스킬이 생성하는 HTML explainer에 대해 @mattpocockuk에게도 경의를 표하고(hat tip) 싶다 — 아주 훌륭하다.

Matt Pocock의 /teach 스킬이 생성한 HTML explainer 예시

가서 써봐라

npx skills add humanlayer/skills --skill show-me

스킬을 설치한 뒤 /show-me를 호출하거나 에이전트에게 show-me 스킬을 쓰라고 요청하라. 라우트, 서비스, 기능, 풀 리퀘스트, 지금 다루는 주제를 겨냥해도 되고, 그냥 모델에게 질문이나 진술을 다시 말해 달라고 하는 데 써도 된다.

this is too much content. show me. (내용이 너무 많아. 보여줘.)

또는

/show-me as an html explainer (HTML explainer로 보여줘)

어떻게 생각하는지 알려달라! 결과물이나 커스터마이즈/추가한 내용과 함께 @humanlayer_dev@dexhorthy를 태그해 달라 — 같이 리프(riff)해 보자!

마무리 GIF (영상)


기타