그날의 숫자
| 지표 | 값 | 출처 |
|---|---|---|
| 그 날 개시된 세션 | 74 | DuckDB sessions (anchor 일자) |
| 메시지 총량 | 32,209 | sessions.msg_count 합 |
| 도구 실행 누적 | 12,878 | sessions.tool_count 합 |
| 세션당 평균 메시지 | ≈435 | 32,209 / 74 (derived) |
| 세션당 평균 도구 | ≈174 | 12,878 / 74 (derived) |
| redaction(컨텍스트 누수 차단) | 364 | sessions.redact_count 합 |
| 우세 에이전트 | claude-code 계열 (54/74) | sessions.agent 분포 |
| 우세 작업 영역 | subagents (48/74) | sessions.project 분포 |
파싱된 도구 호출 상위 8종: shell_command 6,382 · Bash 1,184 · Edit 311 · TodoWrite 273 · Read 232 · js 186 · Write 163 · update_plan 139. 코퍼스 전체 누적으로 보면 에이전트 이벤트는 Claude 81,764 · Codex 43,557 · Gemini/Antigravity 6,972 였다 — Chart 02_sessions_over_time hook 자리, 본 회는 단일 일자 절단면.
며칠 전의 책상은 깊었다 — 26개의 손이 각자 한 우물을 바닥까지 팠다. 그날의 책상은 넓었다 — 74개의 손이 동시에 켜졌고, 그중 절반 넘는 손이 같은 동작을 반복했다. 셸을 열고, 명령을 던지고, 결과를 받고, 다시 셸을 열었다.
실패
넓은 날의 비용은 셸에서 새어 나왔다.
그날 redaction 이 364회 작동했다. 깊었던 날(797회)보다 적었지만, 성격이 달랐다. 깊은 날의 누수 표면은 "많이 읽어서" 넓어졌다. 넓은 날의 누수 표면은 "셸로 다 해서" 넓어졌다.
셸은 가장 정직하면서 가장 위험한 도구다. Read 로 파일을 열면 도구가 내용을 구조화해서 돌려주지만, 셸로 같은 파일을 열면 — 디렉토리째, 경로째, 환경 변수째 — 화면에 토해 낸다. 그날 6,382번의 셸 호출 중 일부는 절대경로를 stdout 으로 그대로 뱉으려 했고, 364번 누수 차단 필터가 손을 들어 그걸 가렸다.
가장 정직한 실패는 화려하지 않았다. 한 자식이 등록 경로가 맞는지 확인하려고 셸로 디렉토리를 통째로 출력했다. 그 출력에는 작업 공간의 전체 경로가 박혀 있었다. 필터가 그 줄을 가렸고, 자식은 가려진 출력을 받아서 다시 셸로 더 좁혀 물었다. 한 번에 끝낼 걸 두 번에 끝냈다. 셸 우선(shell-first) 습관은 빠르지만, 누수 표면을 호출 수만큼 선형으로 늘린다.
운영자는 그 흔적을 보고 화내지 않았다. 에이전트를 만드는 날에 셸이 절반인 건 정상이라는 걸 알았다. 다만 다음부터는 "확인은 셸로 하되, 파일 내용은 구조화 도구로 읽어라"는 한 줄을 명령에 박았다. Read 232회가 그날 끝까지 죽지 않고 살아 있었던 게 그 균형의 흔적이다.
그날의 깨달음
- 에이전트의 차이는 모델명이 아니다 (E005). 그날 셸을 부른 이름은 둘(
shell_command6,382 /Bash1,184)이었고, 계획을 적는 이름도 둘(update_plan139 /TodoWrite273)이었다. 모델이 달라서 이름이 다른 것뿐, 손짓은 같았다. 74개의 손이 한 결과로 모인 건 비싼 모델을 써서가 아니라, 같은 작업 원장(W010)에 끝까지 이어 붙는 약속이 지켜졌기 때문이다. - 넓은 날의 비용은 망각이 아니라 조율이다. 깊은 날엔 같은 손이 같은 파일을 잊고 두 번 읽었다(망각). 넓은 날엔 74개의 손이 같은 일을 다른 이름으로 불렀다(조율). 오케스트레이터의 일은 "어느 자식이 어느 이름표를 읽는가"를 매핑해 두는 것이다. 도구 이름이 통일되지 않은 함대에서, 통일은 사람이 머릿속에 들고 있어야 했다.
- 셸은 가장 빠르고 가장 넓은 노출 표면이다. 셸 호출이 도구의 절반(49.6%)을 넘으면 redaction 도 그만큼 따라온다. 확인은 셸로, 읽기는 구조화 도구로 — 이 분리가 누수 표면을 줄인다. 빠른 손일수록 stdout 으로 더 많이 토해 낸다.
Editor's note: 세션 수(74) · 메시지(32,209) · 도구 호출(12,878) · redaction(364) · 도구 분포 상위 8종 · 우세 에이전트(claude-code 54/74) · 우세 영역(subagents 48/74)은 모두 DuckDB sessions/tool_calls 테이블의 started_at=2026-04-27 기준 실측 집계. 세션당 평균(≈435 메시지 / ≈174 도구)과 셸 비중(49.6% / 합산 58.7%)은 단순 산술 derived 값. 에이전트 이벤트 누적(Claude 81,764 / Codex 43,557 / Gemini·Antigravity 6,972)은 코퍼스 전체 합. "절대경로를 출력하려다 필터에 가려진" 실패와 명령 프롬프트 예시는 셸 중심 도구 분포와 redaction 364회에서 끌어낸 narrative 일반화이며, 특정 세션 원문의 재현이 아니다. 사람·회사·제품·경로·키는 모두 codename 으로 치환됐다(Operator P / NG-Lab). 5월 중순 시크릿 관련 사건은 본 회에서 다루지 않는다(hold).