Claude Code 플러그인 · 훅 · MCP · 설정 · 메모리
Claude Code 플러그인 · 훅 · MCP · 설정 · 메모리
1. 설치된 플러그인
| 이름 | 버전 | 출처 | 용도 |
|---|---|---|---|
| claude-mem | 10.6.2 | thedotmack | 장기 메모리 + mcp-search 서버 제공 |
| everything-claude-code | 1.9.0 | everything-claude-code | 확장 스킬/명령 모음 |
| superpowers | 5.0.7 | claude-plugins-official | 워크플로·디버깅·개발 스킬 모음 |
| telegram | 0.0.6 | claude-plugins-official | 텔레그램 채널 설정·접근 스킬 |
| figma | 2.1.7 | claude-plugins-official | Figma 디자인 연동 |
| code-review-graph | 1.8.3 | code-review-graph | 코드 리뷰 그래프 시각화 |
설치 경로: ~/.claude/plugins/cache/{org}/{name}/{version}/
설치 메타: ~/.claude/plugins/installed_plugins.json
2. 훅 카탈로그
SessionStart
| 스크립트 | 역할 |
|---|---|
vault-context-loader.sh |
볼트 컨텍스트 사전 빌드 파일(vault-context.md) 로딩 |
knowledge-graph-loader.py |
지식그래프 노드 요약 주입 |
companion-event.sh |
companion 상태 파일 업데이트 |
active-work-cleanup.py |
active-work.json TTL 초과 항목 정리 |
session-memory-loader.py |
전날/당일 세션 로그 50줄·2000자 단기 메모리 주입 |
post-compact-context.sh |
matcher=compact 시만 실행, 컴팩션 후 컨텍스트 재로딩 |
cmux-claude-hook.sh |
cmux 이벤트 브로드캐스트 |
cmux-otel-emit.sh |
OTel Collector로 세션 이벤트 전송 |
UserPromptSubmit
| 스크립트 | 역할 |
|---|---|
prompt-model-gate.py |
모델 트리거 키워드 감지 → additionalContext 주입 |
PreToolUse (전체)
| 스크립트 | matcher | 역할 |
|---|---|---|
loop-guard.py |
* | 루프 감지 + 드리프트 경고 |
companion-event.sh |
* | companion 상태 업데이트 |
tier-gate.py |
Bash | 위험 명령 등급 차단 (Tier 1~4) |
mcp-rate-limit.sh |
mcp__* | MCP 호출 60초당 20회 제한 |
large-file-guard.sh |
Read | 대형 파일 읽기 경고 |
skill-enforcer.py |
Bash|Edit|Write | 작업 유형 감지 → 스킬 사용 권고 |
PostToolUse
| 스크립트 | matcher | 역할 |
|---|---|---|
companion-event.sh |
* | companion 상태 업데이트 |
audit-log.sh |
Bash | 명령어 감사 로그 기록 |
ops-deploy-gate.sh |
Edit|Write | 운영 프로세스 코드 수정 시 재시작/검증 체크리스트 강제 |
webapp-restart.sh |
Edit|Write | webapp/ 파일 수정 시 Flask 서버 자동 재시작 |
cross-model-review.sh |
Edit|Write | .py/.js/.ts 5줄 이상 diff → Codex 교차검증 (30초 타임아웃) |
skill-usage-log.sh |
Skill | 스킬 실행 기록 (Hermes 자기개선용) |
Stop
| 스크립트 | 역할 |
|---|---|
companion-event.sh |
companion 상태 업데이트 |
stop-verify.sh |
6단계 PreCompletionChecklist 검증 (timeout 180s) |
stop-checkpoint.sh |
세션 상태 체크포인트 저장 (git diff 요약) |
cmux-claude-hook.sh |
cmux 이벤트 브로드캐스트 |
cmux-otel-emit.sh |
OTel 이벤트 전송 |
Notification
| 스크립트 | 역할 |
|---|---|
cmux-claude-hook.sh |
cmux 이벤트 브로드캐스트 |
cmux-otel-emit.sh |
OTel 이벤트 전송 |
3. MCP 서버
공식 연동 (OAuth/Remote)
| 서버 | 엔드포인트 | 상태 | 용도 |
|---|---|---|---|
| claude.ai Google Drive | drivemcp.googleapis.com | 연결됨 | 구글 드라이브 읽기/쓰기 |
| claude.ai Gmail | gmailmcp.googleapis.com | 연결됨 | 메일 검색·레이블·초안 |
| claude.ai Google Calendar | calendarmcp.googleapis.com | 연결됨 | 일정 조회·생성 |
| claude.ai n8n | mangd.app.n8n.cloud | 인증 필요 | n8n 워크플로 자동화 |
| claude.ai S&P Global | kfinance.kensho.com | 인증 필요 | S&P 금융 데이터 |
플러그인 MCP
| 서버 키 | 프로세스 | 용도 |
|---|---|---|
| plugin:claude-mem:mcp-search | mcp-server.cjs (Node) |
장기 메모리 검색·타임라인·스마트 탐색 |
| plugin:telegram:telegram | bun run start |
텔레그램 채널 설정 스킬용 MCP |
커스텀 MCP (~/.openclaw/mcp-servers/)
| 서버 키 | 프로세스 | 용도 |
|---|---|---|
| ron-pipeline | Node | OpenClaw 파이프라인 실행·상태 조회 |
| dart | Node | DART 공시 검색 (OpenAPI) |
| kis-api | Node | 한국투자증권 OpenAPI (주가·선물·시장개요) |
| telegram-mcp | Node | 텔레그램 메시지 송수신 (@ronclawBot/DM) |
| stealth-browser | Python (venv) | CDP 기반 anti-bot 브라우저 자동화 |
| tradingview-mcp | Node | TradingView Desktop 차트 제어 |
npm 패키지 MCP
| 서버 키 | 패키지 | 용도 |
|---|---|---|
| context7 | @upstash/context7-mcp | 라이브러리 최신 문서 조회 |
| obsidian-vault | @modelcontextprotocol/server-filesystem | ~/knowledge 볼트 파일 접근 |
| agent-vault | @modelcontextprotocol/server-filesystem | ~/knowledge-agent 에이전트 볼트 접근 |
| pinescript-mcp | pinescript-mcp-server | Pine Script 레퍼런스·예제 조회 |
4. 주요 settings 항목
settings.json 핵심 섹션
환경변수 (env)
- OTEL_EXPORTER_OTLP_ENDPOINT: OTel Collector 로컬 엔드포인트
- CLAUDE_CODE_ENABLE_TELEMETRY: 텔레메트리 활성화
- CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS: 실험 기능 비활성화
- OTEL_RESOURCE_ATTRIBUTES: service.name=claude-code, agent.id=claude
전역 권한 허용 (permissions.allow)
Edit, Write, Bash, Read, Glob, Grep, WebFetch, WebSearch 전체 허용
settings.local.json 핵심 섹션
세부 허용 목록 (선별)
- MCP 도구 개별 허용: obsidian-vault(읽기/쓰기), stealth-browser(spawn/navigate/script), telegram-mcp(send/get), kis-api, dart, ron-pipeline, context7, agent-vault(읽기/쓰기), tradingview 등
- 스킬 개별 허용: Skill(update-config), Skill(claude-api), vibesubin 계열 7개
- Bash 패턴 허용: 특정 경로 cp/ls/mv, claude mcp:*, claude auth:*, gh pr * 등
5. 메모리 체계
메모리 경로: ~/.claude/projects/-Users-ron/memory/
총 파일: 58개, 총 1446줄
인덱스
MEMORY.md (51줄): 각 파일의 한 줄 설명 + 링크 모음
타입별 분류
| 타입 | 개수 | 설명 |
|---|---|---|
| feedback_* | 42개 | 해리 피드백·교훈 기록 (행동 교정용) |
| project_* | 14개 | 진행 중·완료 프로젝트 상태 |
| harness-lessons | 1개 | 세션 지시 실패 패턴 교훈 |
| user_harry | 1개 | 해리 프로필 (비개발자, 투자분석 중심) |
주요 feedback 예시: model_fallback, subagent_parallel, restart_all_workers, verify_before_claim, simple_language, ir_mandatory, vault_write_rule, worktree_symlink_trap 등
주요 project 예시: openclaw_system, briefing_redesign, company_research_skill, hermes_migration, knowledge_graph, sector_compass, gmail_bond_pipeline
메모리 작성 규칙
- MEMORY.md는 인덱스만 (링크 + 한 줄 설명)
- 실제 내용은 개별 파일에 저장
- 파일명:
{type}_{topic}.md형태 - 새 교훈 발생 시 MEMORY.md 인덱스에 줄 추가 + 개별 파일 생성
6. 인수인계 체크리스트
- [ ] 플러그인 재설치:
claude plugin install {org}/{name}방식.installed_plugins.json참고해 6개 순서대로 재설치 - [ ] 훅 스크립트 이관:
~/.claude/hooks/22개 파일 전체 복사. Python 스크립트는 의존 라이브러리 확인 - [ ] settings.json 치환 필요 항목: OTel endpoint, DART API key 경로(
~/.openclaw/dart_api_key), KIS API 자격증명 경로 - [ ] MCP 서버 재연결:
- 커스텀 서버:
~/.openclaw/mcp-servers/디렉토리 전체 이관 + Node/Python 환경 설치 - 플러그인 MCP: 플러그인 재설치 시 자동 등록
- npm MCP: npx 명령 자동 다운로드
- OAuth MCP: Google(Drive/Gmail/Calendar) 재인증 필요, n8n/S&P Global 인증 필요
- [ ] 볼트 경로 고정값:
obsidian-vault→~/knowledge,agent-vault→~/knowledge-agent. 새 기기에서 경로 수정 필요 - [ ] cmux 훅 의존:
cmux-claude-hook.sh,cmux-otel-emit.sh는 cmux 설치 선행 필요 - [ ] webapp-restart.sh: WEBAPP_DIR 하드코딩(
~/.openclaw/workspace/scripts/pipeline/webapp) 확인 필요
N1. 훅 작성 실전 예시
stdin/stdout 계약
PreToolUse/PostToolUse 훅은 stdin으로 JSON을 받고, stdout으로 JSON을 내보내며, exit code로 허용/차단을 결정한다.
stdin → {"tool_name": "Bash", "tool_input": {"command": "rm -rf /"}}
stdout → {"hookSpecificOutput": {"hookEventName": "PreToolUse", "additionalContext": "경고 메시지"}}
exit 0 → 통과 (허용)
exit 1 → 차단 (도구 실행 거부)
exit 2 → 차단 + 오류 메시지
PreToolUse는 일반 텍스트 stdout을 무시함. 반드시 hookSpecificOutput.additionalContext에 담아야 Claude가 읽는다.
실제 예시: loop-guard.py (전체 소스 ~/.claude/hooks/loop-guard.py)
아래는 핵심 구조만 발췌. 전체 198줄.
#!/usr/bin/env python3
"""loop-guard.py — PreToolUse 훅: 루프 감지 + 드리프트 경고
stdin: {"tool_name":"...", "tool_input":{...}}
exit 0: 항상 통과 (경고만, 차단하지 않음)
"""
import sys, json, hashlib, os
SESSION_ID = os.environ.get("CLAUDE_SESSION_ID") or os.getenv("PPID", str(os.getppid()))
GUARD_FILE = f"/tmp/claude-guard-{SESSION_ID}.json"
LOOP_THRESHOLD = 3 # 동일 (도구+인수) 연속 허용 횟수
DRIFT_THRESHOLD = 80 # 전체 호출 경고 기준
def emit(warnings):
"""경고를 PreToolUse JSON 형식으로 출력"""
print(json.dumps({
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"additionalContext": "\n".join(warnings)
}
}))
def main():
data = json.load(sys.stdin)
tool_name = data.get("tool_name", "")
# ... 상태 로드, 루프 감지, 드리프트 감지 ...
if warnings:
emit(warnings)
sys.exit(0) # 항상 0 — 경고만, 차단 없음
settings.json에 훅 등록하는 법
~/.claude/settings.json (실측 구조):
{
"hooks": {
"PreToolUse": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "python3 ~/.claude/hooks/loop-guard.py",
"timeout": 10000
}
]
},
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "python3 ~/.claude/hooks/tier-gate.py",
"timeout": 5000
}
]
}
],
"SessionStart": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/vault-context-loader.sh"
}
]
}
]
}
}
matcher 값: *(전체), Bash, Edit, Write, Read, mcp__*(MCP 계열 전체), compact(컴팩션 이벤트).
timeout은 밀리초 단위. 미지정 시 기본값 적용.
N2. MCP 서버 추가 실전
설정 위치
MCP 서버는 ~/.claude.json의 mcpServers 섹션에 등록됨 (실측 확인).
~/.claude/settings.json에는 hooks/permissions만 있고, mcpServers는 없음.
실제 ~/.claude.json 예시 (실측 인용, 토큰/키 제외)
{
"mcpServers": {
"stealth-browser": {
"command": "/Users/ron/.openclaw/mcp-servers/stealth-browser/venv/bin/python",
"args": ["/Users/ron/.openclaw/mcp-servers/stealth-browser/src/server.py"]
},
"obsidian-vault": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/ron/knowledge"]
},
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"]
},
"ron-pipeline": {
"command": "node",
"args": ["/Users/ron/.openclaw/mcp-servers/ron-pipeline/index.js"]
}
}
}
패턴 요약:
- Python venv 서버: command에 venv python 절대경로, args에 서버 스크립트 절대경로
- npm 패키지 서버: command: "npx", args: ["-y", "패키지명", ...추가인수]
- Node 서버: command: "node", args: ["스크립트 절대경로"]
- 환경변수 필요 시: "env": {"API_KEY": "값"} 추가 (토큰 직접 노출 금지, 파일 경로 참조 권장)
CLI로 추가하는 법
# npm 패키지 MCP
claude mcp add context7 npx -- -y @upstash/context7-mcp
# 로컬 Node 서버
claude mcp add ron-pipeline node /path/to/index.js
# 상태 확인
claude mcp list
N3. 메모리 4가지 타입 실제 예시
메모리 경로: ~/.claude/projects/-Users-ron/memory/
타입 1: user (사용자 프로필)
파일: user_harry.md
---
name: 해리 (Harry) 프로필
description: 오픈클로 시스템의 오너. 비개발자. 한국어 사용. 투자 분석 중심.
type: user
---
- 이름: 해리 (Harry), 텔레그램 @BooamRip, chat_id 492860021
- 비개발자 — 기술 용어 없이 쉽게 설명해야 함
- 한국어로 소통, 짧고 확실하게
타입 2: feedback (행동 교정)
파일: feedback_subagent_parallel.md
---
name: 서브에이전트 병렬 실행 선호
description: 구현 계획 실행 시 항상 서브에이전트 병렬 방식 사용, 실행방법 묻지 않기
type: feedback
---
구현 계획 실행 시 항상 서브에이전트 병렬 방식(subagent-driven-development)으로 진행한다.
**Why:** 해리가 매번 같은 선택을 하므로 묻지 않아도 됨.
**How to apply:** 계획서 작성 후 실행 방법을 묻지 말고 바로 서브에이전트 병렬 실행으로 진입한다.
타입 3: project (프로젝트 상태)
파일: project_hermes_codex_improvement_cycle.md
---
name: hermes + chatgpt-codex-proxy 개선 사이클
description: 2026-04-22~23. v0.1.0~v0.6.0 전 6개 릴리즈 완주.
type: project
originSessionId: 38639e2c-e515-478c-bfd9-726e71d9166c
---
2026-04-22 시작, v0.6.0까지 완주. hermes + chatgpt-codex-proxy 품질 개선 풀 사이클.
**다음 세션**: v0.7.0 Phase 2 Rework부터 재개 (7개 이슈 #45,#47~#49,#55,#58,#60)
타입 4: reference (참조 자료)
현재 이 메모리 디렉토리에는 reference 타입 파일이 없음 (확인 완료).
harness-lessons.md 가 사실상 레퍼런스 역할 수행 (type 필드 미지정).
MEMORY.md 인덱스 포맷
- [피드백 제목](파일명.md) — 한 줄 설명
예시:
- [서브에이전트 병렬 실행](feedback_subagent_parallel.md) — 구현은 항상 서브에이전트 병렬, 묻지 말고 바로 실행
메모리 파일 생성 규칙
- 파일명:
{type}_{topic}.md(예:feedback_no_guessing.md,project_my_work.md) - frontmatter 필수:
name,description,type - MEMORY.md에 인덱스 줄 추가 (링크 + 한 줄 설명)
- 실제 내용은 개별 파일에, MEMORY.md는 인덱스만
N4. 플러그인 카탈로그 상세
superpowers (5.0.7) — claude-plugins-official
TDD·디버깅·브레인스토밍 등 소프트웨어 개발 워크플로 스킬 모음. 설치하면 Claude가 코딩 작업 시 자동으로 스킬을 트리거한다.
핵심 스킬: test-driven-development, subagent-driven-development, systematic-debugging, writing-plans, executing-plans, verification-before-completion, dispatching-parallel-agents, using-git-worktrees.
동작 방식: 사용자가 코드 작업을 요청하면 스펙 확인 → 계획 작성 → 서브에이전트 병렬 실행 순서로 자동 진행. 직접 코드 작성보다 계획-실행 분리를 강제.
claude-mem (10.6.2) — thedotmack
세션 간 지속 메모리 DB + MCP 검색 서버 제공.
plugin:claude-mem:mcp-search MCP 서버를 통해 smart_search, timeline, get_observations 3-레이어 검색 워크플로 제공. 관찰(observation) 단위로 기억을 저장하고, 프로젝트별로 필터링 가능.
스킬: mem-search(검색), timeline-report(타임라인 리포트), make-plan(계획 생성), do(실행).
telegram (0.0.6) — claude-plugins-official
Telegram 봇을 Claude Code 세션에 연결하는 MCP 서버 플러그인. Bun 런타임 필요.
설치 후 /configure 스킬로 봇 토큰 입력 → plugin:telegram:telegram MCP 서버 자동 등록.
동작: 텔레그램 봇에 메시지 수신 시 Claude 세션으로 포워딩, Claude가 MCP 도구로 답장·리액션·수정 가능. 단일 DM 봇 기본, 멀티유저·그룹은 별도 설정.
figma (2.1.7) — claude-plugins-official
Figma MCP 서버 공식 통합. Figma 디자인 파일의 구조·컴포넌트·변수를 Claude가 읽고 코드 생성에 활용.
쓰기 기능(캔버스에 직접 생성·수정)은 remote 서버 전용, 현재 베타 무료.
제한: Starter/View 플랜은 월 6회 도구 호출 한도. Dev/Full 시트 Professional+ 플랜은 REST API와 동일 Tier 1 rate limit.
code-review-graph (1.8.3) — code-review-graph
Tree-sitter 기반 코드 구조 맵 빌드 + 증분 추적으로 코드 리뷰 시 토큰 낭비를 줄이는 도구.
매 작업마다 전체 코드베이스를 재독하는 대신, 변경된 파일·심볼만 정밀하게 컨텍스트 제공. MCP 서버 방식으로 동작.
효과: 동일 품질 리뷰에 약 6.8배 토큰 절감 (프로젝트 규모에 따라 다름).
everything-claude-code (1.9.0) — everything-claude-code
보안 감사·비밀 관리·CI/CD·리팩터 검증 등 실용 스킬 모음.
주요 스킬: vibesubin-audit-security(보안 감사), vibesubin-manage-secrets-env(환경변수 관리), vibesubin-setup-ci(CI/CD 설정), vibesubin-refactor-verify(리팩터 안전 검증).
safety-guard 계열 스킬로 위험 작업 전 체크리스트 강제 실행.
N5. installed_plugins.json 모순 확인 (실측)
결론: 파일 실존 확인 완료. 기존 문서(§1, 22줄)의 "존재" 기재가 맞음.
실제 경로: ~/.claude/plugins/installed_plugins.json
skills.md:380의 "없음" 기재는 오기 또는 설치 전 상태 기준으로 작성된 것으로 판단됨.
스키마 (실측)
{
"version": 2,
"plugins": {
"{name}@{org}": [
{
"scope": "user",
"installPath": "/Users/ron/.claude/plugins/cache/{org}/{name}/{version}",
"version": "x.y.z",
"installedAt": "ISO8601",
"lastUpdated": "ISO8601",
"gitCommitSha": "sha"
}
]
}
}
실제 내용 요약
| 플러그인 키 | 버전 | 최종 업데이트 |
|---|---|---|
| claude-mem@thedotmack | 10.6.2 | 2026-03-26 |
| everything-claude-code@everything-claude-code | 1.9.0 | 2026-03-26 |
| superpowers@claude-plugins-official | 5.0.7 | 2026-04-11 |
| telegram@claude-plugins-official | 0.0.6 | 2026-04-14 |
| figma@claude-plugins-official | 2.1.7 | 확인 필요 |
| code-review-graph@code-review-graph | 1.8.3 | 확인 필요 |
재설치 시 이 파일의 installPath를 기준으로 캐시 경로 확인.
현재 상태 확인: claude plugin list
N6. 장애 런북
런북 1: MCP 서버 연결 끊김 (disconnected)
증상: 도구 호출 시 "MCP server disconnected" 또는 응답 없음.
진단:
claude mcp list # 상태 확인 (connected/disconnected)
ps aux | grep mcp # 프로세스 생존 여부
복구:
1. claude mcp list로 어느 서버인지 특정
2. 해당 서버 프로세스 수동 종료 후 Claude 재시작 → 자동 재연결
3. OAuth 서버(Google Drive/Gmail/Calendar)는 재인증 필요: claude mcp auth {서버명}
4. 커스텀 서버는 의존 라이브러리·venv 활성화 상태 확인
5. 반복 발생 시 ~/.openclaw/mcp-servers/{name}/ 로그 확인
런북 2: 훅 무한 루프
증상: Claude 응답이 무한 대기, 같은 도구 호출이 반복.
진단: loop-guard.py가 /tmp/claude-guard-{SESSION_ID}.json에 상태 기록.
cat /tmp/claude-guard-*.json | python3 -m json.tool
복구:
1. 현재 세션 강제 종료 (Ctrl+C)
2. rm /tmp/claude-guard-*.json — 가드 상태 초기화
3. 루프 원인 파악: 어떤 도구가 반복됐는지 가드 파일 calls 배열 확인
4. 동일 루프 재발 시 해당 스크립트나 훅 timeout 단축 고려
런북 3: 메모리 파일 충돌 (수동 편집 vs 자동 저장)
증상: MEMORY.md 인덱스와 개별 파일 내용 불일치, 중복 항목.
진단:
ls -lt ~/.claude/projects/-Users-ron/memory/ | head -10 # 최근 수정 파일 확인
복구:
1. 메모리 파일은 git 추적 대상 아님 — 삭제 시 복구 불가
2. 충돌 시 MEMORY.md를 인덱스 기준으로 재정렬 (개별 파일이 실제 내용)
3. 중복 항목은 최신 날짜 기준으로 병합, 구 파일 삭제
4. 예방: 수동 편집 후 MEMORY.md 인덱스도 반드시 동기화
런북 4: 플러그인 업데이트 실패
증상: claude plugin update {name} 실패, 버전 불일치.
진단:
ls ~/.claude/plugins/cache/{org}/{name}/ # 캐시 디렉토리 상태
cat ~/.claude/plugins/installed_plugins.json | python3 -m json.tool
복구:
1. 캐시 클리어: rm -rf ~/.claude/plugins/cache/{org}/{name}/
2. 재설치: claude plugin install {org}/{name}
3. 재설치 후 claude plugin list로 버전 확인
4. MCP 서버 제공 플러그인(claude-mem, telegram)은 재설치 후 Claude 재시작 필요
런북 5: 세션 컨텍스트 소진
증상: "context window full" 또는 응답 품질 급격히 저하.
진단: 현재 모델 확인, 플러그인이 컨텍스트를 얼마나 소비하는지 파악.
복구:
1. 즉시 조치: Opus 1M 모델로 전환 (/model claude-opus-4-5 또는 설정 변경)
2. 플러그인 컨텍스트 절감: claude-mem의 smart_search → get_observations 순서로 필요한 관찰만 로드
3. superpowers 스킬이 많은 SYSTEM 컨텍스트를 주입함 — 단순 작업 시 플러그인 비활성화 고려
4. SessionStart 훅(vault-context-loader.sh, knowledge-graph-loader.py)이 컨텍스트를 자동 주입 — 컨텍스트 부족 시 post-compact-context.sh가 컴팩션 후 재로딩
5. 포기하거나 새 세션으로 미루지 않음 — Opus 1M 전환 후 계속 진행