세션이 곧 커밋 메시지다
한 개발자가 코드베이스를 인계받습니다. git blame을 보니 하나의 커밋에서 47개 파일이 변경되었습니다. 커밋 메시지는 “refactor auth module”이라고 적혀 있습니다. 커밋 작성자는 인간 개발자로 기록되어 있습니다. 실제 작성자는 90분 동안 실행되며 200개 파일을 읽고, 세 가지 대안적 접근 방식을 평가하고, 구체적인 이유로 두 가지를 기각한 후, 모든 인증 엔드포인트를 수정하는 변경 세트를 생성한 코딩 에이전트였습니다. 설계 결정, 기각된 대안, 논의된 엣지 케이스가 담긴 90분의 세션은 사라졌습니다. Git은 무엇이 변경되었는지를 보존했습니다. 왜 변경되었는지는 아무것도 보존하지 못했습니다.
제 인지 부채 포스트에서는 에이전트의 출력 속도와 개발자의 이해 속도 사이의 격차를 “인지 부채”라고 명명했습니다 — 리뷰되지 않은 커밋이 쌓일 때마다 복리로 증가하는 부채입니다.1 100 HN 포인트와 124개의 댓글을 기록한 Memento 프로젝트는 다음 질문을 던집니다: 세션에 추론 과정이 담겨 있다면, 세션이 커밋의 일부가 되어야 하지 않을까?2
요약
Git은 무엇이 변경되었는지를 기록합니다. 에이전트 세션은 왜 변경되었는지를 기록합니다. 에이전트가 코드를 작성할 때, 세션 트랜스크립트가 진정한 설계 문서이며, 트랜스크립트를 버리는 모든 워크플로우는 출처 정보를 버리는 것입니다. Memento(오픈소스 git 확장 도구)는 AI 세션 트랜스크립트를 git notes로 커밋에 첨부하여 커밋에서 추론 과정까지의 출처 체인을 생성합니다. Claude Code의 새로운 LSP 통합은 세션 트랜스크립트를 더욱 정확하게 만드는 구조적 코드 이해를 추가합니다: grep 대신 go-to-definition을, 추측 대신 타입 시그니처를 사용합니다. 아래에서는 출처 격차, 세션 메타데이터의 네 가지 계층, Memento가 구축하는 것, LSP가 세션 데이터의 품질을 어떻게 변화시키는지, 그리고 오늘 바로 구현할 수 있는 최소한의 출처 관리 방법을 다룹니다.
출처 격차
Git은 모든 변경에 대해 다섯 가지를 추적합니다: 누가 만들었는지, 언제 만들었는지, 어떤 파일이 변경되었는지, diff, 그리고 커밋 메시지. 인간이 작성한 코드의 경우, 커밋 메시지가 diff와 의도 사이의 격차를 연결합니다. 좋은 메시지는 변경이 존재하는 이유를 설명합니다. 나쁜 메시지(“fix stuff”)는 리뷰어가 코드에서 의도를 재구성하도록 만듭니다.
에이전트가 작성한 코드는 다른 출처 구조를 가집니다. 의도가 개발자의 머릿속에 있지 않습니다. 의도는 세션에 있습니다: 작업을 시작한 프롬프트, 에이전트가 읽은 파일, 평가한 대안, 호출한 도구, 그리고 완료를 보고할 때 인용한 근거가 세션에 담겨 있습니다. 90분간의 에이전트 추론을 한 줄로 요약하는 커밋 메시지는 의사결정 맥락의 99.9%를 버리는 것입니다.
이 손실은 이론적인 것이 아닙니다. 제 오케스트레이션 시스템은 세션 상태 파일(jiro.state.json, jiro.progress.json)을 생성하여 모든 스토리 완료, 리뷰어 판정, 근거 게이트 결과를 기록합니다.3 리뷰어가 “왜 에이전트가 서킷 브레이커 대신 지수 백오프를 사용했나요?”라고 물었을 때, 세션 상태 파일에 답이 있습니다: 에이전트는 두 패턴 모두를 평가했고, 업스트림 서비스가 Retry-After 헤더가 포함된 재시도 가능한 503 응답을 반환한다는 것을 확인했으며, 헤더 값을 준수하기 위해 지수 백오프를 선택했습니다. 커밋 메시지는 “refactor: standardize retry patterns”라고 적혀 있습니다. 세션 상태는 그 이유를 담고 있습니다.
세션 출처 없이는, 에이전트가 작성한 변경 사항의 코드 리뷰가 고고학이 됩니다. 리뷰어는 diff를 읽고, 추론 과정을 역으로 재구성하며, 변경이 존재하는 이유에 대한 가설을 세웁니다. 그 가설은 틀릴 수 있습니다. 에이전트의 실제 추론은 세션 트랜스크립트에 기록되어 있습니다. 업계 표준 워크플로우(커밋, 푸시, diff 리뷰)는 그 추론을 버립니다.
문제는 에이전트 합성으로 배가됩니다. 제 오케스트레이션 시스템은 코드 리뷰를 위한 전문 서브에이전트를 생성합니다: 정확성 리뷰어, 보안 리뷰어, 컨벤션 리뷰어.5 각 서브에이전트는 자체 세션을 실행하고, 자체 파일을 읽으며, 자체 결론을 도출합니다. 상위 에이전트가 판정을 종합합니다. 최종 커밋 메시지는 “3 reviewers: approve”라고 합니다. 세 개의 개별 리뷰 세션 — 각각 구체적인 발견사항, 엣지 케이스 분석, 승인 근거를 포함하는 — 은 커밋이 참조하지 않는 별도의 트랜스크립트에 존재합니다. 에이전트 위임의 모든 계층은 보이지 않는 추론의 또 다른 계층을 추가합니다.
출처 문제는 기존의 세 가지 실패 패턴과 연결됩니다. 허구 방화벽은 출력 게이트가 없을 때 에이전트가 검증되지 않은 주장을 게시하는 방식을 식별했습니다.6 세션 출처가 있었다면 허구를 더 일찍 포착했을 것입니다: 세션 트랜스크립트는 에이전트가 어떤 인간도 리뷰하지 않은 토큰 카운팅 방법론을 날조하는 과정을 보여주었습니다. 보이지 않는 에이전트는 명시적인 계측 없이 에이전트 행동이 모니터링되지 않는 방식을 문서화했습니다.7 세션 출처는 가시성 스택이 생성하는 감사 추적입니다. NIST 공개 의견은 에이전트 행동에 대한 표준화된 감사 로깅을 권고했습니다.9 세션 트랜스크립트를 저장하는 Git notes는 그 권고의 구현 방법 중 하나입니다.
제 품질 시스템의 근거 게이트는 에이전트에게 각 품질 기준에 대한 구체적인 증거를 인용하도록 요구합니다: 패턴을 명명하고, 대안을 설명하고, 엣지 케이스를 나열하고, 테스트 출력을 붙여넣는 것입니다.10 근거 게이트는 에이전트가 그렇지 않으면 존재하지 않았을 Reasoning과 Verification 계층 데이터를 생성하도록 강제합니다. 게이트가 없으면 에이전트는 “완료”라고 보고하고 세션에는 Process 데이터(도구 호출)만 포함됩니다. 게이트가 있으면 세션에 리뷰어가 코드와 대조하여 검증할 수 있는 명시적인 근거가 포함됩니다.
Git만으로는 90분간의 신중한 추론을 나타내는 47개 파일 커밋과 리뷰 없이 90분간 제약 없이 실행된 에이전트의 47개 파일 커밋을 구별할 수 없습니다. Git 문서는 notes를 “객체 자체를 변경하지 않고 객체에 첨부할 수 있는 추가 정보”라고 설명합니다.8 세션 트랜스크립트는 정확히 이 정의에 부합합니다: 커밋 해시, diff, 히스토리를 변경하지 않는 커밋의 출처에 대한 추가 정보입니다.
Memento 질문
Memento 프로젝트는 git 확장 도구로 출처 격차에 답합니다.2 이 도구는 AI 코딩 세션 트랜스크립트를 캡처하여 refs/notes/commits와 refs/notes/memento-full-audit에 git notes로 커밋에 첨부합니다.
워크플로우: git memento init으로 리포지토리를 설정합니다. git memento commit <session-id>가 git commit을 대체하며, 설정된 AI 제공자(Codex 또는 Claude Code)에서 세션 트랜스크립트를 자동으로 검색하여 커밋에 구조화된 메타데이터로 저장합니다.
124개의 댓글이 달린 HN 토론에서 네 가지 입장이 드러났습니다:
입장 1: 세션은 필수적인 맥락이다. 에이전트 세션에는 커밋 메시지가 담을 수 없는 추론이 포함되어 있습니다. 세션을 커밋에 첨부하면 출처 체인이 보존됩니다. 리뷰어는 모든 코드 라인을 커밋, 세션, 원래 프롬프트까지 추적할 수 있습니다.
입장 2: 세션은 잡음이다. 90분짜리 세션 트랜스크립트는 수천 줄의 대화입니다. 대부분은 최종 변경 세트와 무관합니다. 전체 트랜스크립트를 첨부하면 신호가 잡음에 묻혀 리뷰가 더 쉬워지는 것이 아니라 더 어려워집니다.
입장 3: 트랜스크립트가 아닌 요약. 세션은 구조화된 요약으로 정제되어야 합니다: 작업 설명, 검토된 대안, 결정 근거, 인용된 근거. 요약은 잡음 없이 출처를 보존합니다. Memento는 사용자와 어시스턴트 턴으로 레이블이 붙은 마크다운 요약을 생성합니다.
입장 4: 프라이버시 및 보안 우려. 세션 트랜스크립트에는 API 키, 내부 URL, 다른 파일의 독점 코드, 또는 개발자가 영구 git 기록에 남기고 싶지 않은 대화 내용이 포함될 수 있습니다. 세션은 첨부 전에 정제가 필요합니다.
네 가지 입장 모두 타당합니다. 세션의 출처 가치는 부정할 수 없습니다. 잡음 문제는 실제입니다. 프라이버시 우려는 구조적입니다. Memento는 입장 1과 3(마크다운 변환을 통한 트랜스크립트 저장)과 입장 4(요약 생성을 위해 트랜스크립트를 신뢰할 수 없는 데이터로 처리)를 다룹니다. 입장 2는 열린 설계 질문으로 남아 있습니다: 얼마나 많은 세션 맥락이면 충분한가?
보완적인 도구는 같은 문제에 대해 다른 접근 방식을 취합니다. claude-replay는 Claude Code 세션 트랜스크립트를 동영상과 같은 재생으로 변환하여, 리뷰어가 정적 트랜스크립트를 읽는 대신 에이전트의 작업이 단계별로 전개되는 것을 시청할 수 있게 합니다.12 Memento가 “무엇을 저장해야 하는가?”에 답한다면, claude-replay는 “어떻게 리뷰해야 하는가?”에 답합니다. 두 도구는 출처 워크플로우의 서로 다른 부분을 다룹니다: Memento는 데이터를 보존하고(저장), claude-replay는 데이터를 이해할 수 있게 만듭니다(프레젠테이션). 두 프로젝트가 같은 달에 독립적으로 등장했다는 사실이 이 주제를 검증합니다: 실무자들은 출처 격차를 체감하고 있으며 이를 메우기 위한 도구를 만들고 있습니다.
출처의 네 가지 계층
에이전트 세션 메타데이터는 네 가지 계층으로 구성되며, 각각 변경에 대한 다른 질문에 답합니다.
| 계층 | 질문 | 데이터 | 예시 |
|---|---|---|---|
| Intent | 작업이 무엇이었는가? | 원래 프롬프트, 참조된 이슈, 수락 기준 | “만료된 토큰을 처리하도록 로그인 엔드포인트 수정” |
| Process | 에이전트가 어떻게 작업했는가? | 도구 호출, 읽은 파일, 실행한 명령, 소요 시간 | 47개 파일 읽기, 12개 작성, pytest 3회 실행, 총 90분 |
| Reasoning | 왜 이런 선택을 했는가? | 평가된 대안, 근거가 포함된 기각, 트레이드오프 | 서킷 브레이커 검토, 기각 (503에 Retry-After 포함) |
| Verification | 어떻게 검증되었는가? | 테스트 결과, 리뷰어 판정, 근거 게이트 결과 | pytest: 47 통과, 0 실패. 리뷰어 3명: 승인. |
각 계층은 비용이 듭니다. 전체 Intent 계층(원래 프롬프트)을 저장하는 것은 저렴합니다: 텍스트 필드 하나입니다. 90분 세션의 전체 Process 계층(모든 도구 호출)을 저장하면 메가바이트 단위의 JSON이 생성됩니다. Reasoning 계층을 저장하려면 에이전트가 의사결정 과정을 명시적으로 서술해야 하는데, 대부분의 에이전트는 기본적으로 이를 수행하지 않습니다. Verification 계층을 저장하려면 테스트 러너 및 리뷰 시스템과의 통합이 필요합니다.
제 오케스트레이션 시스템은 서로 다른 메커니즘을 통해 네 가지 계층 모두를 캡처합니다.3 캡처를 가능하게 하는 훅 인프라는 15가지 이벤트 유형에 걸쳐 84개의 훅으로 구성됩니다.5 Intent: UserPromptSubmit 훅이 원래 프롬프트를 기록합니다. Process: PostToolUse 훅이 모든 도구 호출과 결과를 기록합니다. Reasoning: 근거 게이트가 에이전트에게 각 품질 기준에 대한 구체적인 근거를 인용하도록 요구합니다. Verification: jiro.state.json 파일이 테스트 출력과 리뷰어 판정을 기록합니다.
훅은 또한 에이전트가 호출한 스킬과 그 순서를 추적합니다.11 /review 스킬 다음에 /test 스킬이 사용된 커밋은 단일 비구조화 세션에서 나온 커밋과 다른 출처 프로필을 가집니다. 스킬 순서는 워크플로우 패턴을 드러냅니다: 테스트 전 리뷰인지, 리뷰 전 테스트인지? 순서는 품질 보증 커버리지를 이해하는 데 중요합니다. 데이터는 여러 상태 파일에 걸쳐 존재합니다. 문제는 이 데이터 중 어느 것도 git 커밋에 첨부되지 않는다는 것입니다.
출처 브릿지로서의 LSP
Claude Code의 새로운 LSP(Language Server Protocol) 통합은 세션 출처 데이터의 품질을 변화시킵니다.4
LSP 이전에, Claude Code는 grep과 파일 읽기를 통해 코드베이스를 탐색했습니다. 에이전트가 함수의 정의를 찾아야 할 때, 모든 파일에서 함수 이름을 검색했습니다. 검색은 모호한 결과를 반환했습니다: 여러 매치, 부분 매치, 주석에 함수 이름이 포함된 테스트 파일. 에이전트는 가장 가능성 높은 매치를 선택했습니다. 세션 트랜스크립트에는 “authenticate_user를 검색, auth.py, test_auth.py, middleware.py에서 발견”이라고 기록되었습니다. 출처 데이터에는 검색, 모호성, 그리고 에이전트의 최선의 추측이 포함됩니다.
LSP를 사용하면, 에이전트는 goToDefinition을 호출하고 약 50밀리초 만에 정확한 파일과 줄 번호를 받습니다.4 세션 트랜스크립트에는 “authenticate_user 정의 위치: auth.py:47“이라고 기록됩니다. 출처 데이터는 정확하고, 모호하지 않으며, 기계 검증이 가능합니다. 세션을 읽는 리뷰어는 에이전트가 다른 모듈의 비슷한 이름의 함수가 아니라 올바른 정의를 찾았다고 신뢰할 수 있습니다.
이 개선은 세션 전체에 걸쳐 복합적으로 작용합니다. grep을 사용하여 200개 파일을 읽는 에이전트는 “X를 검색, 잠재적 매치 A, B, C 발견, A 선택”이라는 세션 데이터를 생성합니다. LSP를 사용하여 200개 파일을 읽는 에이전트는 “X 정의 위치: file:line, 참조 위치: file:line, file:line, file:line”이라는 세션 데이터를 생성합니다. LSP 기반 세션은 에이전트의 코드 이해에 대한 정확한 맵입니다. grep 기반 세션은 모호한 근사치입니다.
LSP는 출처 품질을 향상시키는 여섯 가지 기능을 추가합니다:
| 기능 | 이전 (grep) | 이후 (LSP) |
|---|---|---|
| 정의 찾기 | 모든 파일 검색, 추측 | 정확한 file:line, 50ms |
| 참조 찾기 | 심볼 이름으로 grep | 타입이 지정된 모든 사용 위치 |
| 타입 정보 | 소스 코드 읽기, 추론 | 호버로 시그니처 반환 |
| 진단 | 린터 별도 실행 | 실시간 오류 감지 |
| 호출 계층 | 코드를 통한 수동 추적 | incomingCalls/outgoingCalls |
| 심볼 검색 | 정규식으로 grep | 워크스페이스 전체, 구조화됨 |
출처에 대한 시사점: LSP가 활성화된 에이전트의 세션 트랜스크립트는 모든 코드 탐색 단계가 검증 가능하기 때문에 설계 문서로서 더 가치가 높습니다. 리뷰어는 에이전트의 코드베이스 이해가 단순히 그럴듯한 수준이 아니라 정확했는지 확인할 수 있습니다.
code-review-graph 프로젝트는 구조적 이해를 더 발전시킵니다: 세션 간에 유지되는 영속적 코드 그래프로, 매번 호출할 때마다 코드베이스를 다시 이해하는 데 드는 토큰 비용을 절감합니다.13 LSP가 세션 내에서 구조적 쿼리를 제공한다면, 영속적 그래프는 세션 간에 구조적 메모리를 제공합니다. 출처의 관점에서, 이는 미래의 에이전트가 세션 트랜스크립트뿐만 아니라 결정을 이끌어낸 구조적 이해까지 전달할 것임을 의미합니다. 그래프는 또 다른 출처 데이터 계층이 됩니다: 단순히 “에이전트가 auth.py:47에서 authenticate_user를 찾았다”가 아니라 “에이전트의 코드 그래프에 이미 호출 계층이 포함되어 있었으므로 탐색을 건너뛰고 곧바로 구현으로 갔다”는 것입니다. 에이전트의 사전 지식이 결정에 영향을 미치며, 그 사전 지식은 출처 체인에 포함되어야 합니다.
세션 메타데이터의 실제 모습
제 오케스트레이션 시스템의 실제 예시입니다. 스토리: “인증 엔드포인트에 속도 제한 추가.”
Intent 계층 (UserPromptSubmit 훅에서):
Prompt: "Implement rate limiting on POST /auth/login.
Use sliding window, 5 attempts per minute per IP.
Return 429 with Retry-After header."
Process 계층 (PostToolUse 훅에서):
Files read: 14 (auth/, middleware/, tests/)
Files written: 3 (rate_limiter.py, auth.py, test_rate_limit.py)
Bash commands: 7 (pytest x3, pip install x1, curl x3)
Duration: 23 minutes
Token usage: 87K input, 24K output
Reasoning 계층 (근거 게이트에서):
Pattern: Sliding window (token bucket rejected
because per-IP granularity requires separate
counters, sliding window handles this natively)
Edge cases: IPv6 normalization, proxy headers
(X-Forwarded-For validated against trusted proxy list)
Verification 계층 (jiro.state.json에서):
Tests: 12 passed, 0 failed, 0 skipped
Reviewers: correctness (approve), security (approve),
conventions (approve with note: add docstring to
rate_limiter.py:RateLimiter class)
Evidence gate: 6/6 criteria met
같은 변경에 대한 커밋 메시지: “feat: add rate limiting to auth endpoint.” 14단어입니다. 세션 메타데이터는 2,300단어의 구조화된 출처 정보를 포함합니다. 커밋 메시지와 세션 맥락 사이의 격차는 두 자릿수 차이입니다.
출처의 비용
세션 출처는 무료가 아닙니다. 세 가지 비용이 도입을 제약합니다.
저장 공간. 90분짜리 에이전트 세션은 500KB-2MB의 원시 트랜스크립트를 생성합니다. 하루 10개의 커밋 기준으로, 전체 트랜스크립트는 git 리포지토리에 매일 5-20MB를 추가합니다. Git notes는 메인 히스토리 외부에 데이터를 저장하므로(기본적으로 git clone 크기에 영향을 주지 않음), refs/notes/memento-full-audit의 감사 추적은 누적됩니다. Memento의 마크다운 변환은 원시 크기를 약 60% 줄입니다.2
프라이버시. 세션 트랜스크립트에는 에이전트가 본 모든 것이 포함됩니다: 파일 내용, 환경 변수, API 응답, 스택 트레이스가 포함된 에러 메시지. 공개 리포지토리에 첨부된 트랜스크립트는 내부 구현 세부사항을 노출합니다. Memento는 트랜스크립트를 신뢰할 수 없는 데이터로 취급하고 요약 모델에 임베디드 지시를 무시하도록 지시하지만, 전체 감사 추적의 원시 트랜스크립트는 접근 제어가 필요합니다.2
신호 대 잡음비. 에이전트가 200개 파일을 읽고 12개를 변경하는 90분 세션에는 188개 파일 분량의 무관한 프로세스 데이터가 포함됩니다. 핵심은 탐색(잡음)과 의사결정 지점(신호)을 구별하는 것입니다. 네 계층 모델이 도움이 됩니다: Intent와 Reasoning은 높은 신호, Process는 혼합, Verification은 높은 신호입니다. Intent와 Reasoning을 기본으로 저장하고 Process를 필요시에만 저장하는 출처 시스템은 핵심 의사결정 맥락을 잃지 않으면서 잡음을 줄입니다.
오늘 바로 구현할 수 있는 것
새로운 도구 없이 가능한 네 가지 최소 출처 관리 방법:
1. 구조화된 커밋 메시지. “refactor auth module”을 구조화된 형식으로 대체하세요:
feat: add rate limiting to auth endpoint
Task: sliding window rate limiter, 5/min per IP
Alternatives: token bucket (rejected: per-IP overhead)
Evidence: 12 tests pass, 3 reviewers approve
Session: 23 min, 87K tokens, 14 files read
이 형식은 네 가지 출처 계층의 수동 버전입니다. 메시지는 네 줄로 intent(작업), reasoning(대안), verification(근거)에 답합니다. 별도의 도구가 필요 없습니다.
2. 커밋과 함께 세션 트랜스크립트 저장. 에이전트 세션 후, 트랜스크립트를 리포지토리의 파일로 내보내세요(예: .sessions/2026-03-02-auth-rate-limit.md). 공개 리포지토리에서는 .gitignore에 추가하고, 내부 리포지토리에서는 커밋하세요. git notes 인프라 없이도 리뷰를 위해 트랜스크립트를 사용할 수 있습니다.
3. 에이전트 작성 커밋에 태그 지정. git trailer를 사용하여 에이전트가 생성한 커밋을 표시하세요:
Agent: Claude Code (Opus)
Session-Duration: 23m
Files-Read: 14
Files-Written: 3
trailer는 에이전트 관여에 대한 기계 파싱 가능한 기록을 생성합니다. git log --grep="Agent: Claude Code"으로 모든 에이전트 작성 커밋을 나열할 수 있습니다. 메타데이터는 소급 주석 없이 출처 체인을 재구성할 수 있는 향후 도구를 가능하게 합니다.
4. 에이전트 커밋에 근거 게이트 요구. 에이전트가 커밋하기 전에 여섯 가지 질문에 답하도록 요구하세요: 코드가 따르는 패턴은? 더 단순한 대안은? 어떤 엣지 케이스를 처리했는가? 테스트는 통과하는가? 회귀를 확인한 파일은? 변경이 실제 문제를 해결하는가?10 답변이 Reasoning과 Verification 계층을 형성합니다. 게이트가 없으면 에이전트는 “완료”라고 보고하고 세션에는 Process 데이터만 포함됩니다. 게이트가 있으면 모든 커밋이 품질 보증의 부산물로 구조화된 출처를 생성합니다.
근거 게이트 방법은 더 넓은 출처 논의와 연결됩니다. 커밋 전에 결정을 정당화해야 하는 에이전트는 제약 없이 실행되는 에이전트보다 더 높은 품질의 세션 메타데이터를 생성합니다. 게이트는 출처를 수동적 부산물(무슨 일이 있었는지 기록)에서 능동적 품질 신호(무슨 일이 있었는지와 왜 그런지를 에이전트가 설명하도록 요구)로 전환합니다.
핵심 요약
엔지니어링 매니저를 위해: 한 줄짜리 메시지가 포함된 모든 에이전트 작성 커밋은 설계 문서를 버리는 것입니다. 세션 트랜스크립트에 추론이 담겨 있습니다. 그 추론이 팀의 코드 리뷰, 온보딩, 인시던트 대응 워크플로우에 가치가 있는지 결정하세요. 답이 예라면, 최소한 구조화된 커밋 메시지를 도입하세요.
개발자를 위해: 에이전트가 작성한 코드를 인계받을 때, 커밋 메시지는 무엇이 변경되었는지를 알려줍니다. 세션 트랜스크립트는 (보존되었다면) 왜 변경되었는지를 알려줍니다. 팀의 에이전트 워크플로우에서 세션 출처를 도입하도록 추진하세요. Memento 프로젝트는 git 네이티브 접근 방식을 제공합니다. 구조화된 커밋 메시지는 인프라 없이 시작할 수 있는 방법입니다.
도구 개발자를 위해: LSP 통합은 모호한 grep 기반 탐색을 정확하고 검증 가능한 코드 참조로 대체하여 세션 트랜스크립트의 가치를 높입니다. 에이전트의 코드 이해력에 대한 모든 개선은 세션이 생성하는 출처 데이터의 품질을 향상시킵니다. 네 가지 출처 계층을 보존하는 내보내기 형식을 구축하세요.
FAQ
세션 출처란 무엇인가요? 세션 출처는 코딩 세션 동안 AI 에이전트의 추론 과정에 대한 기록입니다: 원래 작업, 읽은 파일, 평가한 대안, 내린 결정, 생성한 근거. 세션 트랜스크립트는 커밋 메시지와 diff가 담을 수 없는 “왜”를 캡처합니다.
Memento란 무엇인가요? Memento는 AI 코딩 세션 트랜스크립트를 캡처하여 git notes로 커밋에 첨부하는 오픈소스 git 확장 도구입니다. Codex와 Claude Code를 지원하고, 마크다운 요약을 생성하며, PR 통합을 위한 GitHub Action을 제공합니다.2
LSP는 에이전트 세션을 어떻게 개선하나요? Language Server Protocol은 에이전트에게 구조적 코드 이해를 제공합니다: 정확한 정의, 타입이 지정된 참조, 호출 계층, 실시간 진단. LSP가 활성화된 에이전트의 세션 트랜스크립트는 모호한 grep 결과 대신 정확하고 검증 가능한 코드 탐색 데이터를 포함합니다.4
세션 트랜스크립트를 git에 커밋해야 하나요? 리포지토리의 프라이버시 요구사항에 따라 다릅니다. 내부 리포지토리의 경우, 트랜스크립트를 커밋하면 출처가 보존됩니다. 공개 리포지토리의 경우, git notes(기본적으로 clone 시 전송되지 않음)나 커밋 참조가 포함된 별도 저장소가 더 안전한 접근 방식입니다.2
세션 출처에는 얼마나 많은 저장 공간이 필요한가요?
일반적인 30분 에이전트 세션은 200KB-800KB의 원시 트랜스크립트를 생성합니다. Git notes는 메인 객체 데이터베이스 외부에 데이터를 저장하여 기본적으로 git clone 크기를 변경하지 않습니다. Memento의 마크다운 변환은 원시 크기를 약 60% 줄입니다. 하루 10-20개의 에이전트 세션을 실행하는 팀의 경우, 일일 2-10MB의 출처 데이터를 예상할 수 있으며, 이는 세션당 중간 해상도 스크린샷 한 장 정도에 해당합니다.2
에이전트 관측성과 세션 출처의 관계는 무엇인가요? 에이전트 관측성은 에이전트가 실시간으로 무엇을 하는지 모니터링합니다: 리소스 소비, 정책 준수, 런타임 동작.7 세션 출처는 에이전트가 무엇을 결정했고 왜 그랬는지를 사후에 기록합니다. 관측성은 “에이전트가 지금 올바르게 동작하고 있는가?”에 답합니다. 출처는 “에이전트가 지난 화요일에 왜 이런 선택을 했는가?”에 답합니다. 두 시스템은 상호 보완적입니다: 관측성은 실시간으로 문제를 포착하고, 출처는 사후에 문제를 설명합니다.
출처
-
Crosley, Blake, “Your Agent Writes Faster Than You Can Read,” blakecrosley.com, February 2026. Cognitive debt framework, five independent research groups converging on the same problem. ↩
-
mandel-macaque, “Memento: Git extension for AI session tracking,” GitHub, 2026. Git notes storage, markdown conversion, multi-provider support. 100 HN points, 124 comments. ↩↩↩↩↩↩↩
-
Author’s production telemetry. 84 hooks across 15 event types, session state files (jiro.state.json, jiro.progress.json), 60+ daily Claude Code sessions, February-March 2026. ↩↩
-
Bansal, Karan, “Claude Code LSP,” karanbansal.in, 2026. LSP integration enabling goToDefinition, findReferences, hover, diagnostics. 75 HN points, 39 comments. ↩↩↩
-
Crosley, Blake, “Anatomy of a Claw: 84 Hooks as an Orchestration Layer,” blakecrosley.com, February 2026. ↩↩
-
Crosley, Blake, “The Fabrication Firewall: When Your Agent Publishes Lies,” blakecrosley.com, February 2026. Confabulation feedback loop, output firewalls, blast radius classification. ↩
-
Crosley, Blake, “The Invisible Agent: Why You Can’t Govern What You Can’t See,” blakecrosley.com, March 2026. Three-layer visibility stack, runtime auditing. ↩↩
-
Git Documentation: git-notes, git-scm.com. Notes storage in refs/notes/, per-commit metadata attachment. ↩
-
Crosley, Blake, “What I Told NIST About AI Agent Security,” blakecrosley.com, February 2026. Standardized audit logging recommendation. ↩
-
Crosley, Blake, “Jiro: A Quality Philosophy for AI-Assisted Engineering,” blakecrosley.com, February 2026. Evidence gate, quality loop, seven failure modes. ↩↩
-
Crosley, Blake, “Building Custom Skills for Claude Code,” blakecrosley.com, February 2026. Skill authoring, slash command patterns. ↩
-
claude-replay, “A video-like player for Claude Code sessions,” GitHub, March 2026. Session transcript playback, step-by-step review. ↩
-
code-review-graph, “Persistent code graph that cuts Claude Code token usage,” GitHub, March 2026. Structural code understanding across sessions. ↩