一键导入
evolve
하네스 자체를 진화시킬 때 사용하세요. "이거 규칙으로 만들어", "이 작업 스킬로 만들어", "이거 차단해", 같은 실수가 반복될 때, 같은 패턴의 코드를 여러 번 작성할 때, 프로젝트 구조가 변경되었을 때 트리거합니다. 규칙·스킬·hook·메모리를 프로젝트에 맞게 진화시킵니다.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
하네스 자체를 진화시킬 때 사용하세요. "이거 규칙으로 만들어", "이 작업 스킬로 만들어", "이거 차단해", 같은 실수가 반복될 때, 같은 패턴의 코드를 여러 번 작성할 때, 프로젝트 구조가 변경되었을 때 트리거합니다. 규칙·스킬·hook·메모리를 프로젝트에 맞게 진화시킵니다.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
실수를 했을 때, 사용자에게 교정받았을 때, 가정이 틀렸을 때, 또는 코드베이스에 대해 비자명한 것을 배웠을 때 사용하세요. 실수와 교훈을 .claude/memory/ 파일에 영구적으로 기록하여 다음 세션에서 같은 실수를 반복하지 않도록 합니다.
컨텍스트 압축(compaction) 타이밍을 안내합니다. "컴팩트해줘", "컨텍스트 정리해줘", "compact-guide", "context가 꽉 찼어", "토큰이 부족해" 등에 트리거합니다. 언제 압축해야 하고 언제 하면 안 되는지 판단 기준과 압축 전 체크리스트를 제공합니다.
사용자가 "커밋해줘", "스테이지해줘", "PR 만들어줘", "브랜치 만들어줘", "이거 올려줘", "git 작업 도와줘"라고 할 때 사용하세요. 안전한 git 작업, 커밋 메시지 작성, PR 생성을 위한 표준 절차를 제공합니다. 파괴적 명령은 절대 실행하지 않습니다.
주간/세션 단위 회고를 실행하세요. "회고해줘", "이번 주 정리해줘", "뭘 했는지 요약해줘", "retro", "retrospective", "/retro" 등에 트리거합니다. git 통계 + 메모리를 결합해 성과·배운 것·막힌 곳을 구조화된 리포트로 출력하고, 진화 기회를 식별합니다.
| name | evolve |
| description | 하네스 자체를 진화시킬 때 사용하세요. "이거 규칙으로 만들어", "이 작업 스킬로 만들어", "이거 차단해", 같은 실수가 반복될 때, 같은 패턴의 코드를 여러 번 작성할 때, 프로젝트 구조가 변경되었을 때 트리거합니다. 규칙·스킬·hook·메모리를 프로젝트에 맞게 진화시킵니다. |
이 스킬은 Venom을 살아있게 만드는 핵심이다. 프로젝트에서 일하면서 발견한 것을 규칙·스킬·hook·메모리로 응결시킨다.
mistakes.md에 2회 이상 기록됨무엇을 진화시킬지 판단하는 기준:
| 상황 | 진화 대상 | 이유 |
|---|---|---|
| 같은 실수 반복 | 규칙 강화 또는 hook 신규 | 조언으로 안 되면 강제로 |
| 같은 작업 반복 | 스킬 추출 | 절차를 한 번에 따를 수 있도록 |
| 비자명한 사실 발견 | 메모리 기록 | 다음 세션에 전달 |
| 관례 교정 | 규칙 추가 | 영구적 행동 변경 |
| 아키텍처 결정 | 메모리 ADR | 왜 그렇게 했는지 기록 |
| 위험 행동 감지 | hook 추가 | 결정적으로 차단 |
| 빌드/테스트 변경 | 규칙 + 스킬 갱신 | 도구 명령 최신화 |
a) 트리거 원인을 한 줄로 적는다
b) 기존 규칙/스킬/hook 중 관련된 것이 있는지 확인한다
c) 새로 만들지, 기존을 보강할지 결정한다
- 원칙: 기존 파일 보강 > 새 파일 생성
a) 대상 파일을 읽는다
b) 추가할 내용을 정한다
c) Edit으로 추가한다
d) 변경 이유를 lessons.md 또는 decisions.md에 기록한다
a) 배치 위치 결정:
- 기존 규칙 파일 보강 가능 → 기존 파일에 추가 (최우선)
- 새 파일이 필요 → .claude/rules/evolved/<이름>.md
(기존 00-55 번호 prefix 파일은 flat 유지, 진화 생성분은 evolved/)
b) 규칙 파일 작성:
- 제목: # <규칙 영역>
- 섹션별로 *무엇을* *왜* 해야 하는지 명시
- 예제 포함 (좋은 예 vs 나쁜 예)
c) CLAUDE.md의 부록 테이블에 등재한다
d) decisions.md에 ADR로 남긴다
a) .claude/skills/evolved/<이름>/SKILL.md 생성
(기존 기반 스킬은 skills/<name>/ 유지, 진화 생성분은 evolved/ 아래)
b) 형식:
---
name: <kebab-case-이름>
description: <트리거 조건, 한 줄>
---
# <제목>
<왜 필요한가>
## 절차
1. ...
## 안티 패턴
- ...
c) 실제 상황에 적용해본다 (머릿속 시뮬레이션이라도)
a) .claude/hooks/evolved/<이름>.sh 작성
- #!/usr/bin/env bash
- set -euo pipefail
- stdin에서 JSON 읽기
- 차단 시 JSON 출력, 통과 시 exit 0
(기존 기반 훅 flat 파일은 그대로 유지, 진화 생성분은 evolved/ 아래)
b) bash -n 문법 검증
c) chmod +x 부여
d) settings.json의 적절한 이벤트에 등록
예: "$CLAUDE_PROJECT_DIR"/.claude/hooks/evolved/<이름>.sh
e) JSON 유효성 검증:
python3 -c "import json; json.load(open('.claude/settings.json'))"
f) 대표 입력으로 스모크 테스트:
echo '{"tool_name":"Bash","tool_input":{"command":"<테스트명령>"}}' \
| bash .claude/hooks/evolved/<이름>.sh
g) decisions.md에 ADR로 남김
a) 카테고리 판단:
- 실수 → mistakes.md
- 항구적 사실 → lessons.md
- 아키텍처 결정 → decisions.md
b) 해당 파일 형식에 맞춰 추가
c) 태그 포함
a) decisions.md에 ADR 추가
형식:
## ADR-NNNN: <제목>
- 날짜: YYYY-MM-DD
- 상태: 채택
- 기원: mistakes.md #태그 (N회) 또는 lessons.md #태그
- 맥락: <어떤 문제에서 비롯됐나>
- 결정: <어떤 규칙/스킬/hook을 만들었나>
- 결과: <이 진화가 막는 것>
b) mistakes.md 또는 lessons.md에서 승급된 항목 삭제
- 동일 태그 항목 전체를 승급했으면 해당 항목 모두 삭제
- 일부만 승급했으면 승급된 항목만 삭제
c) 삭제 확인: 파일에 해당 태그 항목이 남아있지 않은지 확인
왜: mistakes.md/lessons.md는 "진화 대기열"이다. 승급된 항목이 남아있으면 세션마다 "이미 해결된 문제"에 컨텍스트를 낭비한다.
진화를 수행했으면 사용자에게 보고한다:
📝 진화: <무엇을> <어떻게> 했습니다.
- 이유: <왜>
- 파일: <경로>
- 검증: <어떻게 확인했는지>
bash -n도 안 돌린 hook은 전체 하네스를 깨뜨릴 수 있다.