Ratchet Pattern

reins의 '턴'이란 무엇인가

reins의 '턴'이란 무엇인가

reins의 최소 실행 단위인 턴(turn)을 해부한다. 기록되지 않은 것은 턴이 아니다 — 이 정의 하나에서 드라이버 무관성, 재시작 내성, 감사 가능성이 전부 따라 나온다. 2026년 6월의 Loop Engineering 담론과 비교해, 턴이 그 권고들을 어떻게 구조로 바꾸는지 본다.

시스템이 천재를 더 빛나게 한다

시스템이 천재를 더 빛나게 한다

구조 없는 천재는 표류하고, 구조만 있으면 평범하다. 천재와 구조가 곱해질 때 비로소 제 값을 한다. Claude Sonnet이 43분에 32 엔드포인트를 완성한 ZenFlow 벤치마크와 B-17, Toyota, WHO 체크리스트가 증명하는 동일 원리.

드리프트는 왜 죽지 않는가

드리프트는 왜 죽지 않는가

드리프트는 고쳐도 다시 돌아온다. 비즈니스 로직을 SSOT로 닫았더니, 그 SSOT를 만드는 생성기에서 똑같은 드리프트가 한 층 위로 올라왔다. 왜 이건 죽지 않는가를 엔트로피에서부터 다시 쌓는다.

abloq — 에이전트가 운용하는 블로그, 검증은 기계가 잠근다

abloq — 에이전트가 운용하는 블로그, 검증은 기계가 잠근다

에이전트에게 블로그를 맡기면 글은 나온다. 문제는 믿을 수 없다는 것이다 — 출처를 날조하고, 고치지도 않은 글의 lastmod를 올리고, 시키지 않은 파일을 건드린다. 사람이 전부 검수할 거면 맡긴 의미가 없다. abloq의 답은 분업이다: 생성은 확률적, 검증은 결정론적. 사람이 쓰는 것은 인사이트 명세 한 장(insight.yaml)뿐이고, 집필·번역·갱신·근거 보강은 에이전트가 퀘스트로 대행하며, 품질은 blog.yaml 한 장에서 파생된 결정론적 게이트가 보증한다. 잠긴 PASS는 불가역이다 — 에이전트는 일회용이어도 진행은 누적된다.

당신의 에이전트 루프는 왜 발산하는가

당신의 에이전트 루프는 왜 발산하는가

Loop Engineering이 보편화될수록 사람들은 같은 벽에 부딪힌다 — 루프가 수렴하지 못하고 발산한다. 무한 회전·드리프트·리워드 해킹, 세 얼굴의 뿌리는 하나다. 루프의 판정 슬롯에 생성자 자신을 다시 꽂은 것. 그런데 발산은 차라리 운이 좋다. 보이니까. 진짜 무서운 건 조용히 거짓 수렴한 루프다. 처방은 하나 — 완료를 잠그는 권한을 LLM이 아니라 결정론적 게이트에만 둔다.

프로덕션 트래픽이 명세다

프로덕션 트래픽이 명세다

레거시 코드에는 문서가 없다. 테스트도 없다. 그런데 지금 돌아가고 있다. 잘 기록한 로그 한 달치가 곧 명세다 — 프로덕션 트래픽으로 현재 동작을 캡처한 Hurl 통합 테스트를 만들면, 코드를 한 줄도 안 읽고도 레거시의 기능을 고정하고 리팩토링의 안전망을 깐다.

도시 하나를 태워 답 하나를 얻는다

도시 하나를 태워 답 하나를 얻는다

1조 파라미터 모델이 답 하나를 뱉으려고 도시 하나만큼의 전기와 물을 태운다. 나는 이게 미쳤다고 생각했다. 답을 찾아 헤매다 알았다. 다들 고치려던 결함, LLM의 아첨이야말로 답이었다. fact를 먹이면 아첨이 정확도가 된다. 이 글은 내가 왜 Reins를 시작했는지에 대한 이야기다.

reins — 퀘스트 CLI에서 도메인만 남기고, 래칫은 프레임워크로

reins — 퀘스트 CLI에서 도메인만 남기고, 래칫은 프레임워크로

