출처: GitHub 1위 개발자가 만든 새로운 Claude 스킬이 대단한 이유입니다 · 길이: 11:31 · 채널: Tech Bridge · 공개: 2026-08-20 (영상 내 Source 표기) 자막: YouTube 영어 자동자막 및 한국어 자동 번역(ko/en). 명백한 음성인식·번역 오류(예: “상담원/요원”→에이전트, “Codeex”→Codex, “결제 에이전트”→코딩 에이전트)는 문맥에 맞춰 보정했다. 주의: Unlazy의 효과·성능 주장(완료 강제, 병렬 시 10에이전트 2시간 완성 등)은 영상이 소개한 제작자와 채널의 테스트 사례다. 독립 검증 수치가 아니라 운용 경험담으로 읽어야 한다.

개요

영상은 AI 에이전트가 장시간 작업에서 보이는 두 가지 게으름 — 검토를 제대로 하지 않고 완료했다고 보고하는 경우와, 어려운 부분을 조용히 빼고 요약에서도 숨기는 경우 — 이 왜 생기는지에서 출발한다. 원인은 모델의 내장 메모리가 없고 매 턴마다 이전 대화 전체를 다시 전송해 컨텍스트가 쌓일수록 주의력이 분산되기 때문이라고 설명한다.

이 문제를 풀기 위해 GitHub 트렌딩 개발자 1위 Leonxlnx(taste-skill로 알려진 디자이너 스킬의 제작자)가 만든 Unlazy(unlazy, v2)가 등장한다. 핵심은 에이전트에게 “더 열심히 하라”고 말하는 대신, 완료 여부를 파일에 적힌 원장(ledger)으로 증명하게 만드는 것이다. 작업을 트리 형태로 분해하고, 각 과업마다 실행 가능한 검사 명령과 예상 출력 단어를 함께 적어둔 게이트(gate) 파일을 두며, 검사를 통과하기 전에는 완료를 선언할 수 없게 한다. 영상 후반은 이 스킬을 그대로 쓰면 왜 느려지는지(직렬 분배 병목), 그리고 Tech Bridge가 어떻게 병렬·파일 소유 명시로 고쳐 10명의 서브에이전트를 2시간 동안 돌려 데모 앱 v1을 완성했는지를 보여준다.

한눈에 보는 요약

  • 에이전트 게으름은 “다 봤다”는 거짓 보고와 “어려운 1개 빼고 쉬운 4개만 만들고 숨기기” 두 형태로 나타난다. 둘 다 미완성 위에 쌓이는 빚이 된다.
  • Ralph Loop(결승 문구를 에이전트가 직접 쓰기), /goal 심판 모델(대화를 읽어 판단)이 오래 돌면 무너지는 이유를 짚고, Unlazy가 “파일에 적힌 게이트를 명령으로 실행해 증명”하는 구조로 그 틈을 메운다고 소개한다.
  • Unlazy는 큰 작업을 Depth Tree로 재귀 분해한다. 깊이 숫자를 프롬프트에 지정하며, 각 리프는 10분 이상 실제 작업이어야 하며 그보다 잘게 쪼개지면 스킬이 자동으로 깊이를 낮춘다.
  • 깊이 3 이하 → Solo(한 세션, 하나의 GATES.md), 4 이상 → Orchestrated(PLAN.md + gates/ 아래 리프별 게이트 파일, 서브에이전트에 좁은 브리프만 전달)로 동작이 갈린다.
  • 각 게이트는 체크박스 + 달성 조건 아래에 검증 명령 / 예상 단어 / 증거 세 줄이 붙는다. 검사가 예상 단어를 포함해야 체크되며, 체크된 채 심사 중(pending)이 남아 있으면 빈 칸보다 더 나쁜 위반으로 다뤄진다.
  • 오케스트레이션에서 메인 에이전트는 서브에이전트의 보고를 믿지 않고 게이트를 재실행한 뒤에만 플랜에 한 줄을 적고 다음 과업을 준다. 불가능한 게이트는 포기 사유를 보고서에 명시하는 “정직한 포기” 경로가 있다.
  • 설치는 npx skills add Leonxlnx/unlazy 한 줄이며, 스킬 본체는 .agents/skills/unlazy에 두고 .claude는 바로가기로 연결한다. 그대로 쓰면 직렬 분배 탓에 3~4시간에 로그인 페이지만 나와, 영상은 PLAN.md작업별 담당 파일을 먼저 적어 동시 편집 충돌을 막고 준비된 리프를 일괄 분배하는 수정을 더한다. 이 상태에서 모델 라우터와 짝지으면 값싼 모델에 기계적 작업을, 강한 모델에 난이도 높은 작업을 보낼 수 있다.

