내 패턴 개선 백로그

한 줄 요약

내 하네스의 가장 큰 구멍은 “규율이 문서(산문)에만 있고 코드로 강제되지 않는다”는 것이며, 이 백로그는 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)가 포스터를 읽고 안 다치길 바라는 셈이다. 이 백로그의 핵심은 포스터의 글귀를 실제 안전 덮개로 바꾸는 것이다.

단계별로 풀면 이렇다.

  1. 문제 진단 — 내 패턴은 검증 루프, 오케스트레이션, 컨텍스트 절약, 철학 네 축이 이미 만점(5점)이다. 반면 자기개선과 배포 편의성(DX)이 3점으로 가장 약하다. 그리고 모든 약점의 뿌리에는 “규율이 글로만 있고 하네스(작업 환경)가 코드로 막아주지 못한다”는 단일 구멍이 있다.

  2. 해결 전략 — 새 시스템을 처음부터 짜지 않는다. 이미 6개의 다른 프레임워크(Claude Code, Codex, OMC, gajae-code, ouroboros, fable-ish)가 같은 문제를 코드로 풀어 놓았으니, 그 검증된 부품을 가져다 내 설정에 끼운다.

  3. 우선순위 원칙 — 효과는 크고 난이도는 낮은 것부터. “지금 바로” 묶음 5개는 기존 설정 파일에 추가만 하면 되어 새 구조가 필요 없다. 무거운 항목(폐루프, 이벤트소싱)은 통합 설계안으로 미룬다.

핵심 용어를 일상어로 옮기면 이렇다.

  • 훅(hook): 특정 순간(파일 쓰기 직전, 작업 종료 직전 등)에 자동으로 끼어드는 검문소. “이 파일은 못 쓴다”고 막아주는 자동 경비원.
  • exit 2 / fail-closed: 검문을 통과 못 하면 그냥 멈춰 세우는 것. 의심스러우면 일단 차단(닫힌 채로 실패)한다는 안전 기본값.
  • 영수증(receipt): “이 작업은 진짜로 검증을 통과했다”는 위조 불가능한 증명서. 해시값으로 도장을 찍는다.
  • PreCompact flush: 긴 대화가 압축(요약)되기 직전에, 잊으면 안 되는 결정·함정을 메모장에 자동 저장하는 것.

핵심 정리

전체 백로그를 효과/난이도 순으로 슬림하게 정리한다. (상세 적용법은 아래 항목별 설명과 2_통합하네스_설계안 참고)

#개선항목효과 / 난이도
1settings.json 훅으로 규율 코드강제상 / 하
2PreCompact 훅 메모리 auto-flush상 / 하
3전역 안전설정 봉인상 / 하
4구조화 git trailer 커밋중 / 하
5openclaw 신호엔진 자동복구상 / 중
6sha256 영수증 제어면상 / 중
7self-improve 토너먼트 엔진상 / 중
8꼬리먹는 reflect 루프상 / 상
9멀티계정/워커 폴백상 / 중
10비용/지연 가시화중 / 중
11append-only StablePrefix 강화중 / 중
12deep-interview 모호성 게이팅중 / 상
13이벤트소싱 영속화중 / 상
14tmux 멀티-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. 이번 주 (지금 바로 1~5): settings.json 훅 3종 + PreCompact flush + config.toml 봉인. 새 아키텍처 0, 설정/훅 추가만. SSoT 산문 규율이 즉시 하네스 강제로 승격.
  2. 다음 (6·7·9): sha256 영수증 제어면 + self-improve sealed 토너먼트 + 멀티계정 폴백. 자기개선축 3→4, 가드레일 4→5, SPOF 제거.
  3. 장기 (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줄 요약

  1. 내 약점은 자기개선·배포DX(3점)와 “산문 규율이 코드로 강제되지 않는” 단일 구멍이다.
  2. 6개 프레임워크가 코드로 푼 안전장치를 흡수해, 효과↑·난이도↓ 순으로 메운다.
  3. 지금 바로(설정/훅 추가) → 다음(영수증·자기개선·폴백) → 장기(폐루프·게이팅·이벤트소싱) 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 redirection fixture로 회귀 테스트해야 함.
  • 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 → 시작 게이트

  1. settings.json/config.toml 실제 상태 감사 + 전역 권한 봉인 + 비밀정보 노출 점검
  2. PreToolUse/Stop 훅을 shadow mode로 도입 + canonical path/Bash 쓰기/파생필드/미검증 종료를 fixture 검증
  3. gate.mjs에 canonical JSON 영수증(변경파일 coverage·verifier command·exit code·artifact hash·critic 승인자) 기록
  4. doctor/rollback/break-glass/훅 회귀 테스트 추가 → DX 3점 직접 보강
  5. 비자명 작업에 /deep-interview 또는 /ralplan을 진입 게이트로 승격
  6. PreCompact는 provenance/redaction/TTL 포함해 적용
  7. git trailer는 영수증 해시 자동 반영 보조 감사층으로 격하
  8. openclaw는 운영 신호만 bounded retry, 검증 실패는 원인 분류 우선
  9. self-improve 토너먼트는 평가 fixture·sealed files 마련 후 도입
  10. 이벤트소싱/reflect/tmux 멀티런타임은 장기 유지