| name | deep-report |
| description | Use when the user wants to generate or view the comprehensive deep-work session report โ session lifecycle, slice summary, evidence trail, TDD compliance, sensor pass-rate, model usage, evaluation outcomes. Triggers on `/deep-report`, `/deep-status --report`, "session report", "deep-work report", "์ธ์
๋ฆฌํฌํธ", "์ธ์
๋ณด๊ณ ์", "๋ฆฌํฌํธ ์์ฑ". Writes to `$WORK_DIR/report.md` and prints inline summary. Sub-page of the deep-status hub. |
| user-invocable | true |
Invocation
์ด ์คํฌ์ ๋ ๊ฐ์ง ๊ฒฝ๋ก๋ก ํธ์ถ๋ฉ๋๋ค โ ์ด๋ ์ชฝ์ด๋ ๋ณธ SKILL ๋ณธ๋ฌธ์ ์ ์ฐจ๋ฅผ ๊ทธ๋๋ก ์คํํฉ๋๋ค:
- Claude Code ์ฌ๋์ โ ์ฌ์ฉ์๊ฐ
/deep-report [args...] ์
๋ ฅ (skill ์ user-invocable: true ๊ฐ ์ฌ๋์ ์ง์
์ ํ์ฉ).
- ํ ์์ด์ ํธ / Codex / Copilot CLI / Gemini CLI / SDK โ
Skill({ skill: "deep-work:deep-report", args: "..." }) ํํ๋ก ๋ช
์ invoke (cross-platform ํ์ค ๊ฒฝ๋ก).
๋ ๊ฒฝ๋ก ๋ชจ๋ args ๋ ๋์ผํ ํ ํฐ ๋ฌธ์์ด๋ก ์ ๋ฌ๋๋ฉฐ, ๋ณธ๋ฌธ ($ARGUMENTS ์๋ฆฌ) ์ ํ์๊ฐ ๋์ผํ๊ฒ ์ฒ๋ฆฌํฉ๋๋ค.
Inputs (skill args)
| ์ธ์ | ์๋ฏธ |
|---|
| (์์) | Default โ current session ์ report ์์ฑ/regenerate |
<session-id> | ๋ช
์ ์ธ์
์ report |
๋น args / ๋งค์นญ๋์ง ์๋ ํ ํฐ โ ๋ณธ๋ฌธ์ default ๋ถ๊ธฐ๋ก ์ง์
.
Prerequisites
์ด 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).
Deep Work Session Report
Generate or regenerate a comprehensive report for the current (or most recent) Deep Work session.
Language
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.
Instructions
1. Read state file
Resolve the current session's state file:
- If
DEEP_WORK_SESSION_ID env var is set โ .claude/deep-work.${DEEP_WORK_SESSION_ID}.md
- If
.claude/deep-work-current-session pointer file exists โ read session ID โ .claude/deep-work.${SESSION_ID}.md
- Legacy fallback โ
$STATE_FILE
Set $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.
2. Check if report already exists
Check if $WORK_DIR/report.md exists.
-
If it exists, ask the user:
๊ธฐ์กด ๋ฆฌํฌํธ๊ฐ ์์ต๋๋ค: $WORK_DIR/report.md
1. ๊ธฐ์กด ๋ฆฌํฌํธ ํ์
2. ๋ฆฌํฌํธ ์ฌ์์ฑ (ํ์ฌ ์ํ ๊ธฐ๋ฐ)
- If the user chooses to view, read and display the report content.
- If the user chooses to regenerate, proceed to Step 3.
-
If it doesn't exist, proceed to Step 3.
3. Read session artifacts
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)
4. Calculate phase durations
From the state file, calculate time spent in each phase:
- Brainstorm:
brainstorm_completed_at - brainstorm_started_at (if both exist; "Skipped" if brainstorm was not run)
- Research:
research_completed_at - research_started_at
- Plan:
plan_completed_at - plan_started_at
- Implement:
implement_completed_at - implement_started_at
- Test:
test_completed_at - test_started_at
- Total:
test_completed_at (or current time) - started_at
If timestamps are empty, show "N/A" for that phase.
5. Generate report
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"] |
Model Routing ํ์ Read(`../shared/references/model-routing-guide.md#model-routing-state-decode-v612`)์
scalar-first decode ๊ฒฐ๊ณผ๋ก ์ฑ์ด๋ค. decode ์คํจ ์ phase ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํ๊ณ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๊ณ ์์ ๋จ๊ธด๋ค.
## 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:
- Slices with harness_metadata: [N]/[total]
- TDD overrides: [count]
- Bugs caught in RED: [count]
- Research references used: [count]
- Cross-model unique findings: [count]
[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 ์์ง ๊ธฐ๋ก ์์ โ ์ธ์
์๋ฃ ํ ์๋ ์์ง๋ฉ๋๋ค."]
Test Retry History
[If test_retry_count > 0, summarize each attempt from test-results.md]
| Attempt | Result | Failed Items |
|---|
| 1 | โ | [summary] |
| 2 | โ
| All passed |
Issues & Notes
[From plan.md ## Issues Encountered section, if any. "None" if no issues.]
Team Mode Details (if applicable)
| 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.