Community생산성 & 협업github.com

컨텍스트 무게 (Context Weight)

에이전트가 작업을 시작하기 전에 로드하는 컨텍스트(CLAUDE.md, AGENTS.md, GEMINI.md, 규칙, @imports, 스킬 목록)와 세션이 얼마나 커지는지 측정하고, 지시 파일을 슬림화한 후 손실된 줄이 없음을 증명합니다. 세션이 무겁게 느껴지거나, 사용량 제한에 일찍 도달하거나, 지시 파일이 계속 커지거나, 저장소에서 Claude Code와 Codex의 동작이 다를 때 사용합니다.

컨텍스트 무게 (Context Weight)란 무엇인가요?

이 스킬은 AI 에이전트(Claude Code, Codex)가 시작 시 로드하는 컨텍스트의 양을 측정하고 최적화하는 도구입니다. `scripts/cw.py` 스크립트를 통해 저장소의 지시 파일 크기, 스킬 목록, 세션 히스토리를 분석하여 컨텍스트 윈도우 점유율을 수치로 보여줍니다. 주요 기능으로는 지시 파일 분석(files), 스킬 목록 분석(skills), 세션 측정(sessions)이 있으며, `--svg` 옵션으로 시각화 리포트를 제공합니다. 분석 결과를 바탕으로 지시 파일 슬리밍(핵심만 남기고 참조 분리), 세션 위생(짧은 세션 유지, 초기화 활용), CI 통합(`--max-tokens`) 등 구체적인 최적화 방법을 제시합니다. 특히 Codex의 32KiB 체인 제한을 고려한 최적화 전략과, 변경 전후 비교를 통해 실제 개선 효과를 수치로 증명하는 프로세스를 중시합니다.

지원 대상✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/ohm41321/context-weight/tree/HEAD/skills/context-weight

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

컨텍스트 무게 (Context Weight)은(는) 무엇을 하나요?

시작 시 로드되는 모든 것은 세션의 모든 요청과 함께 다시 전송됩니다. 150k 토큰의 CLAUDE.md는 작업이 시작되기 전에 요청당 150k 토큰을 소모합니다. 이 스킬은 그 로드를 측정하고, 줄이고, 그 감소를 숫자로 증명합니다.

스크립트는 이 스킬 디렉토리의 scripts/cw.py입니다. 이 파일의 위치에서 절대 경로를 확인하세요. Python 3.8+만 필요하며 다른 것은 필요하지 않습니다. 사용자의 파일을 절대 변경하지 않으며, 숫자만 출력하고, 전사 내용은 출력하지 않으며, --svg 또는 --open 옵션으로 요청된 사진 파일 하나만 씁니다.

실시간 미터? "지금 내 컨텍스트가 얼마나 찼는지"를 확인하려면 도구 자체 기능을 사용하세요: Claude Code는 /context, Codex는 /status. 이 스킬은 저장소와 히스토리에 관한 것입니다.

1. 측정 (읽기 전용)

python3 <skill-dir>/scripts/cw.py report <repo> --days 30 --svg

--svg는 리포트를 시스템 임시 폴더에 하나의 그림으로 그리고 마지막 줄에 그 경로를 출력합니다 (Picture: ...). 사용자가 한눈에 숫자를 볼 수 있도록 그 경로를 알려주세요. 사용자가 보길 원할 때 --open을 추가하여 열어줄 수도 있습니다. --svg FILE로 위치를 지정할 수 있지만, 사용자가 요청하지 않는 한 저장소 내부 경로는 사용하지 마세요.

텍스트 출력은 네 부분으로 구성됩니다:

  • 각 도구가 시작 시 로드하는 지시 파일 (추정 토큰)
  • 각 도구의 예산 대비 스킬 목록
  • 이 저장소에 대한 측정된 세션 숫자
  • 순위별 결과

더 좁은 범위의 보기: files <repo>, skills <repo>, sessions --top 20, sessions --project <name> --compare-at YYYY-MM-DD. 여기에 --json을 추가할 수 있습니다.

사용자에게 보고할 때는 다음을 제공하세요:

  • 도구별 시작 토큰
  • start (세션 첫 번째 요청의 중간 컨텍스트)
  • start% (다시 전송되는 시작 로드가 전체 입력에서 차지하는 비율)
  • >threshold tok 비율
  • 결과

