| 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์ ์ ๋ฌํ ์ปจํ
์คํธ๋ฅผ ๊ตฌ์ฑํ๋ค.
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
OBS_FILE="$HOME/.claude/homunculus/observations.jsonl"
if [ -f "$OBS_FILE" ]; then
tail -50 "$OBS_FILE" > /tmp/session-wrap/recent-observations.jsonl
fi
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์ ์ถ๋ ฅ์ ๋์ผํ ์์ดํ
์คํค๋ง๋ฅผ ๋ฐ๋ฅธ๋ค:
{
"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
์ญํ :
- 4๊ฐ subagent ๊ฒฐ๊ณผ๋ฅผ ๋ณํฉ
- ์๋ฏธ์ ์ผ๋ก ์ค๋ณต๋๋ ํญ๋ชฉ ์ ๊ฑฐ (๋ ๊ตฌ์ฒด์ ์ธ ํญ๋ชฉ ์ ์ง)
- ์ต์ข
์นดํ
๊ณ ๋ฆฌ ์ฌ๋ถ๋ฅ (auto/user/info)
- ์ฐ์ ์์ ์ ๋ ฌ (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 ์คํค๋ง ์์ธ |