[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QYYQJGQTWFBPYV7624GG2M":3,"skill-same:01M6QYYQJGQTWFBPYV7624GG2M":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":58,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M6QYYQJGQTWFBPYV7624GG2M","retro-compound",null,"세션 회고 기반 교훈 컴파운딩 방법론 — 교정·실수·발견을 추출해 품질 기준(재현 가능성·\n일반화 가능성·판정 가능성)으로 필터링하고, 유형별 라우팅 표에 따라 tasks\u002Flessons.md 기록,\nCLAUDE.md 동기화 위임, 스킬 수정 제안으로 분배한다. 중복·상충 검사와 사용자 승인 게이트,\n저품질 규칙 축적 방지 원칙을 포함한다.\nUse when: \"\u002Fretro\" 실행 시, \"회고\", \"레트로\", \"교훈 정리\", \"lessons 정리\", \"같은 실수 반복\",\n\"재발 방지 규칙\", \"retrospective\", \"lessons learned\", \"compound engineering\",\n작업·리뷰·루프 종료 시점에 세션의 교정 내용을 자산화하려 할 때.\nDelegation boundaries: 컨벤션 변화의 CLAUDE.md 반영은 workflow:sync-claude-md에 위임(직접\n편집 금지), 가드 훅 스캐폴딩은 harness:create-flow에 위임(이 스킬은 #가드-훅-후보 태그\n표기까지만), 플러그인 스킬 본문은 수정 제안만 산출(자동 수정 금지), 여러 실행에 걸친\n하네스 컴포넌트 개선은 harness:evolve 소관.\nProvides a lesson-compounding methodology for session retrospectives: extracts corrections, mistakes, and discoveries, filters by quality criteria, and routes them to tasks\u002Flessons.md, CLAUDE.md sync delegation, or skill-edit proposals with duplicate checks and user-approval gates. Use when: running \u002Fretro, doing a retrospective, consolidating lessons learned, preventing repeated mistakes.","Dokkabei97\u002Fdokkabei-harness","Dokkabei97","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F69792585?v=4","01M6QYPVTYK6CGF609W541QNSD","JangMK","01M6QYPVYXBP1GRYHZ7ZABCZC6",1,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Farchive\u002Fcomponents\u002Fworkflow\u002Fskills\u002Fretro-compound\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"retro compound","retro","compound","filters","when","mistakes","improvement","learned","self","lesson","compound engineering","workflow","proposals","edit","evolve","harness","delegation","create","tasks","sync","2026-11-10 10:12:30",false,"---\nname: retro-compound\ndescription: |\n  세션 회고 기반 교훈 컴파운딩 방법론 — 교정·실수·발견을 추출해 품질 기준(재현 가능성·\n  일반화 가능성·판정 가능성)으로 필터링하고, 유형별 라우팅 표에 따라 tasks\u002Flessons.md 기록,\n  CLAUDE.md 동기화 위임, 스킬 수정 제안으로 분배한다. 중복·상충 검사와 사용자 승인 게이트,\n  저품질 규칙 축적 방지 원칙을 포함한다.\n  Use when: \"\u002Fretro\" 실행 시, \"회고\", \"레트로\", \"교훈 정리\", \"lessons 정리\", \"같은 실수 반복\",\n  \"재발 방지 규칙\", \"retrospective\", \"lessons learned\", \"compound engineering\",\n  작업·리뷰·루프 종료 시점에 세션의 교정 내용을 자산화하려 할 때.\n  Delegation boundaries: 컨벤션 변화의 CLAUDE.md 반영은 workflow:sync-claude-md에 위임(직접\n  편집 금지), 가드 훅 스캐폴딩은 harness:create-flow에 위임(이 스킬은 #가드-훅-후보 태그\n  표기까지만), 플러그인 스킬 본문은 수정 제안만 산출(자동 수정 금지), 여러 실행에 걸친\n  하네스 컴포넌트 개선은 harness:evolve 소관.\n  Provides a lesson-compounding methodology for session retrospectives: extracts corrections, mistakes, and discoveries, filters by quality criteria, and routes them to tasks\u002Flessons.md, CLAUDE.md sync delegation, or skill-edit proposals with duplicate checks and user-approval gates. Use when: running \u002Fretro, doing a retrospective, consolidating lessons learned, preventing repeated mistakes.\nmetadata:\n  version: 1.0.0\n  category: workflow\n  domain: self-improvement\n---\n\n# Retro Compound — 교훈 컴파운딩 방법론\n\n세션마다 발생하는 교정·실수·발견을 일회성으로 흘려보내지 않고, 검증된 규칙으로 축적해\n다음 세션의 실수율을 낮추는 방법론이다. Compound Engineering 패턴을 차용한다:\n**교훈은 복리로 쌓일 때만 가치가 있고, 저품질 규칙은 복리로 쌓이면 부채가 된다.**\n\n`\u002Fretro` 커맨드가 실행 절차(Phase)를 담당하고, 이 스킬은 판정 기준·기록 형식·방지 원칙을 담당한다.\n\n## When to Apply\n\n- `\u002Fretro` 커맨드 실행 시 (품질 필터·라우팅·기록 형식의 기준으로 항상 로드)\n- 사용자가 같은 지적을 반복하거나 \"왜 또 이러냐\"는 신호를 보낼 때\n- 작업·코드 리뷰·루프 하네스 종료 시점에 교훈 회수가 필요할 때\n- `tasks\u002Flessons.md`의 항목을 정리·통합·승격하려 할 때\n\n## Core Principles\n\n1. **하네스가 판정한다**: 교훈의 채택 여부는 모델의 자기평가가 아니라 명문화된 품질 기준과 사용자 승인으로 결정한다\n2. **적을수록 강하다**: 판정 불가능한 훈계 10개보다 판정 가능한 규칙 1개가 낫다. 기록 보류를 두려워하지 않는다\n3. **승격 사다리**: 교훈은 `기록 보류 → lessons.md → CLAUDE.md 컨벤션 or 가드 훅`으로 검증을 거치며 승격된다. 단계를 건너뛰지 않는다\n4. **자동 수정 금지 경계**: 이 스킬이 직접 쓸 수 있는 파일은 `tasks\u002Flessons.md` 하나뿐이다. CLAUDE.md는 sync-claude-md에, 훅 생성은 create-flow에, 스킬 본문은 사용자에게 맡긴다\n\n## 1. 교훈 원료의 3분류\n\n| 원료 | 정의 | 추출 신호 |\n|------|------|----------|\n| **교정(correction)** | 사용자가 결과물·접근을 고쳐준 지점 | 지시 번복, 재작업 요청, \"그게 아니라\", \"다시\", 명시적 반려 |\n| **실수(mistake)** | 스스로 실패했거나 되돌린 시도 | 실패한 명령, revert된 편집, 검증 게이트 불통과, 잘못된 파일 수정 |\n| **발견(discovery)** | 세션 중 새로 알게 된 사실 | 문서에 없던 컨벤션, 도구 제약, 도메인 규칙, 숨은 의존성 |\n\n> 전역 CLAUDE.md의 Self-Improvement Loop 규약과 정합: \"사용자의 교정이 있을 때마다\n> tasks\u002Flessons.md에 패턴을 기록하고, 같은 실수를 막는 규칙을 작성하며, 실수율이 떨어질\n> 때까지 반복 개선한다. 세션 시작 시 lessons를 리뷰한다.\"\n\n## 2. 교훈 품질 기준 (채택 게이트)\n\n세 기준을 **모두** 통과해야 라우팅 대상이 된다. 하나라도 미달이면 기록 보류.\n\n### 2.1 재현 가능성 (구체 사례)\n제3자가 이 기록만 읽고 상황을 재구성할 수 있어야 한다.\n\n```\n[미달] \"파일 경로를 잘못 다뤘다\"\n[통과] \"plugins\u002Fworkflow\u002Fcommands\u002Fretro.md 생성 시 frontmatter의 category에\n       존재하지 않는 값 'misc'를 사용해 verify-flow CMD-003 검증에 실패했다\"\n```\n\n- 필수 요소: 관련 파일\u002F명령\u002F입력 중 최소 1개 + 무엇이 잘못됐는지 + 어떻게 드러났는지\n\n### 2.2 일반화 가능성 (원리 수준)\n특정 파일 1회에만 유효한 사후 설명이 아니라, 미래 작업에 적용되는 원리여야 한다.\n\n```\n[미달] \"retro.md의 category는 workflow로 한다\" (그 파일 한정)\n[통과] \"커맨드 frontmatter의 category\u002Fcomplexity는 신조어 금지 — 저장소에서\n       grep으로 기존 값 분포를 확인하고 그중에서 고른다\" (모든 커맨드에 적용)\n```\n\n- 자가 점검: \"이 규칙이 다음 달 다른 작업에서도 발동하는가?\"\n\n### 2.3 판정 가능성 (actionable)\n준수\u002F위반을 객관적으로 판정할 수 있는 명령형 서술이어야 한다.\n\n```\n[미달] \"컨벤션에 더 주의한다\" (판정 불가한 훈계)\n[통과] \"신규 커맨드 작성 전 같은 플러그인의 기존 커맨드 1개를 Read해 섹션 구조를 대조한다\"\n```\n\n## 3. 라우팅 표\n\nharness:evolve 피드백 라우팅(품질→스킬 \u002F 역할→에이전트 \u002F 트리거→description)의\n골격을 세션 교훈에 맞게 확장한 것이다.\n\n| 유형 | 판정 신호 | 라우팅 대상 | 적용 방식 | 경계 |\n|------|----------|------------|----------|------|\n| **(a) 컨벤션 변화** | 프로젝트 규칙·구조·도구 사용법이 바뀜, 또는 문서화 안 된 규칙 발견 | `workflow:sync-claude-md` 위임 | 승인 후 스킬 발동 | CLAUDE.md 직접 편집 금지 |\n| **(b) 반복 실수 패턴** | 동일 패턴 교정·실수가 세션 내 2회+ 또는 기존 lessons 항목과 동일 | `tasks\u002Flessons.md` 기록 | 승인 후 직접 기록 | 유일하게 직접 쓰는 파일 |\n| **(b′) 가드 훅 후보** | (b) 중 결정론적 검사 가능 + 누적 2회+ 재발 | lessons 항목에 `#가드-훅-후보` 태그 | 태그 표기까지만 | 훅 생성은 harness:create-flow 담당 (lessons 입력 모드는 별도 작업 예정) |\n| **(c) 도메인 지식 갱신** | 플러그인 스킬 내용이 낡음, 예시가 틀림, 레퍼런스 누락 | 해당 스킬 수정 **제안서** | 제안 출력만 | 자동 수정 금지 |\n| **(c′) 트리거 미스** | 스킬이 발동해야 할 상황에서 발동 안 함(또는 오발동) | 해당 스킬 description 수정 **제안서** | 제안 출력만 | harness:evolve와 동일 원칙 |\n\n- 복수 유형에 해당하면 복수 라우팅한다. 예: \"커맨드 complexity 값 신조어 사용\"은\n  (b) 반복 실수 기록이면서, 검증 규칙이 있다면 (b′) 가드 훅 후보다.\n- 하네스(에이전트 팀) 자체의 역할·워크플로우 문제는 이 스킬의 범위 밖 —\n  `harness:evolve`(기존 구성 조정) 또는 `harness:team-harness`(에이전트 추가·구조 재설계)로 안내한다.\n\n### 가드 훅 후보 판정 기준 (b′)\n\n아래를 **모두** 만족할 때만 태그를 단다.\n\n1. **결정론적 검사 가능**: 파일 패턴·명령어 매칭·정규식 등으로 기계 판정 가능\n   (예: \"marketplace.json 수정 시도 차단\" — 가능 \u002F \"설계가 우아한지\" — 불가능)\n2. **누적 2회 이상 재발**: 이번 세션 포함 발생 횟수 2회 이상\n3. **차단·경고 시점이 명확**: PreToolUse\u002FPostToolUse\u002FStop 등 훅 이벤트에 대응 가능\n\n태그 형식: 항목의 `태그:` 필드에 `#가드-훅-후보 (이벤트: PreToolUse, 검사: {한 줄 요약})`\n\n## 4. tasks\u002Flessons.md 기록 형식\n\n파일이 없으면 아래 헤더로 생성한다. 항목은 최신이 위로 오게 추가한다.\n\n```markdown\n# Lessons — 재발 방지 규칙\n\n> \u002Fretro가 관리한다. 세션 시작 시 이 파일을 리뷰하고, 규칙 위반 전에 스스로 점검한다.\n\n## [YYYY-MM-DD] {교훈 제목 — 규칙을 한 줄로 요약}\n- 유형: 반복 실수 | 컨벤션 | 도메인 지식\n- 증상: {구체 사례 — 무엇이 어떻게 잘못됐나 (파일\u002F명령\u002F입력 포함)}\n- 원인: {근본 원인 — 표면 증상이 아니라 왜 발생했나}\n- 규칙: {명령형 서술 — 다음부터 무엇을 어떻게 한다}\n- 검증: {이 규칙이 지켜졌는지 확인하는 방법}\n- 발생: {N}회 (최초 YYYY-MM-DD \u002F 최근 YYYY-MM-DD)\n- 태그: {#가드-훅-후보 (이벤트: ..., 검사: ...) | #승격-후보 | 없음}\n```\n\n### 갱신 규칙\n- **재발 시**: 신규 항목을 만들지 않고 기존 항목의 `발생` 횟수를 +1, 최근 날짜 갱신,\n  필요 시 `증상`에 새 사례 1줄 추가\n- **승격 시**: CLAUDE.md 컨벤션으로 승격되거나 가드 훅이 생성되면 항목을 삭제하지 말고\n  `→ YYYY-MM-DD {대상}으로 승격` 한 줄을 남긴다 (이력 보존)\n- **날짜**: 시스템 날짜를 사용하고 추측하지 않는다\n\n## 5. 저품질 규칙 축적 방지 원칙\n\nlessons.md는 늘어날수록 좋은 파일이 아니다. 세션 시작마다 리뷰되는 파일이므로\n항목 하나하나가 컨텍스트 비용이다.\n\n1. **1회성 기록 보류**: 첫 발생 실수는 원칙적으로 기록하지 않는다(승인 게이트 보고에\n   \"기록 보류\"로만 표시). 재발하면 그때 기록한다.\n   - **예외**: 데이터 유실·보안·금지 파일 수정 등 피해가 큰 실수는 1회여도 즉시 기록\n2. **훈계 금지**: \"더 조심한다\", \"꼼꼼히 확인한다\" 류의 판정 불가 서술은 품질 기준\n   2.3에서 차단한다. 통과 못 하면 규칙이 아니다\n3. **상한과 프루닝**: 항목이 20개를 초과하면 `\u002Fretro` 실행 시 프루닝을 제안한다 —\n   6개월 이상 재발 없는 항목의 정리, 유사 항목 통합, 승격 후보 선별\n4. **승격 사다리 운영**: `발생 3회+` 또는 팀 전체에 적용되는 규칙은 `#승격-후보` 태그를\n   달고 (a) 라우팅(sync-claude-md 경유 CLAUDE.md 반영) 또는 (b′) 가드 훅 후보로 전환을\n   제안한다. lessons.md는 검증 대기소이지 종착지가 아니다\n5. **중복은 횟수로**: 같은 교훈의 재기록은 금지 — 발생 횟수 증가가 곧 그 규칙의\n   중요도 신호이며, 승격 판단의 근거가 된다\n6. **환경·부정·일시 캡처 금지** (hermes-agent do-NOT-capture 이식): 다음 4종은 품질 기준을\n   통과해도 기록하지 않는다 —\n   ⓐ 환경 의존 실패(미설치 바이너리·자격증명 부재·경로 불일치): 사용자가 고치면 끝나는\n   상태이지 규칙이 아니다.\n   ⓑ 도구·기능에 대한 부정 주장(\"X는 안 됨\u002F고장\"): 실제 문제가 고쳐진 뒤에도 스스로에게\n   인용하는 거부(refusal)로 굳는 부채다.\n   ⓒ 세션 안에서 해소된 일시 오류: 재시도가 통했다면 기록할 것은 **재시도 패턴**이지 원 실패가\n   아니다.\n   ⓓ 설정 상태가 원인인 도구 실패는 \"안 된다\"가 아니라 **고치는 방법**(설치 명령·env·설정\n   단계)으로만 기록한다.\n\n## 6. 중복·상충 검사 절차\n\n라우팅 결과를 승인 게이트에 올리기 **전에** 수행한다.\n\n| 단계 | 대조 대상 | 중복 시 | 상충 시 |\n|------|----------|--------|--------|\n| 1 | `tasks\u002Flessons.md` 기존 항목 | 신규 기록 → 기존 항목 발생 +1로 전환 | 양쪽 병기, 사용자 판단 요청 |\n| 2 | 프로젝트 `CLAUDE.md` (+ `claude\u002FCLAUDE.md`) | 이미 명문화됨 → 기록 생략, \"기존 규칙 재확인\"으로 보고 | 양쪽 병기, 사용자 판단 요청 — **자동 해소 금지** |\n| 3 | (c)\u002F(c′) 제안 대상 스킬 현재 본문 | 이미 반영됨 → 제안 철회 | 스킬 서술과 실제 동작의 괴리를 제안서에 명시 |\n\n- **중복 판정**: 문구가 아니라 의미로 판정한다. 같은 상황에서 같은 행동을 요구하면 중복이다\n- **상충 판정**: 같은 상황에서 다른 행동을 요구하면 상충이다. 어느 쪽이 맞는지는\n  사용자만 결정할 수 있다 — 상충 항목은 승인 대상이 아니라 **판단 요청** 항목으로 승격한다\n\n## 7. 사용자 승인 게이트\n\n- 모든 라우팅 결과(lessons.md 기록, sync-claude-md 위임, 수정 제안)는 적용 전\n  요약 표로 제시하고 항목별 승인을 받는다. 예외 없음\n- 승인 없이 실행 가능한 것은 **읽기 작업뿐**이다 (Read\u002FGlob\u002FGrep\u002Fgit 조회)\n- 제안서((c)\u002F(c′))는 승인을 받아도 파일을 수정하지 않는다 — 승인은 \"제안서를\n  전달받았다\"는 확인이며, 실제 수정은 사용자 또는 해당 플러그인 담당 작업의 몫이다\n\n## 8. Related Components\n\n| 컴포넌트 | 관계 |\n|----------|------|\n| `\u002Fretro` 커맨드 | 이 스킬의 기준을 사용하는 실행 절차 (Phase 1~6) |\n| `workflow:sync-claude-md` | (a) 컨벤션 변화의 CLAUDE.md 반영 위임 대상 |\n| `harness:create-flow` | (b′) 가드 훅 후보의 스캐폴딩 담당 — lessons 입력 모드는 별도 작업 예정 |\n| `harness:evolve` | 피드백 라우팅 골격의 출처. 하네스 컴포넌트 개선(여러 실행에 걸친 피드백 반영)은 그쪽으로 안내 |\n| `workflow:handoff` | 세션 컨텍스트 이관 담당 — \u002Fretro는 교훈만, \u002Fhandoff는 작업 상태만 다룬다 |\n","# Retro Compound — 교훈 컴파운딩 방법론\n\n세션마다 발생하는 교정·실수·발견을 일회성으로 흘려보내지 않고, 검증된 규칙으로 축적해\n다음 세션의 실수율을 낮추는 방법론이다. Compound Engineering 패턴을 차용한다:\n**교훈은 복리로 쌓일 때만 가치가 있고, 저품질 규칙은 복리로 쌓이면 부채가 된다.**\n\n`\u002Fretro` 커맨드가 실행 절차(Phase)를 담당하고, 이 스킬은 판정 기준·기록 형식·방지 원칙을 담당한다.\n\n## When to Apply\n\n- `\u002Fretro` 커맨드 실행 시 (품질 필터·라우팅·기록 형식의 기준으로 항상 로드)\n- 사용자가 같은 지적을 반복하거나 \"왜 또 이러냐\"는 신호를 보낼 때\n- 작업·코드 리뷰·루프 하네스 종료 시점에 교훈 회수가 필요할 때\n- `tasks\u002Flessons.md`의 항목을 정리·통합·승격하려 할 때\n\n## Core Principles\n\n1. **하네스가 판정한다**: 교훈의 채택 여부는 모델의 자기평가가 아니라 명문화된 품질 기준과 사용자 승인으로 결정한다\n2. **적을수록 강하다**: 판정 불가능한 훈계 10개보다 판정 가능한 규칙 1개가 낫다. 기록 보류를 두려워하지 않는다\n3. **승격 사다리**: 교훈은 `기록 보류 → lessons.md → CLAUDE.md 컨벤션 or 가드 훅`으로 검증을 거치며 승격된다. 단계를 건너뛰지 않는다\n4. **자동 수정 금지 경계**: 이 스킬이 직접 쓸 수 있는 파일은 `tasks\u002Flessons.md` 하나뿐이다. CLAUDE.md는 sync-claude-md에, 훅 생성은 create-flow에, 스킬 본문은 사용자에게 맡긴다\n\n## 1. 교훈 원료의 3분류\n\n| 원료 | 정의 | 추출 신호 |\n|------|------|----------|\n| **교정(correction)** | 사용자가 결과물·접근을 고쳐준 지점 | 지시 번복, 재작업 요청, \"그게 아니라\", \"다시\", 명시적 반려 |\n| **실수(mistake)** | 스스로 실패했거나 되돌린 시도 | 실패한 명령, revert된 편집, 검증 게이트 불통과, 잘못된 파일 수정 |\n| **발견(discovery)** | 세션 중 새로 알게 된 사실 | 문서에 없던 컨벤션, 도구 제약, 도메인 규칙, 숨은 의존성 |\n\n> 전역 CLAUDE.md의 Self-Improvement Loop 규약과 정합: \"사용자의 교정이 있을 때마다\n> tasks\u002Flessons.md에 패턴을 기록하고, 같은 실수를 막는 규칙을 작성하며, 실수율이 떨어질\n> 때까지 반복 개선한다. 세션 시작 시 lessons를 리뷰한다.\"\n\n## 2. 교훈 품질 기준 (채택 게이트)\n\n세 기준을 **모두** 통과해야 라우팅 대상이 된다. 하나라도 미달이면 기록 보류.\n\n### 2.1 재현 가능성 (구체 사례)\n제3자가 이 기록만 읽고 상황을 재구성할 수 있어야 한다.\n\n```\n[미달] \"파일 경로를 잘못 다뤘다\"\n[통과] \"plugins\u002Fworkflow\u002Fcommands\u002Fretro.md 생성 시 frontmatter의 category에\n       존재하지 않는 값 'misc'를 사용해 verify-flow CMD-003 검증에 실패했다\"\n```\n\n- 필수 요소: 관련 파일\u002F명령\u002F입력 중 최소 1개 + 무엇이 잘못됐는지 + 어떻게 드러났는지\n\n### 2.2 일반화 가능성 (원리 수준)\n특정 파일 1회에만 유효한 사후 설명이 아니라, 미래 작업에 적용되는 원리여야 한다.\n\n```\n[미달] \"retro.md의 category는 workflow로 한다\" (그 파일 한정)\n[통과] \"커맨드 frontmatter의 category\u002Fcomplexity는 신조어 금지 — 저장소에서\n       grep으로 기존 값 분포를 확인하고 그중에서 고른다\" (모든 커맨드에 적용)\n```\n\n- 자가 점검: \"이 규칙이 다음 달 다른 작업에서도 발동하는가?\"\n\n### 2.3 판정 가능성 (actionable)\n준수\u002F위반을 객관적으로 판정할 수 있는 명령형 서술이어야 한다.\n\n```\n[미달] \"컨벤션에 더 주의한다\" (판정 불가한 훈계)\n[통과] \"신규 커맨드 작성 전 같은 플러그인의 기존 커맨드 1개를 Read해 섹션 구조를 대조한다\"\n```\n\n## 3. 라우팅 표\n\nharness:evolve 피드백 라우팅(품질→스킬 \u002F 역할→에이전트 \u002F 트리거→description)의\n골격을 세션 교훈에 맞게 확장한 것이다.\n\n| 유형 | 판정 신호 | 라우팅 대상 | 적용 방식 | 경계 |\n|------|----------|------------|----------|------|\n| **(a) 컨벤션 변화** | 프로젝트 규칙·구조·도구 사용법이 바뀜, 또는 문서화 안 된 규칙 발견 | `workflow:sync-claude-md` 위임 | 승인 후 스킬 발동 | CLAUDE.md 직접 편집 금지 |\n| **(b) 반복 실수 패턴** | 동일 패턴 교정·실수가 세션 내 2회+ 또는 기존 lessons 항목과 동일 | `tasks\u002Flessons.md` 기록 | 승인 후 직접 기록 | 유일하게 직접 쓰는 파일 |\n| **(b′) 가드 훅 후보** | (b) 중 결정론적 검사 가능 + 누적 2회+ 재발 | lessons 항목에 `#가드-훅-후보` 태그 | 태그 표기까지만 | 훅 생성은 harness:create-flow 담당 (lessons 입력 모드는 별도 작업 예정) |\n| **(c) 도메인 지식 갱신** | 플러그인 스킬 내용이 낡음, 예시가 틀림, 레퍼런스 누락 | 해당 스킬 수정 **제안서** | 제안 출력만 | 자동 수정 금지 |\n| **(c′) 트리거 미스** | 스킬이 발동해야 할 상황에서 발동 안 함(또는 오발동) | 해당 스킬 description 수정 **제안서** | 제안 출력만 | harness:evolve와 동일 원칙 |\n\n- 복수 유형에 해당하면 복수 라우팅한다. 예: \"커맨드 complexity 값 신조어 사용\"은\n  (b) 반복 실수 기록이면서, 검증 규칙이 있다면 (b′) 가드 훅 후보다.\n- 하네스(에이전트 팀) 자체의 역할·워크플로우 문제는 이 스킬의 범위 밖 —\n  `harness:evolve`(기존 구성 조정) 또는 `harness:team-harness`(에이전트 추가·구조 재설계)로 안내한다.\n\n### 가드 훅 후보 판정 기준 (b′)\n\n아래를 **모두** 만족할 때만 태그를 단다.\n\n1. **결정론적 검사 가능**: 파일 패턴·명령어 매칭·정규식 등으로 기계 판정 가능\n   (예: \"marketplace.json 수정 시도 차단\" — 가능 \u002F \"설계가 우아한지\" — 불가능)\n2. **누적 2회 이상 재발**: 이번 세션 포함 발생 횟수 2회 이상\n3. **차단·경고 시점이 명확**: PreToolUse\u002FPostToolUse\u002FStop 등 훅 이벤트에 대응 가능\n\n태그 형식: 항목의 `태그:` 필드에 `#가드-훅-후보 (이벤트: PreToolUse, 검사: {한 줄 요약})`\n\n## 4. tasks\u002Flessons.md 기록 형식\n\n파일이 없으면 아래 헤더로 생성한다. 항목은 최신이 위로 오게 추가한다.\n\n```markdown\n# Lessons — 재발 방지 규칙\n\n> \u002Fretro가 관리한다. 세션 시작 시 이 파일을 리뷰하고, 규칙 위반 전에 스스로 점검한다.\n\n## [YYYY-MM-DD] {교훈 제목 — 규칙을 한 줄로 요약}\n- 유형: 반복 실수 | 컨벤션 | 도메인 지식\n- 증상: {구체 사례 — 무엇이 어떻게 잘못됐나 (파일\u002F명령\u002F입력 포함)}\n- 원인: {근본 원인 — 표면 증상이 아니라 왜 발생했나}\n- 규칙: {명령형 서술 — 다음부터 무엇을 어떻게 한다}\n- 검증: {이 규칙이 지켜졌는지 확인하는 방법}\n- 발생: {N}회 (최초 YYYY-MM-DD \u002F 최근 YYYY-MM-DD)\n- 태그: {#가드-훅-후보 (이벤트: ..., 검사: ...) | #승격-후보 | 없음}\n```\n\n### 갱신 규칙\n- **재발 시**: 신규 항목을 만들지 않고 기존 항목의 `발생` 횟수를 +1, 최근 날짜 갱신,\n  필요 시 `증상`에 새 사례 1줄 추가\n- **승격 시**: CLAUDE.md 컨벤션으로 승격되거나 가드 훅이 생성되면 항목을 삭제하지 말고\n  `→ YYYY-MM-DD {대상}으로 승격` 한 줄을 남긴다 (이력 보존)\n- **날짜**: 시스템 날짜를 사용하고 추측하지 않는다\n\n## 5. 저품질 규칙 축적 방지 원칙\n\nlessons.md는 늘어날수록 좋은 파일이 아니다. 세션 시작마다 리뷰되는 파일이므로\n항목 하나하나가 컨텍스트 비용이다.\n\n1. **1회성 기록 보류**: 첫 발생 실수는 원칙적으로 기록하지 않는다(승인 게이트 보고에\n   \"기록 보류\"로만 표시). 재발하면 그때 기록한다.\n   - **예외**: 데이터 유실·보안·금지 파일 수정 등 피해가 큰 실수는 1회여도 즉시 기록\n2. **훈계 금지**: \"더 조심한다\", \"꼼꼼히 확인한다\" 류의 판정 불가 서술은 품질 기준\n   2.3에서 차단한다. 통과 못 하면 규칙이 아니다\n3. **상한과 프루닝**: 항목이 20개를 초과하면 `\u002Fretro` 실행 시 프루닝을 제안한다 —\n   6개월 이상 재발 없는 항목의 정리, 유사 항목 통합, 승격 후보 선별\n4. **승격 사다리 운영**: `발생 3회+` 또는 팀 전체에 적용되는 규칙은 `#승격-후보` 태그를\n   달고 (a) 라우팅(sync-claude-md 경유 CLAUDE.md 반영) 또는 (b′) 가드 훅 후보로 전환을\n   제안한다. lessons.md는 검증 대기소이지 종착지가 아니다\n5. **중복은 횟수로**: 같은 교훈의 재기록은 금지 — 발생 횟수 증가가 곧 그 규칙의\n   중요도 신호이며, 승격 판단의 근거가 된다\n6. **환경·부정·일시 캡처 금지** (hermes-agent do-NOT-capture 이식): 다음 4종은 품질 기준을\n   통과해도 기록하지 않는다 —\n   ⓐ 환경 의존 실패(미설치 바이너리·자격증명 부재·경로 불일치): 사용자가 고치면 끝나는\n   상태이지 규칙이 아니다.\n   ⓑ 도구·기능에 대한 부정 주장(\"X는 안 됨\u002F고장\"): 실제 문제가 고쳐진 뒤에도 스스로에게\n   인용하는 거부(refusal)로 굳는 부채다.\n   ⓒ 세션 안에서 해소된 일시 오류: 재시도가 통했다면 기록할 것은 **재시도 패턴**이지 원 실패가\n   아니다.\n   ⓓ 설정 상태가 원인인 도구 실패는 \"안 된다\"가 아니라 **고치는 방법**(설치 명령·env·설정\n   단계)으로만 기록한다.\n\n## 6. 중복·상충 검사 절차\n\n라우팅 결과를 승인 게이트에 올리기 **전에** 수행한다.\n\n| 단계 | 대조 대상 | 중복 시 | 상충 시 |\n|------|----------|--------|--------|\n| 1 | `tasks\u002Flessons.md` 기존 항목 | 신규 기록 → 기존 항목 발생 +1로 전환 | 양쪽 병기, 사용자 판단 요청 |\n| 2 | 프로젝트 `CLAUDE.md` (+ `claude\u002FCLAUDE.md`) | 이미 명문화됨 → 기록 생략, \"기존 규칙 재확인\"으로 보고 | 양쪽 병기, 사용자 판단 요청 — **자동 해소 금지** |\n| 3 | (c)\u002F(c′) 제안 대상 스킬 현재 본문 | 이미 반영됨 → 제안 철회 | 스킬 서술과 실제 동작의 괴리를 제안서에 명시 |\n\n- **중복 판정**: 문구가 아니라 의미로 판정한다. 같은 상황에서 같은 행동을 요구하면 중복이다\n- **상충 판정**: 같은 상황에서 다른 행동을 요구하면 상충이다. 어느 쪽이 맞는지는\n  사용자만 결정할 수 있다 — 상충 항목은 승인 대상이 아니라 **판단 요청** 항목으로 승격한다\n\n## 7. 사용자 승인 게이트\n\n- 모든 라우팅 결과(lessons.md 기록, sync-claude-md 위임, 수정 제안)는 적용 전\n  요약 표로 제시하고 항목별 승인을 받는다. 예외 없음\n- 승인 없이 실행 가능한 것은 **읽기 작업뿐**이다 (Read\u002FGlob\u002FGrep\u002Fgit 조회)\n- 제안서((c)\u002F(c′))는 승인을 받아도 파일을 수정하지 않는다 — 승인은 \"제안서를\n  전달받았다\"는 확인이며, 실제 수정은 사용자 또는 해당 플러그인 담당 작업의 몫이다\n\n## 8. Related Components\n\n| 컴포넌트 | 관계 |\n|----------|------|\n| `\u002Fretro` 커맨드 | 이 스킬의 기준을 사용하는 실행 절차 (Phase 1~6) |\n| `workflow:sync-claude-md` | (a) 컨벤션 변화의 CLAUDE.md 반영 위임 대상 |\n| `harness:create-flow` | (b′) 가드 훅 후보의 스캐폴딩 담당 — lessons 입력 모드는 별도 작업 예정 |\n| `harness:evolve` | 피드백 라우팅 골격의 출처. 하네스 컴포넌트 개선(여러 실행에 걸친 피드백 반영)은 그쪽으로 안내 |\n| `workflow:handoff` | 세션 컨텍스트 이관 담당 — \u002Fretro는 교훈만, \u002Fhandoff는 작업 상태만 다룬다 |\n",{"name":5,"metadata":49,"description":52},{"domain":50,"version":51,"category":35},"self-improvement","1.0.0","세션 회고 기반 교훈 컴파운딩 방법론 — 교정·실수·발견을 추출해 품질 기준(재현 가능성·\n일반화 가능성·판정 가능성)으로 필터링하고, 유형별 라우팅 표에 따라 tasks\u002Flessons.md 기록,\nCLAUDE.md 동기화 위임, 스킬 수정 제안으로 분배한다. 중복·상충 검사와 사용자 승인 게이트,\n저품질 규칙 축적 방지 원칙을 포함한다.\nUse when: \"\u002Fretro\" 실행 시, \"회고\", \"레트로\", \"교훈 정리\", \"lessons 정리\", \"같은 실수 반복\",\n\"재발 방지 규칙\", \"retrospective\", \"lessons learned\", \"compound engineering\",\n작업·리뷰·루프 종료 시점에 세션의 교정 내용을 자산화하려 할 때.\nDelegation boundaries: 컨벤션 변화의 CLAUDE.md 반영은 workflow:sync-claude-md에 위임(직접\n편집 금지), 가드 훅 스캐폴딩은 harness:create-flow에 위임(이 스킬은 #가드-훅-후보 태그\n표기까지만), 플러그인 스킬 본문은 수정 제안만 산출(자동 수정 금지), 여러 실행에 걸친\n하네스 컴포넌트 개선은 harness:evolve 소관.\nProvides a lesson-compounding methodology for session retrospectives: extracts corrections, mistakes, and discoveries, filters by quality criteria, and routes them to tasks\u002Flessons.md, CLAUDE.md sync delegation, or skill-edit proposals with duplicate checks and user-approval gates. Use when: running \u002Fretro, doing a retrospective, consolidating lessons learned, preventing repeated mistakes.\n","main","e9f37e996e3d2b1b6ac9c879e9dfba1223b597c3","archive\u002Fcomponents\u002Fworkflow\u002Fskills\u002Fretro-compound",0,"https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness","https:\u002F\u002Fdokkabei97.github.io\u002Fdokkabei-harness\u002F","https:\u002F\u002Fgithub.com\u002FDokkabei97","Contact: wkdrn970@gmail.com","2026-10-29 06:49:16",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add Dokkabei97\u002Fdokkabei-harness --skill retro-compound",{"tool":68,"command":69},"bunx","bunx skills add Dokkabei97\u002Fdokkabei-harness --skill retro-compound",{"tool":71,"command":72},"pnpm","pnpm dlx skills add Dokkabei97\u002Fdokkabei-harness --skill retro-compound","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Farchive\u002Fcomponents\u002Fworkflow\u002Fskills\u002Fretro-compound\u002FSKILL.md",true,[],[77,103,132,155,169,192],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":84,"publishedAt":44},"01M6QZQTNF815AWYMAMJ3B25GY","sync-claude-md","커밋·푸시·PR\u002FMR 직전에 이번 변경이 프로젝트 CLAUDE.md 를 낡게 만드는지 검토하고, 필요할 때만 갱신 diff 를 제안한다 — 아키텍처·디렉터리 구조, 새 통합\u002FMCP, 컨벤션, 빌드·CI·도구, 주요 의존성 변화가 대상. 해당 없으면 한 줄로 끝낸다.\nReviews whether pending changes make the project CLAUDE.md stale (architecture, integrations, conventions, build\u002FCI\u002Ftooling, major dependencies) and proposes a minimal update diff only when needed.\nUse when: \"CLAUDE.md 갱신 필요해?\", \"CLAUDE.md 동기화\", 커밋\u002F푸시\u002FMR 전에 구조·도구가 바뀐 변경을 정리할 때, sync CLAUDE.md, check CLAUDE.md before commit or PR.","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fsync-claude-md\u002FSKILL.md",[83],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[43,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,28],"claude md","sync claude md","MCP","commit","architecture","pr","update","ci","integrations","use","diff","only","minimal","project","make","reviews","pending","mr",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":115,"publishedAt":44},"01M6QZQEK94G00N955VQH9EFQN","spec-driven-dev","새 기능·프로젝트·큰 변경을 코드보다 스펙 먼저로 진행하는 게이트 워크플로(SPECIFY → PLAN → TASKS → IMPLEMENT) — 가정 명시, 측정 가능한 성공 기준, Always\u002FAsk\u002FNever 경계, 단계별 사람 검토로 범위 이탈과 재작업을 줄인다.\nSpec-before-code gated workflow for new features or significant changes: explicit assumptions, measurable success criteria, boundaries, and a human review between stages.\nUse when: \"스펙 먼저\", \"기능 명세\", \"요구사항 정리\", starting a new feature or project, a significant change with vague requirements. 단순 버그 수정·1~2줄 변경엔 불필요.","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fspec-driven-dev\u002FSKILL.md",[109,110],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[116,117,118,119,120,121,35,122,42,123,124,125,126,127,98,128,129,130,131,28],"spec","spec driven","dev","spec driven dev","driven","review","change","code","plan","ask","never","human","feature","for","vague","features",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":44},"01M6QZQA9F6QVGTVDMJ28YQGDV","shipping-guide","프로덕션 배포 전후 가이드 — 배포 전 체크리스트, 피처 플래그 수명주기, 단계적 롤아웃과 진행\u002F보류\u002F롤백 임계값, 롤백 계획 템플릿, 배포 후 모니터링.\nProduction shipping guide: pre-launch checklist, feature-flag lifecycle, staged rollout with go\u002Fhold\u002Frollback thresholds, rollback plan template, post-launch monitoring.\nUse when: \"배포 준비\", \"릴리즈 전 점검\", \"롤아웃 계획\", \"롤백 계획\", preparing a production deploy, staged rollout, feature flags.","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fshipping-guide\u002FSKILL.md",[],[139,140,141,142,143,144,145,124,146,147,94,148,149,128,150,151,152,153,154,28],"shipping","guide","shipping guide","launch","monitoring","lifecycle","feature flags","template","rollback","rollout","flags","thresholds","post","with","pre-launch","rollback plan",{"skillNo":156,"name":25,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":44},"01M6QZQ3M962PCWYM6YH62D76Z","세션 회고·교훈 컴파운딩 — 이번 세션의 교정·실수·발견을 추출해 품질 기준(재현·일반화·판정 가능성)으로 거르고, 컨벤션 변화는 sync-claude-md 위임, 반복 실수는 tasks\u002Flessons.md(#가드-훅-후보 태그), 스킬 지식 갱신은 수정 제안으로 나눈다. 모든 적용은 승인 후.\nSession retrospective that turns corrections, mistakes, and discoveries into vetted lessons routed to CLAUDE.md sync, tasks\u002Flessons.md, or skill-edit proposals, with user approval before any write.\nUse when: \"회고\", \"레트로\", \"교훈 정리\", \"같은 실수 반복\", \"재발 방지 규칙\", retrospective, lessons learned, wrapping up a task, review, or loop. 여러 실행에 걸친 하네스 개선은 harness:evolve.","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fretro\u002FSKILL.md",[],[25,121,43,42,161,39,162,38,163,37,36,164,96,165,166,31,167,168,29,28],"run","loop","write","session","up","dry","Session Retrospective","lessons",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":176,"publishedAt":44},"01M6QZPPDATJ7DAGNP0JCXFGRV","project-rules","현재 프로젝트의 스택(빌드 파일 버전, 마이그레이션 도구, ORM 유무, ES 사용, git 호스트)을 감지해 프로젝트 루트 AGENTS.md 의 마커 블록(스택 사실 + 항상 적용되는 스페셜리스트 핵심 ≤15줄 — Claude Code·Codex·Antigravity 공통)과 CLAUDE.md 의 `@AGENTS.md` 연결, Claude 전용 경로 한정 .claude\u002Frules\u002F\u003Cstack>-specialist.md(해당 버전에 실제로 맞는 상세 함정)를 diff 로 제안하고, 스택 플러그인을 런타임별로 프로젝트 범위에서 켜는 법을 안내한다. 이전 버전 출력(CLAUDE.md 블록·specialist-core.md)은 AGENTS.md 로 이전을 제안. --check 는 버전 불일치·사라진 ID·크기 한도·연결 누락을 점검.\nDetects the project's stack and proposes a cross-runtime AGENTS.md block (stack facts + always-on specialist core) linked from CLAUDE.md via @AGENTS.md, plus Claude-only path-scoped specialist rules; migrates the older CLAUDE.md-block layout; --check audits drift.\nUse when: \"이 프로젝트 세팅\", \"프로젝트 규칙 생성\", \"AGENTS.md\u002FCLAUDE.md 점검\", project setup, generate project rules, audit AGENTS.md or CLAUDE.md drift.","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fproject-rules\u002FSKILL.md",[175],{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},[177,98,178,179,180,123,181,182,183,184,95,96,185,186,187,188,189,190,191,28],"Rules","project rules","core","generate","git","audit","stack","orm","es","drift","layout","runtime","-specialist","path","scoped",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":202,"publishedAt":44},"01M6QZPF3S8YAM27F297F6GVD7","post-merge","MR 머지 완료 후 Plane 이슈 종료와 Outline 문서 업데이트를 자동으로 처리하는 오케스트레이터 스킬입니다.\nissue-tracker와 document-latest 스킬을 연계 실행하여 머지 후 후속 작업을 일괄 처리합니다.\nOrchestrates post-merge follow-up after an MR is merged: chains the issue-tracker and document-latest skills to close the Plane issue and update Outline wiki docs in a single batch. Use when: an MR was just merged, closing tickets and syncing documentation after a merge, post-merge cleanup.","https:\u002F\u002Fgithub.com\u002FDokkabei97\u002Fdokkabei-harness\u002Fblob\u002Fmain\u002Fplugins\u002Fworkflow\u002Fskills\u002Fpost-merge\u002FSKILL.md",[198,201],{"categoryNo":199,"categoryName":200,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[203,204,151,205,206,91,207,208,209,165,210,211,212,213,214,215,216,217,102,28],"merge","post merge","documentation","cleanup","batch","wiki","just","issue","tracker","close","closing","follow-up","true","plane","single"]