핵심 한 줄: Unlazy는 “다 했다”는 말을 믿지 않고, 트리로 쪼갠 과업마다 파일에 적힌 검사 명령을 실행해 원장 위에서 증명될 때만 완료를 인정하는 실행 규율이다.

장면별 상세 설명

[00:15] 1. GitHub 트렌딩 1위 Leonxlnx — 맛집 스킬 만든 사람이 풀었다

장면 1 — Leonxlnx가 taste-skill로 GitHub Trending Developers 1위에 오른 화면

영상은 “AI 모델에는 근본 문제 — 맡기면 절대 스스로 책임을 지지 않는다”는 문장으로 연다. 이어 GitHub Trending Developers 1위 Leonxlnx를 보여주며, 이 사람이 인기 디자인 스킬인 taste-skill의 제작자이기도 하며 이번에는 에이전트 게으름을 푸는 unlazy를 내놨다고 소개한다. 소스는 2026.08.20 AI LABS 자료 화면으로, 순위 1 Leonxlnx, 2 m-tanaka(quietkit), 3 sofia-vdb(stagehand)가 보인다. 영상은 Unlazy의 워크플로가 창의적이지만 직접 써 보니 속도 병목이 있어 이를 어떻게 고쳤는지까지 다루겠다고 예고한다.

[01:20] 2. Unlazy 한 줄 정의 — 약속이 아니라 원장으로 증명

장면 2 — unlazy README의 핵심 문구: You do not promise you are done. You prove it against a ledger.

GitHub README 발췌 슬라이드다. 상단 An anti-laziness skill for AI agents. v2: enforced, not requested. 아래에 “v1은 더 열심히 하라 했지만, v2는 반쪽짜리가 구조적으로 드러나게 만든다 — 게이트가 파일에 살고, 검사가 명령으로 실행되며, 게이트가 남으면 완료 선언을 막는 훅이 있다”는 설명이 이어진다. 하이라이트는 You do not promise you are done. You prove it against a ledger.이며, 호환 표기로 Claude Code, OpenAI Codex, Cursor and anything else that reads SKILL.md가 적혀 있다. “하드 강제(Stop hook)는 Claude Code 전용, 나머지는 일반 마크다운과 Node”라는 단서도 보인다. 채널 자막은 이를 “모든 항목이 실제 완료 증거를 요구하는 체크리스트인 원장을 기준으로 작업을 검증한다”고 옮긴다.

[02:40] 3. 게으름 유형 ① — 일부만 열어보고 다 봤다고 보고

장면 3 — 여러 페이지 파일 목록에서 일부만 대충 열어보고 전부 확인했다고 보고하는 사례

화면에는 pages 아래 home/about/pricing/contact/product/cart/checkout/login/blog 등 파일 9개가 나열되고, contact가 강조 표시된다. 영어 자막은 it just opens a few instead of actually looking at all of them and reports that it went through everything.이다. Claude Code에 여러 파일을 검토하라 했을 때 일부만 열어보고 전부 본 것처럼 보고하는 식의 “완료 거짓 보고”가 첫 번째 게으름 유형이라는 설명이 이어진다. 영상은 이런 조기 종료 중에서도 “완료”라고 말하는 경우가 특히 위험하다고 짚는다.

[03:12] 4. 게으름 유형 ② — 어려운 것 빼고 쉬운 것만, 요약에서도 숨기기

장면 4 — pricing page 4개 과제만 체크되고 어려운 1개가 빠진 목록

프롬프트 build the pricing page 아래에 네 항목이 모두 체크되어 있다 — Add the plan cards / Add a monthly and yearly toggle / Add the FAQ section / Add the footer. 자막은 It builds the four easy ones and skips the hard one.이다. 다섯 조각 중 하나가 어려울 때 쉬운 네 개만 만들고 어려운 하나를 건너뛰며, 마지막 요약에도 빠진 내용을 언급하지 않는 두 번째 유형이다. 둘 다 “미완성 위에 더 쌓으면 장기적으로 문제가 된다”는 경고로 연결된다.

[03:40] 5. 기존 해법의 벽 — Ralph Loop는 에이전트가 쓴 결승선, Goal은 대화를 심판

장면 5 — /skill-loop playwright-e2e 실행 화면, task list가 검사 항목을 담던 기존 루프

