Help us improve
Share bugs, ideas, or general feedback.
From deep-work
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`.
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-reportThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
이 스킬은 두 가지 경로로 호출됩니다 — 어느 쪽이든 본 SKILL 본문의 절차를 그대로 실행합니다:
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.
Captures session activity (commits, task state changes, decisions, issues) into a structured debrief record for the next session. Invoked via /debrief.
Generates adaptive-depth session retrospective reports (retro.md) from plan.md and lessons.md, converting outcomes into persistent process improvements. Supports deep/light modes and directory resolution logic.
Share bugs, ideas, or general feedback.
이 스킬은 두 가지 경로로 호출됩니다 — 어느 쪽이든 본 SKILL 본문의 절차를 그대로 실행합니다:
/deep-report [args...] 입력 (skill 의 user-invocable: true 가 슬래시 진입을 허용).Skill({ skill: "deep-work:deep-report", args: "..." }) 형태로 명시 invoke (cross-platform 표준 경로).두 경로 모두 args 는 동일한 토큰 문자열로 전달되며, 본문 ($ARGUMENTS 자리) 의 파서가 동일하게 처리합니다.
| 인자 | 의미 |
|---|---|
| (없음) | Default — current session 의 report 생성/regenerate |
<session-id> | 명시 세션의 report |
빈 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-status hub 의 sub-page 입니다 — /deep-status --<flag> 가 본문 로직을 inline Read 하여 실행하는 것이 주 경로이며, 직접 호출도 동일하게 지원됩니다.
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 분기, 출력 포맷이 인라인.
Internal (v6.3.0) —
/deep-status --report가 이 파일의 로직을Read하여 실행합니다. 자동 호출이 주 경로이며, 직접 호출도 지원됩니다. 참조처:skills/deep-status/SKILL.md§8 (Read skills/deep-report/SKILL.md and follow its logic).
Generate or regenerate a comprehensive report for the current (or most recent) Deep Work session.
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.
Resolve the current session's state file:
DEEP_WORK_SESSION_ID env var is set → .claude/deep-work.${DEEP_WORK_SESSION_ID}.md.claude/deep-work-current-session pointer file exists → read session ID → .claude/deep-work.${SESSION_ID}.md$STATE_FILESet $STATE_FILE to the resolved path.
Read $STATE_FILE to get session metadata.
If the file doesn't exist, inform the user:
ℹ️ 활성화된 Deep Work 세션이 없습니다.
새 세션을 시작하려면: /deep-work <작업 설명>
Extract work_dir from the state file. If missing, default to deep-work (backward compatibility).
Set WORK_DIR to this value.
Check if $WORK_DIR/report.md exists.
If it exists, ask the user:
기존 리포트가 있습니다: $WORK_DIR/report.md
1. 기존 리포트 표시
2. 리포트 재생성 (현재 상태 기반)
If it doesn't exist, proceed to Step 3.
Read all available session artifacts:
$STATE_FILE — session state, timestamps, metadata$WORK_DIR/research.md — research findings (if exists)$WORK_DIR/plan.md — plan and implementation checklist (if exists)$WORK_DIR/test-results.md — test results (if exists)$WORK_DIR/quality-gates.md — quality gate results (if exists)$WORK_DIR/insight-report.md — insight analysis results (if exists)$WORK_DIR/file-changes.log — file modification tracking log (if exists)$WORK_DIR/plan-diff.md — plan diff visualization (if exists).deep-work/harness-history/harness-sessions.jsonl — assumption engine session history (if exists)From the state file, calculate time spent in each phase:
brainstorm_completed_at - brainstorm_started_at (if both exist; "Skipped" if brainstorm was not run)research_completed_at - research_started_atplan_completed_at - plan_started_atimplement_completed_at - implement_started_attest_completed_at - test_started_attest_completed_at (or current time) - started_atIf timestamps are empty, show "N/A" for that phase.
Write $WORK_DIR/report.md with the following structure:
# Deep Work Session Report
## Session Overview
| Field | Value |
|-------|-------|
| Task | [task_description] |
| Work Directory | [work_dir] |
| Mode | Solo / Team |
| Project Type | Existing / Zero-Base |
| Git Branch | [git_branch or "N/A"] |
| Started | [started_at] |
| Completed | [current timestamp or "In Progress"] |
| Current Phase | [current_phase] |
| Evaluator Model | [evaluator_model or "default"] |
| Plan Iterations | [iteration_count] |
| Plan Auto-Loop | [plan_review_retries]/[plan_review_max_retries] |
| Test Auto-Loop | [test_retry_count]/[max_test_retries] |
| Model Routing | Research: [model], Plan: 현재 세션, Implement: [model], Test: [model] |
| Assumption Adjustments | [list of assumption adjustments applied, or "None"] |
## Phase Duration
| Phase | Started | Completed | Duration |
|-------|---------|-----------|----------|
| Brainstorm | [timestamp] | [timestamp] | [duration or "Skipped"] |
| Research | [timestamp] | [timestamp] | [duration] |
| Plan | [timestamp] | [timestamp] | [duration] |
| Implement | [timestamp] | [timestamp] | [duration] |
| Test | [timestamp] | [timestamp] | [duration] |
| **Total** | | | **[total duration]** |
## Brainstorm Summary
[If brainstorm.md exists: chosen approach, key decisions, success criteria]
[If brainstorm was skipped: "Brainstorm phase skipped (--skip-brainstorm)."]
## Research Summary
[3-5 bullet points summarizing the key findings from research.md]
[If research.md doesn't exist: "Research phase not yet completed (or skipped)."]
## Plan Summary
[Approach chosen, key architectural decisions, alternatives considered]
[If plan.md doesn't exist: "Planning phase not yet completed."]
## Plan Iterations
[If plan-diff.md exists in $WORK_DIR:
| Version | 주요 변경 | 리스크 변경 |
|---------|----------|------------|
[Parse from plan-diff.md]
]
[If plan-diff.md does not exist: "단일 반복 (재작성 없음)"]
### Plan Auto-Loop History
[If plan_review_retries > 0 from state file:]
| Attempt | Score | Issues |
|---------|-------|--------|
| 1 | [score]/10 | [list of issues from that attempt] |
| 2 | [score]/10 | [resolved issues or remaining] |
[Parse from plan review history in state file or plan-review.json]
[If plan_review_retries == 0: "Auto-loop 미사용 (첫 시도 통과)"]
## Implementation Results
| # | Task | File | Status | Notes |
|---|------|------|--------|-------|
| 1 | [description] | [path] | ✅/❌/⬜ | [notes] |
[Parse checklist from plan.md. ✅ = completed, ❌ = issue, ⬜ = not started]
**Contract Compliance**: [N]/[total] contracts verified
[Parse from slice receipts — count slices where all contracts are met vs total contracts defined]
## Files Changed
If `$WORK_DIR/file-changes.log` exists:
- Parse unique file paths from the log
- Cross-reference with `git status` to categorize as Created/Modified/Deleted
- Show modification count per file (how many times each file was edited during implementation)
If `file-changes.log` doesn't exist, fall back to `git diff --name-only`.
### Created
- [list of new files]
### Modified
- [list of modified files] (수정 횟수: N회)
### Deleted
- [list of deleted files, if any]
## Verification Results
| Check | Result |
|-------|--------|
| Type Check | ✅ Pass / ❌ Fail / ⬜ N/A |
| Lint | ✅ Pass / ❌ Fail / ⬜ N/A |
| Tests | ✅ Pass / ❌ Fail / ⬜ N/A |
| Build | ✅ Pass / ❌ Fail / ⬜ N/A |
[If test-results.md exists, use its data. Otherwise show ⬜ N/A for all]
## Quality Gate Results
[If $WORK_DIR/quality-gates.md exists, read and include its latest attempt table here]
[If quality-gates.md does not exist: "Quality Gates 미정의 — 기본 자동 감지 사용"]
## Review Results
### Structural Reviews
| Phase | Score | Iterations | Timestamp |
|-------|-------|------------|-----------|
| Brainstorm | [N]/10 | [N] | [time] |
| Research | [N]/10 | [N] | [time] |
| Plan | [N]/10 | [N] | [time] |
### Adversarial Review (Plan)
- **Models**: [Claude + Codex / Claude + Gemini / Claude only / 미실행]
- **Scores**: Claude [N]/10, [Model] [N]/10
- **Consensus**: [N]건
- **Conflicts**: [N]건 (resolved: [N], waived: [N])
- **Review Gate**: [통과 ✅ / 우회됨 ⚠️ / 미실행 ⬜]
(If review_state is "skipped": `리뷰: 스킵됨 (--skip-review)`)
(If cross_model not available: `크로스 모델: 도구 미설치 (structural review만 실행)`)
## Insight Analysis
[If $WORK_DIR/insight-report.md exists, include the "종합 인사이트 요약" section here]
[If insight-report.md does not exist: "Insight 분석 미실행"]
## Assumption Health (v5.0)
Generate assumption health data by running the assumption engine:
```bash
echo '{"action":"report","registryPath":"<PLUGIN_DIR>/assumptions.json","historyPath":".deep-work/harness-history/harness-sessions.jsonl","options":{"splitByModel":true}}' | node <PLUGIN_DIR>/hooks/scripts/assumption-engine.js
Where <PLUGIN_DIR> is the plugin's install path (directory containing assumptions.json).
[If harness-sessions.jsonl exists and engine returns data:]
| Assumption | Confidence | Category | Verdict | Details |
|---|---|---|---|---|
| phase_guard_blocks_edits | 0.82 | HIGH | KEEP | [S]S/[W]W/[N]N |
| tdd_required_before_implement | 0.56 | MEDIUM | CONSIDER | [S]S/[W]W/[N]N |
| research_required_before_plan | 0.75 | HIGH | KEEP | [S]S/[W]W/[N]N |
| cross_model_review | — | INSUFFICIENT | — | [N]/[min] sessions |
| receipt_collection | 0.90 | HIGH | KEEP | [S]S/[W]W/[N]N |
Proposed Changes: [If any proposed changes from report: list them. Otherwise: "None"]
This Session's Harness Metadata:
[Aggregate harness_metadata from $WORK_DIR/receipts/SLICE-*.json for the
current session. Envelope-aware unwrap (v6.5.0): receipts 는 M3 envelope
({schema_version: "1.0", envelope: {...}, payload: {...}}) 로 emit 된다.
각 파일을 읽을 때 envelope 형태이면 identity guard
(envelope.producer === "deep-work" ∧
envelope.artifact_kind === "slice-receipt" ∧
envelope.schema.name === envelope.artifact_kind) 검증 후 payload 를
receipt body 로 사용. mismatch 는 skip + 경고. legacy 는 root 그대로 사용.
harness_metadata 는 payload root 에 있다.]
[If harness-sessions.jsonl does not exist: "Assumption 엔진 기록 없음 — 세션 완료 후 자동 수집됩니다."]
[If test_retry_count > 0, summarize each attempt from test-results.md]
| Attempt | Result | Failed Items |
|---|---|---|
| 1 | ❌ | [summary] |
| 2 | ✅ | All passed |
[From plan.md ## Issues Encountered section, if any. "None" if no issues.]
| Item | Value |
|---|---|
| Agents | N |
| Cross-review Rounds | N |
| Issues Found/Fixed | N |
### 6. Display confirmation
세션 리포트가 생성되었습니다!
위치: $WORK_DIR/report.md
세션 상태: [current_phase] 작업: [task_description] 총 소요 시간: [total duration]
리포트를 검토하고 필요 시 /deep-report로 재생성하거나, /deep-status --report로 확인할 수 있습니다.
### 7. Git commit suggestion (if applicable)
If `git_branch` is set in the state file and `current_phase` is `idle`:
변경사항을 커밋할까요? 브랜치: [git_branch] 변경 파일: [N]개
제안 커밋 메시지: feat: [task_description 기반 자동 생성]
If the user agrees, create the commit. If not, skip.