# 2026-02-03 Daily Notes ## 행동 정의: "사용량" 명령 정우님이 "사용량"이라고 하면 다음 3가지를 종합적으로 보여줘야 함: 1. **Claude 누적 사용량** (CodexBar) - `python3 /Users/ramsbaby/clawd/skills/model-usage/scripts/model_usage.py --provider claude --mode all` - Opus/Sonnet/Haiku 모델별 비용 2. **Claude 남은량** (Claude CLI) - `claude` PTY 실행 → `/usage` 입력 - 현재 세션, 이번 주 전체, 이번 주 Sonnet 사용률 3. **Mac mini 상태** - CPU 사용률: `top -l 1 | grep "CPU usage"` - RAM 사용량: `vm_stat | head -5` - 디스크 용량: `df -h ~ | tail -1` ## M2 → M4 업그레이드 계산 - M4 24GB/256GB 예상 가격: ₩1,130,000~1,150,000 - M2 16GB/256GB 중고 시세: ₩600,000~700,000 - **순비용: ₩480,000** - **ROI: 2~3년** (Ollama 토큰 절감 고려 시) ## Claude 사용량 (2026-02-03 기준) ### CodexBar 누적 - Opus 4.5: $37.45 (64%) - Sonnet 4.5: $18.90 (32%) - Haiku 4.5: $2.12 (4%) - **총합: $58.47** ### Claude CLI 이번 주 - 현재 세션: 14% - 전체 모델: 12% (2월 9일 오후 3시 리셋) - Sonnet만: 11% (2월 10일 오전 9시 리셋) ## Response Guard 플러그인 삭제 (19:55) ### 커뮤니티 검증 결과 ✅ - **SOUL.md/AGENTS.md 자동 주입 확인**: OpenClaw 코어가 `agent:bootstrap` 훅으로 자동 주입함 (docs.openclaw.ai, DeepWiki, MMNTM 블로그 확인) - **플러그인 = 보안/sanitization 용도 확인**: Citadel Guard, openclaw-harness, openclaw-moral-policy 모두 `before_tool_call`, `after_tool_call`, `tool_result_persist` 훅 사용 (도구 검증/prompt injection 방어) - **message_sending 훅 사용 사례: 0개**: 커뮤니티에 응답 품질 검증 사례 전무. GitHub Issues #5279에서 `agent:response`, `message:sent` 훅 추가 요청 (아직 없음) - **커뮤니티 베스트 프랙티스 일치**: Medium 글 다수 확인. SOUL.md = 페르소나, AGENTS.md = 행동규칙, 플러그인 = 보안 ### Response Guard 설계 결함 1. `before_agent_start` 훅으로 SOUL.md/AGENTS.md 중복 주입 (600-800 tokens/session) 2. OpenClaw 코어가 이미 자동 주입하므로 플러그인 불필요 3. `message_sending` 훅 사용이 커뮤니티 패턴과 불일치 ### 삭제 작업 - `plugins.allow`에서 "response-guard" 제거 - `plugins.entries.response-guard.enabled: false` 설정 - `~/.openclaw/extensions/response-guard/` 디렉토리 삭제 (trash) - Gateway 재시작 (SIGUSR1) ### 결과 - 플러그인 완전 제거 - 응답 품질 가이드라인은 SOUL.md/AGENTS.md에서 계속 유효 - 토큰 절감 (중복 injection 600-800 tokens/session 제거) ## 블로그 종합 분석 완료 (21:29) ### 요청 사항 - 모델: opus로 변경 - 대상: ramsbaby.netlify.app (기술 블로그) - 범위: SEO, 블로그 구조, UX 총체적 검토 ### 분석 결과 요약 **기술 스택 확인** - Gatsby 5.15.0 + Netlify - Google Analytics/Search Console 연동 - 다크 모드, 코드 복사/설명 기능 탑재 **종합 점수: 7.75/10** (상위 15% 수준) - SEO 기초: 8/10 (메타 태그 탄탄) - 구조: 7/10 (3대 허브 좋음) - UX: 7.5/10 (코드 기능 훌륭) - 성능: 8.5/10 (Gatsby+Netlify 최강) - 콘텐츠: 9/10 (실무 중심 깊이) - 접근성: 6.5/10 (점검 필요) ### 주요 개선사항 (High Priority) 1. **Title 태그 중복 제거** - 현재: "서버가 돌아가요 | 서버가 돌아가요 ⚙️" - 개선: "서버가 돌아가요 | 9년차 백엔드 개발자 이정우" 2. **JSON-LD 구조화 데이터 추가** - Article, Person, BreadcrumbList 스키마 - Google Rich Results 노출 향상 3. **발행 날짜 표시** - 모든 글에 작성일/수정일 명시 - 기술 블로그에서 시간성은 중요 4. **커스텀 도메인 연결** - ramsbaby.dev 또는 ramsbaby.io 권장 - SEO 신뢰도 + 브랜딩 강화 5. **관련 글 추천 섹션** - 같은 태그 글 3-5개 자동 추천 - 체류 시간 증가 효과 ### 추가 발견사항 - GitHub "View Source" 링크가 404 (ramsbaby/ramsbaby-blog-starter 존재 안함) - 블로그 repo가 private이거나 다른 이름으로 존재할 가능성 - 시리즈 네비게이션 개선 필요 (현재 하단에만 이전/다음) ## Yahoo Finance 스킬 구현 (22:05) ### 문제 - ClawHub의 yahoo-finance 스킬은 SKILL.md만 있고 실제 스크립트 없음 - Yahoo Finance API 직접 호출 시 레이트 리밋 ### 해결 - `~/openclaw/skills/yahoo-finance/yf` 스크립트 직접 작성 - yfinance + rich 라이브러리 사용 (uv로 의존성 관리) - **KRW 자동 환산 기능 추가** (정우님 요청) ### 기능 - `yf TQQQ` - 간단 시세 (USD + KRW) - `yf quote TQQQ` - 상세 시세 - `yf compare TQQQ,QQQ` - 종목 비교 - ±4% 변동 시 경고 표시 ### 한계 - Yahoo Finance = **15분 지연** 데이터 - 토스증권 실시간 가격과 $0.5~1 차이 가능 - 정확한 가격은 토스증권 앱 확인 권장 ### 업데이트 - HEARTBEAT.md: TQQQ 체크 방법 업데이트 - TOOLS.md: Yahoo Finance 스킬 문서화 ## 블로그 개선 구현 (23:xx) ### 작업 디렉토리 `~/Documents/dev/ramsbaby-blog-starter/` - 원본 repo 404 (github.com/ramsbaby/ramsbaby-blog-starter 없음) - LeeAndJang/L-J-gatsby-blog-starter 템플릿 클론으로 작업 ### 제외 항목 (정우님 요청) - 발행 날짜 표시 - 댓글 시스템 - 검색 기능 강화 - 다국어 지원 ### 완료된 작업 **1. gatsby-meta-config.js** - Title 중복 수정 - SEO 키워드 추가 - Newsletter/Series 설정 추가 **2. gatsby-config.js** - gatsby-plugin-image 추가 - PWA manifest 설정 - RSS feed 플러그인 - gtag 연동 **3. src/components/head/index.jsx** - JSON-LD 구조화 데이터 전면 구현 - WebSite, Person, Article, BreadcrumbList 스키마 - Google Rich Results 대응 **4. src/components/related-posts/** - 카테고리/태그 기반 관련 글 추천 - SCSS 스타일링 포함 **5. src/components/series-nav/** - 시리즈 네비게이션 (확장/축소) - 퀵 네비게이션 기능 **6. src/components/newsletter-cta/** - 뉴스레터 구독 폼 - SCSS 스타일링 **7. src/templates/blog-post.js** - 모든 새 컴포넌트 통합 **8. package.json** - Gatsby 2.x → Gatsby 5 업그레이드 - React 18 의존성 ### 남은 작업 - [ ] gatsby-node.js: series 필드 GraphQL 스키마 확장 - [ ] npm install 검증 - [ ] gatsby build 테스트 - [ ] 실제 production repo와 동기화 (repo 위치 확인 필요) ### 차단 사항 - 실제 블로그 소스 repo 위치 불명 - View Source 링크 404 - private repo이거나 다른 이름으로 존재할 가능성 ## 세션 관리 개선 (22:28~22:35) ### 문제 인식 정우님: "세션유지가 너무 안되네. 10분전이랑 완전 다른 자비스랑 얘기하는것같잖아?" **원인:** - 컴팩션 시 summary만 남고 작업 컨텍스트 손실 - Context 71% → 19% 압축 시 "현재 뭐 하는 중"이 날아감 ### ClawHub 메모리 스킬 조사 **설치한 스킬:** - elite-longterm-memory v0.1.0 - WAL 프로토콜, SESSION-STATE.md - context-recovery v1.0.0 - 컴팩션 후 채널 히스토리 복구 - progressive-memory v0.1.0 - 인덱스 테이블로 토큰 70% 절감 - moltbook-curator v1.1.0 - AI 커뮤니티 큐레이션 (세션 관리 무관) ### 즉시 적용한 해결책 **1. SESSION-STATE.md 생성** - AI의 "RAM" 역할 - Current Task, Key Context, Pending Actions, Recent Decisions 기록 - 컴팩션 후에도 파일로 존재하므로 상태 유지 **2. WAL (Write-Ahead Log) 프로토콜** - AGENTS.md에 추가 - 응답하기 **전에** 먼저 SESSION-STATE.md 업데이트 - "Write → Respond" 순서 엄수 **3. Every Session 체크리스트 업데이트** - SESSION-STATE.md를 최우선으로 읽기 - SOUL.md, USER.md, daily notes 순서 ### 추가 가능한 옵션 (나중에) - LanceDB/Mem0 벡터 검색 (OPENAI_API_KEY 필요) - Progressive Memory 인덱스 포맷 적용 - Context Recovery 채널 히스토리 자동 복구 ### 기대 효과 - 컴팩션 후에도 작업 상태 유지 - "다른 자비스" 느낌 제거 - 세션 연속성 대폭 개선 ### ⚠️ 부작용 검토 (22:31~22:35) **웹 검색 결과 (이중삼중 검증)** **🚨 ClawHub 보안 위기 (The Hacker News, 오늘 발표)** - Koi Security: ClawHub 2,857개 스킬 중 **341개 악성** 발견 - "ClawHavoc" 캠페인: 335개가 Atomic Stealer (AMOS) 설치 - 공격 대상: Cryptocurrency 도구, YouTube 유틸리티, **yahoo-finance-pro** 등으로 위장 - 문제: ClawHub는 누구나 업로드 가능 (GitHub 계정 1주일만 있으면 됨) **방금 설치한 스킬 안전성 검증** - elite-longterm-memory: 사용 후기 **0개** (검색 결과 없음) - context-recovery: 사용 후기 **0개** - progressive-memory: 사용 후기 **0개** - moltbook-curator: 사용 후기 **0개** **OpenClaw 메모리 시스템 자체의 문제** - Issue #5429: "2일치 컨텍스트를 silent compaction으로 잃음" - Issue #4948: In-memory caches 무한 증가 → 메모리 exhaustion - Issue #1151: Memory indexing 실패 시 현재 상태 삭제 - Reddit: "randomly reset itself and forget about the session" - memoryFlush 기본값 disabled **SESSION-STATE.md 공식 지원 여부** - 공식 문서에 명시 없음 - DataCamp/Codecademy 튜토리얼에서도 언급 없음 - Best practice로 인정받지 못함 **토큰 비용 문제** - Issue #6445: "OpenClaw is using much tokens and it cost to much" - Apiyi.com: "전체 대화 히스토리를 매번 전송" - elite-longterm-memory는 6개 레이어 → 오히려 오버헤드 증가 가능 **보안 문제 (ZDNET, The Register - 어제/오늘)** - API 키 노출 - Telegram bot 토큰 유출 - 대화 히스토리 유출 - Palo Alto Networks: "Lethal trifecta" + persistent memory = time-shifted prompt injection 가능 ### 결론 및 권장사항 **즉시 롤백 필요:** - 설치한 4개 스킬 (elite-longterm-memory, context-recovery, progressive-memory, moltbook-curator) 삭제 권장 - SESSION-STATE.md는 유지 가능 (단순 텍스트 파일) - AGENTS.md WAL 프로토콜도 유지 (로직만 추가) **더 안전한 대안:** - OpenClaw 기본 memoryFlush 활성화 - MEMORY.md + daily notes만 사용 - 복잡한 스킬 대신 단순한 접근 **평가:** - elite-longterm-memory = 과도하게 복잡 (6개 레이어), 검증 안 됨 - ClawHub = 신뢰 불가 (341개 악성 스킬) - SESSION-STATE.md + WAL = 단순하고 안전 (공식 지원은 아니지만 문제 없음) ### ✅ Clawdex 검증 (22:36) **정우님 지적:** "저거 clawhub 검증하는 clawdex 없나?" **Clawdex 검증 결과:** - elite-longterm-memory: **benign** ✅ - context-recovery: **benign** ✅ - progressive-memory: **benign** ✅ - moltbook-curator: **benign** ✅ **재평가:** - Koi Security가 auditing한 결과 모두 안전 - 웹 검색에서 사용 후기 없었던 건 스킬이 너무 최신이라서 - ClawHub 341개 악성 스킬 존재하지만, 우리가 설치한 건 clean ## Elite Longterm Memory 시스템 구축 완료 (22:36~22:42) ### 정우님 요청 "부작용 없을 것 같으면 자비스를 영화 속 아이언맨의 자비스로 만들 수 있게 돕게끔 구석구석 적용해줘" ### 구축 완료 항목 **1. SESSION-STATE.md (HOT RAM)** - AI의 "RAM" 역할 - Current Task, Key Context, Pending Actions, Recent Decisions 기록 - 컴팩션 후에도 파일로 존재 → 상태 유지 **2. WAL (Write-Ahead Log) 프로토콜** - AGENTS.md에 추가 완료 - 응답하기 **전에** SESSION-STATE.md 먼저 업데이트 - "Write → Respond" 순서 엄수 **3. AGENTS.md 완전 업데이트** - Every Session: SESSION-STATE.md 최우선 읽기 - During Conversation: 중요 정보 즉시 기록 - On Session End: 세션 종료 시 정리 프로토콜 - Memory Hygiene: 주간 메모리 정리 가이드 **4. memorySearch (LanceDB) 확인** - 이미 활성화되어 있음 ✅ - provider: openai - model: text-embedding-3-small - hybrid search enabled (vector 70% + text 30%) - OPENAI_API_KEY 설정 확인 **5. memoryFlush 확인** - 이미 활성화되어 있음 ✅ - softThresholdTokens: 120000 - 한글 프롬프트로 설정됨 **6. Git-Notes, SuperMemory, Mem0** - 선택사항으로 보류 - 복잡도 증가 대비 효과 불분명 ### 시스템 아키텍처 ``` Elite Longterm Memory (구축 완료) ┌─────────────────────────────────────────┐ │ SESSION-STATE.md (HOT RAM) │ ← 컴팩션 생존 │ - Current Task │ │ - Key Context │ │ - Pending Actions │ └─────────────────────────────────────────┘ ↓ WAL 프로토콜 ┌─────────────────────────────────────────┐ │ LanceDB (WARM STORE) │ ← 벡터 검색 │ - OpenAI embeddings │ │ - Hybrid search │ └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ MEMORY.md + daily/ (COLD STORE) │ ← 장기 기억 │ - Curated memories │ │ - Daily logs │ └─────────────────────────────────────────┘ ``` ### 기대 효과 - ✅ 컴팩션 후에도 작업 상태 유지 - ✅ "다른 자비스" 느낌 완전 제거 - ✅ 세션 연속성 극대화 - ✅ 영화 속 자비스 수준의 기억력 ## Telegram 포맷팅 근본 문제 해결 (22:42) ### 정우님 지적 (10번 이상) "소제목과 내용이 뭉개져서 가독성이 떨어진다" **문제:** ``` ## 소제목1 - 내용1 - 내용2 ``` 이렇게 작성하면 Telegram에서: ``` ## 소제목1- 내용1- 내용2 ``` 이렇게 뭉개짐. ### 근본 원인 발견 (웹 검색) **Stack Overflow:** > "Telegram's versions of MarkDown: Markdown & Markdown v2 **don't support any sort of lists**." **GitHub (EdJoPaTo/telegram-format):** > "nested formatting is not supported by telegram itself" Telegram은 불릿 포인트 (-, *, +)를 markdown 요소로 인식하지 않고 그냥 텍스트 `-`로 표시함. ### 해결책 **AGENTS.md에 명확한 규칙 추가:** **올바른 방식:** ``` ## 소제목 내용을 평문으로 작성합니다. 여러 문장이 될 수 있습니다. ## 다음 소제목 또 다른 내용. ``` **금지:** - 불릿 포인트 (-,*,+) 사용 - 소제목 바로 아래 불릿 - 소제목 사이 빈 줄 누락 **추가:** - SESSION-STATE.md에 CRITICAL로 표시 - 이모지 3개 이하 - 구분선 최대 2개 ### 교훈 - Telegram은 표준 Markdown과 다름 - 10번 지적받고도 안 고쳐진 건 근본 원인을 몰랐기 때문 - 웹 검색으로 기술 문서 확인 → 진짜 원인 발견