Sprag

Harness, compact-window and seed (한국어)

다섯 원칙(Ratchet · Evidence · PEV · Structured Task · Default Safe Path)을 한 줄 명령으로 CLAUDE.md에 셋업하고 statusline이 🅷 5/5로 점수화합니다. 같은 에러가 반복되면 🅷⚠ ratchet? 알림이…

🅷 Harness 모드

다섯 원칙(Ratchet · Evidence · PEV · Structured Task · Default Safe Path)을 한 줄 명령으로 CLAUDE.md에 셋업하고 statusline이 🅷 5/5로 점수화합니다. 같은 에러가 반복되면 🅷⚠ ratchet? 알림이 떠서 룰로 승격할 수 있습니다.

sprag harness init                # 이 프로젝트에 셋업
sprag harness init --global       # ~/.claude/CLAUDE.md, 모든 프로젝트에 적용
sprag harness check               # 현재 점수 (글로벌 fallback 인정)
sprag harness analyze             # 훅 없이도 수동으로 전사 분석을 실행해 harness-state.json 갱신
sprag harness promote <N> --global|--project   # 경고 #N → ratchet 룰 (스코프 필수)
sprag harness promote "<룰 텍스트>" --global|--project  # 내가 직접 정의한 룰도 같은 명령으로 등록
sprag harness pull                # 패키지 동봉 큐레이션 룰 → 내 글로벌 래칫에 등록 (opt-in, 중복 스킵)
sprag harness list / rm <N>       # 룰 조회 / 삭제 (자동 .bak)
sprag harness off | on            # 🅷 표시 토글
⚠️ harness rm은 신중하게 사용하십시오: 삭제 전 확인 사항

ratchet의 가치는 한 방향 누적에 있습니다. 룰을 가볍게 지우면 같은 실수가 다시 새기 시작합니다.

삭제 시 .bak이 남지만 그 룰이 박힌 세션 컨텍스트(왜)는 복원되지 않습니다.

📦 compact-window: 1M 컨텍스트의 자동 압축 지점 고정

Claude Code는 min(autoCompactWindow, 모델 최대 창)에 가까워지면 대화를 자동 압축합니다. 1M 창을 쓰면 이 값이 잡혀 있지 않은 한 80만 토큰 근처까지 가서야 압축이 걸리고, 그전까지 모든 요청이 전체 컨텍스트를 통째로 재과금합니다. 1M은 너무 크니 40만~70만 범위를 권장합니다. 큰 붙여넣기용 여유는 200k 세션의 2~3.5배로 남기면서 꼬리만 잘라냅니다.

권장 범위 안이면 경고하지 않습니다. 40만은 절감이 압축 횟수를 이기는 하한이고, 긴 세션은 그보다 여유가 더 필요한 경우가 많습니다. 미설정이거나 70만을 넘을 때만 알립니다(그보다 낮게 잡은 건 더 공격적으로 아끼겠다는 선택이라 그냥 둡니다).

200k 컨텍스트는 경고 대상이 아닙니다. 창이 이미 200k 이하이므로 이 설정으로 달라지는 것이 없기 때문입니다.

sprag compact-window                       # 현재 상태 (모델·창·설정값·출처)
sprag compact-window set --global          # ~/.claude/settings.json 에 50만 고정 (범위 중간)
sprag compact-window set --project         # <root>/.claude/settings.json 에 고정
sprag compact-window set --global --value 600k    # 값 직접 지정 (10만~1M)
sprag compact-window off | on              # 경고 표시 토글

🌱 seed: 설치 직후부터 위임이 걸리게 하는 시작 룰

모델 피팅 래칫(ratchet-model.md)은 빈 파일로 시작합니다. route-scan이 사용자의 로그에서 같은 유형의 작업을 여러 번 관측하고, 사용자가 그 후보를 승인해야 룰이 생깁니다. 즉 갓 설치한 상태에서는 위임이 한 건도 걸리지 않고, 그 상태가 며칠 이어집니다. 정작 절감 효과가 가장 클 시기입니다.

seed는 패키지에 동봉된 프리셋으로 그 공백을 메웁니다.

프리셋내용파일
모델 피팅 9건명령 실행·탐색·상태 확인·붙여넣은 로그 질문·읽기 요약, 각 유형의 T2(haiku)와 T1(sonnet) 룰presets/model-rules.json
래칫 6건실제 반복 사고에서 승격된 범용 룰presets/ratchet-rules.json

등록 절차: 설치나 업그레이드 후 첫 세션에서 SessionStart 훅이 대기 중인 프리셋을 모델에게 전달하고, 모델이 한 건씩 순서대로 등록 여부를 묻습니다. 사용자가 답하면 곧바로 아래 명령을 실행합니다.

sprag seed                                   # 대기 중인 프리셋과 응답 기록
sprag seed accept <id> --global|--project     # 한 건 등록 (적용 범위 필수)
sprag seed accept all --global                # 사용자가 "전부 등록"이라고 답한 경우
sprag seed skip <id>                          # 거절 — 다시 묻지 않습니다
sprag seed reset                              # 응답 기록을 지워 전체를 다시 제안 대상으로

다른 문서