Skip to main content

session-wrap

Use when wrapping up a session before ending. 4 parallel subagents detect doc updates, repeated patterns, learning points, and follow-ups, then a verifier deduplicates and presents choices. Triggers on /session-wrap, session wrap, session cleanup, end of session.

Jump to install

Source facts

Repository
sangrokjung/claude-forge
Last source activity
June 19, 2026 at 14:39
Detected SKILL.md language
Korean
Stars
837
Forks
177

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
7 files

Showing SKILL.md

SKILL.md
Source instructions ยท Read-only preview
name
session-wrap
description
Use when wrapping up a session before ending. 4 parallel subagents detect doc updates, repeated patterns, learning points, and follow-ups, then a verifier deduplicates and presents choices. Triggers on /session-wrap, session wrap, session cleanup, end of session.
argument-hint
[--dry-run] [--skip-docs] [--skip-learning] [--skip-scout] [--skip-followup]
# /session-wrap ์Šคํ‚ฌ ## ํŒŒ์ดํ”„๋ผ์ธ ๊ฐœ์š” ``` ์ž…๋ ฅ: /session-wrap [--dry-run] [--skip-docs] [--skip-learning] [--skip-scout] [--skip-followup] [Phase 0] ์ปจํ…์ŠคํŠธ ์ˆ˜์ง‘ โ”œโ”€ git diff --stat (์ด๋ฒˆ ์„ธ์…˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ) โ”œโ”€ ~/.claude/homunculus/observations.jsonl (์ตœ๊ทผ ๊ด€์ฐฐ) โ””โ”€ /tmp/session-wrap/context.md ์ƒ์„ฑ [Phase 1] ๋ณ‘๋ ฌ 4๊ฐœ subagent (Explore, sonnet) โ”œโ”€ doc-updater โ†’ ๋ฌธ์„œ ์—…๋ฐ์ดํŠธ ํ•„์š” ๊ณณ ํƒ์ง€ โ”œโ”€ automation-scout โ†’ ๋ฐ˜๋ณต ํŒจํ„ด ๋ฐœ๊ฒฌ + ์Šคํ‚ฌ ํ›„๋ณด ์ œ์•ˆ โ”œโ”€ learning-extractor โ†’ ๋ฐฐ์šด ์  ์ถ”์ถœ (instinct ํ›„๋ณด) โ””โ”€ followup-suggester โ†’ ๋‹ค์Œ ์ž‘์—… ์ œ์•ˆ [Phase 2] ์ˆœ์ฐจ 1๊ฐœ subagent (Explore, sonnet) โ””โ”€ duplicate-checker โ†’ Phase 1 ๊ฒฐ๊ณผ ์ค‘๋ณต ์ œ๊ฑฐ + ์นดํ…Œ๊ณ ๋ฆฌ ๋ถ„๋ฅ˜ [Phase 3] AskUserQuestion์œผ๋กœ ์‚ฌ์šฉ์ž ์„ ํƒ [Phase 4] ์„ ํƒ๋œ ํ•ญ๋ชฉ๋งŒ ์‹คํ–‰ [Phase 5] ๋ฆฌํฌํŠธ ์ถœ๋ ฅ + session-wrap-followups.md ๊ธฐ๋ก ``` ## ํŒŒ๋ผ๋ฏธํ„ฐ ํŒŒ์‹ฑ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์—์„œ ๋‹ค์Œ์„ ์ถ”์ถœ: | ํŒŒ๋ผ๋ฏธํ„ฐ | ๊ธฐ๋ณธ๊ฐ’ | ์„ค๋ช… | |---------|--------|------| | --dry-run | false | ํƒ์ง€๋งŒ ์ˆ˜ํ–‰, ์‹คํ–‰ํ•˜์ง€ ์•Š์Œ (Phase 3์—์„œ ์ค‘๋‹จ) | | --skip-docs | false | doc-updater subagent ์ƒ๋žต | | --skip-learning | false | learning-extractor subagent ์ƒ๋žต | | --skip-scout | false | automation-scout subagent ์ƒ๋žต | | --skip-followup | false | followup-suggester subagent ์ƒ๋žต | ## Phase 0: ์ปจํ…์ŠคํŠธ ์ˆ˜์ง‘ ์„ธ์…˜ ์ค‘ ๋ณ€๊ฒฝ์‚ฌํ•ญ๊ณผ ๊ด€์ฐฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ subagent์— ์ „๋‹ฌํ•  ์ปจํ…์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค. ```bash # 1. Git ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ˆ˜์ง‘ (git repo์ธ ๊ฒฝ์šฐ๋งŒ) WORK_DIR=$(pwd) if git -C "$WORK_DIR" rev-parse --is-inside-work-tree 2>/dev/null; then git -C "$WORK_DIR" diff --stat HEAD~5..HEAD > /tmp/session-wrap/git-changes.txt 2>/dev/null || true git -C "$WORK_DIR" diff --name-only HEAD~5..HEAD > /tmp/session-wrap/changed-files.txt 2>/dev/null || true git -C "$WORK_DIR" log --oneline -10 > /tmp/session-wrap/recent-commits.txt 2>/dev/null || true fi # 2. ๊ด€์ฐฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ (์ตœ๊ทผ 50๊ฐœ) OBS_FILE="$HOME/.claude/homunculus/observations.jsonl" if [ -f "$OBS_FILE" ]; then tail -50 "$OBS_FILE" > /tmp/session-wrap/recent-observations.jsonl fi # 3. ๋ฒ„ํผ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ (์žˆ์œผ๋ฉด) BUFFER_FILE="$HOME/.claude/homunculus/buffer.jsonl" if [ -f "$BUFFER_FILE" ]; then tail -30 "$BUFFER_FILE" > /tmp/session-wrap/recent-buffer.jsonl fi ``` `/tmp/session-wrap/` ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์œ„ ์ˆ˜์ง‘์„ ์‹คํ–‰ํ•œ๋‹ค. ## Phase 1: ๋ณ‘๋ ฌ Subagent ์‹คํ–‰ 4๊ฐœ subagent๋ฅผ **๋™์‹œ์—** ์‹คํ–‰ํ•œ๋‹ค. `--skip-*` ํ”Œ๋ž˜๊ทธ๋กœ ํŠน์ • subagent๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ subagent ํ”„๋กฌํ”„ํŠธ๋Š” `references/` ๋””๋ ‰ํ† ๋ฆฌ์— ์œ„์น˜: | Subagent | ํ”„๋กฌํ”„ํŠธ ํŒŒ์ผ | ์ถœ๋ ฅ ํŒŒ์ผ | |----------|-------------|----------| | doc-updater | `references/prompt-doc-updater.md` | `/tmp/session-wrap/results/doc-updates.json` | | automation-scout | `references/prompt-automation-scout.md` | `/tmp/session-wrap/results/automation-patterns.json` | | learning-extractor | `references/prompt-learning-extractor.md` | `/tmp/session-wrap/results/learning-points.json` | | followup-suggester | `references/prompt-followup-suggester.md` | `/tmp/session-wrap/results/followup-tasks.json` | ### Subagent ์‹คํ–‰ ํŒจํ„ด ``` # ํ™œ์„ฑํ™”๋œ subagent๋งŒ ํ•„ํ„ฐ๋ง active_agents = [ ("doc-updater", skip_docs ์•„๋‹ˆ๋ฉด), ("automation-scout", skip_scout ์•„๋‹ˆ๋ฉด), ("learning-extractor", skip_learning ์•„๋‹ˆ๋ฉด), ("followup-suggester", skip_followup ์•„๋‹ˆ๋ฉด), ] # ๋ณ‘๋ ฌ Task ํ˜ธ์ถœ (Explore, sonnet) for agent in active_agents: Task( subagent_type="Explore", prompt=Read("references/prompt-{agent}.md") + context_data ) ``` ๊ฐ subagent๋Š” ๊ฒฐ๊ณผ๋ฅผ JSON ํŒŒ์ผ๋กœ `/tmp/session-wrap/results/`์— ๊ธฐ๋กํ•œ๋‹ค. ### ์ถœ๋ ฅ JSON ์Šคํ‚ค๋งˆ ๋ชจ๋“  subagent์˜ ์ถœ๋ ฅ์€ ๋™์ผํ•œ ์•„์ดํ…œ ์Šคํ‚ค๋งˆ๋ฅผ ๋”ฐ๋ฅธ๋‹ค: ```json { "items": [ { "id": "unique-id", "source": "doc-updater|automation-scout|learning-extractor|followup-suggester", "title": "ํ•ญ๋ชฉ ์ œ๋ชฉ", "description": "์ƒ์„ธ ์„ค๋ช…", "category": "auto|user|info", "priority": "high|medium|low", "action": "์‹คํ–‰ํ•  ๊ตฌ์ฒด์  ์ž‘์—… (์žˆ์œผ๋ฉด)", "files": ["๊ด€๋ จ ํŒŒ์ผ ๊ฒฝ๋กœ๋“ค"] } ] } ``` ์นดํ…Œ๊ณ ๋ฆฌ ๋ถ„๋ฅ˜ ๊ธฐ์ค€: - **auto**: ์‚ฌ์šฉ์ž ํ™•์ธ ์—†์ด ์ž๋™ ์‹คํ–‰ ๊ฐ€๋Šฅ (๋ฌธ์„œ ํƒ€์ž„์Šคํƒฌํ”„ ๊ฐฑ์‹  ๋“ฑ) - **user**: ์‚ฌ์šฉ์ž ์„ ํƒ์ด ํ•„์š” (์Šคํ‚ฌ ์ƒ์„ฑ, ์ฝ”๋“œ ์ˆ˜์ • ๋“ฑ) - **info**: ์ •๋ณด ์ œ๊ณต๋งŒ (ํ•™์Šต ํฌ์ธํŠธ, ํ†ต๊ณ„ ๋“ฑ) ## Phase 2: ์ค‘๋ณต ๊ฒ€์ฆ Phase 1์˜ ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ duplicate-checker subagent์— ์ „๋‹ฌํ•œ๋‹ค. ํ”„๋กฌํ”„ํŠธ: `references/prompt-duplicate-checker.md` ์—ญํ• : 1. 4๊ฐœ subagent ๊ฒฐ๊ณผ๋ฅผ ๋ณ‘ํ•ฉ 2. ์˜๋ฏธ์ ์œผ๋กœ ์ค‘๋ณต๋˜๋Š” ํ•ญ๋ชฉ ์ œ๊ฑฐ (๋” ๊ตฌ์ฒด์ ์ธ ํ•ญ๋ชฉ ์œ ์ง€) 3. ์ตœ์ข… ์นดํ…Œ๊ณ ๋ฆฌ ์žฌ๋ถ„๋ฅ˜ (auto/user/info) 4. ์šฐ์„ ์ˆœ์œ„ ์ •๋ ฌ (high โ†’ medium โ†’ low) ์ถœ๋ ฅ: `/tmp/session-wrap/results/merged-actions.json` ## Phase 3: ์‚ฌ์šฉ์ž ์„ ํƒ `--dry-run`์ด๋ฉด ์—ฌ๊ธฐ์„œ ์ค‘๋‹จํ•˜๊ณ  ํƒ์ง€ ๊ฒฐ๊ณผ๋งŒ ์ถœ๋ ฅํ•œ๋‹ค. ### ํ‘œ์‹œ ํ˜•์‹ ``` ## ์„ธ์…˜ ์ •๋ฆฌ ํ•ญ๋ชฉ ### ์ž๋™ ์‹คํ–‰ (auto) - N๊ฑด 1. [docs] README.md ํƒ€์ž„์Šคํƒฌํ”„ ๊ฐฑ์‹  2. [docs] CODEMAPS/backend.md ๋ชจ๋“ˆ ์ถ”๊ฐ€ ### ์‚ฌ์šฉ์ž ์„ ํƒ ํ•„์š” (user) - M๊ฑด 3. [ ] [scout] "API ์—๋Ÿฌ ์ฒ˜๋ฆฌ" ํŒจํ„ด โ†’ ์Šคํ‚ฌ ํ›„๋ณด 4. [ ] [followup] auth ๋ชจ๋“ˆ ๋ฆฌํŒฉํ† ๋ง ์ œ์•ˆ 5. [ ] [learning] "Supabase RLS ํŒจํ„ด" instinct ์ƒ์„ฑ ### ์ฐธ๊ณ  ์ •๋ณด (info) - K๊ฑด 6. [learning] ์ด๋ฒˆ ์„ธ์…˜์—์„œ 3๊ฐœ ์ƒˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ 7. [stats] ๋ณ€๊ฒฝ ํŒŒ์ผ 12๊ฐœ, ์ปค๋ฐ‹ 5๊ฐœ ์‹คํ–‰ํ•  ํ•ญ๋ชฉ ๋ฒˆํ˜ธ๋ฅผ ์„ ํƒํ•˜์„ธ์š” (์˜ˆ: 1,3,4 ๋˜๋Š” all ๋˜๋Š” auto-only): ``` AskUserQuestion์œผ๋กœ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค. - `all`: auto + ๋ชจ๋“  user ํ•ญ๋ชฉ ์‹คํ–‰ - `auto-only`: auto ํ•ญ๋ชฉ๋งŒ ์‹คํ–‰ - `1,3,4`: ํŠน์ • ๋ฒˆํ˜ธ๋งŒ ์‹คํ–‰ - `none`: ์•„๋ฌด๊ฒƒ๋„ ์‹คํ–‰ํ•˜์ง€ ์•Š์Œ ## Phase 4: ์„ ํƒ ํ•ญ๋ชฉ ์‹คํ–‰ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ํ•ญ๋ชฉ์„ ์‹คํ–‰ํ•œ๋‹ค: | ์นดํ…Œ๊ณ ๋ฆฌ | ์‹คํ–‰ ๋ฐฉ์‹ | |---------|----------| | docs ์—…๋ฐ์ดํŠธ | Edit/Write๋กœ ์ง์ ‘ ์ˆ˜์ • | | scout ์Šคํ‚ฌ ํ›„๋ณด | `/tmp/session-wrap/skill-candidates.md`์— ๊ธฐ๋ก | | learning instinct | `~/.claude/homunculus/instincts/personal/`์— MD ํŒŒ์ผ ์ƒ์„ฑ | | followup ์ž‘์—… | `/tmp/session-wrap/session-wrap-followups.md`์— ๊ธฐ๋ก | ## Phase 5: ๋ฆฌํฌํŠธ ์ถœ๋ ฅ ### ์ตœ์ข… ๋ฆฌํฌํŠธ ํ˜•์‹ ``` ## Session Wrap ์™„๋ฃŒ ### ์‹คํ–‰ ๊ฒฐ๊ณผ - ๋ฌธ์„œ ์—…๋ฐ์ดํŠธ: N๊ฑด ์™„๋ฃŒ - ์Šคํ‚ฌ ํ›„๋ณด ๊ธฐ๋ก: M๊ฑด - Instinct ์ƒ์„ฑ: K๊ฑด - ํ›„์† ์ž‘์—… ๊ธฐ๋ก: L๊ฑด ### ํ›„์† ์ž‘์—… ํŒŒ์ผ /tmp/session-wrap/session-wrap-followups.md ### ์Šคํ‚ฌ ํ›„๋ณด ํŒŒ์ผ (์žˆ์œผ๋ฉด) /tmp/session-wrap/skill-candidates.md ``` ํ›„์† ์ž‘์—… ํŒŒ์ผ(`session-wrap-followups.md`)์€ ๋‹ค์Œ ์„ธ์…˜ ์‹œ์ž‘ ์‹œ `/context-sync`๋กœ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค. ## ์—๋Ÿฌ ์ฒ˜๋ฆฌ | ์ƒํ™ฉ | ๋Œ€์‘ | |------|------| | git repo ์•„๋‹˜ | git ๊ด€๋ จ ์ปจํ…์ŠคํŠธ ์ƒ๋žต, ๋‚˜๋จธ์ง€ ์ง„ํ–‰ | | observations.jsonl ์—†์Œ | ๊ด€์ฐฐ ๋ฐ์ดํ„ฐ ์—†์ด ์ง„ํ–‰, ๊ฒฝ๊ณ  ํ‘œ์‹œ | | subagent ์‹คํŒจ (์ผ๋ถ€) | ์‹คํŒจ subagent ๊ฒฐ๊ณผ ์ƒ๋žต, ๋‚˜๋จธ์ง€๋กœ ์ง„ํ–‰ | | ๊ฒฐ๊ณผ๊ฐ€ 0๊ฑด | "์ •๋ฆฌํ•  ํ•ญ๋ชฉ์ด ์—†์Šต๋‹ˆ๋‹ค" ์ถœ๋ ฅ | | /tmp ์“ฐ๊ธฐ ๋ถˆ๊ฐ€ | ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ ํ›„ ์ค‘๋‹จ | ## ๊ด€๋ จ ํŒŒ์ผ | ํŒŒ์ผ | ์šฉ๋„ | |------|------| | `references/prompt-doc-updater.md` | doc-updater subagent ํ”„๋กฌํ”„ํŠธ | | `references/prompt-automation-scout.md` | automation-scout subagent ํ”„๋กฌํ”„ํŠธ | | `references/prompt-learning-extractor.md` | learning-extractor subagent ํ”„๋กฌํ”„ํŠธ | | `references/prompt-followup-suggester.md` | followup-suggester subagent ํ”„๋กฌํ”„ํŠธ | | `references/prompt-duplicate-checker.md` | duplicate-checker subagent ํ”„๋กฌํ”„ํŠธ | | `references/output-schema.md` | ์ถœ๋ ฅ JSON ์Šคํ‚ค๋งˆ ์ƒ์„ธ |
View on GitHub