600가지 스킬 개선, 하나의 백그라운드 훅 — task-observer

백그라운드 훅이 JSONL 기록을 파싱하고 빈틈을 기록해 SKILL.md 개선을 대기열에 추가합니다. 40개 스킬, 600건 이상 수정.

600가지 스킬 개선, 하나의 백그라운드 훅 — task-observer
Share

Claude Code의 Agent Skills는 모델에 당신의 규칙을 한 번 가르쳐 두고 어디서든 재사용할 수 있게 해줬습니다. task-observer는 여기서 한 걸음 더 나아가 묻습니다. 스킬이 당신이 실제로 일하는 방식을 지켜보고, 다른 모든 스킬이 어디서 부족한지 기록할 수 있다면 어떨까요?

task-observer가 하는 일: 600개의 SKILL.md 관찰을 쌓은 메타 관찰자

task-observer는 하나의 SKILL.md입니다. 활성 Claude Code 세션 전반에서 조용히 실행되며 다른 모든 스킬을 지켜보고, 의도적인 리뷰 전까지 대상 파일은 건드리지 않은 채 구조화된 메모를 skill-observations/log.md에 덧붙입니다. 각 항목은 번호가 붙고 형식도 일관됩니다. 날짜, 세션 맥락, 스킬 이름(또는 "New skill candidate"), 문제, 섹션 참조가 포함된 수정 제안, 그리고 일반화할 수 있는 Principle이 들어갑니다 .

이 규모에 대한 주장은 Rebelytics의 Eoghan Henn이 직접 밝힌 내용에서 나옵니다. 그는 약 3개월 동안 40개 스킬에 걸쳐 600건이 넘는 개선 사항을 기록하고 적용했다고 말하며, 그 40개 스킬 대부분도 수동 계획에서 나온 것이 아니라 관찰자 자체가 표시한 "new skill candidate" 항목에서 시작됐다고 설명합니다 . rebelytics/one-skill-to-rule-them-all 저장소는 조회 시점에 별 약 928개와 포크 103개를 보였고, 2026년 5월 중순 r/ClaudeAI 스레드를 계기로 별 500개를 넘었습니다 .

작동 방식 자체는 특별히 복잡하지 않습니다. task-observer는 JSONL 세션 transcript를 읽고 Markdown에 덧붙입니다. 추가 API 호출도, 가중치 변경도 없습니다. 전부 Anthropic의 Agent Skills 표준 위에 얹혀 있으며, 이 표준은 2025년 10월 16일 출시됐고 2025년 12월 18일에는 조직 전체 관리 기능을 얻었습니다 . 관찰하는 신호는 세 가지입니다. 빠진 규칙을 드러내는 사용자 수정, 기존 스킬이 상황을 커버하지 못하는 빈틈, 그리고 해당 세션에서 특히 잘 먹힌 기법입니다 .

"자기 개선의 품질은 전적으로 무엇이 잘못됐는지 Claude가 얼마나 정확히 진단할 수 있느냐에 달려 있습니다." — Eoghan Henn, Rebelytics (source: rebelytics/one-skill-to-rule-them-all).

task-observer를 추가하기 전에 준비할 것

600 skill improvements, one background hook — task-observer

task-observer가 관찰 기록을 남기기 시작하려면 Agent Skills를 지원하는 Claude Code가 필요합니다. Anthropic은 이 기능을 2025년 10월 16일 출시했습니다 . 스킬은 개인 디렉터리(~/.claude/skills)와 프로젝트 수준 디렉터리(.claude/skills)에 SKILL.md 파일로 존재합니다. Claude는 둘 다 자동으로 발견하며, 각 파일의 YAML description 필드만 읽어 호출 여부를 판단한 뒤, 일치하면 전체 지침을 로드합니다 .

루프를 안정적으로 만들려면 두 가지가 더 필요합니다.

  • 프로젝트 루트의 CLAUDE.md. 설명 기반 매칭만으로는 모든 세션에서 실행돼야 하는 메타 관찰자에게 확률적이고 불안정하므로, 여기에 명시적인 호출 지침을 추가합니다 .
  • 워크스페이스 루트의 두 스캐폴드 경로. skill-observations/log.md(비어 있음, 번호가 붙은 항목이 여기에 쌓임)와 last-review-date.txt를 만듭니다. 후자는 주간 리뷰 사이클을 트리거하는 7일 fallback을 제어합니다 .