how-make-quest는 퀘스트 CLI를 맨손으로 짓는 법을 가르쳤다. 그런데 두 번째 CLI를 지으면 같은 래칫, 같은 scan/next/submit, 같은 집계를 또 짠다. reins는 그 불변을 프레임워크로 뽑아낸다 — 래칫·명령 골격·집계·export는 reins가 공급하고, 당신은 도메인의 게이트(gate.Definition 4메서드)만 구현한다. 게이트는 치즈 방어 규칙의 카탈로그고, toulmin defeat 그래프가 '왜 졌고 뭘 바꾸면 이긴다'는 공략집을 에이전트에게 돌려준다.

퀘스트 CLI 만드는 법 — 완료를 기계가 판정하게 만드는 도구를 직접 짓기

퀘스트 CLI 만드는 법 — 완료를 기계가 판정하게 만드는 도구를 직접 짓기

AI는 '다 했습니다'라고 말한다. 실제로는 안 끝났다. 이 글은 그 문제를 푸는 도구 — 퀘스트 CLI — 를 직접 짓는 법이다. 원리(왜)부터 cobra 명령 스켈레톤(어떻게)까지, 이 글 하나로 에이전트가 Go 퀘스트 CLI를 만들 수 있게 한다. huma가 그 워크드 예시다.

LLM 멀티 에이전트 정확도 향상의 전제조건

LLM 멀티 에이전트 정확도 향상의 전제조건

에이전트를 여러 개 돌리면 정확해진다? 절반만 맞다. 같은 데이터로 학습한 모델들은 같은 곳에서 틀린다. 멀티 에이전트가 작동하는 조건은 둘 — 오류 독립성을 설계하거나, 검증 가능한 도메인에서 LLM 바깥에 검증기를 세우거나.

왜 당신의 에이전트는 멈추지 않는가

왜 당신의 에이전트는 멈추지 않는가

에이전트를 24시간 돌린다는 자랑 앞에서 드는 감각은 감탄이 아니라 의문이다 — 왜 아직 안 끝났지? 코드는 탐색 문제가 아니라 제약 충족 문제다. 멈출 수 있는 시스템이 건강한 시스템이다.

'완료'는 누가 정의하는가 — 게임이 40년 먼저 푼 문제

'완료'는 누가 정의하는가 — 게임이 40년 먼저 푼 문제

임차인 퇴거 확인을 사진 다섯 장으로 정의하는 순간, 그건 게임 퀘스트가 된다. '완료'를 행위자의 주장이 아니라 기계적으로 검증 가능한 조건으로 정의하는 것 — 게임이 40년 먼저 푼 문제이고, AI 에이전트에게 일을 제대로 시키는 법이다.

filefunc × Hono — 에이전트가 한 번에 읽는 코드를 60줄에서 18줄로

filefunc × Hono — 에이전트가 한 번에 읽는 코드를 60줄에서 18줄로

별 23k짜리 실전 프레임워크 Hono를 filefunc으로 리팩토링했다. 테스트 4419개 전부 통과. 그리고 측정해보니 — 에이전트가 개념 하나를 read할 때 읽는 코드가 중앙값 60줄에서 18줄로 71% 줄었다. 파일 개수가 아니라 '읽는 길이'가 핵심이다.

선례는 정답이 아니다 — AI가 땜질을 베껴 권위를 만드는 법

선례는 정답이 아니다 — AI가 땜질을 베껴 권위를 만드는 법

AI는 코드의 구조는 읽지만 그게 결정인지 땜질인지는 못 읽는다. 그래서 복제할수록 결함이 거짓 권위를 얻는다. 이 루프를 끊은 건 더 큰 모델이 아니라 사람의 한 줄 반문이었다.

에이전트가 일할 수 있는 시스템을 만든다는 것

에이전트가 일할 수 있는 시스템을 만든다는 것

Fortune 500 IT 예산의 60~80%가 잠긴 레거시를 지키는 데 쓰인다. 열지 못하니까. AI 버블의 진짜 의미는 모델이 똑똑해지는 것이 아니라, 기업의 잠긴 기억이 도달 가능한 상태로 바뀌기 시작한다는 것이다.

huma — 엔드포인트 하나도 빠뜨리지 않는 래칫