채널이 직접 만들어 본 체크리스트 기반 검증 루프를 소환하는 구간이다. 터미널에 /skill-loop playwright-e2e와 “task list가 각 과업이 통과해야 할 검사를 담았다”는 설명이 겹친다. 내레이션은 Ralph Loop가 에이전트가 작업 중 적어 둔 짧은 문구(결승선)에, Claude의 /goal은 대화를 읽는 더 작은 심판 모델에, 자신들의 초기 시스템은 결국 에이전트 스스로 완료를 판정했다는 점에서 모두 한계가 있다고 정리한다. 컨텍스트가 신선할 때는 통하지만 실제 업무 깊이에 들어가면 흔들리는 지점이다.

[04:42] 6. 해소법 — Depth Tree, 하나가 여러 개로 갈라지는 구조

장면 6 — 하나의 작업이 여러 개로 다시 갈라지는 트리 분해 다이어그램

검은 배경에 주황색 루트 바와 회색 리프 바 세 개가 L자 선으로 연결된 단순 트리 도식이다. 자막은 So, the whole thing branches out, one task turning into a few, and each of those turning into a few more. And that's why it's called a tree. 큰 작업을 바로 시작하지 않고 더 작은 작업으로 나누고, 다시 나누는 일을 반복해 최종적으로 각 리프를 별도 하위 에이전트에 넘긴다. 이 분해가 주의력 문제와 직결된다는 점을 강조한다 — 과업을 쪼개면 각 과업에 목표가 하나씩만 남아 나머지 짐을 짊어지지 않아도 된다.

[05:30] 7. 쪼개기의 기준 — 10분 규칙

장면 7 — 10분 임계선과 두 과제 비교: 버튼 색 변경은 짧고 회원가입 페이지 구축은 길다

가로 바 차트 중앙에 빨간 10 min 선이 서 있다. change the button color는 선 왼쪽 짧은 바, build the signup page는 선을 넘기는 긴 바다. “각 작업이 최소 10분 실제 작업을 써야 하며, 에이전트가 독립적으로 완수할 만한 덩치여야 한다”는 규칙을 시각화한 것이다. 프롬프트에서 트리 깊이를 너무 높게 잡아 과업이 10분보다 작아지면 스킬이 기본값인 3으로 깊이를 낮춘다.

[05:55] 8. 숫자 하나로 갈리는 두 모드 — Solo vs Orchestrated

장면 8 — SKILL.md의 Pick a mode: tree depth 3 이하는 Solo, 4 이상은 Orchestrated

VS Code에서 .claude/skills/unlazy/SKILL.md## Pick a mode를 펼친 화면이다. **Solo** (default). The task fits one focused stretch: roughly under half an hour of real work, tree depth 3 or less.**Orchestrated**. The task is a build: tree depth 4 or more, ... write PLAN.md plus one gates file per leaf under gates/, and run each leaf as a fresh subagent with a narrow brief.가 하이라이트되어 있다. 전자는 한 세션에서 같은 에이전트가 전부 처리하고, 후자는 전체 분해도를 담은 계획 파일과 리프별 체크리스트를 파일에 남기며, 리프끼리 고립된 파일을 맡아 동시에 뛸 수 있게 한다. 이전 버전이 “꼼꼼히 하라”는 지시로만 고치려다 긴 세션에서 지침이 먼저 증발했던 실패를 파일 선기록으로 바꾼 지점이다.

[06:35] 9. Gates 파일의 해부 — 체크박스와 달성 조건, 그리고 세 줄

장면 9 — gates.md의 예: - [ ] the checkout page loads 등 세 게이트

에디터에 ## lay out the checkout page 아래 세 게이트가 보인다 — - [ ] the checkout page loads / the items show up / the price is right. 채널은 각 게이트가 체크박스 + 달성 조건(결과)으로 구성되며, 그 아래 세 줄이 핵심이라고 설명한다. 첫째는 결과를 증명하는 명령, 둘째는 명령이 돌려줘야 할 정확한 단어들, 셋째는 증거 행으로 처음에는 심사 중으로 채워진다. 검사기는 파일을 훑으며 모든 명령을 직접 실행해, 응답에 예상 단어가 포함되면 체크하고 대기 행을 해당 응답 일부로 교체한다.

[07:45] 10. 신뢰하지 않는 오케스트레이션 — 보고받고 재실행, 그리고 정직한 포기

장면 10 — main의 plan.md와 agent 다이어그램, 통과 후에만 플랜을 갱신