task-observer 설정하기: 안정적인 활성화와 관찰 로그

600 skill improvements, one background hook — task-observer

활성화 방식과 스캐폴드 결정이 정리되면, task-observer를 실행하는 데 필요한 구체적인 단계는 네 가지입니다. 이 메커니즘은 전적으로 파일시스템 기반입니다. SKILL.md 텍스트를 수정하고 워크스페이스 파일 두 개를 읽습니다. 따라서 설정은 복사, 생성, 연결, 검증으로 끝나며, 빌드 단계도 없고 Claude의 가중치도 바꾸지 않습니다.

  1. 스킬을 설치합니다. rebelytics/one-skill-to-rule-them-all의 SKILL.md를 ~/.claude/skills/task-observer/SKILL.md로 복사합니다. CC BY 4.0으로 제공되므로 출처 표기만 하면 재배포할 수 있습니다 .
  2. 상태 파일 두 개를 만듭니다. 워크스페이스 루트에 빈 skill-observations/log.mdlast-review-date.txt를 만듭니다. 번호가 붙은 구조화된 항목이 로그에 추가됩니다. observer는 날짜 파일을 읽고, 그 날짜가 7일 이상 전이면 다음 호출 때 전체 주간 리뷰를 트리거합니다 .
  3. 체크포인트 동작에 맡깁니다. task-observer는 TodoWrite 완료가 세 번째 발생할 때마다 관찰 내용을 flush합니다. 각 쓰기 전에 log.md를 미리 읽고, 쓰기 후에도 다시 읽기 때문에 병렬 세션이 충돌할 때 중복 항목 번호를 감지하고 해결할 수 있습니다 .

CLAUDE.md에 활성화를 연결합니다. 아래 호출 지침을 추가합니다. compaction 이후에는 반드시 다시 호출해야 합니다. 이전에 로드된 SKILL.md 사본은 compaction 후에도 컨텍스트에 남지만, 실행 중이던 관찰 카운트는 사라지므로 다시 호출하지 않으면 번호가 어긋납니다 .

At session start, invoke the task-observer skill.
After any compaction, re-invoke task-observer to restore
continuous entry numbering.

기록된 관찰 내용이 SKILL.md 수정으로 이어지는 방식은 어떤 모드로 실행하느냐에 따라 달라집니다. Interactive 모드는 사용자를 계속 의사결정 과정에 둡니다. scheduled autonomous 모드는 일부 통제권을 내려놓는 대신 자동 개선을 맡기지만, 고위험 변경에는 일부러 무감독으로 작동하지 않습니다.

모드수정을 적용하는 방식보고 전용으로 전환되는 경우
InteractiveSKILL.md가 변경되기 전에 사용자 승인이 필요합니다. 전체 승인 또는 항목별 승인 모두 가능합니다해당 없음(승인 없이는 아무것도 적용되지 않음)
Autonomous (scheduled)추가형이며 escalated 상태가 아닌 수정은 자동 적용합니다새 SKILL.md 생성, 삭제, 구조 변경, 충돌하는 관찰, 또는 스스로 표시한 불확실성

설정이 되었는지는 일반 세션을 실행한 뒤 skill-observations/log.md에 번호가 붙은 항목이 생겼는지 확인하면 됩니다. 이는 observer가 붙어서 지켜보고 있다는 눈에 보이는 신호입니다 .

task-observer가 조용해지는 지점: compaction 손실과 설명 매칭의 한계

600 skill improvements, one background hook — task-observer

task-observer를 신뢰하기 전에 알아둘 실패 모드는 네 가지입니다. 가장 흔한 것은 조용히 활성화되지 않는 경우입니다. Claude는 스킬을 로드할지 여부를 오직 description만 읽고 판단하며, 이 매칭은 확률적입니다. 세션 시작 시 task-observer를 호출하라는 CLAUDE.md의 명시적 줄이 없으면 아예 붙지 않을 수 있습니다. CLAUDE.md 지침은 fallback이 아니라 핵심적인 신뢰성 보장 장치입니다 .

