내 패턴 개선 백로그
한 줄 요약
내 하네스의 가장 큰 구멍은 “규율이 문서(산문)에만 있고 코드로 강제되지 않는다”는 것이며, 이 백로그는 6개 프레임워크가 이미 코드로 풀어 놓은 안전장치를 흡수해 그 구멍을 메우는 우선순위 목록이다. 왜 배우나: 강점(검증·오케스트레이션)에 더 붓는 대신, 3점짜리 약점(자기개선·배포 편의성)을 끌어올려야 전체 시스템이 사고 없이 굴러가기 때문이다.
그림
flowchart TD A["내 패턴 현재 상태<br/>강점 5점: 검증·오케스트레이션·컨텍스트·철학"] --> B{"단일 구멍<br/>규율이 산문(문서)에만 의존"} B --> C["약점 3점<br/>자기개선·배포DX"] B --> D["약점 4점<br/>가드레일·상태영속"] C --> E["흡수: 6개 프레임워크가<br/>코드로 푼 패턴"] D --> E E --> F["1단계 지금 바로<br/>설정·훅 추가만 (난이도 하)"] E --> G["2단계 다음<br/>영수증·자기개선·폴백 (난이도 중)"] E --> H["3단계 장기<br/>폐루프·게이팅·이벤트소싱 (난이도 상)"] F --> I["산문 규율 → 하네스가 코드로 강제"] G --> I H --> I I --> J["통합 설계안의 골격<br/>2_통합하네스_설계안"]
flowchart LR subgraph 산문["지금: 산문(문서)에만 있는 규율"] S1[".gjc 직접편집 금지라고<br/>문서에 적어둠"] S2["LLM이 안 어기길<br/>기도"] end subgraph 코드["목표: 하네스가 코드로 강제"] K1["PreToolUse 훅이<br/>Write를 exit 2로 거부"] K2["검증 안 하면<br/>Stop 훅이 종료 차단"] end 산문 -->|승격| 코드
쉽게 풀기
비유하자면, 지금 내 작업장에는 벽에 붙은 안전수칙 포스터(SSoT 문서)는 훌륭하게 적혀 있는데, 정작 위험한 기계에 안전 덮개(물리 차단장치)가 없는 상태다. 작업자(LLM)가 포스터를 읽고 안 다치길 바라는 셈이다. 이 백로그의 핵심은 포스터의 글귀를 실제 안전 덮개로 바꾸는 것이다.
단계별로 풀면 이렇다.
-
문제 진단 — 내 패턴은 검증 루프, 오케스트레이션, 컨텍스트 절약, 철학 네 축이 이미 만점(5점)이다. 반면 자기개선과 배포 편의성(DX)이 3점으로 가장 약하다. 그리고 모든 약점의 뿌리에는 “규율이 글로만 있고 하네스(작업 환경)가 코드로 막아주지 못한다”는 단일 구멍이 있다.
-
해결 전략 — 새 시스템을 처음부터 짜지 않는다. 이미 6개의 다른 프레임워크(Claude Code, Codex, OMC, gajae-code, ouroboros, fable-ish)가 같은 문제를 코드로 풀어 놓았으니, 그 검증된 부품을 가져다 내 설정에 끼운다.
-
우선순위 원칙 — 효과는 크고 난이도는 낮은 것부터. “지금 바로” 묶음 5개는 기존 설정 파일에 추가만 하면 되어 새 구조가 필요 없다. 무거운 항목(폐루프, 이벤트소싱)은 통합 설계안으로 미룬다.
핵심 용어를 일상어로 옮기면 이렇다.
- 훅(hook): 특정 순간(파일 쓰기 직전, 작업 종료 직전 등)에 자동으로 끼어드는 검문소. “이 파일은 못 쓴다”고 막아주는 자동 경비원.
- exit 2 / fail-closed: 검문을 통과 못 하면 그냥 멈춰 세우는 것. 의심스러우면 일단 차단(닫힌 채로 실패)한다는 안전 기본값.
- 영수증(receipt): “이 작업은 진짜로 검증을 통과했다”는 위조 불가능한 증명서. 해시값으로 도장을 찍는다.
- PreCompact flush: 긴 대화가 압축(요약)되기 직전에, 잊으면 안 되는 결정·함정을 메모장에 자동 저장하는 것.
핵심 정리
전체 백로그를 효과/난이도 순으로 슬림하게 정리한다. (상세 적용법은 아래 항목별 설명과 2_통합하네스_설계안 참고)
| # | 개선항목 | 효과 / 난이도 |
|---|---|---|
| 1 | settings.json 훅으로 규율 코드강제 | 상 / 하 |
| 2 | PreCompact 훅 메모리 auto-flush | 상 / 하 |
| 3 | 전역 안전설정 봉인 | 상 / 하 |
| 4 | 구조화 git trailer 커밋 | 중 / 하 |
| 5 | openclaw 신호엔진 자동복구 | 상 / 중 |
| 6 | sha256 영수증 제어면 | 상 / 중 |
| 7 | self-improve 토너먼트 엔진 | 상 / 중 |
| 8 | 꼬리먹는 reflect 루프 | 상 / 상 |
| 9 | 멀티계정/워커 폴백 | 상 / 중 |
| 10 | 비용/지연 가시화 | 중 / 중 |
| 11 | append-only StablePrefix 강화 | 중 / 중 |
| 12 | deep-interview 모호성 게이팅 | 중 / 상 |
| 13 | 이벤트소싱 영속화 | 중 / 상 |
| 14 | tmux 멀티-CLI 팀 런타임 | 중 / 상 |
| 15 | 배포 문서/코드 drift 봉합 | 중 / 하 |
지금 바로 묶음 (TOP 5) — 출처와 노림수
이 5개는 기존 코드/설정에 추가만 하면 되고 새 아키텍처가 필요 없다. 가장 큰 약점(하네스 자동강제 부재 + 자기개선 부재 + 안전설정 느슨)을 직접 때린다.
- 1. settings.json 훅으로 규율 코드강제 — 출처: Claude Code(soft/hard 가드레일·hookify), fable-ish(종료게이트 훅 3개), OMC(11개 생명주기 훅). 노림수: 내 최대 구멍, 즉 PreToolUse 차단이 settings.json에 전무한 점.
update-config스킬을 한 번도 안 썼다.- 2. PreCompact 훅 메모리 flush — 출처: OMC(PreCompact 3종 “압축 전 보존”), gajae-code(1급 컴팩션). 노림수: LLM Wiki 메모리가 수동 기록이라 압축 시 함정·결정이 날아가는 약점.
- 3. 전역 안전설정 봉인 — 출처: Codex(PermissionProfile·OS 샌드박스·Starlark 정책), ouroboros(역할별 capability/sandbox 분리). 노림수: 프로젝트는 fail-closed인데 전역은 느슨한 모순.
- 4. 구조화 git trailer 커밋 — 출처: OMC(decision trailer), Codex(서브에이전트 추적성). 노림수: 메모리가 ‘계획’을 ‘구현’으로 과대기록하는 약점을 trailer로 사실/계획 분리.
- 5. openclaw 신호엔진 자동복구 — 출처: OMC(openclaw 패턴감지 자동복구), Claude Code(asyncRewake). 노림수: watchdog 4계층이 프로세스 레벨뿐이라 “출력 신호 기반 자동행동”이 없는 약점.
적용 로드맵 (3단계)
- 이번 주 (지금 바로 1~5): settings.json 훅 3종 + PreCompact flush + config.toml 봉인. 새 아키텍처 0, 설정/훅 추가만. SSoT 산문 규율이 즉시 하네스 강제로 승격.
- 다음 (6·7·9): sha256 영수증 제어면 + self-improve sealed 토너먼트 + 멀티계정 폴백. 자기개선축 3→4, 가드레일 4→5, SPOF 제거.
- 장기 (8·12·13): reflect 폐루프 + 모호성 게이팅 + 이벤트소싱. 결정적 파이프라인을 “자기진화 + 사전 스펙확정 + 감사가능 재현”으로 완성 → 2_통합하네스_설계안의 골격.
백로그를 관통하는 3대 원칙
- 산문 → 코드: 잘 쓰는 글(SSoT)을 settings.json 훅·영수증·sealed_files로 기계가 강제하게 옮긴다. 6개 프레임워크 전부 이걸 했다.
- 3점축 우선: 자기개선(3)·배포DX(3)가 유일한 약점. 5점축에 더 붓지 말고 여기 집중.
- 흡수하되 표면은 좁게: gajae식 “표면을 의도적으로 좁힘” 철학 유지. 무거운 건(14·12·13) 통합 설계안에서 신중히, 지금은 가벼운 훅부터.
실제 예시
각 “지금 바로” 항목이 실제로 어디에 무엇을 추가하는지 보여준다.
// ~/.claude/settings.json — 1. 규율을 코드로 강제하는 PreToolUse / Stop 훅
{
"hooks": {
"PreToolUse": [
// (a) .gjc/ · registry · 인덱스 파일에 대한 Write/Edit를 차단 (exit 2)
// (b) quality_score / registry_id 같은 파생필드를 쓰는 Write를 정규식으로 거부
// (c) fable-ish식 분류 → 증거 → 종료게이트 3단을 프로젝트 루트별로 복제
],
"Stop": [
// 변경했는데 validate.mjs를 안 돌리고 종료하려 하면 차단
]
}
}// ~/.claude/settings.json — 2. PreCompact 훅으로 압축 직전 메모리 flush
{
"hooks": {
"PreCompact": [
// 현재 세션의 미기록 결정/함정을
// MEMORY.md 인덱스 또는 해당 프로젝트 노트에 append
// Karpathy식 누적 자동화: 압축이 "압축 전 보존"의 트리거가 된다
]
}
}# .codex/config.toml — 3. 전역 안전설정 봉인
# trusted 경로에서 system32 · /home 제거
# approval_policy: 워커 프로파일은 그대로, 오케스트레이터 세션은 untrusted로 분리
# skipDangerousModePermissionPrompt = false
# 역할별 프로파일 2개로 분리: 오케스트레이터(READ-heavy) vs 워커(WRITE-only)# 4. 구조화 git trailer 커밋 프로토콜 (커밋 템플릿 / Stop 훅에서 강제)
Constraint: 못 바꾼 제약
Rejected: 버린 대안
Not-tested: 검증 안 한 부분
Confidence: 확신도
# 파이프라인 커밋(prepare → runner → admit)마다 어느 게이트를 통과했는지 영수증화# 5. openclaw식 신호 엔진 — PostToolUse(on Bash) 경량 훅이 러너 로그를 tail
# exit 2 / 429 / "refresh_token invalid" 패턴 감지
# → admit 재시도 / 토큰 갱신 스크립트 자동 호출
# Codex 단일계정 무효화 사고를 신호 기반으로 조기 포착중·장기 항목 적용방법 요약
- 6. sha256 영수증 제어면 — admit/validate 완료를 canonical-JSON sha256 영수증으로 fail-closed 증명, nextAllowedActions를 forcing function화. (gajae 영수증 control-plane, ouroboros typed evidence)
- 7. self-improve 토너먼트 — 파이프라인 프롬프트/게이트를 sealed_files로 잠그고 변형안을 validate로 평가, 부정행위 차단. 자기개선축 3점 직격. (OMC self-improve, Claude Code self-improve)
- 8. reflect 폐루프 — 검증 실패를 다음 실행의 입력(seed)으로 변환, 정체 시 강제 변형으로 over/under-converge 방지. (ouroboros)
- 9. 멀티계정/워커 폴백 — 계정 풀 + 한도 감지 시 라우팅, PAT을 HMAC 단일 egress로 격리해 Codex 단일계정 SPOF 제거. (Codex 다채널, gajae robogjc 2-컨테이너)
- 10~14 — 비용/지연 가시화, StablePrefix 바이트 동결, deep-interview 모호성 게이팅(ambiguity≤0.2), 이벤트소싱(EventStore lineage), tmux 멀티-CLI 팀.
- 15. drift 봉합 — QStash 미적용·Vercel 시간상한·실모델명 등 메모리의 ‘계획↔구현’ 격차를 노트에 정정, 비밀정보 평문 제거.
요약 & 셀프체크
3줄 요약
- 내 약점은 자기개선·배포DX(3점)와 “산문 규율이 코드로 강제되지 않는” 단일 구멍이다.
- 6개 프레임워크가 코드로 푼 안전장치를 흡수해, 효과↑·난이도↓ 순으로 메운다.
- 지금 바로(설정/훅 추가) → 다음(영수증·자기개선·폴백) → 장기(폐루프·게이팅·이벤트소싱) 3단계로 간다.
스스로 답해보기
- 내 패턴의 단일 구멍 하나를 한 문장으로 말하면? (힌트: 규율이 어디에 있고 어디에 없는가)
- “지금 바로” 5개가 새 아키텍처 없이 가능한 이유는? 각각 어느 설정 파일을 건드리는가?
- exit 2(게이트 실패)와 429(운영 신호)에 대한 자동 대응을 왜 다르게 설계해야 하는가? (아래 Codex 교차검증 참고)
연결
→ 인사이트 종합: 3_학습인사이트 · 통합 청사진: 2_통합하네스_설계안 · 개요: MINE_개요 · HOME
Codex 교차검증 (gpt-5.5, xhigh · 2026-06-15)
Codex가 본 백로그 + 2_통합하네스_설계안 + _비교매트릭스 3개 문서를 읽고 적대적으로 교차검증한 결과.
종합 결론: 큰 방향은 타당. 특히 “산문 규율을 코드 강제로 내린다”는 판단은 매트릭스의 약점 진단과 정합. 다만 현재 백로그는 증거/시작 게이트/DX/비밀정보를 과소평가하고, PreCompact·git trailer·openclaw를 다소 과대평가한다.
핵심 판단 (제안별 타당성)
- settings.json 훅 1순위 — 타당. 약점이 “하네스 레벨 자동 강제 부재”로 명시돼 있고 통합안도 최대 갭으로 본다.
- config.toml 전역 봉인 — 즉시 항목 맞음. 전역 권한이 느슨하면 훅보다 아래 레이어에서 사고가 난다.
- sha256 영수증 + critic 의무 경유 — 6번보다 더 높여야 함. 통합안은 ‘거짓 완료’를 3대 실패의 첫째로 보고, 해결책이 typed evidence/영수증/자체승인 금지다.
- deep-interview 12번 — 너무 낮음. 통합안은 ‘막연한 시작’을 3대 실패로 보는데 장기로 밀렸다. 비자명 작업 한정 즉시 진입 게이트가 맞다.
- PreCompact 2순위 — 과함. 컨텍스트 엔지니어링은 이미 5점, 약점은 자기개선/DX 3점. PreCompact는 최상위 약점 보수가 아니라 영속성 보강.
- git trailer — 하드 게이트 아님. 영수증 해시 자동 삽입은 가치 있으나, 사람이 쓰는 trailer는 쉽게 의례화된다.
- openclaw 자동복구 — 주의.
exit 2는 보통 ‘재시도’가 아니라 ‘멈춰야 하는 게이트 실패’ 신호. 자동복구는 429/token/session 등 운영 신호로 제한하고, 검증 실패는 incident 생성 + bounded retry로.빠진 중요한 개선 (백로그 누락)
- 하네스 자체 테스트 부재. 훅을
allow/block/fail-closed/timeout/symlink/Bash redirectionfixture로 회귀 테스트해야 함.- rollout 전략 없음. 바로 fail-closed로 켜면 작업이 잠긴다.
shadow → warn → enforce+ rollback/break-glass 프로파일 필요.- 비밀정보 관리가 너무 낮게 묻힘. refresh_token·PAT·API key·flush 로그는 redaction, OS credential store, rotation, 로그 마스킹이 먼저.
- 경로 정규화 누락.
.gjc/차단 정규식은 symlink·../·대소문자·WSL/Windows 경로·Bash redirection으로 우회 가능 →realpath기반 차단 필요.- DX 보강 부족. DX 3점인데
doctor·설정 검증·훅 상태 점검·실패 메시지·복구 명령이 상위에 없음.Codex 제안: 수정 우선순위 (지금 바로 TOP 5 재배치) —
설정 봉인 → 훅 강제 → 영수증/critic → 하네스 테스트·doctor → 시작 게이트
- settings.json/config.toml 실제 상태 감사 + 전역 권한 봉인 + 비밀정보 노출 점검
- PreToolUse/Stop 훅을 shadow mode로 도입 + canonical path/Bash 쓰기/파생필드/미검증 종료를 fixture 검증
- gate.mjs에 canonical JSON 영수증(변경파일 coverage·verifier command·exit code·artifact hash·critic 승인자) 기록
- doctor/rollback/break-glass/훅 회귀 테스트 추가 → DX 3점 직접 보강
- 비자명 작업에
/deep-interview또는/ralplan을 진입 게이트로 승격- PreCompact는 provenance/redaction/TTL 포함해 적용
- git trailer는 영수증 해시 자동 반영 보조 감사층으로 격하
- openclaw는 운영 신호만 bounded retry, 검증 실패는 원인 분류 우선
- self-improve 토너먼트는 평가 fixture·sealed files 마련 후 도입
- 이벤트소싱/reflect/tmux 멀티런타임은 장기 유지