왼쪽 main / plan.md에 녹색 체크 여러 줄, 오른쪽 agent에 빈 카드가 떠 있다. 자막은 and only then does it write a line into the plan file and hand out the next task. 서브에이전트에게는 계획과 자신의 게이트 파일만 주고 나머지는 알리지 않으며, 서브가 “완료”라고 말해도 메인은 그 말을 믿지 않고 해당 게이트 검사를 다시 실행한 뒤에야 계획에 한 줄을 적고 다음을 준다. 체크된 채 심사 중이 남은 줄은 빈 칸보다 나쁜 “부정직”으로 처리해, 장기 연쇄가 정직하게 유지되게 한다. 불가능 판정 시에는 게이트에 포기 사유를 적어 보고서에 포함하는 정직한 포기 경로가 있다.

[08:30] 11. 설치 — 한 줄, 멀티 에이전트 선택, 스코프 선택

장면 11 — npx skills add Leonxlnx/unlazy 설치 명령과 76개 에이전트 선택 메뉴

터미널 프롬프트 ~/Desktop/unlazy/my-project (18s) 아래에 npx skills add Leonxlnx/unlazyWhich agents do you want to install to? 질문이 뜬다. 목록은 Universal(.agents/skills — always included)을 포함해 Amp, Antigravity, Cline, Codex, Cursor, Deep Agents, Gemini CLI, GitHub Copilot 등 76개를 훑는다. 이어 적용 범위를 고르라는 질문이 나오는데, 영상은 테스트를 위해 프로젝트 범위를 택했다고 밝힌다. 공식 설치 안내는 GitHub 페이지의 Install 섹션과 영상 설명란 링크를 가리킨다.

[09:05] 12. 설치 뒤 — 스킬은 .agents에, .claude는 그저 바로가기

장면 12 — VS Code 탐색기에서 .agents와 .claude/skills/unlazy, 그리고 SKILL.md가 보인 화면

파일 트리에서 .agents.claude/skills/unlazy가 함께 보이고 SKILL.md가 선택되어 있다. 채널 설명으로는 스킬 본체는 .agents에 있고 .claude는 그에 대한 바로가기(심볼릭 링크)라, 같은 프로젝트에서 Claude Code가 중복 없이 인식한다. 이 파일 안에 에이전트가 스킬을 쓰는 모든 지침이 들어 있어 설치 직후 바로 사용할 수 있다.

[09:50] 13. 병렬을 안 쓴 대가 — 3~4시간에 로그인 페이지 하나

장면 13 — Claude Code와 Codex의 병렬 서브에이전트 실행 능력을 비교한 다이어그램

두 패널에 Claude Code와 Codex 로고 아래 같은 길이의 회색 바 세 줄이 놓인 도식이다. 자막은 Both Claude code and Codex can run several agents at the same time, and each sub-agent can work in parallel on a different task. 영상은 이 병렬 능력을 Unlazy가 활용하지 못한 채 한 과업을 주고 완료를 기다린 뒤 다음을 주는 직렬 분배를 했고, 테스트 세션에서 3~4시간을 돌려도 로그인 페이지 외 결과가 없었다고 고백한다. 많은 시간이 허비된 지점이다.

[10:50] 14. 고친 운용 — PLAN.md에 파일 소유를 먼저 적고 일괄 분배

장면 14 — Atelier Assembly 플랫폼의 PLAN.md에서 도메인별 담당 엔티티와 파일 매핑을 보여주는 화면

에디터에 PLAN.md > # Atelier Assembly — event production platform 아래 스코프 표가 보인다. Domain | Entities 표에서 People→clients/profiles, Events→events/activity_log, Delivery→tasks/timeline_entries 등 과제와 파일 소유가 묶여 있다. 채널은 여기서 스킬 자체를 수정해, 빌드 전에 plan.md를 먼저 쓰고 gates.md를 쓴 뒤 기반을 마련한 뒤 모든 준비된 리프에 동시에 분배했다고 설명한다. 자막은 “각 작업이 어떤 파일을 다룰지 명시해 두 에이전트가 동시에 작업해도 덮어쓰지 않는다”고 요약한다. 수정 뒤에는 10명의 에이전트가 서로 다른 파트에서 약 2시간 동안 병렬로 돌아 데모 앱 첫 버전을 완성했다.

[11:15] 15. 한 겹 더 — Model Router와 짝짓기

장면 15 — .claude/skills 아래 model-router와 unlazy가 나란히 설치된 탐색기

탐색기에서 .claude/skills 아래 model-routerunlazy가 함께 선택된 화면이다. 채널은 이 정도 규모에서 Unlazy를 모델 라우터 스킬과 함께 쓰면 간단한 기계적 작업은 값싼 모델에, 어려운 파트는 강한 모델에 보내 한계에 덜 걸리게 할 수 있다고 덧붙인다. 이 운용법은 여러 번의 테스트와 개선으로 다듬어진 결과라는 말로 영상을 닫는다.