두 번째는 compaction입니다. 세션이 한 번 compaction되면 로드된 SKILL.md 사본이 컨텍스트에서 떨어져 나가므로 다시 호출하기 전까지 관찰이 멈춥니다. 다시 호출하지 않으면 skill-observations/log.md의 항목 번호가 다시 시작되어 같은 세션 안에 중복 번호가 생깁니다. 그래서 권장 CLAUDE.md 지침은 작업 중 compaction 이후 재호출을 포함합니다 .

세 번째는 autonomous 모드의 escalation 목록입니다. scheduled autonomous 모드에서는 깨끗한 추가형 수정만 자동 적용됩니다. 새 SKILL.md 생성, 삭제, 재구조화, 충돌하는 관찰, 또는 스스로 표시한 불확실성은 모두 보고 전용으로 낮춰지고 사람의 검토를 기다립니다 . 네 번째는 컨텍스트 예산입니다. Anthropic은 로드된 내용이 활성 창에 남아 있으므로 각 SKILL.md를 500줄 미만으로 유지하라고 권장합니다. 따라서 자기 수정을 거치며 커진 observer는 호출할 때마다 토큰을 소모합니다 .

보안 표면도 있습니다. 2026년 7월 1일, 실제 SKILL.md 파일 238개를 분석한 연구는 99% 이상에서 하나 이상의 "skill smell"을 발견했습니다 . 또한 2026년 6월 15일의 Dynamic Malicious Skills 논문은 SKILL.md의 자연어 콘텐츠가 런타임에 정상 스킬에 로직을 주입할 수 있음을 보였고, 완화책으로 OS가 강제하는 읽기 전용 마운트를 제안했습니다 . Anthropic의 자체 문서도 스킬에 실행 가능한 코드가 포함될 수 있고, command hook이 사용자 계정의 전체 파일시스템 권한으로 실행된다고 경고합니다 . 공개 SKILL.md는 로드하기 전에 실행 가능한 거버넌스 텍스트로 다루어야 합니다.

관찰 로그가 차오른 뒤 함께 쓰기 좋은 companion repo

log.md가 검토 속도보다 더 빨리 쌓이기 시작하면, task-observer의 autonomous mode가 노출해 두는 영역은 위험이 더 낮은 두 companion이 메워준다. TerenceBristol/claude-improve는 필요할 때 post-session retrospective를 실행하는 승인 기반 /improve slash command를 제공한다. 수동 주기이며, 백그라운드에서 SKILL.md를 쓰지 않는다 . 조용한 편집이 아직 이르다고 느껴진다면 더 안전한 출발점이다. UniM0cha/claude-self-improving-skills는 보장 측면에서 더 나아간다. Stop lifecycle hook이 skill-distiller subagent에 위임하고, 백업, 검증, provenance stamping, 잘못된 SKILL.md 출력에 대한 rollback, stale 항목 archival까지 제공한다 . task-observer의 기본 autonomous path보다 안전장치가 더 강하다.

무엇을 쓰든 방향을 잘 잡아야 한다. 비슷한 self-improvement loop들을 보면 행동 변화가 눈에 띄기까지 5~10회 정도의 ramp-up이 필요하고, 일회성 작업에서 나온 관찰은 누적 효과가 작다 . 먼저 가장 자주 반복하는 workflow에 observer를 맞춰라. 계획 방식, commit 관례, test discipline처럼 효과가 쌓이는 곳이 우선이다.

팀에서는 project-level .claude/skills가 이를 공유된 누적 효과로 바꿔 주지만, 더 중요한 것은 discipline이다. task-observer가 편집한 SKILL.md를 commit하기 전에 모든 weekly-review diff를 검토해, 팀원 모두가 조용한 변경이 아니라 의도적이고 눈에 보이는 변경으로 받아들이게 해야 한다. 핵심은 단순하다. loop는 유지하되, 모든 rewrite는 review 가능하게 유지하라.

자주 묻는 질문

