개발과 아키텍처설명
왜 ratchet 규율인가
프롬프트 해시 핀과 단계별 CI입니다. drift를 막는 형태를 설명합니다.
GEODE의 ratchet은 선언한 불변조건을 위반한 변경을 차단합니다. 프롬프트 해시와 테스트 coverage 같은 검사 대상은 보호하지만, 관측하지 않은 모든 작업의 품질까지 보장하지는 않습니다.RSI 로드맵에서도 회귀 방지 장치와 개선 성능의 실측을 구분합니다.
Ratchet이란
기계의 ratchet은 한 방향으로만 돌고 반대 방향으로는 잠깁니다. 소프트웨어에서는 품질 지표를 한 방향으로만 움직이게 하는 게이트를 뜻합니다. coverage가 설정 하한 아래로 내려가거나 프롬프트 해시가 바뀌면 빌드가 실패하는 식입니다.
GEODE의 ratchet들
| Ratchet | 잠그는 것 | 코드 |
|---|---|---|
| 프롬프트 해시 핀 | 핵심 프롬프트의 SHA-256[:12]. 변경하려면 명시적 재핀 커밋이 필요하고, CI Type 잡이 verify_prompt_integrity로 단언 | core/llm/prompts/__init__.py (_PINNED_HASHES) |
| 테스트 coverage 하한 | 전체 행동 테스트가 통과해도 coverage가 75% 아래면 CI Test 잡 실패 | pyproject.toml (fail_under) |
| Petri 번들 바닥 | 감사 증거 .eval 파일 수의 삭제 보호 바닥 | scripts/check_repo_hygiene.py (PETRI_EVAL_FLOOR) |
| legacy import ratchet | 해소된 레거시 import 패턴의 재유입 차단 | .github/workflows/ci.yml (Lint 잡) |
| CI 게이트 자체 | Lint, Type, Test, Security 중 하나라도 빨간불이면 머지 금지 | .github/workflows/ci.yml |
출처
ratchet discipline은 Andrej Karpathy의 autoresearch 프로젝트에서 정의된 패턴을 가져왔습니다. 자율 ML 실험 루프에서모델이 자기 코드를 망가뜨리지 않게 하는 핵심 메커니즘입니다.
왜 양쪽 모두 필요한가
출력 측 ratchet(프롬프트 해시)만 있으면 빌드 라인의 회귀를 막지 못합니다. 빌드 측 ratchet(CI)만 있으면 같은 코드에 다른 프롬프트가 실리는 의도하지 않은 변경을 감지하지 못합니다. 두 검사는 서로 다른 불변조건을 지킵니다. 같은 구조가 후보 탐색에도 있습니다. margin 게이트를 통과한 변이만 승격되고, 실패한 변이는 되돌려집니다 (evolve/scaffold_search/gate.py). 게이트는 champion chain에 채택 기준을 적용하는 ratchet입니다. 평가 밖의 성능은 별도 검증이 필요합니다.
비용
의도된 변경마다 한 단계를 더 지불합니다. 프롬프트를 고치면 재핀 커밋, 번들을 정리하면 바닥 조정 PR. 그 대가는 의도하지 않은 변경 중 선언된 검사로 탐지한 것을 CI에서 차단할 수 있다는 것입니다.
다음
- 프롬프트 해싱. 핀의 동작 상세.
- Petri 번들 격리. 번들 바닥 ratchet의 운영.
- 왜 self-hosting 하네스인가. 두 스코프에 같은 규율이 있는 이유.
GEODE 저장소의 문서 사이트에서 옮겨 온 문서입니다. 원문 커밋 de077a4 · GitHub에서 원문 보기