Help us improve
Share bugs, ideas, or general feedback.
From deep-work
Displays deep-work session status and progress — dashboard, badge, tree, or routing to sub-pages. Hub command that dispatches to sub-skills. Supports --compare, --receipts, --history, --report, --assumptions.
npx claudepluginhub sungmin-cho/claude-deep-suite --plugin deep-workHow this skill is triggered — by the user, by Claude, or both
Slash command
/deep-work:deep-statusThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
이 스킬은 두 가지 경로로 호출됩니다 — 어느 쪽이든 본 SKILL 본문의 절차를 그대로 실행합니다:
Generates or regenerates a comprehensive deep-work session reports with session lifecycle, slice summary, evidence trail, TDD compliance, sensor pass-rate, model usage, and evaluation outcomes. Invoked via `/deep-report` or `/deep-status --report`.
Displays a single-screen work dashboard showing current state, recent activity, task status, and next steps. Useful for orienting yourself at the start of a session.
Captures session activity (commits, task state changes, decisions, issues) into a structured debrief record for the next session. Invoked via /debrief.
Share bugs, ideas, or general feedback.
이 스킬은 두 가지 경로로 호출됩니다 — 어느 쪽이든 본 SKILL 본문의 절차를 그대로 실행합니다:
/deep-status [args...] 입력 (skill 의 user-invocable: true 가 슬래시 진입을 허용).Skill({ skill: "deep-work:deep-status", args: "..." }) 형태로 명시 invoke (cross-platform 표준 경로).두 경로 모두 args 는 동일한 토큰 문자열로 전달되며, 본문 ($ARGUMENTS 자리) 의 파서가 동일하게 처리합니다.
| 인자 | 의미 |
|---|---|
| (없음) | Default status dashboard |
--compare | Fork session 비교 (parent vs forks) |
--receipts | deep-receipt sub-skill 호출 (§6) |
--history | deep-history sub-skill 호출 (§7) |
--report | deep-report sub-skill 호출 (§8) |
--assumptions | deep-assumptions sub-skill 호출 (§9) |
--all | 4 sub-page 모두 순차 실행 |
--tree | Fork tree 출력 |
--badge | Shields.io 호환 badge 출력 |
빈 args / 매칭되지 않는 토큰 → 본문의 default 분기로 진입.
이 entry skill 은 deep-work-orchestrator (Phase dispatch) 및 deep-work-workflow (reference skill — Phase 규약/Exit Gate/M3 envelope) 와 함께 동작합니다. 활성 deep-work 세션이 있을 때는 세션 state file (.claude/deep-work.<SESSION_ID>.md) 의 변수 (work_dir, current_phase, active_slice 등) 를 읽어 동작하며, 세션 외부에서도 standalone 실행이 가능한 경우 본문의 분기를 따릅니다.
Hub-spoke 관계: 본 skill 은 deep-receipt / deep-history / deep-report / deep-assumptions 4 개 sub-skill 의 hub 입니다 — 본문 §6 ~ §9 가 각 sub-skill 의 SKILL.md 를 inline Read 하여 로직을 실행합니다. 4 sub-skill 은 standalone 으로도 호출 가능합니다.
Cross-platform self-containment: Claude Code 에서는 sibling skill 이 description 매칭으로 자동 로드됩니다. Codex / Copilot CLI / Gemini CLI / Agent SDK 에서 Skill() 로 호출 시 sibling auto-load 보장이 약할 수 있으므로, 본문은 self-contained 으로 보존되어 있습니다 — state file 해석, $ARGUMENTS 파싱, AskUserQuestion 분기, 출력 포맷이 인라인.
Display the current state of the Deep Work session and session history.
Detect the user's language from their messages or the Claude Code language setting. Output ALL user-facing messages in the detected language. The display templates below use Korean as the reference format — translate naturally to the user's language while preserving emoji, formatting, and structure.
If $ARGUMENTS contains --compare:
인자 없이 --compare만 사용하면 fork 관계를 자동 감지:
fork_info가 있으면 → 부모 세션과 비교fork_children이 있으면 → 가장 최근 fork 자식과 비교Fork 관계로 자동 감지된 비교인 경우 출력에 라벨 추가:
📊 Session Comparison (fork relationship)
.deep-work/ directoryℹ️ 비교할 세션이 부족합니다. 최소 2개의 세션이 필요합니다.
세션 비교
| 항목 | 세션 A | 세션 B |
|------|--------|--------|
| 작업 | [task A] | [task B] |
| 접근법 | [approach A] | [approach B] |
| 수정 파일 수 | [N] | [M] |
| 검증 결과 | ✅/❌ | ✅/❌ |
| 소요 시간 | [duration A] | [duration B] |
### 주요 차이점
- **접근법 변화**: [description]
- **수정 파일 차이**: [files only in A], [files only in B]
- **검증 결과 차이**: [description]
Parse $ARGUMENTS for the following flags. If multiple flags are provided, execute each in order.
| Flag | Effect |
|---|---|
--receipts | Show receipt dashboard |
--receipts SLICE-NNN | Show specific slice receipt detail |
--receipts --export=json | Export all receipts as single JSON |
--receipts --export=md | Export as markdown (for PR descriptions) |
--receipts --export=ci | Export CI bundle |
--history | Show cross-session trends |
--report | Show/generate session report |
--assumptions | Show assumption health report |
--assumptions --verbose | Per-signal per-session breakdown |
--assumptions --rebuild | Regenerate JSONL from receipts, then show report |
--badge | Generate shields.io badge markdown |
--tree | Fork relationship tree visualization (v5.6) |
--all | Show all sessions dashboard (multi-session) + all flags |
--compare | Compare two sessions (existing, handled in Section 0) |
If no flags are provided (and no --compare), show the default view only (Steps 1-5).
If a flag is provided, execute the corresponding section after the default view.
Resolve the current session using the following priority:
DEEP_WORK_SESSION_ID is set → read .claude/deep-work.${DEEP_WORK_SESSION_ID}.md.claude/deep-work-current-session exists → read session ID → read .claude/deep-work.${SESSION_ID}.md.claude/deep-work.local.mdIf none of the above resolves to an existing state file, display:
ℹ️ 활성화된 Deep Work 세션이 없습니다.
새 세션을 시작하려면: /deep-work <작업 설명>
If flags were provided (--history, --assumptions, --receipts, --report, --all):
.deep-work/ directory.If no flags were provided:
Read the resolved state file (from Step 1) to get session state.
Extract work_dir from the state file. If missing, default to deep-work (backward compatibility).
Set WORK_DIR to this value.
Read model_routing from the state file. If missing, show defaults (Research=sonnet, Plan=현재 세션, Implement=sonnet, Test=haiku for model routing).
Read evaluator_model, assumption_adjustments, skipped_phases, plan_review_retries, and plan_review_max_retries from the state file. If missing, default to: evaluator_model="없음", assumption_adjustments=[] (empty), skipped_phases=[] (empty), plan_review_retries=0, plan_review_max_retries=3.
Read the following files if they exist:
$WORK_DIR/research.md — check if it has content$WORK_DIR/plan.md — count checklist progress$WORK_DIR/report.md — check if it exists$WORK_DIR/test-results.md — check if it exists$WORK_DIR/quality-gates.md — check if it exists$WORK_DIR/insight-report.md — check if it exists$WORK_DIR/file-changes.log — check if it exists$WORK_DIR/plan-diff.md — check if it existsreview_state, cross_model_enabled, and review_results from state file$WORK_DIR/brainstorm-review.json, $WORK_DIR/research-review.json, $WORK_DIR/plan-review.json, $WORK_DIR/plan-cross-review.json if they existIf receipts directory exists ($WORK_DIR/receipts/):
SLICE-NNN.json receipt filesschema_version === "1.0" + envelope 객체 + payload 키)이면
identity guard 검증 (envelope.producer === "deep-work" ∧
envelope.artifact_kind === "slice-receipt" ∧
envelope.schema.name === "slice-receipt") 후 payload 를 receipt body
로 사용. mismatch / corrupt payload 는 "foreign envelope" 경고 후 무시.
Legacy(non-envelope) receipt 는 root 객체를 그대로 사용 (forward-compat).sensor_results if presentpass or not_applicable → Sensor Clean Rate numeratormutation_testing from the state file for mutation scoreIf no receipt files have sensor_results, show "N/A ⬜" for sensor status.
Read health_report from the session state file. If present, extract:
health_report.drift.dead_exports.count, health_report.drift.coverage_trend.delta, health_report.drift.dependency_vuln.critical, health_report.drift.dependency_vuln.high, health_report.drift.stale_config.counthealth_report.fitness.passed, health_report.fitness.total_rules, health_report.fitness.required_missingunresolved_required_issues count, acknowledged_required_issues presenceIf health_report is absent from the state file, show "N/A ⬜" for Health Check status.
From $WORK_DIR/plan.md, count:
- [ ] or - [x]- [x]Show a comprehensive status report. If the team_mode field is missing from the state file, treat it as "Solo" (backward compatibility).
Conditional v5.1 fields:
평가자 모델: Always show the evaluator_model value (or "없음" if not set).Assumption 조정: Only show if assumption_adjustments is non-empty. Display the count of adjustments.건너뛴 단계: Only show if skipped_phases is non-empty. Display the list of skipped phase names.Auto-Loop on Phase 2 line: Only show the parenthetical if plan_review_retries > 0 or auto_loop_enabled is true.Deep Work 세션 상태
━━━━━━━━━━━━━━━━━━━━━━━━━━
작업: [task description]
작업 폴더: [work_dir]
시작: [started_at]
반복 횟수: [iteration_count]
작업 모드: [Solo / Team]
프로젝트 타입: [Existing / Zero-Base]
Git 브랜치: [git_branch or "없음"]
모델 라우팅: Research=[model], Plan=main (현재 세션), Implement=[model], Test=[model]
평가자 모델: [evaluator_model] (v5.1)
### Fork 관계 표시 (v5.6)
상태 파일에서 `fork_info`가 있으면:
Fork: {SESSION_ID} (forked from {fork_info.parent_session} at {fork_info.parent_phase_at_fork} → {fork_info.restart_phase}) Mode: {fork_info.fork_mode} | Generation: {fork_info.fork_generation}
상태 파일에서 `fork_children`이 있으면:
Fork children:
fork_info도 fork_children도 없으면 이 섹션을 생략한다.
현재 단계: [Phase name with emoji]
Phase 0 (Brainstorm): [✅ 완료 / ⏳ 진행중 / ⬜ 대기 / ⏭️ 생략]
Phase 1 (Research): [✅ 완료 / ⏳ 진행중 / ⬜ 대기]
Phase 2 (Plan): [✅ 승인됨 / ⏳ 진행중 / ⬜ 대기] (Auto-Loop: [plan_review_retries]/[plan_review_max_retries])
Phase 3 (Implement): [✅ 완료 / ⏳ 진행중 / ⬜ 대기]
Phase 4 (Test): [✅ 통과 / ⏳ 진행중 / ⬜ 대기 / ❌ 실패(N회)]
구현 진행률: [N/M 완료 (XX%)]
████████░░ XX%
Phase별 소요 시간:
Brainstorm: [duration or "N/A" or "생략"]
Research: [duration or "N/A"]
Plan: [duration or "N/A"]
Implement: [duration or "N/A"]
Test: [duration or "N/A"]
Quality Gates: [통과 ✅ / 실패 ❌ / 미정의 ⬜]
리뷰 현황:
Brainstorm: [N/10 (N회) ✅ / 미실행 ⬜ / 스킵 ⏭️]
Research: [N/10 (N회) ✅ / 미실행 ⬜ / 스킵 ⏭️]
Plan (Structural): [N/10 (N회) ✅ / 미실행 ⬜ / 스킵 ⏭️]
Plan (Adversarial): [Claude N/10, Codex N/10 — Consensus N, Conflicts N, Waivers N / 미실행 / 도구 미설치]
크로스 모델: [codex ✅ + gemini ❌ / 모두 미설치 / 비활성화]
Assumption 조정: [N]건 적용됨 (v5.1)
건너뛴 단계: [brainstorm, research, plan]
센서 상태:
생태계: [ecosystem, e.g. typescript (eslint ✅, tsc ✅, stryker ❌)] [or "감지 안됨 ⬜" if no sensor data]
Sensor Clean Rate: [N]/[total] ([N]%) [or "N/A ⬜" if no sensor data in receipts]
Mutation Score: [N]% ([Phase 4 실행됨 / 미실행 ⬜ / not_applicable ⏭️])
Health Check:
드리프트: dead-export {N}건 ⚠️ | coverage {+/-N}%p ✅ | vuln {N}건 🔴 | stale {N}건 ✅
Fitness: {N}/{M} 통과 ✅ | required_missing: {N}건
산출물:
- $WORK_DIR/brainstorm.md: [존재함 ✅ / 없음 ⬜ / 생략 ⏭️]
- $WORK_DIR/research.md: [존재함 ✅ / 없음 ⬜]
- $WORK_DIR/plan.md: [존재함 ✅ / 없음 ⬜]
- $WORK_DIR/test-results.md: [존재함 ✅ / 없음 ⬜]
- $WORK_DIR/report.md: [존재함 ✅ / 없음 ⬜]
- $WORK_DIR/quality-gates.md: [존재함 ✅ / 없음 ⬜]
- $WORK_DIR/insight-report.md: [존재함 ✅ / 없음 ⬜]
- $WORK_DIR/file-changes.log: [존재함 ✅ / 없음 ⬜]
- $WORK_DIR/plan-diff.md: [존재함 ✅ / 없음 ⬜]
다음 행동: [안내 메시지]
Adjust the "다음 행동" based on the current phase:
자동 흐름이 brainstorm을 진행합니다. /deep-work로 시작하세요.자동 흐름이 research를 진행 중입니다.plan 승인을 기다리고 있습니다. (or "plan 수정이 필요하면 /deep-plan을 사용하세요" if plan exists)자동 흐름이 구현을 진행 중입니다.자동 흐름이 테스트를 진행 중입니다. (or "자동 수정 루프가 진행 중입니다 (시도 N/3)" if test_retry_count > 0)세션이 완료되었습니다. /deep-status --report로 리포트를 확인하세요. 새 세션: /deep-work <작업>List previous session folders by scanning .deep-work/ directory for subdirectories:
ls -d .deep-work/*/ 2>/dev/null
If subdirectories exist, display:
세션 히스토리:
- .deep-work/20260307-143022-jwt-기반-인증/ [report.md 존재 여부]
- .deep-work/20260306-091500-api-리팩토링/ [report.md 존재 여부]
...
TIP: /deep-status --compare 로 두 세션을 비교할 수 있습니다.
For each folder, check if report.md exists and show:
(완료 - 리포트 있음) if report.md exists(산출물만 보존) if report.md doesn't existIf no subdirectories exist and no flat files (research.md, plan.md) exist in .deep-work/, skip the history section.
If $ARGUMENTS contains --receipts:
Read ${CLAUDE_PLUGIN_ROOT}/skills/deep-receipt/SKILL.md and follow its display logic inline.
If a specific slice ID follows --receipts (e.g., --receipts SLICE-001):
/deep-receipt view SLICE-NNN)If --export=FORMAT is present:
json: Export all receipts as single JSON file (equivalent to /deep-receipt export --format=json)md: Export as markdown for PR descriptions (equivalent to /deep-receipt export --format=md)ci: Export CI bundle — session-receipt + all slice receipts (equivalent to /deep-receipt export --format=ci)Otherwise (bare --receipts):
/deep-receipt dashboard)If $ARGUMENTS contains --history:
Read ${CLAUDE_PLUGIN_ROOT}/skills/deep-history/SKILL.md and follow its display logic inline.
If insufficient session data (fewer than 2 completed sessions in .deep-work/harness-history/harness-sessions.jsonl):
ℹ️ 세션 이력이 부족합니다 (최소 2개 완료된 세션 필요).
/deep-work로 세션을 시작하고 완료하면 이력이 기록됩니다.
Quality Score Trend (v5.3): After displaying the existing session history, also show the quality score trend:
.deep-work/harness-history/harness-sessions.jsonl (shared path)status: "finalized" and quality_score not nullℹ️ Quality trend는 2개 이상의 완료 세션이 필요합니다.📈 Quality Trend (최근 [N] 세션)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
100|
80| * * * * *
60| * *
40|
20|
+──────────────────
#1 #2 #3 #4 #5 #6 #7
Average: [N]/100 Trend: [↑/↓] ([+/-N])
Best: #[N] ([score]) Worst: #[N] ([score])
If $ARGUMENTS contains --report:
Read ${CLAUDE_PLUGIN_ROOT}/skills/deep-report/SKILL.md and follow its logic:
$WORK_DIR/report.md exists: display its contents${CLAUDE_PLUGIN_ROOT}/skills/deep-report/SKILL.md's structure, then displayIf $ARGUMENTS contains --assumptions:
Read ${CLAUDE_PLUGIN_ROOT}/skills/deep-assumptions/SKILL.md and follow its logic.
Sub-flags:
--verbose: Show per-signal per-session breakdown (equivalent to /deep-assumptions report --verbose)--rebuild: Regenerate JSONL from receipt files, then show report (equivalent to /deep-assumptions --rebuild)/deep-assumptions report)If $ARGUMENTS contains --all:
Read the registry (.claude/deep-work-sessions.json). If the registry exists and has sessions:
Display a table of all registered sessions:
📋 전체 세션 대시보드
━━━━━━━━━━━━━━━━━━━━━━━━━━
| 세션 ID | 작업 | Phase | 최근 활동 | 상태 | 소유 파일 |
|---------|------|-------|----------|------|----------|
| s-a3f7b2c1 | JWT 인증 구현 | implement | 5분 전 | ✅ 활성 | src/auth/**, src/middleware/jwt.ts |
| s-b8e2d4f0 | API 리팩토링 | plan | 2시간 전 | ⚠️ stale? | src/api/** |
| s-c1d3e5f7 | 테스트 추가 | idle | 1일 전 | 💤 완료 | — |
현재 세션: [current SESSION_ID or "없음"]
총 활성: [N]개 / 총 등록: [M]개
For each session:
kill -0 PID 2>/dev/null)
✅ 활성⚠️ stale?idle → 💤 완료last_activity fieldfile_ownership list (max 3 items, then +N more)If registry doesn't exist or has no sessions:
ℹ️ 등록된 세션이 없습니다.
Then execute Steps 4 (default view for current session), 5 (session history), 6 (receipts dashboard), 7 (history trends), 8 (report), 9 (assumptions), 11 (tree), 12 (badge) in sequence.
If $ARGUMENTS contains --tree:
레지스트리(.claude/deep-work-sessions.json)에서 모든 세션을 읽고, fork_parent 관계로 트리를 구성한다.
구현 방법:
fork_parent가 없는 세션을 루트 노드로 식별fork_parent로 부모-자식 관계를 트리로 구성{session_id} [{phase}] "{task_description}"fork @ {restart_phase} → {task_description}트리 표시 형식:
🌳 Fork Relationship Tree
━━━━━━━━━━━━━━━━━━━━━━━━━━
s-aaa11111 [implement] "JWT auth feature"
├── s-bbb22222 [implement] fork @ plan → GraphQL approach
└── s-ccc33333 [plan] fork @ research → microservice approach
└── s-ddd44444 [research] fork @ brainstorm → serverless approach
s-eee55555 [idle] "Refactor API" (no forks)
현재 세션은 ◀ 표시로 강조:
s-aaa11111 [implement] "JWT auth feature" ◀ current
레지스트리가 없거나 세션이 없으면:
ℹ️ 등록된 세션이 없습니다.
If $ARGUMENTS contains --badge:
harness-sessions.jsonl from .deep-work/harness-history/ (shared path)📛 Badges (copy to README.md):



Color thresholds:
If no finalized sessions exist:
ℹ️ Badge 생성을 위해 최소 1개의 완료된 세션이 필요합니다.
/deep-work로 세션을 시작하고 완료하면 badge가 생성됩니다.