task-observer가 내가 보기도 전에 SKILL.md 파일을 자동으로 다시 쓰나요?

아니다. task-observer SKILL.md에 따르면, observation은 skill-observations/log.md에 numbered entry로 쌓이고, comprehensive weekly review 때, 명시적인 사용자 요청이 있을 때, 또는 session 중 skill이 실제로 잘못된 출력을 내고 있을 때만 처리된다. Interactive mode에서는 어떤 edit도 반영되기 전에 사용자 승인, 즉 blanket 승인 또는 selective 승인이 필요하다. Scheduled autonomous mode는 additive하고 escalated되지 않은 clarification만 자동 적용하며, 구조적인 변경은 report-only로 내려간다. 여기에는 새 skill file, 제거, 재구성, 충돌하는 observation, 또는 self-flagged uncertainty가 포함된다. 업데이트된 파일은 live file을 무작정 덮어쓰지 않고 skill-updates/[date]/[skill-name]/SKILL.md에 staged된 뒤 live file과 diff된다.

새 session을 시작했는데 task-observer가 가끔 활성화되지 않는 이유는 무엇인가요?

Claude는 session context를 각 SKILL.md의 description field와 비교해 skill을 invoke할지 결정하며, 이 match는 확률적이지 보장되지 않는다 (source: Claude Code skills docs). Description 기반 triggering만으로는 약점이 있다는 점이 문서화되어 있다. 해결책은 activation을 명시적으로 만드는 것이다. fallback이 아니라 primary mechanism으로 "At session start, invoke task-observer" 같은 CLAUDE.md instruction을 추가하라 (source: rebelytics/one-skill-to-rule-them-all). Mid-task compaction이 발생한 뒤에는 observation log의 sequential entry numbering이 이어지도록 다시 invoke하라.

task-observer가 다른 SKILL.md 파일을 눈에 띄게 개선하려면 몇 session이 필요한가요?

비슷한 learning loop들과 마찬가지로, 행동 변화가 눈에 띄기까지 대략 5~10회 정도의 ramp-up을 예상하라 . 일회성 작업도 observation을 쌓기는 하지만 누적 효과는 작다. 이 loop는 자주 실행되는 workflow에서만 보상이 크기 때문이다. Planning style, commit conventions, test discipline처럼 충분한 signal을 모아 actionable refinement를 만들 수 있는 반복 패턴에 task-observer를 맞춰라. 참고로 maintainer는 정기적으로 사용한 약 3개월 동안 40개 skill에 걸쳐 600개가 넘는 improvement를 logging하고 적용했다고 self-report한다 .

task-observer 같은 공개 SKILL.md를 먼저 audit하지 않고 넣어도 안전한가요?

아니다. 모든 SKILL.md를 executable governance text로 취급해야 한다. Claude Code hook과 skill script는 사용자의 account가 가진 full filesystem permissions로 실행되기 때문이다 (source: hooks docs). 보안 연구도 이런 주의를 뒷받침한다. 2026년 5월 supply-chain paper는 paired trial에서 description-only framing이 77.6%의 adversarial selection을 유발했다고 보고했다 . 또 2026년 6월 paper는 악성 SKILL.md content를 통해 benign skill에 malicious logic을 runtime injection할 수 있음을 보였다 . Load하기 전에 audit하고, clear license, visible commit history, active maintainer가 있는 repo를 우선하라.

task-observer가 자기 자신을 수정할 수 있나요?

그렇다. task-observer는 자기 자신을 포함한 모든 active SKILL.md file을 관찰하므로, weekly review에서 self-observation이 surface되고 task-observer 자신의 SKILL.md에 대한 edit가 제안된다 (source: task-observer SKILL.md). Self-directed change의 품질은 Claude가 무엇이 잘못됐는지 얼마나 정확히 진단하느냐에 전적으로 달려 있으며, Claude가 자기 실패 원인을 항상 맞히는 것은 아니다. Interactive mode든 scheduled autonomous mode든 self-edit에는 human review를 계속 포함시켜라.

이 글이 도움이 되셨다면, 새 글이 올라올 때마다 이메일로 받아보세요.

구독하기