| allowed-tools | ["Read","Bash","Grep","Glob"] |
| description | Use when a session ends, work must pause, or another agent will continue the task to commit changes, run tests, and store handoff memory. |
| name | handoff |
| trigger | ์ธ์
์ข
๋ฃ, ํธ๋์คํ, session end, handoff, ์ธ์์ธ๊ณ, wrap up session, ์์
์ ๋ฆฌ, ์ธ์
์ ๋ฆฌ, ์ค๋จ, ์ผ์์ ์ง, checkpoint, suspend, save state, ๋ค์ ์ธ์
, ์ด์ด๋ฐ๊ธฐ, continue next, resume work, ์ํ ์ ์ฅ, ์์
๋๊ธฐ๊ธฐ, session checkpoint, wrap up, finish session |
Quick Reference
- ์ํ ํ์ธ: Uncommitted ๋ณ๊ฒฝ์ฌํญ์ด ์์ผ๋ฉด ์ปค๋ฐ ์คํต (Step 4 ์งํ)
- ํ
์คํธ ์คํ: ์คํจ ์ ์์ ๊ธ์ง, ์คํจ ์ฌ์ค๋ง ๋ฉ๋ชจ๋ฆฌ์ ๊ธฐ๋ก
- ์ปค๋ฐ & ํธ์: ๋ณ๊ฒฝ์ฌํญ ๋ถ์ ํ conventional commit ๋ฐ remote push ํ์
- ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ:
session-handoff ํ๊ทธ๋ก Completed/In Progress/Next Steps ๊ตฌ์กฐ ์ค์
- ์์ฝ ์ถ๋ ฅ: Branch, Commit Hash, Test Status ํฌํจํ์ฌ ๋ค์ ์ธ์
์ ์ ๋ฌ
Workflow
Step 1: Status Check
ํ์ฌ ์์
์ํ๋ฅผ ํ์ธํฉ๋๋ค.
git status
git diff --stat
ํ๋จ ๊ธฐ์ค:
- Uncommitted changes ์์ โ Step 2๋ก ์งํ
- Clean working tree โ Step 4๋ก ์ง์ ์ด๋ (์ปค๋ฐ ๋ถํ์)
- Untracked files๋ง ์์ โ ์๋์ ๋ฌด์์ธ์ง ํ์ธ ํ ์งํ
Step 2: Test Execution
scripts/detect-language.sh์ ํจ์๋ฅผ ํ์ฉํ์ฌ ์ธ์ด ๋น์ข
์์ ์ผ๋ก ํ
์คํธ๋ฅผ ์คํํฉ๋๋ค.
source .hxsk/scripts/detect-language.sh
RUNNER=$(detect_test_runner)
PKG=$(detect_pkg_manager)
TEST_CMD=$(get_test_cmd "$RUNNER" "$PKG")
ํ
์คํธ ๊ฒฐ๊ณผ ๋ถ๊ธฐ:
- PASS โ Step 3์ผ๋ก ์งํ
- FAIL โ ์คํจ ๋ด์ฉ์ ํธ๋์คํ ๋ฉ๋ชจ๋ฆฌ์ ๊ธฐ๋กํ๊ณ Step 3 ์งํ (์์ ์๋ํ์ง ์์)
- ํ
์คํธ ์์ (
RUNNER=unknown) โ ์คํต, Step 3์ผ๋ก ์งํ
์ค์: ํธ๋์คํ ์์ ์์ ์คํจํ ํ
์คํธ๋ฅผ ์์ ํ์ง ์๋๋ค. ์คํจ ์ฌ์ค๋ง ๊ธฐ๋กํ์ฌ ๋ค์ ์ธ์
์ ์ ๋ฌ.
Step 3: Commit & Push
commit ์คํฌ์ ํ์ฉํ์ฌ ์ปค๋ฐํฉ๋๋ค.
- Commit:
commit ์คํฌ ์ํฌํ๋ก์ฐ ์คํ
- ๋ณ๊ฒฝ์ฌํญ ๋ถ์ โ ๋
ผ๋ฆฌ์ ๋จ์ ๋ถ๋ฆฌ โ conventional commit ์์ฑ
- Push:
git push ์คํ
- Remote tracking branch ์์ผ๋ฉด
git push -u origin <branch> ์ฌ์ฉ
Step 4: Handoff Memory Store
md-store-memory.sh๋ก ์ธ์
์ธ์์ธ๊ณ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค.
bash .hxsk/hooks/md-store-memory.sh \
"Session Handoff: <session-goal>" \
"<content>" \
"handoff,session,<scope-tags>" \
"session-handoff" \
"<keywords>" \
"<contextual_description>" \
"<related-memory-slugs>"
Handoff Memory Content Structure
<content> ํ๋๋ ์๋ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฆ
๋๋ค:
## Completed
- [task/feature ์๋ฃ ๋ชฉ๋ก]
## In Progress
- [์งํ ์ค์ด๋ ์์
+ ํ์ฌ ์ํ]
## Blocked / Failed
- [๋ธ๋ก์ปค ๋๋ ์คํจํ ํ
์คํธ ๋ชฉ๋ก]
## Next Steps
- [๋ค์ ์ธ์
์์ ์ด์ดํ ์์
๋ชฉ๋ก, ์ฐ์ ์์ ์]
## Key Decisions
- [์ด๋ฒ ์ธ์
์์ ๋ด๋ฆฐ ์ฃผ์ ๊ฒฐ์ ์ฌํญ]
## Commit History
- <commit-hash>: <description>
Step 5: Handoff Summary Output
์๋ ํ์์ผ๋ก ์์ฝ์ ์ถ๋ ฅํฉ๋๋ค:
---
SESSION HANDOFF
Branch: <branch-name>
Last Commit: <hash> โ <message>
Test Status: PASS | FAIL (N failures) | SKIPPED
---
Completed: <bullet list>
In Progress: <bullet list>
Next Steps: <bullet list>
---
Mid-Execution Handoff
executor ์คํฌ ์คํ ์ค ์ธ์
์ด ์ข
๋ฃ๋์ด์ผ ํ๋ ๊ฒฝ์ฐ:
- ํ์ฌ task๊น์ง๋ง ์๋ฃ โ ์งํ ์ค์ธ task๋ฅผ ๋ง๋ฌด๋ฆฌํ๊ฑฐ๋ ์์ ํ ์ง์ ๊น์ง ์งํ
- Phase checkpoint commit โ
executor์ Phase Checkpoint Commit ์ ์ฐจ ์คํ
- Handoff workflow ์คํ โ ์ด ์คํฌ์ Step 1~5 ์คํ
- In Progress ์น์
์ executor ์ํ ํฌํจ:
- ํ์ฌ Phase/Plan/Task ์์น
- PLAN.md ๊ฒฝ๋ก
- ๋จ์ task ์
Anti-Patterns
| Anti-Pattern | ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ |
|---|
| ํธ๋์คํ ์ ์คํจ ํ
์คํธ ์์ ์๋ | ์คํจ ์ฌ์ค๋ง ๊ธฐ๋ก, ์์ ์ ๋ค์ ์ธ์
|
| ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ ์์ด ์ปค๋ฐ๋ง | ๋ฐ๋์ session-handoff ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ |
| "๋ค ๋๋ฌ๋ค"๋ง ๊ธฐ๋ก | Completed/In Progress/Next Steps ๊ตฌ์กฐ ์ค์ |
| push ์์ด ์ข
๋ฃ | ๋ฐ๋์ remote์ push |
| PLAN.md ์ํ ์
๋ฐ์ดํธ ๋๋ฝ | executor ์ฐ๋ ์ PRD/PLAN ์ํ๋ ๋ฐ์ |
Iron Laws
NO TEST FIX WITHOUT NEW SESSION START
NO COMMIT WITHOUT HANDOFF MEMORY STORE
NO SESSION END WITHOUT GIT PUSH
NO HANDOFF WITHOUT STATUS CHECK
NO HANDOFF SUMMARY WITHOUT STRUCTURED CONTENT
NO MID-EXECUTION HANDOFF WITHOUT PHASE CHECKPOINT