cody-agent — handoff (현재 상태·불변 핵심)
프로젝트 슬러그 =
cody-agent· 도구 =C:\dev\tools\cody-agent\· 착수 26.10.8(목) 설계 정본 =C:\dev\seedchain\projects\cody-agent\design.md· 규칙 =rules.md· devplan =C:\dev\devplan\cody-agent.html장부 =C:\dev\seedchain\rules\model-ledger.md§3 「tools · cody-agent」(1차 L5 · 이관 회차 L4)
NOW (26.10.8(목))
- [코디] ✅크레딧 주기 정정 26.10.9(금) 13:00 KST(장부 L3 · [페페] 콘솔 Billing 원문 「2026. 10. 8. | API credit (Max 20x) | 2026. 11. 2. 만료 예정 | US$200.00」) — 매월 15일·17일 리셋 가정은 둘 다 틀렸다. 크레딧 = 26.10.8 지급 · 26.11.2 만료(콘솔 Billing, [페페] 26.10.9) · 소진 창 11.1(일) 00:00 ~ 11.2(월) 00:00 KST(만료 시각 미상 → 보수적으로 11.2 00:00).
config.jsoncycle=mode:"fixed"·start_at 2026-10-08T00:00+09:00·expires_at 2026-11-02T00:00+09:00. 만료 후 = 잔액 0 · 구독 폴백(실행기·gate·ctx 훅 모두 ·balance.jsoncycle_mode·expired) — 다음 지급분이 생기면 configcycle.start_at/expires_at갱신. -
⚠사고(12:38 KST):
reset_day17→15 변경(tools251aee5) 직후 status·훅이$200.00 / 예약 $0(0건)으로 리셋 표시 + 「크레딧 새 주기」 알림. 원인 = 원장 소속을runs.cycle·anchors.cycle키 문자열(2026-09-17)로 걸렀는데 config 를 바꾸자 키가2026-09-15가 되어 앵커·런 전부가 «다른 주기»로 빠짐(selftest 는 임시 원장이라 무관 · 실제 원장 행 변경 없음). 복구 = 소속을 시각 범위(runs.created_at·anchors.at∈ [주기 시작, 끝))로 판정 + 주기 키가 바뀌어도 직전 주기 끝(metacycle_end) 전이면 «설정 변경»(eventcycle_config· 알림 없음). 복구 후 실값 = $114.50 / $200 · 예약 $3.90(4건) · 오늘 $63.39(앵커 198.7 − 26.10.8 14:33 이후 정산 $84.20). selftest 263/263(fixed 케이스 29 추가) · ctx 50/50 · cody_ask 16/16. -
[코디] ✅3차 정책 변경 26.10.9(금) 12:10 KST(장부 L4 · [페페] 「api 에이전트 사용 정책을 바꾼다. 사용량이 생각보다 많아서 평소 사용은 전체 금액 100달러 하한 제한으로 한다. api는 비상용으로 남겨놓고 갱신 하루전에 소진을 위해 전체 소진을 위한 자동전환을 한다.」) — ① 평소 하한 $100(
config.jsonfloor_usd· 미달 = 구독 폴백: run 종료코드 3 · gate 통과 · ask/cody_ask 구독) ② 비상 $10(emergency— ask 가 구독 한도 문구를 받으면 자동 API 재시도 ·ask/run/answer --emergency수동 · 원장runs.emergency열 추가형) ③ 소진 창 = 갱신 전날 24h(burn— 하한 $1 · gate 강제 · 페이스 목표 = 잔액 전액 · 창 진입 텔레그램 1회 · 옛pace.last_day_floor_*대체) ④ gate·ctx 훅은 하한을 config/balance.json 에서 읽고 소진 창을 «지금» 시각으로 재판정 · 훅 꼬리(하한 $100)· 창이면(하한 $1) · 소진 창(~2일 00:00)· 비상이면· 비상 …. 검증 = selftest 233/233 · cody_ask 16/16 · ctx 50/50 · ruleguard 71/71(api-tail-missing 13/13 · 탐지기 무변경). → 갱신일은 위 «크레딧 주기 정정»으로 대체(크레딧 = 26.10.8 지급 · 26.11.2 만료 · 소진 창 11.1 00:00~11.2 00:00 KST). -
[코디] ✅1차 구축 완료 26.10.8 12:50 KST — 실행기
cody_agent.py(ask·run·apply·status·ledger·recover·probe·clean·selftest·livecheck) · 원장state\ledger.sqlite· 하한 $10 판정+예약 한 트랜잭션 · 구독 폴백 · 400/한도/인증 차단+1시간 재탐지 · apiKeyHelper(키는 claude.exe 에만) · 사본 위임+패치 반환 · 컨텍스트 훅· [API] $x / $200 (하한 $10)· ruleguardapi-tail-missing(시드 2 즉시 강제). 검증 = design.md §4(V2a~V7·위임 실증, API 비용 ≈ $0.037). -
[코디] 잔액 = 추정(초기 앵커 198.7 − 원장 정산분). 크레딧 = 26.10.8 지급 · 26.11.2 만료(콘솔 Billing, [페페] 26.10.9) · 소진 창 11.1 00:00~11.2 00:00 KST(
C:\dev\tools\cody-agent\config.jsoncyclefixed). -
[페페] 26.10.8 「API 에이전트 사용이 별로 안 늘었다 — 세션 작업·위임 에이전트·세션을 API 에이전트로 적극 교체 + 그릴링 등 API 에이전트와 자유 소통 방법」 → 그릴링 회신: Q1 동적 소진 페이스 · Q2 질문 릴레이(사용자용 chat CLI 없음) · Q3 상주 전부 이관 · Q4 L4·L5 허용 단 패치형만 + 보완 전부 + 규칙파일 읽기 · Q5 PreToolUse 조건부 차단.
-
[코디] ✅2차 구축 완료 26.10.9(금) 00:10 KST(장부 L5 · Q1·Q2·Q4·Q5 — Q3 은 아래 이관 표) — ① L4·L5
run(패치형만 ·--test필수 · 결과review_required→ 총괄 정독 후apply --reviewed· Bash 허용목록) ② 전 등급 규칙 파일 Read 강제(CLAUDE.md·rules INDEX·프로젝트 rules.md · stream 검사 · 미독 = 종료코드 7) +--project③ apply check(패치 내용 = ruleguard 관점 · 원본 blob 변경 · 런 상태 · 넘김 =--force-check "사유") ④ 질문 릴레이(원장 표waits추가형 ·questions/answer1회 · TTL 72h · 같은 사본·세션--resume) +ask --with-rules --allow-questions⑤ 동적 소진 페이스(status·balance.jsonpace·훅 꼬리· 오늘 $x/$목표) ⑥ 훅 agent_gate(C:\Users\delix\.claude\settings.jsonPreToolUseAgent|Task· 실호출 deny 확인) ⑦ devplan 실시간 스냅샷C:\dev\devplan\data\cody-agent-status.json. 예산 L4 $20·L5 $30(실측 근거 design.md §2-1). 포인터 =C:\dev\CLAUDE.md§3 ·C:\dev\seedchain\rules\model-ledger.md§0-9. 검증 = selftest 171 · ctx 37 · cody_ask 11 · 실 API 14런 원장 $1.01(단가표 $0.45) — design.md §2-1 V8~V12. -
[코디] ✅2차 상주 이관 완료 26.10.8(목) 23:40 KST([페페] Q3=① 「구독 claude -p 상주 호출부 전부 지금 API 로」 · 장부 L4) — 공용 어댑터
C:\dev\tools\cody_ask.py신설(=cody_agent.ask+ 실행기 «예외» 때만 구독 직행 비상구 · usage 는 원장에서 · 한도 문구 판정 · 기동 실패만 재시도 · 자체검사 11/11 py3.12·py3.9 · 커밋 tools8bcca7f). 호출부 편집은run --tier L3위임 8건($3.18) → patch 정독 →apply. 모델·노력도 = 옛 호출이 사용자 설정에서 받던 값 그대로(opus xhigh · sonnet medium).
| 호출부 | 이전 → 이후 | 검증(실데이터 1건) | 재기동 | 첫 API 런 · 비용 |
|---|---|---|---|---|
C:\dev\talklog\server\pipeline_worker.py 분류 |
구독 claude -p(cwd 리포 안) → cody_ask opus·xhigh · caller talklog-classify |
통화 1건 2항목(옛 1항목·$0.114 환산) | 불필요(매회 새 프로세스) | 20261008-232105-281ddf $0.0239 |
C:\dev\talklog\server\call_summary.py |
구독 → sonnet·medium · talklog-call-summary |
같은 통화 553자 6.4초(옛 596자 17.6초) | 불필요 | 20261008-232113-ccb103 $0.0113 |
C:\dev\talklog\server\night_worklog.py |
구독 → opus·xhigh·$2 · talklog-night |
--check-dedup OK |
불필요(야간 예약) | 20261008-231951-5f6f7d $0.0500 |
C:\dev\talklog\server\fusion_post.py |
구독 → opus·xhigh · talklog-fusion |
운영 --dry 1현장(게시 0) |
불필요(30분 예약) | 20261008-232135-70d09b $0.0157 |
C:\dev\talklog\live\live_server.py 정리본 |
구독 claude.exe → sonnet·medium · talklog-live-notes |
정리본 1건 · --selftest-notes 14/14 |
✅ 23:22 KST(녹음 0 확인 · PID 12528) | 20261008-232216-e4913b $0.0113 |
C:\dev\tools\stt\stt.py 정리본 |
구독 → opus·xhigh · stt-summary |
짧은 통화 1건 | 불필요(broker 가 매번) | 20261008-233333-6bcda3 $0.0210 |
C:\dev\poin-agent\sgc\watcher.py 게시판단·장애분석 |
구독 → opus·xhigh · poin-board·poin-diag |
나진상가 옛/새 dry 비교 = 같은 구조(2줄 표현 차) | ✅ 23:32 KST(PID 29096) · INC-004 halt 는 유지 — resume 안 함 | 20261008-233106-95086f $0.2170 |
C:\dev\poin-agent\pfs_done.py |
구독 → opus·xhigh · poin-pfs-done |
합성 판정 1건 | 불필요(1분 예약) · watcher 내 사본은 재기동으로 | 20261008-233513-900dcd $0.0180 |
🆕C:\dev\pfs\tools\kb-digest\kb_digest.py(목록 밖) |
구독 → opus·xhigh · pfs-kb-digest |
JSON 1건 · --demo |
불필요(15분 예약) | 20261008-233343-e64b96 $0.0016 |
🆕C:\dev\devplan\danggeun\rounds.py claude_json(watch·card_prep 공용, 목록 밖) |
구독 → cody_ask(opus xhigh·sonnet medium) · danggeun-rounds|watch|card-spec|card-caption |
JSON 1건 | 불필요(5분 예약) | 20261008-232814-6c1128 $0.0004 |
🆕C:\dev\devplan\app.py 댓글 답변(목록 밖) |
구독(cwd devplan) → sonnet·medium · devplan-comment |
답변 1건 | ✅ 23:36 KST(8799 · 두 벌이 떠 있던 것을 한 벌로) | 20261008-233436-31ba05 $0.0041 |
C:\dev\tools\session-relay\fallback.py |
그대로(OpenRouter) | — | — | ⏸보류 = 대화형 VS Code 세션은 크레딧이 안 먹는다(F2) → 미결 3 |
C:\dev\ainews-insta\judge.py |
그대로 | — | — | 제외 = 폐기 파이프라인(예약작업 전부 사용 안 함) |
talklog_server.py |
직접 호출 없음(pipeline_worker 를 매번 띄움) | — | 불필요 | — |
- 합계 = 위임 8건 $3.18 + 검증 호출 12건 $0.38 ≈ $3.56. 커밋(로컬만) = talklog
fdcfde9(night_worklog 기존 미커밋분 기록)·474e66d· toolsc80af23(stt 기존 미커밋분 기록)·8bcca7f· poin-agent46afb2f· pfs3eda7dfc(+사이트맵 재빌드). devplan 은 git 아님 → 백업C:\dev\devplan\app.py.bak-20261008-cody-ask·C:\dev\devplan\danggeun\_bak\. - 아직 실호출 0 인 caller =
poin-diag(장애 때만) ·danggeun-watch|card-spec|card-caption(같은 함수) — 첫 실호출 때 원장에 생긴다. watcher 는 INC-004 halt + 야간(20~08시)이라 운영 게시판단 첫 호출은 INC-004 해소 뒤. - devplan
C:\dev\devplan\cody-agent.html§6 표 갱신 · 허브 재빌드 · pagelinks 123/0.
미결 (페페)
- ✅해결 — 크레딧 = 26.10.8 지급 · 26.11.2 만료(콘솔 Billing, [페페] 26.10.9) · config
cyclefixed(앞선 「매월 15일 갱신」은 철회) ~~리셋 주기 확인~~ — 콘솔 표기 「27년 10.17」이 «매달 갱신 기준일»인지 «1회 지급분 만료일(2027.10.17)»인지. 1회성이면config.jsoncycle.mode = "fixed"+expires_at로 바꾼다(지금은 월 리셋 가정 — 10.17 에 $200 로 되돌아간 척하다 실제로 비면 400 으로 잡고 1시간 재탐지). - 콘솔 Usage 에서 확인할 것(design.md §4 시험분): ① 26.10.8 11:13~12:44 KST 사이 소액 호출들이 크레딧(무료 지급분) 에서 빠졌나 ② V2b(12:15 KST 전후) 400 은 과금 0 인가 ③ 잔액 표시값 →
cody_agent.py ledger anchor <값>으로 맞추기 ④ 자동충전 OFF·구매 크레딧 $0 유지. - [코디]
C:\dev\tools\session-relay\fallback.py«크레딧 Sonnet 1순위»는 그대로는 불가 — 폴백은 새 «대화형 VS Code 세션»을 연다. 크레딧은 IDE·대화형 세션에 안 먹고(F2 · 메모리 anthropic-max-api-credits)ANTHROPIC_API_KEY를 전역 settings env 로 내보내는 것도 금지(rules). 선택지 = ①OpenRouter 그대로(추천 — 대화형 이어가기는 이것만 된다) ②한도 때 «새 세션» 대신 인계문을cody_agent run(L1~L3 패치형) 으로 헤드리스 처리 — 대화형 이어가기가 아니다 ③CLI 대화형(cc_entrypoint=cli)에 크레딧이 먹는지 실측부터(소액 1건). - [코디] 도구가 필요한 상주 호출은 이번에 안 옮겼다(ask = 도구 0 · run = 패치형이라 «같은 방식»이 안 맞는다):
C:\dev\pfs\orderpaper-sync\material_spec_parse.py(10분 · PDF Read) ·C:\dev\tools\furniture-voice\selflearn.py(주 1회 · WebSearch) ·C:\dev\devplan\tools_state.pyreflect(버튼 · Edit) ·C:\dev\tools\cody-mcp-gateway\…\runner.py(코덱스가 부르는 전 도구 에이전트).C:\dev\tools\session-relay\calibrate.py(/usage= 구독 사용량 측정 자체)는 옮기면 안 된다. 추천 = material_spec_parse 만cody_agent.ask(tools="Read", allowed="Read")경로로 다음 회차(어댑터에 tools 인자 추가 · pfs 규칙) · 나머지 그대로. - [코디] Haiku 런 원장 과대 기록 — CLI 가 Haiku 5.5 단가를 몰라
costBasis: unknown대체값(단가표의 10~30배)을 내고 원장은 max() 를 쓴다(실측 $0.0955 vs $0.0072). 선택지 = ①그대로(보수적) ②costBasis=unknown인 모델은 단가표만 쓴다(추천 — design F10 의 원래 의도) ③Haiku 만 예외. - [코디] L1~L3 Bash 전체 허용 유지 여부 — 2차는 1차 호환으로 L1~L3 = Bash 전체 − 거부목록(cwd 밖
rm -rf가 거부 규칙 없는 경로면 통과 — 실측 F16). 선택지 = ①그대로 ②2주 관찰 후 전 등급 허용목록(추천 — configbash_allowlist_levels한 줄) ③지금 바로 전 등급. - [코디] 죽은 예약 3건 $0.90(
stt-bench14:42 KST · 래퍼 pid 29632 없음) —cody_agent.py recover --scan→recover <id> --conservative(또는 콘솔 값) 은 총괄 판단(원장 쓰기라 안 건드림).
다음 (2차 · L4 회차 — 호출부 이관)
- [코디] ✅26.10.8 완료(위 NOW 표) — 남은 것 = 미결 3·4 · INC-004 해소 뒤 watcher 첫 운영 호출 원장 확인(
cody_agent.py status에poin-boardapi settled) · 2주 실측(26.10.22) 뒤 Haiku·노력도 재검토. 아래는 착수 전 계획(기록용). - 순서(코덱스 제안) = 읽기 전용 상주작업 먼저 → OAuth 폴백 → 격리 편집. 대상 = design.md §5:
C:\dev\poin-agent\sgc\watcher.py·C:\dev\poin-agent\pfs_done.py(dry-run → 재기동 →watcher.py resume) ·C:\dev\talklog\server\(call_summary·pipeline_worker 분류·night_worklog·fusion_post) ·C:\dev\talklog\live\live_server.py·C:\dev\ainews-insta\judge.py·C:\dev\tools\session-relay\fallback.py(OpenRouter → 크레딧 Sonnet 고정) ·C:\dev\tools\stt\stt.py교정(Haiku 검토). - 2주 실측 후 Haiku 전환·위임 등급 조정(26.10.8 Haiku 벤치 =
C:\dev\_bench\haiku55\). - 보안 경계(별도 윈도우 계정·VM) 검토 — 지금은 «실수 방지»까지만(design.md §6).
남은 것 (1차 잔여)
-
✅devplan 페이지 배치됨
C:\dev\devplan\cody-agent.html(카드C:\dev\devplan\projects.jsonubcody-agent· pagelinks TREE 1줄). 2차 섹션(KPI·소진 페이스·질문 대기·등급 정책·이관 현황)은C:\dev\devplan\data\cody-agent-status.json(실행기가 상태 바뀔 때마다 씀)을 읽어 그린다 — 결과는 2차 보고 참조. -
시험 임시 폴더(삭제 안 함, 목록만):
C:\Users\delix\AppData\Local\Temp\cody-agent-selftest-*·C:\Users\delix\AppData\Local\Temp\cody-agent-probe-*·C:\Users\delix\AppData\Local\Temp\cody-agent\<run_id>\(위임 사본). 정리 =cody_agent.py clean --older-than-days 7 --yes(페페 승인 후). - CLI 업데이트(
claude update·npm) 뒤 =python C:\dev\tools\cody-agent\livecheck_task.py run1회(apiKeySource·cc_entrypoint=sdk-cli·새 창 0 재확인).