feat(harness): Hook 통합 — Memo 패턴 자동화 (선택, PR #11 후속)#13
Open
namojo wants to merge 1 commit intorevfactory:mainfrom
Open
feat(harness): Hook 통합 — Memo 패턴 자동화 (선택, PR #11 후속)#13namojo wants to merge 1 commit intorevfactory:mainfrom
namojo wants to merge 1 commit intorevfactory:mainfrom
Conversation
SessionStart/PreCompact/Stop hook을 활용하여 Memo 패턴의 status 운영을 자동화하는 가이드를 references/hook-integration.md로 추가한다. 핵심 원칙: 자동화는 위험한 책임이며 default가 아니다. harness는 사용자 settings.json을 절대 직접 수정하지 않는다. 사용자가 명시적으로 자동화를 원할 때만 (1) 패치 텍스트를 보여주고 (2) update-config 스킬에 위임한다. 3가지 hook 패턴을 정의: - 패턴 1 — SessionStart: status.md 공유 헤더만 80줄로 잘라 자동 주입 - 패턴 2 — PreCompact: 알림(옵션 A, 권장) 또는 timestamp append(옵션 B) - 패턴 3 — Stop: timestamp만 갱신, 본문 변경 없음 5가지 위험 항목(settings.json 직접 수정 금지, 사용자 환경 실행, 컨텍스트 주입 토큰 폭발, secrets/credentials 노출, Windows 경로 차이)과 7개 검토 체크리스트를 포함한다. Memo 패턴 자체는 hook 없이도 동작하므로, hook은 "있으면 좋고 없어도 되는" 옵션임을 명시한다. SKILL.md 참고 섹션에 항목 1줄 추가.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
배경 및 동기
별도로 제안된 Memo 패턴 (선택) PR(#11)을 적용한 하네스에서, 사용자가 "세션 재개 자동화", "컨텍스트 자동 주입", "컴팩트 시 자동 저장" 같은 자동화를 원할 때만 제안할 수 있는 hook 가이드를 추가합니다.
무엇을 추가하는가
skills/harness/references/hook-integration.md(신규, 약 245줄)를 추가하고,skills/harness/SKILL.md의 참고 섹션에 항목을 1줄 추가합니다.가장 중요한 원칙 — 자동화는 default가 아니다
다음 두 조건을 모두 만족할 때만 hook 적용을 제안합니다.
위 두 조건을 만족하지 않으면 이 문서를 끌어들이지 않습니다.
위험 요소 (5가지)
update-config스킬에 위임하거나, 사용자에게 패치 텍스트를 보여주고 본인이 적용하도록 한다..env등을 실수로 읽지 않도록 경로를 명시적으로 제한./)를 쓰지만 사용자 환경은 Windows.$CLAUDE_PROJECT_DIR을 항상 따옴표로 감싸고 경로 구분자에 주의.3가지 Hook 패턴
패턴 1 — SessionStart로 status 자동 주입
SessionStarthook이.harness/status.md의 공유 헤더 80줄만 잘라additionalContext로 주입합니다. 슬롯 전체를 자동 주입하면 토큰이 폭발하므로, 슬롯은 에이전트가 필요 시 직접Read하도록 합니다.패턴 2 — PreCompact 직전 슬롯 갱신
컴팩트는 Claude의 결정이므로 hook은 "지금 무엇을 했는지"를 모릅니다. 따라서 두 가지 접근:
additionalContext로 주입. 갱신은 에이전트가.{timestamp} pre-compact triggered한 줄 자동 append. 정보량은 적지만 손실 방지.패턴 3 — Stop hook으로 timestamp 갱신 (선택)
매 턴 종료 시 status.md의
Last Updated만 새로 찍습니다. 어떤 컨텍스트도 주입하지 않습니다. 본문 갱신은 에이전트가 마일스톤 시점에 직접 합니다.settings.json 통합 예시
settings.json에 SessionStart matcher(
resume|startup|clear)와 PreCompact hook을 등록합니다. 이 패치는 사용자가 직접 적용합니다. harness/Claude는 절대 settings.json에 자동 쓰지 않습니다. 사용자가 자동 적용을 원하면update-config스킬을 호출하라고 안내합니다.환경 주의사항
.sh확장자 유지. CRLF 대신 LF$CLAUDE_PROJECT_DIR이C:/Users/...형태.head/sed는 forward slash 그대로Hook 없이도 동작하는가?
예. Memo 패턴 자체는 hook 없이도 동작합니다.
.harness/status.mdRead" 지침이 있으면 hook 없이도 직접 읽습니다.따라서 hook 적용은 있으면 좋고 없어도 동작하는 옵션입니다. 사용자가 망설이면 끄고 시작하고, 익숙해지면 켜는 단계적 도입이 안전합니다.
검토 체크리스트 (사용자에게 제안 전 Claude/하네스가 점검)
secret/credential/*.env파일을 읽지 않도록 경로 제한되었는가?additionalContext가 80줄 이하로 잘려 있는가?set -euo pipefail등으로 hook 실패 시 빠르게 종료하는가?exit 0)하는가?의존성
본 PR은 PR #11 (Memo 패턴) 이후에 머지되는 것이 자연스럽습니다. 단, 코드 충돌은 없으므로 머지 순서가 바뀌어도 무방합니다 (참고 섹션 항목만 추가).
변경 사항
skills/harness/references/hook-integration.md(243줄)skills/harness/SKILL.md## 참고섹션에 Hook 통합 1줄 추가 ("사용자 명시 승인 없이 적용 금지" 명시)체크리스트