cody-agent — 작업 규칙
규칙만 둔다. 상태 =
handoff.md· 설계·실측 근거 =design.md· 도구 =C:\dev\tools\cody-agent\· devplan =C:\dev\devplan\cody-agent.html.
API 잔량 꼬리
- [페페] 26.10.8 「컨텍스트 훅과 함께 api 잔량 표시를 훅으로 걸어서 답변마다 표기」 + Q3 「바로 강제(잔량을 못 읽은 턴은 통과)」.
- 훅 =
C:\dev\tools\ctxmeter\ctx.py --hook이C:\dev\tools\cody-agent\state\balance.json만 읽어 컨텍스트 줄 끝에 붙인다:[컨텍스트] 32.1% (160,529 / 500,000 토큰) · [API] $187.40 / $200 (하한 $100 · 추정)· 하한 이하·차단 중 = 끝에· 구독 폴백 중(사유)· 크레딧 만료 전 24h 소진 창이면(하한 $1) · 소진 창(~2일 00:00)· 만료 후$0.00 / $200 (하한 $100 · 만료) · 구독 폴백 중(만료)· 비상 런 진행/오늘 비상 정산이면· 비상 API 중(N건)/· 비상 오늘 $x(26.10.9 · 모두 같은 줄). - 답변 끝 컨텍스트 줄에 그 값을 그대로 붙여 적는다 — 예:
컨텍스트: 32.1% (160,529 / 500,000 토큰) · [API] $187.40 / $200 (하한 $100 · 추정). - 강제 = ruleguard 규칙
api-tail-missing(탐지기C:\dev\tools\ruleguard\detectors\api-tail-missing.py, 시드 2 = 즉시 차단). 범위 = 시드·컨텍스트 꼬리(report-tail-missing)와 같다(작업 턴 · 서브에이전트·헤드리스 제외). 이번 턴 훅이[API]를 안 냈으면(파일 없음·깨짐·헤드리스) 요구하지 않는다(fail-open). 꼬리 = 답변 마지막 15줄. - 숫자는 추정이다(잔액 조회 API 없음). 콘솔 Billing 값과 다르면
python C:\dev\tools\cody-agent\cody_agent.py ledger anchor <콘솔 잔액>으로 맞춘다.
사용 규칙
- 키는
C:\dev\.secrets\.envANTHROPIC_CREDIT_API_KEY한 곳. 출력·로그·파일·argv 에 남기지 않는다. 전역 env(ANTHROPIC_API_KEY)로 절대 내보내지 않는다 — 내보내면 그 PC 의 모든claude가 크레딧(또는 IDE 분류 400)으로 간다. 키는key_helper.py가 claude.exe 에만 준다. - 헤드리스 텍스트 작업 =
cody_agent.ask(...)(구독 자동 폴백). 편집 위임 =run --tier L1~L5(2차 26.10.8 — L4·L5 도 패치형만 허용, 아래 「2차 사용 규칙」). 종료코드 3 = 하한 미달·차단 → 세션의 Agent 도구(장부 worker, 프롬프트에[구독])로 한다(구독 재실행 안 함). - 🔴하한 정책(26.10.9 [페페] 「평소 사용은 전체 금액 100달러 하한 · api 는 비상용 · 갱신 하루 전 전체 소진 자동전환」) — 값은 전부
C:\dev\tools\cody-agent\config.json(floor_usd·emergency·burn). - 평소 하한 $100: 잔액−예약−그 런 예산 ≥ $100 → API 우선 + agent_gate 강제 · 미달 → 구독 폴백(run 종료코드 3 · gate 통과 · ask/
cody_ask구독). - 비상 하한 $10: ① 자동 = 평소 하한 미달로 구독에 간 ask 가 구독 «한도 문구»(config
emergency.sub_limit_regex=cody_ask.LIMIT_RE와 같은 값)를 받으면 API 로 1회 재시도(비상 하한도 미달이면 실패 +limit=True· 구독 재실행 없음) ② 수동 =ask·run·answer의--emergency(구독이 한도일 때만). 원장runs.emergency=sub_limit|manual. gate 는 비상에 관여하지 않는다(비상 = «API 허용»이지 구독 금지가 아님). - 소진 창 = 크레딧 만료 전 24h(주기 끝 −24h ~ 주기 끝). 크레딧 = 26.10.8 지급 · 26.11.2 만료(콘솔 Billing, [페페] 26.10.9) · 소진 창 11.1 00:00~11.2 00:00 KST(만료 시각 미상 → 보수적으로 11.2 00:00 · config
cycle=fixed·start_at/expires_at): 하한 $1 · gate 강제 · 페이스 목표 = 잔액 전액 · 창 진입 첫 갱신에서 텔레그램 1회(주기마다). gate·훅은 스냅샷 시각과 무관하게 «지금» 시각으로 창을 다시 판정한다. 만료 후 = 잔액 0 · 구독 폴백(비상도 API 불가) — 다음 지급분이 생기면 configcycle.start_at/expires_at(·grant_usd)만 갱신한다. - 🆕원장 주기 소속 = 시각 범위(26.10.9 사고 —
reset_day17→15 변경 순간 잔액이 $200 로 리셋 표시): 런·앵커는created_at/at가 [주기 시작, 끝) 안이면 그 주기다.runs.cycle·anchors.cycle키 문자열로 거르는 코드를 새로 쓰지 않는다(config 를 바꾸면 키가 달라진다). 주기 키가 바뀌어도 직전 주기 끝 전이면 «설정 변경»(eventcycle_config· 알림 없음). - [페페] 26.10.12 「api 잔량 10달러 남기고 우선 소진 · 전량 소진도 허용 · 작업이 끊기지 않게」 → config floor_usd 100→10 ([코디] 적용). 원복 지시 전까지 유지.
run결과는 패치 검토 후에만apply <run_id>— 자동 적용 금지. apply 는 먼저 check(패치 내용·원본 변경·런 상태)를 거친다. 원본이 그사이 바뀌었으면 check(drift-file)·git apply --check가 막는다 → 다시 위임하거나 손으로 합친다.- 결과 없는 런(orphan)은 예약을 잡고 있다 →
status로 보이면recover --scan→recover <id> --actual X(콘솔 값) 또는--conservative(예약액 전액). 만료만으로 풀지 않는다. - 시험·검증에서 앵커를 바꿨으면 끝에 반드시 원복 앵커(시험 전 계산값,
--estimated)를 넣는다(V5 선례). - 단가가 바뀌면
config.jsonprices만 고친다(출처 = platform.claude.com pricing). 등급→모델·노력도는C:\dev\seedchain\rules\model-ledger.md§1 표를 파싱한다 — config 에 복제하지 않는다.
2차 사용 규칙 (26.10.8 [페페] Q1~Q5 · 실측 = design.md §2-1)
- 위임은 API 실행기 우선. 장부 worker(
worker-sonnet-medium~worker-opus-max)·opus-max-consult를 Agent 도구로 부르면 훅C:\dev\tools\cody-agent\agent_gate.py(settings.json PreToolUseAgent|Task)가 deny + 대체 명령을 낸다. 통과 = 프롬프트에[구독](API 실행기가 거부·실패했을 때 · 구독이 맞는 일) 또는[소작업](작은 일) · 부작용형(배포·push·DB·운영·ssh 류 — 바로 뒤에 «금지·하지 마·없이…»가 붙은 언급은 제외) · 크레딧 여유 부족(잔액−예약−그 등급 예산 < 하한 — 하한은 config 정본 · 소진 창은 «지금» 시각으로 재판정) · 차단 중 · balance.json 못 읽음. 판정은 전부C:\dev\tools\cody-agent\state\gate.log1줄. 다른 에이전트(web-designer·detail-page-designer·Explore·general-purpose …)는 손대지 않는다. - 편집 위임 =
python C:/dev/tools/cody-agent/cody_agent.py run --tier Lx --repo <리포> --project <슬러그> --prompt-file <지시.md> [--test "<검증 명령>"]. Bash 도구에서는run_in_background로 돌린다(L3 이상은 10분을 넘긴다).--project를 빼면 C:\dev 아래 경로 조각으로 추정한다. - L4·L5 =
--test필수(없으면 코드 2 · 예약 안 함) · 결과review_required→ patch.diff 전문·check 결과·테스트를 총괄이 직접 정독한 뒤apply <run_id> --reviewed(없으면 거부). Bash = 허용목록(테스트·빌드·git 읽기·파일 조회·mem_find·사본 안 mkdir/rm/mv). - 모든 등급 = 규칙 파일(
C:\dev\CLAUDE.md·C:\dev\seedchain\rules\INDEX.md· 있으면 프로젝트rules.md) Read 강제 — stream 에 성공한 Read 가 없으면rules_read=false· 종료코드 7 · apply check 가 막는다. Bash 거부목록(네트워크·원격 git·commit·설치·.secrets·C:\dev 쓰기·cd C:\dev·notify/claude/codex 등)은 모든 등급 공통.C:\dev는--add-dir읽기 전용(Edit·셸 파일쓰기 둘 다 거부). - apply 의 check(
check <run_id>로 따로도 본다): 런 상태(질문 대기·ok 아님·규칙 미독·테스트 실패) · 패치 내용(키·토큰 ·.secrets·.claude설정·에이전트 · ruleguard · heredoc 파일쓰기 ·git add -A· push·DROP·rm -rf·배포·schtasks·reg · 파일 삭제 ·.env) · 원본 기준(건드린 파일 blob 이 스냅샷과 다르면 거부, HEAD 이동만은 표시). 걸리면 거부 — 넘기려면--force-check "사유(4자+)"(사유가 result.json·원장 events 에 남는다).git apply --check실패는 못 넘긴다. 키 값은 출력에서 가린다. - 질문 릴레이(총괄 사용법): 에이전트가 결정이 필요하면
<<<QUESTIONS {json} >>>를 내고 끝난다 → 실행기가 waiting(종료코드 8, TTL 72h)으로 남긴다 → 총괄은python C:/dev/tools/cody-agent/cody_agent.py questions로 보고 서로 답이 의존하지 않는 질문은 묶어 한 번에 페페에게 채팅으로(텔레그램notify.py ask금지 — 26.9.22 기본규칙) 선택지+추천과 함께 묻는다 → 페페 답을 파일로 적어answer <run_id> --file 답.md→ 같은 사본·같은 세션(--resume)으로 이어 실행 → 다시 patch(0/7) 또는 또 질문(8). 같은 질문에 답은 1회(두 번째 = 코드 9). 하한·차단이면 코드 3 이고 답은 안 쓰인다(waiting 유지 → 풀리면 다시 answer). TTL 이 지나면 expired(코드 9) → 다시 위임. 답을 기다리는 동안 그 부분만 멈추고 나머지는 진행한다. - 상담(opus-max-consult 자리) =
python C:/dev/tools/cody-agent/cody_agent.py ask --model claude-opus-5-5 --effort max --with-rules --allow-questions --budget 3 --prompt-file <질문.md> --json.--with-rules= CLAUDE.md 머리말·§2 + rules INDEX.md (+--project면 그 rules.md 머리) 발췌를 시스템 프롬프트에 붙인다(도구는 안 늘린다). 질문 블록이면 waiting → 위와 같은 릴레이. - 소진 페이스 =
status· 훅 꼬리· 오늘 $x/$목표. 목표 = max(0, 오늘 시작 잔액 − 하한 − 예약) / 남은 일수(오늘 포함, 마지막 날 = 전부). 진행 중 큰 런의 예약도 빼므로 그동안 목표가 잠깐 내려간다(정산되면 돌아온다). 답변 끝 컨텍스트 줄에 훅 값을 그대로 붙인다(「API 잔량 꼬리」). ~~마지막 날 하한 $2 안~~(26.10.9 소진 창이 대체 ·pace.last_day_floor_*삭제). 🆕[코디] 26.10.9 [페페] 「하루 제한 해제」 — 훅 꼬리는· 오늘 $x(사용액만)로, 목표는 «표시하지 않는다·한도 아님». 하루 사용 상한 없음 · 하한 폴백만 유지(평소 $100 · 위 「하한 정책」). - 정리: run 은 이제 세션을 저장한다(질문 릴레이용) →
clean --older-than-days 7이 오래된 사본 + 그 세션 폴더(~\.claude\projects\C--Users-…-cody-agent-<run_id>-…) + 만료된 질문의 사본을 목록으로 보인다. 질문 대기(TTL 안) 사본은 나이와 무관하게 남긴다. 실제 삭제--yes는 위험작업(승인 후).
🆕 신규 (최신이 위)
-
🔴2026-10-19 [페페] 「API 사용은 중지한다. 구독으로 진행」 →
C:\dev\tools\cody-agent\config.jsonfloor_usd 10→1000 · emergency.floor_usd 10→1000 · emergency.auto_on_sub_limit false · burn.enabled false · gate.enabled false → status = 「모드 구독 폴백」 확인. 위임 = Agent 도구[구독]worker 로. 원복 = 페페 지시 때만(값 10·10·true·true·true). 14:30 KST 에 이미 돌던 api ask 1건(poin-board)은 그대로 끝나게 둠. ⚠15:00 poin-board 가 또 API 로 감 = 상주(poin-agent sgc watcher, 10.17 기동)가cfg()1회 캐시로 옛 config 를 쥐고 있었다 →cfg()를 파일 mtime 바뀌면 다시 읽게 고침 + 상주 재기동(C:\dev\_work\sohan2-merge-1019\rs_board.py= 폰 락 잡고 사살 →\Cody\Cody-PoinBoardWatch-Restart). config 를 바꾸면 상주가 새 코드를 갖고 있는지(기동 시각) 같이 본다. [코디] -
[코디] 26.10.13 [페페] 콘솔 잔액 = CDP 직접 읽기(방식 B) —
C:\dev\tools\cody-agent\console_balance.py(CDP 9350 · 프로필C:\dev\tools\cdp-profiles\claude-console· 6h 예약\Cody\claude-console-balance· 재로그인\Cody\claude-console-login). 금액은 규칙 파서가 정하고 Jev 는 확인만(Jev 단독 결정 금지 · 불일치·p 낮음 = 앵커 없이 알림). 로그인 화면 hCaptcha → 자동로그인 불가, 페페 수동. 자체검사 =tests\test_console_balance.py(53). ⚠첫 실측 = 콘솔 $56.87 vs 원장 추정 $18.81 → 원장이 사용액을 $38 과대 계상하고 있었다(26.10.13 14:1x KST 첫 console 앵커로 보정). 한국어 화면 근거 문구 = 「프로모션 크레딧 US$X 사용 가능」 + 표 「X / 200」 · 섹션 머리글 오인(설명문)으로 구매잔액 $0.00 을 집은 사고 1회. -
[코디] 26.10.13 크레딧 잔액을 API 로 읽는 길 실측 = 전부 막힘 — ①
ANTHROPIC_ADMIN_API_KEY(.secrets, 접두sk-ant-usr)는/v1/organizations/me200(org=「Pepe‘s Individual Org」)이지만cost_report403 permission_error(문서: Admin API 는 개인 계정 불가 → Console Settings→Organization 전환 필요) ②CLAUDE_CODE_OAUTH_TOKEN(setup-token)은 scopeuser:inference뿐 →/api/oauth/usage403 ③ 대화형 로그인 토큰(~/.claude/.credentials.json, scopeuser:profile)으로/api/oauth/usage200 = 구독 5h·7d 사용률만(크레딧 잔액 없음 ·iguana_necktielimit $250 은 정체 미상, 크레딧 아님) ·cost_report는 «인증방식 불허». 잔액 정본 = 콘솔 Settings>Billing «Promotional credits» 화면뿐. -
[코디] 26.10.12 API 런(
run)의 샌드박스는 외부 네트워크가 막혀 있다 → 외부 자산을 «받는» 스크립트(예: pncadtools/fetch_textures.py)는 런이 «만들기·자체검사»까지만 하고, 실제 «받기 실행»은 총괄이 미니PC 에서 직접 돌린다(pncad 실사 모드 텍스처 5종 · 지시문에 「받기는 총괄이」를 미리 적어 둔다). - [코디] 26.10.12 opus-max 상담
ask --model claude-opus-5-5 --effort max는 기본 timeout 600초를 넘긴다 → 상담 질문이 크면 처음부터--timeout 1500(pncad 실사 상담 1차는 600초 timeout, 2차--timeout 1500으로 성공 · 비용 $1.76). -
[코디] 26.10.9 config
cycle을 바꾸면 «잔액 리셋 표시» 사고가 난다 → 소속은 시각 범위로(위 「원장 주기 소속」) — 17→15일 변경 직후$200 · 예약 0으로 보였다(실제 원장 행 변경 없음). selftest 는 기존 시험을 monthly(15일)로 고정하고 실제 config(fixed)는fixed_tests가 따로 본다 · 시험 원장이 실제state를 가리키면 selftest 가 시작 전에 중단한다. -
[코디] 26.10.9 시험 원장 시각 이동 =
CODY_AGENT_TIME_SHIFT_SEC(초) —CODY_AGENT_STATE(시험 원장)가 있을 때만now()에 더한다(실제 원장엔 안 먹는다). selftest·cody_ask --selftest가 2026-10-09 12:00 KST 로 고정해 소진 창(16일) 안에 돌려도 같은 판정이 나온다 — 하한·창이 시각에 따라 바뀌므로 새 시험도 이 장치로 시각을 고정한다(자식 프로세스는 env 로 같은 이동을 받는다). -
[코디] 26.10.8 2차 실측(CLI 2.1.288) — ①
--bare면--settings로 넣은 PreToolUse 훅도 안 돈다(마커 파일 0) → API 런 안의 차단 장치는 권한 규칙뿐 ②--disallowedTools "Bash(*curl*)"처럼 앞뒤*패턴이cd x && curl …·a; curl …복합 명령까지 막고, 거부가 허용(Bash(python *)vsBash(*-m pip *))을 이긴다 ③Edit(<폴더>/**)거부가 그 폴더의 Bash 파일쓰기(rm·리다이렉트·sed -i·cp·mv·mkdir·touch)까지 막는다(허용목록·Bash 전체 허용 둘 다) ④acceptEdits는 cwd 안 rm·mkdir·리다이렉트를 허용목록과 무관하게 통과시키고, 목록에 없는 명령은--permission-prompts none이면 자동 거부(「no approval surface」) — 단 Bash 전체 허용(L1~L3)이면 cwd 밖rm -rf도 통과한다(막을 곳은 Edit 거부 규칙뿐) ⑤--restricted는 Read 를 cwd+--add-dir로 가두고,--bare에선--add-dir의 CLAUDE.md 를 안 싣는다(「project memory is off」) ⑥ 세션 저장 +--resume <id>(같은 cwd)로 대화가 이어진다(새 런 id 의 apiKeyHelper 로). - [코디] 26.10.8 위임 에이전트의 «RAN/BLOCKED» 자기 보고는 틀릴 수 있다 — 실측: 거부된
git commit을 RAN 이라고 보고. 판정은 stream 의 tool_result(is_error)로 한다(실행기 rules_read 검사도 그렇게 한다). - [코디] 26.10.8 Haiku 5.5 는 CLI
total_cost_usd가costBasis: unknown대체 단가라 단가표의 약 10~30배(실측 $0.0955 vs $0.0072) → 원장 max() 가 Haiku 런을 크게 과대 기록한다(보수적이라 위험은 없음 · 고칠지 = 미결). -
[코디] 26.10.8 Bash 명령줄 heredoc 안의
->도 리다이렉트로 잡혀 ruleguard heredoc-file-write 에 걸린다(위반 기록 1건) — 읽기용 파이썬도 스크래치 스크립트 파일로 돌린다. -
🔴 [코디] 26.10.8 상주 호출부는
cody_agent를 직접 말고 공용 어댑터C:\dev\tools\cody_ask.py로 부른다 —cody_ask.ask(prompt, system=, model=, effort=, timeout=, budget=, caller=, start_retries=)→ok·text·err·route·run_id·cost_usd·usage·limit. 어댑터만 하는 일 = ①system=""을 None 으로(빈 문자열을 넘기면ask가 시스템 프롬프트를 안 바꿔 Claude Code 기본 프롬프트가 실린다) ②API 런 usage 를 원장runs.usage_json에서 읽기 ③구독 한도 문구 →limit④기동 실패(no_result·spawn_error)만 재시도 ⑤실행기가 «예외»(import·설정·원장 고장)면 구독 직행 비상구(route=legacy). 자체검사 =python C:\dev\tools\cody_ask.py --selftest(가짜 claude·임시 원장 · 비용 0). - 🔴 [코디] 26.10.8 이관 때 노력도를 «명시»한다 — 옛
claude -p는 사용자 설정modelSettings(opus xhigh · sonnet medium)를 조용히 물려받고 있었다. 실행기는--setting-sources ""라 effort 를 안 주면 장부 L1 값(medium)이 들어가 opus 가 medium 으로 내려간다. 모델 미지정claude -p= 이 PC 기본claude-opus-5-5(실측). 옛 호출이--setting-sources ""였던 곳(talklog live)만 CLI 기본이었다. - [코디] 26.10.8 위임 패치를 «미커밋 변경이 있던 파일»에 적용하면 커밋이 섞인다 → 위임 사본 스냅샷(
git -C %TEMP%\cody-agent\<run_id>\work show HEAD:<경로>)을git hash-object -w --stdin --path <경로>+git update-index --cacheinfo 100644,<blob>,<경로>로 먼저 «기존 변경 기록» 커밋 → 그 다음 이관 커밋(26.10.8 talklogfdcfde9→474e66d· toolsc80af23→8bcca7f).git apply --cached는 문맥이 겹쳐 실패한다. -
[코디] 26.10.8
run은 비git·대용량 폴더에 못 쓴다 — 비git 사본 한도 500MB(copy_limit_mb),C:\dev\devplan= 3.5GB·git 아님 → 직접 편집 +.bak백업. git 리포는 dirty 파일만 복사라 큰 리포도 된다(C:\dev\tools4,150파일 94MB 통과).--test명령은 사본 cwd 에서 돌지만 절대경로를 쓰는 자체검사는 운영 파일에 쓴다(talklog fusion_post 로그 1줄) — 검사 명령을 고를 때 본다. -
🔴 [코디] 26.10.8 ruleguard
web-designer-required는 서브에이전트가 한 web-designer 상담을 못 본다 — 서브에이전트 도구 호출의 훅 payloadtranscript_path가 «부모(메인) transcript» 라서(실측: state…7a31b081….ac4871476dadfc8b9.json의 scan 키가 부모 파일 하나뿐), 서브에이전트 자기 transcript(…\subagents\agent-<id>.jsonl)에 남은 Agent(web-designer) 호출이 안 잡힌다 → worker 가 상담을 끝내고도C:\dev\devplan\*.htmlWrite 가 막힌다. 처방 = 화면 작업은 총괄(메인) 세션이 web-designer 상담을 먼저 걸고 worker 에 넘긴다(그러면 부모 transcript 에서 잡혀 통과). 탐지기 수정(agent_id로subagents\agent-<id>.jsonl도 보기)은 잠긴 파일이라 페페 「해제」 필요. -
🔴 [코디] 26.10.8 IDE(VS Code) 세션에서 띄운
claude -p는 키를 줘도 크레딧이 안 먹는다(실측) — 자식이CLAUDE_CODE_ENTRYPOINT=claude-vscode·CLAUDECODE=1을 물려받아 빌링 헤더가cc_entrypoint=claude-vscode→ 구매 크레딧($0)에서 빼려다 400 「Credit balance is too low」. env 를 허용목록으로 새로 만들면 CLI 가sdk-cli로 찍는다. 판정 =--debug-file의x-anthropic-billing-header … cc_entrypoint=. ⚠ 이 400 은 «크레딧 소진»과 같은 문구라 분류가 틀린 것을 소진으로 오진할 수 있다 → 소진 판정 전에 엔트리포인트부터 본다. - [코디] 26.10.8 CLI 2.1.288 내장 도구는 Bash·Edit·Read 3개 —
--tools Read,Edit,Write,Glob,Grep,Bash를 줘도 init tools =[Bash, Edit, Read](모르는 이름은 조용히 무시).--restricted는--tools에 이름을 안 적으면 Bash 를 뺀다.--allowedTools는 자동승인 목록일 뿐 — 실제 제한은--tools. - [코디] 26.10.8 ruleguard 의 «살아 있는»(detector_ok) 탐지기 파일은 Edit 가 막힌다 — 고치려면
ruleguard.py unlock <경로> --ask ASK-…(페페 텔레그램 「해제」). 새 조건이 독립적이면 새 탐지기 파일 +add-rule <id> --doc … --seed N+ruleguard.py --selftest가 승인 없는 정규 경로다(이번api-tail-missing). Bash 명령줄에ruleguard와 쓰기 동사(>·python -c등)가 같이 있어도 막힌다 → 스크립트 파일로 실행. - [코디] 26.10.8 코덱스(
gptapp.py ask --cd …)가 파일을 못 읽는 날이 있다(「runner pipe-in 타임아웃」 2회) → 핵심 함수만 발췌한 프롬프트 파일을"$(cat 파일)"로 넘긴다(전문 금지 규칙 안에서). - [코디] 26.10.8
scripts\build_brief.py는--help를 모른다 — 인자를 무시하고 전 프로젝트 BRIEF 를 다시 쓴다(내용은 자동 재빌드와 같아 무해했다). 옵션 확인은 파일을 읽는다.