어떤 숫자가 추정치(files, skills)이고 어떤 숫자가 측정치(sessions)인지 말해주세요. Claude Code의 스킬 예산은 모델의 컨텍스트 윈도우에 따라 달라지며, 로그에는 기록되지 않습니다: cw.py는 200k를 가정하고 이를 명시합니다. 사용자가 1M 컨텍스트 모델을 실행하는 경우 --window 1000000으로 다시 실행하세요.

2. 숫자가 가리키는 레버 선택

신호레버
저장소 지시 사항이 ~5k 토큰 초과, 높은 start%지시 파일 슬리밍 (3단계)
>threshold tok 50% 초과세션 위생 (4단계)
"도구들이 다른 규칙을 따름"하나의 표준 AGENTS.md (3단계)
Codex "never sees" 경고슬리밍 또는 중첩된 AGENTS.md 파일로 일부 이동
스킬 목록이 예산 초과사용하지 않는 스킬 또는 플러그인 제거. 먼저 물어보세요: 사용자의 설정입니다

가장 큰 숫자부터 시작하세요. 숫자가 가리키지 않는 것은 그대로 두세요.

3. 지시 파일 슬리밍

전체 절차는 references/slimming.md에 있습니다. 편집하기 전에 읽어보세요. 간단히 요약:

  1. 파일을 백업한 다음 cw.py files <repo>를 기록하세요.
  2. 모든 섹션을 다섯 가지 유형 중 하나로 분류하세요: 규칙 (유지, 간결하게), 포인터, 참조, 로그, 또는 중복.
  3. 참조와 로그를 docs/agent-notes/로 이동하세요. 일반 경로가 포함된 한 줄짜리 포인터를 남기세요. @를 사용하지 마세요: Claude Code는 시작 시 @imports를 확장하고 Codex는 무시합니다.
  4. 핵심은 200줄 미만, 약 5k 토큰으로 유지하고, Codex의 32 KiB 체인 제한 안에 들어가게 하세요.
  5. AGENTS.md를 하나의 표준 파일로 만드세요. CLAUDE.md는 @AGENTS.md와 Claude 전용 줄을 포함합니다.
  6. 증명하세요: verify-split이 0으로 종료되고, files가 감소를 보여주며, --max-tokens 게이트를 통과합니다.

텍스트를 이동하는 것은 안전합니다. 지식을 삭제하는 것은 사용자의 결정입니다: 입증된 중복이 아닌 줄을 삭제하기 전에 물어보세요.

4. 세션 위생

대부분의 입력 토큰은 긴 세션의 후반 요청에서 발생합니다. 각 요청은 이전의 모든 것을 다시 전송합니다.

  • 작업당 하나의 세션을 사용하세요.
  • 컨텍스트가 윈도우의 절반 정도를 넘거나 작업이 변경되면, 짧은 인수인계(목표, 상태, 다음 단계, 수정한 파일)를 작성하고 새로 시작하세요. Claude Code에서는 /clear, Codex에서는 /new입니다. 반복적인 압축보다 이것을 선호하세요.
  • 큰 도구 출력을 컨텍스트 밖에 두세요: 필터링하거나, 앞부분만 보거나, 파일에 쓰고 필요한 부분만 읽으세요.

5. 증명하세요

  • 즉시: 변경 전후의 cw.py files <repo>를 비교하고 verify-split이 0으로 종료되는지 확인하세요.
  • 재성장 방지: CI 또는 pre-commit에 python3 <skill-dir>/scripts/cw.py files . --max-tokens 6000을 추가하세요. 저장소의 지시 사항이 제한을 초과하거나 Codex가 그중 일부를 자를 때 1로 종료하고, 경로가 잘못되었을 때 2로 종료하므로 오타가 절대 통과되지 않습니다.
  • 실제 사용 후 며칠 뒤: cw.py sessions --project <name> --compare-at <변경 날짜>를 실행하고 변경 전후의 start와 start%를 보고하세요.

변경 후 세션에 대해 마지막 명령이 실행되기 전에는 실제 절감 효과를 주장하지 마세요.

종료 코드

0 정상, 1 검사 실패 (--max-tokens, verify-split), 2 잘못된 입력 (경로 없음, 읽을 수 없는 파일, 잘못된 날짜). 오류는 stderr로 출력됩니다.

참조

  • references/harnesses.md: 각 도구가 로드하는 내용과 시기, 크기 제한, 스킬 폴더, 출처.
  • references/slimming.md: 슬리밍 절차 및 검증.

관련 스킬