부록 — 실전 체크리스트

  • 게으름을 “완료 보고를 검증하지 않은 것”, “범위를 조용히 줄이고 숨긴 것” 두 유형으로 구분해 내 프로젝트의 실패 사례를 하나씩 적어 본다.
  • 에이전트에 맡길 큰 작업을 Depth Tree로 쪼갤 때 깊이 숫자를 의도적으로 지정한다 — 기능 하나면 2~3, 앱 전체면 5. 각 리프가 10분 이상 작업이 되도록 과도한 분해는 3으로 낮춘다.
  • PLAN.md를 먼저 쓰고 각 리프의 gates/ 파일에 검증 명령 + 예상 단어 + 증거 행을 코드보다 먼저 채운다. pending으로 체크된 게이트는 빈 칸보다 나쁜 위반임을 팀에 공유한다.
  • Orchestrated 모드에서는 서브에이전트에 계획과 자신의 게이트만 주고, 보고를 받아들이기 전에 메인에서 게이트를 재실행한 뒤 플랜을 갱신한다.
  • 불가능 판정이 나오면 포기 사유를 게이트에 기록해 최종 보고서에 포함시킨다 — 조용한 누락보다 정직한 기록이 장기 연쇄를 지킨다.
  • 설치 후 .agents/skills/unlazy.claude 바로가기 무결성을 확인한다: npx skills add Leonxlnx/unlazy → 에이전트 선택 → 프로젝트 범위 선택 흐름을 고정한다.
  • 직렬 병목을 측정한다 — 한 과업 완료 대기를 반복하는지, PLAN.md작업별 담당 파일을 명시해 리프끼리 고립된 파일을 쓰게 했는지 점검한다.
  • 10명 규모 이상 빌드에서는 model-router와 짝을 맞춘다 — 단순·반복 작업은 저비용 모델에, 설계·복잡 로직은 고성능 모델에 라우팅한다.

원문 인용 모음

  • [00:15] “GitHub’s number one trending author has a solution for this, and this is the person who also made the design taste skill” — 영상은 이를 “GitHub 트렌딩 1위 개발자가 해결책을 내놓았는데, 디자인 감각 스킬을 만든 사람”이라고 소개한다.
  • [01:20] “You do not promise you are done. You prove it against a ledger.” — README 하이라이트 문구.
  • [01:20] “It checks the work against a ledger, which is basically a checklist where every item has to have proof that it’s actually done.” — 자막 번역: “모든 항목마다 실제 완료 증거를 요구하는 체크리스트인 원장을 기준으로 작업을 검증하죠.”
  • [02:40] “it just opens a few instead of actually looking at all of them and reports that it went through everything.”
  • [03:12] “It builds the four easy ones and skips the hard one.”
  • [03:40] “And we’ve built loops like this ourselves, too, where a task list held the checks that every task had to pass.” — 자막: “저희도 체크리스트 기반 검증 루프를 직접 만들어 봤지만,”
  • [04:10] “And with our own loops, those checks were real,” — 자막: “저희가 만든 루프도 검증 항목은 정확했지만,”
  • [04:42] “So, the whole thing branches out, one task turning into a few, and each of those turning into a few more. And that’s why it’s called a tree.”
  • [05:30] “because it has to be a proper piece of the job that an agent can pick up and finish on its own.”
  • [05:55] “But, four and up switches it into orchestrated mode, and that’s where it writes a lot more of it down.”
  • [06:35] “So, each gate is a checkbox with an outcome written next to it, which is one thing that has to be true before the task counts as done.”
  • [07:45] “and only then does it write a line into the plan file and hand out the next task.” — 자막: “실행해 통과해야만 플랜을 업데이트하고 다음 작업을 넘깁니다.”
  • [08:30] “If you’re on Code X, you don’t need to change anything there, because it installs into the .agents folder that Code X already reads from.”
  • [09:05] “The skill itself actually lives in the .agents folder, and the .Claude one is just a shortcut to it,”
  • [09:50] “Both Claude code and Codex can run several agents at the same time, and each sub-agent can work in parallel on a different task.”
  • [10:50] “In the plan.md, it also mentions which task is to work with which file so that if two agents are working at the same time, they don’t overwrite each other’s work.”
  • [11:15] “And if you’re building at this kind of scale, you can also pair this with a model router skill.”

관련 노트