huma — 엔드포인트 하나도 빠뜨리지 않는 래칫

AI 에이전트에게 42개 엔드포인트의 테스트를 시키면, 15개쯤에서 '다 했습니다'라고 선언한다. huma는 엔드포인트 목록을 래칫 세션으로 바꿔서, 에이전트가 한 개도 빠뜨리지 못하게 만든다. scan → next → write → verify. 네 명령어, 설정 없음.

Agent Operable Codebase

Agent Operable Codebase

사람이 읽기 좋은 코드와 에이전트가 작업하기 좋은 코드는 같은가? 같지 않다. 파일 하나에 함수 20개가 있으면 에이전트 성능이 30~85% 떨어진다. 사무실을 공장으로 바꿔야 한다.

제 6강. 통과하면 잠근다 — Ratchet Pattern 원리와 대량 적용

제 6강. 통과하면 잠근다 — Ratchet Pattern 원리와 대량 적용

AI가 '다 했습니다'라고 선언했다. 실제로는 40/527. Ratchet Pattern은 완료 판정을 기계에게 넘긴다.

Reins Engineering — 고삐 있는 AI

Reins Engineering — 고삐 있는 AI

하네스 엔지니어링은 울타리다. 에이전트가 밖으로 못 나가게 할 뿐, 목적지에 도달하게 하지 않는다. Reins Engineering은 고삐다 — 결정론적 계약으로 방향을 잡고, 래칫으로 잠그고, 결정과 구현을 분리한다.

Hurl이 바이브 코딩의 드리프트를 막는다

Hurl이 바이브 코딩의 드리프트를 막는다

바이브 코딩은 3개월 만에 로직 드리프트로 무너진다. CMU, METR, DORA, Amazon 사례가 이를 증명한다. Hurl로 API 계약을 plain text로 선언하고 래칫으로 잠그면, AI의 자유를 제한하지 않으면서 드리프트를 구조적으로 억제한다.

yongol — AI 코딩 SaaS의 용골

yongol — AI 코딩 SaaS의 용골

바이브 코딩은 200 엔드포인트에서 무너진다. AI가 결정과 구현을 구별하지 못하기 때문이다. yongol은 AI의 작업 대상을 코드에서 선언적 명세 10종으로 옮기고, 레이어 간 정합성을 컴파일 전에 강제한다. Harness with reins.

AI의 아첨 편향은 비즈니스 피처다

AI의 아첨 편향은 비즈니스 피처다

LLM의 아첨 편향은 버그가 아니다. RLHF의 수학적 필연이며, 빅테크가 고칠 인센티브가 없는 상업적 기능이다. 이것이 LLM-as-Judge를 구조적으로 불가능하게 만드는 이유다.

코딩 에이전트는 왜 작동하고 왜 무너지는가

코딩 에이전트는 왜 작동하고 왜 무너지는가

같은 모델이 웹 채팅에서는 hallucinate하고 코딩 에이전트에서는 작동한다. 모델이 달라서가 아니라 topology가 달라서다. 생성은 확률적이어도 된다. 검증은 결정론적이어야 한다.

Ratchet Pattern — 에이전트가 끝까지 가게 만드는 방법

Ratchet Pattern — 에이전트가 끝까지 가게 만드는 방법

AI 에이전트에게 527개 함수의 테스트를 시켰더니 40개에서 '다 했습니다'라고 선언했다. Ratchet Pattern은 완료 판정을 기계적 verifier로 강제하여 에이전트가 끝까지 가게 만드는 패턴이다.

tsma — 레거시 코드의 회귀 방어선

tsma — 레거시 코드의 회귀 방어선

모든 함수를 인덱싱하고, 테스트 유무를 감지하고, 커버리지를 측정하고, LLM 에이전트에게 피드백을 주는 CLI 도구. 명령어 하나로 레거시 코드에 회귀 방어선을 구축한다.

filefunc — 파일 하나에 개념 하나

filefunc — 파일 하나에 개념 하나

AI 코드 에이전트의 탐색 단위는 파일이다. 파일 하나에 개념 하나를 강제하는 Go 코드 구조 컨벤션이자 CLI 도구.