Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/joonlab/joonlab-claudecode-setting-for-shareWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/joonlab/joonlab-claudecode-setting-for-share/weekly-review)<a href="https://agentmods.dev/commands/joonlab/joonlab-claudecode-setting-for-share/weekly-review"><img src="https://agentmods.dev/badge/commands/joonlab/joonlab-claudecode-setting-for-share/weekly-review/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/joonlab/joonlab-claudecode-setting-for-share/weekly-review"><img src="https://agentmods.dev/badge/commands/joonlab/joonlab-claudecode-setting-for-share/weekly-review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00039 | $0.01242 |
| Opus 5 | $0.00019 | $0.00621 |
| Sonnet 5 | $0.00008 | $0.00248 |
| Haiku 4.5 | $0.00004 | $0.00124 |
Grade B, and why
weekly-review scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
find ~/.claude/projects -name "*.jsonl" -mtime -7 | wc -l # 지난 7일 세션 수 How it starts
The opening of the file, as written. The whole thing — 91 lines — stays where its author put it; the contents beside it link to each section on GitHub.
주간 리뷰를 실행한다. 하네스 ⑥개선 축의 핵심 루프이며, 레벨 3(절차화) → 레벨 4(자가 개선)로 넘어가는 지점이다.
목적은 "이번 주 뭐 했나" 회고가 아니다. 시스템이 시스템을 고치게 하는 것이다. 매주 최소 1개의 규칙·스킬·훅이 추가되거나 삭제되지 않았다면 이 리뷰는 실패한 것이다.
1. 집계 (병렬 실행)
가능한 것만 돌리고, 없는 도구·폴더는 조용히 건너뛴다.
# 하네스 자체 감사
python3 ~/.claude/scripts/instruction-audit.py # 지시문(CLAUDE.md·메모리·스킬) 중복·충돌
python3 ~/.claude/scripts/skill-usage-stats.py # 스킬 사용 빈도 · 미사용 후보
~/.claude/scripts/secret-scan.sh # 정기 시크릿 스캔
# 활동량
find ~/.claude/projects -name "*.jsonl" -mtime -7 | wc -l # 지난 7일 세션 수
ls -dt ~/.claude/backups/* 2>/dev/null | head -5 # 최근 압축 백업
여기에 본인 작업 폴더의 지표를 더한다. 예: 지난 7일 수정된 문서 수, 처리한 인박스 항목 수, 커밋 수.
경로는 사용자에게 물어보거나 CLAUDE.md의 폴더 지도를 참고한다. 추측으로 남의 폴더를 뒤지지 마라.
2. 직전 리뷰와 대조
지난주 리뷰 노트의 "다음 주 우선순위" 를 가져와 이행 여부를 하나씩 대조한다. 못 한 게 있으면 왜 못 했는지도 적는다. 이월만 반복되는 항목은 삭제 후보다.
3. ★ 승격 판단 (이 커맨드의 존재 이유)
집계 결과와 지난 한 주의 세션을 근거로 3의 법칙을 적용한다.
| 발견 | 승격 대상 | 확인할 것 |
|---|---|---|
| 같은 작업을 3번 이상 반복 | → 스킬로 추출 | 절차가 고정적인가? 결정적 부분은 스크립트로 뺄 수 있나? |
| 같은 실수·교정을 3번 이상 | → CLAUDE.md 규칙으로 | 문서로 충분한가, 아니면 훅으로 강제해야 하나? |
| 문서 규칙인데 계속 안 지켜짐 | → 훅 (L2→L3) | PreToolUse + exit 2 로 막을 수 있나? |
| 스킬이 있는데 발동이 안 됨 | → description 수정 | "무엇을 하는지"가 아니라 "언제 쓰는지"로 쓰였나? |
| 3개월간 한 번도 안 쓴 스킬 | → 삭제 | 있는 것보다 없는 게 낫다 |
| 사고·니어미스가 있었음 | → 가드레일 갱신 | 왜 기존 장치가 못 막았나? |
각 항목은 근거(파일 경로·세션·로그) 를 붙인다. 근거 없는 승격 제안은 하지 않는다.
4. 노트 작성
weekly_<YYYY-Wnn>_<YYMMDD>.md 로 회고 노트를 만든다.
저장 위치는 환경변수 CLAUDE_REVIEW_DIR(없으면 ~/notes/reviews)를 쓰거나 사용자에게 확인한다.
# 주간 리뷰 <YYYY-Wnn>
## 집계
| 지표 | 이번 주 | 지난 주 |
## 지난주 우선순위 이행
- [x] / [ ] 항목별 + 못 한 이유
## 시스템 개선 (★)
- 추가한 것: (스킬/규칙/훅) — 근거
- 삭제한 것: — 근거
- 다음 주에 승격할 후보:
## 자가진단 (선택)
docs/02_레벨_사다리와_자가진단.md 의 5축 중 이번 주에 변한 축만
## 다음 주 우선순위 (3개 이내)
1.
집계와 승격 후보는 에이전트가 채우고, 회고 문장과 다음 주 우선순위는 AskUserQuestion으로 사용자에게 1회 확인받아 확정한다. 사람의 판단을 대신 쓰지 마라.
5. 저장 · 커밋
노트를 저장하고, 회고 폴더가 git 관리 중이면 커밋한다.
6. 실제 반영
승격하기로 한 항목을 이번 세션에서 바로 반영한다. 다음 주로 미루면 영원히 안 됩니다. 단, 훅 추가·규칙 변경은 사용자 승인을 받고 하나씩. 한 번에 여러 개 바꾸면 뭐가 효과가 있었는지 알 수 없다.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 91 lines · 39 tokens per session scan B 7e936b56c226
weekly-review is a command published in the GitHub repository joonlab/joonlab-claudecode-setting-for-share (10 stars, last pushed 1mo ago), licensed MIT. It adds 39 tokens to every session and 1,242 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
setup-context
Set up your Skill Memory — a pm-context.md every skill reads so outputs come back tailored to you.
brain
Set up or use your Professional Brain — init, ingest, recall, or review.
context-stats
Display context window usage and token statistics.
pull-learnings
Pulls shared organization patterns into local org-patterns.toon.
meetings-list
List recent meetings and voice memos. Use when the user asks "what meetings did I have", "show my recent recordings", "any meetings today", "list my voice memos", or wants an overview of their meeting history. Also use when they need to find a specific meeting by browsing rather than searching.
meetings-search
Search meeting transcripts and voice memos for people, topics, decisions, commitments, or remembered ideas. Use when the user asks what was discussed, decided, or said across their meeting history. Not for preparing an upcoming meeting; use $meetings-prep.