self-improvelisted
Install: claude install-skill This-HW/claude-code-kit
# Self-Improve
feedback ledger에 누적된 **반복 결함**을 근원(에이전트·스킬·룰 정의)에 반영하는
재귀 개선 루프 — 단, **제안-전용(proposal-only)**이다. 적용은 게이트를 통과해야만 한다.
<HARD-GATE>
정의 파일(.md) 수정을 **적용된 상태로 남기려면** 다음 전부 충족:
1. **커버리지 판정 선행**: 수정 대상에 대응하는 eval 시나리오(`evals/scenarios/<agent>/`)가
있는가?
- **있음** → 관련 evals(`--agent <name>`)가 baseline 대비 후퇴 없음(진짜 회귀 없음)
- **없음**(스킬·룰·시나리오 없는 에이전트) → **eval 게이트는 미적용이다.**
exit 0을 "게이트 통과"로 계산·보고하는 것은 게이트 착시(false-green)이며 금지.
"EVAL COVERAGE 없음 — 사용자 승인이 유일한 게이트"임을 명시 고지한다.
2. 사용자가 diff를 보고 **명시적으로 승인**
evals 실행 불가(exit 2 SKIPPED)면 제안까지만 — SKIPPED를 통과로 위장 금지.
자동 커밋 금지 — 커밋은 항상 사용자/메인 세션의 별도 결정.
**승인 전의 워킹 트리는 항상 깨끗해야 한다** (아래 4단계: 모든 분기에서 롤백 후
승인 시에만 재적용 — 미승인 diff가 트리에 잔존하면 게이트 실패로 간주하고 중단).
</HARD-GATE>
> 위치 근거: 학습 루프(ledger→LESSONS)는 "같은 실수를 세션이 회피"하게 하지만,
> 결함의 ���원이 정의 파일에 있으면 매 세션 회피 비용을 낸다. 이 스킬은 그 근원을
> 고치는 마지막 단계다. 안전망의 실체는 대상별로 다르다 — eval 커버리지가 있는
> 대상(현재 review-code·fix-bugs·implement-code)은 이중 게이트, 그 외에는
> **사용자 승인 단일 게이트**임을 숨기지 않는다.
## 절차
### 0. 전제
- repo root 기준으로 실행: `ROOT=$(git rev-parse --show-toplevel)` 후 모든 경로는
`$ROOT` 기준 (CWD 가정 금지).
- 시작 시 `git status --porcelain`으로 대상 정의 파일들이 깨끗한지 확인 — 이미
dirty면 사용자에�� 보고하고 중단 (남의 변경 위에 제안을 얹지 않는다).
### 1. 입력 수집
- **ledger 전량**: `docs/works/feedback/ledger.md`를 **직접 읽는다** (읽기는 허용 —
`feedback-loop.md`의 금지는 *편집*이다). `feedback.sh digest`는 세션 주입용으로
1,200자에서 절단되므로 전수 분석 입력으로 쓰지 않는다.
- 최신 eval 자산: baseline은 `evals/baseline/`에서 **파일명 사전순 최대의
`YYYY-MM-DD.json`** (`.bak`·`.gitkeep` 제외), 리