| title | Worktree ์ธ์ ์ฐ์์ฑ๊ณผ ์๋ณ์ฑ ์์น | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tags |
|
||||||||||||||
| category | workflow | ||||||||||||||
| status | active | ||||||||||||||
| confidence | high | ||||||||||||||
| applies_to |
|
||||||||||||||
| source |
|
||||||||||||||
| reviewed_at | 2026-06-02 | ||||||||||||||
| reviewed_commit | 63f2a622f7539ebd582b9af2b392c6de9ee47d47 | ||||||||||||||
| related |
|
pilee์ worktree/fork UX๋ โ์ธ์ ์ ๋ง์ด ๋ง๋ค ์ ์๋คโ๋ณด๋ค โ๋์ค์ ์ด๋ค ์ธ์ ์ด ๋ฌด์์ด์๋์ง ํ์ํ ์ ์๋คโ๊ฐ ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ธ์ ๋ชฉ๋ก์ ํ์ผ๋ช ์ด๋ ๋ฐฉํฅ label๋ณด๋ค ์ฌ๋์ด ๊ธฐ์ตํ๋ ์ ๋ชฉ, ๋ง์ง๋ง ์๋ฏธ ์๋ ์์ฒญ, workspace ์ ๋ณด๋ฅผ ์ฐ์ ํ์ํฉ๋๋ค.
์ธ์
์๋ณ์๋ ๋ด๋ถ ํ์ผ๋ช
๋ณด๋ค session_info.name์ ์ฐ์ ํฉ๋๋ค. footer์ ๋ณด์ด๋ ์ธ์
๋ช
์ ์ฌ์ฉ์๊ฐ ์ค์ ๋ก ๋ณธ ์ ๋ชฉ์ด๋ฏ๋ก, revive๋ worktree switch ๋ชฉ๋ก์์ ๊ฐ์ฅ ๊ฐํ ์๋ณ ์ ๋ณด์
๋๋ค. ์ธ์
๋ช
์ด ์๊ฑฐ๋ ์๋ฏธ ์๋ ๊ฒฝ์ฐ์๋ง ๋ง์ง๋ง user/assistant ๋ฉ์์ง ์์ฝ์ผ๋ก fallbackํฉ๋๋ค.
fork-panel์์ ์ข
๋ฃ๋ ๋ํ๋ transcript๋ฅผ ์ฃผ์
ํ๋ ๊ฒ๋ณด๋ค ์ธ์
์์ฒด๋ฅผ ๋ค์ ์ด๋ฆฌ๋ ํธ์ด ์์ฐ์ค๋ฝ์ต๋๋ค. ๊ทธ๋์ ํ์ ํ๋ฆ์ /recall์ ๋ณต์ฌ๋ณด๋ค /revive์ ์ฌ๊ฐ๋ฅผ ์ค์ฌ์ผ๋ก ๋ก๋๋ค. ๋ชฉ๋ก์ ํ์ฌ workspace๋ฅผ ๊ธฐ๋ณธ scope๋ก ๋ณด์ฌ์ฃผ๋, ํ์ํ ๋ ์ ์ฒด workspace๋ฅผ ํ์ฅํด ํ์ํ ์ ์์ด์ผ ํฉ๋๋ค.
ํ/planning ์ธ์
์์ ๋ง๋ ticket-bound frame.json์ worktree ์์ฑยท์ ํ ์ ๊ฐ์ ticket์ worktree .pi/frame.json์ผ๋ก ์๋ ์น๊ฒฉ๋์ด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์ธ์
transcript carry์ ๋ณ๊ฐ๋ก canonical ๊ณ์ฝ์ ์ฎ๊ธฐ๋ ๋จ๊ณ์
๋๋ค. /wt fork์ฒ๋ผ ์ฌ์ฉ์๊ฐ โํ์ฌ ๋ํ์์ worktree๋ก ๋ถ๊ธฐํ๋คโ๊ณ ๊ธฐ๋ํ๋ ํ๋ฆ์ ์ ์ฒด transcript๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ๋ณต์ฌํด์ผ โ๊ฐ์ ์์
์ด ์คํ ๊ณต๊ฐ์ ์ป์๋คโ๋ ์ฐ์์ฑ์ด ์๊น๋๋ค. ์ด๋ planning work-unit์ task board๋ ์ worktree .pi/work-tasks.json์ผ๋ก ํจ๊ป ์น๊ฒฉ๋์ด์ผ ํฉ๋๋ค. frame๋ง ์น๊ฒฉ๋๊ณ slice/verify task๊ฐ ๋น๋ฉด overlay๊ฐ ๋น ์์
์ฒ๋ผ ๋ณด์ด๋ฏ๋ก ์ธ์
์ฐ์์ฑ์ด ๊นจ์ง๋๋ค. ํ ํฐ/์ค์ผ ์ํ ๋๋ฌธ์ ๊ฐ๋ณ๊ฒ ๋๊ธฐ๊ณ ์ถ์ ๋๋ง --minimal-context / minimalContext: true๋ฅผ ๋ช
์ํฉ๋๋ค.
๊ธฐ๋ณธ ์ง์
์ ์ /wt switch์
๋๋ค. ์ฌ์ฉ์๊ฐ ์์
๊ณต๊ฐ์ผ๋ก ๋์๊ฐ๋ค๋ ๊ฒ์ โ์ํฌํธ๋ฆฌ๋ง ์ด๋โ์ด ์๋๋ผ โ๊ทธ ์ํฌํธ๋ฆฌ ์์์ ์ด์ด๊ฐ ์ธ์
์ ๊ณ ๋ฅธ๋คโ๋ ๋ป์ด๋ฏ๋ก, /wt switch๋ ์ํฌํธ๋ฆฌ ์ ํ ๋ค์์ ํด๋น worktree session picker๊น์ง ์ด์ด์ ธ์ผ ํฉ๋๋ค. /wt sessions๋ ๋
๋ฆฝ UX๊ฐ ์๋๋ผ ํธํ alias๋ก ๋จ๊ฒจ ๊ฐ์ session picker ํ๋ฆ์ ํธ์ถํฉ๋๋ค.
/wt resume <workspace>๋ Conductor workspace ํ๋๋ฅผ ์ ํํ ์ธ์
๋ง ๋ณต๊ตฌํ์ง ์์ต๋๋ค. ํด๋น workspace์ Conductor ์ธ์
์ ์ฒด๋ฅผ Pi session์ผ๋ก hydrateํ๊ณ , ๊ฐ ๋ณํ ์ธ์
์ source metadata๋ฅผ ๋จ๊ฒจ ์ฌ์คํ ์ ์ค๋ณต ๋ณํ์ ํผํฉ๋๋ค. hydrate๊ฐ ๋๋๋ฉด /wt switch <workspace>์ ๊ฐ์ ์ธ์
์ ํ ํ๋ฆ์ผ๋ก ์ด์ด์ ธ์ผ ํฉ๋๋ค. ๋ณต๊ตฌ๋ Pi session ์์ฒด๊ฐ ์๋ณธ transcript๋ฅผ ๊ฐ๊ณ ์์ผ๋ฏ๋ก, workspace-level conductor-context.md๊ฐ ํน์ active Conductor session ์์ฝ์ ๋ค์ turn์ ์๋ชป ์ฃผ์
ํ์ง ์๋๋ก .loaded.md๋ก ๋ณด์กด ์ฒ๋ฆฌํฉ๋๋ค.
/revive๋ ์ ์ญ ํ์ ๋๊ตฌ์
๋๋ค. P0/P1/P2 ํจ๋, ์ ์ฒด Pi ์ธ์
, split/tab ๋ณต๊ตฌ์ฒ๋ผ โ์ด๋ ์๋ ์ธ์
์ธ์ง ๋ชจ๋ฅด์ง๋ง ๋์ด๋ฆฐ๋คโ๊ฐ ๋ชฉ์ ์
๋๋ค. ๋ฐ๋ฉด /wt switch๋ โ์ด worktree๋ก ๋์๊ฐ ์ด์ด ํ๋คโ๋ ์์
๊ณต๊ฐ ์ค์ฌ ์ง์
์ ์
๋๋ค. ์ธ์
๋ชฉ๋ก ๊ธฐ๋ฅ์ด ๊ฒน์น๋๋ผ๋ ์ฌ์ฉ์๊ฐ ๊ธฐ์ตํด์ผ ํ ๊ธฐ๋ณธ ๋ช
๋ น์ /wt switch์ /revive ๋ ๊ฐ๋ก ์ค์
๋๋ค.
worktree ์์ฑ์ context sharing์ command ์๋ฏธ์ ๋ง์ถฐ ๋๋ฉ๋๋ค. /wt fork์ worktree_fork๋ ํ์ฌ ํจ๋ ๋ํ์ ์กฐ์ฌยทํ๋จยทํ์ผ ํฌ์ธํฐ๋ฅผ ๊ทธ๋๋ก ์ด์ด๋ฐ๋ ๊ฒ์ด ์ฌ์ฉ์ ๊ธฐ๋์ด๋ฏ๋ก full transcript๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ๋ณต์ฌํฉ๋๋ค. P0/P1/P2๋ ์์น ํ์์ผ ๋ฟ ๊ธฐ๋ณธ source๋ฅผ ๋ฐ๊พธ์ง ์์ต๋๋ค. ๋ฐ๋๋ก /wt new๋ ๊นจ๋ํ ์ธ์
์ด๊ณ , --minimal-context / minimalContext: true๋ฅผ ๋ช
์ํ ๊ฒฝ์ฐ์๋ง ์ต๊ทผ user prompt, source session /archive <path> reference, ์ ํ์ summary๋ฅผ ๋ด์ ์ต์ ์ ๋ฌ pack์ ๋ถ์
๋๋ค.
์ต์ ์ ๋ฌ ์ ๋ณด๋ โ๋ณด์กฐ ํํธโ๊ฐ ์๋๋ผ ๋ณต๊ตฌ ๊ฐ๋ฅํ artifact์
๋๋ค. ์ session JSONL์ ์ค์ worktree-context custom message๋ก persist๋์ด์ผ ํ๋ฉฐ, .pi/worktree-meta.json์๋ context.mode, source session file/title/cwd, target session file, full transcript copy ์ฌ๋ถ๊ฐ ๋จ์์ผ ํฉ๋๋ค. UI์ cwd binding๋ ์ ๋ฌธ ๊ณ์น, ์ต์ ์ ๋ฌ ๋ฉ๋ชจ ์ ์ฅ, ๋์ฒด ์ ๋ฌ ๋ฉ๋ชจ ์ ์ฅ์ฒ๋ผ ์ค์ ์ ๋ฌ ์ํ๋ฅผ ๋งํด์ผ ํฉ๋๋ค. handoff๋ฅผ ์จ๊ธด๋ค๋ ๋ป์ ์ ๋ฌ ์ฌ์ค์ ๊ฐ์ถ๋ ๊ฒ์ด ์๋๋ผ, ์ฌ์ฉ์๊ฐ ๋ณ๋ handoff ์ ์ฐจ๋ฅผ ์ํํด์ผ๋ง worktree๋ฅผ ๋ง๋ค ์ ์๋ UX๋ฅผ ์์ค๋ค๋ ๋ป์
๋๋ค.
fork-panel์ handoff๋ ํจ๋ ์๋ช
์ฃผ๊ธฐ์ ๋ถ๋ฆฌํฉ๋๋ค. ์์ ํจ๋์ด ๋ซํ์ผ๋ง ๋งฅ๋ฝ์ด ์ ๋ฌ๋๋ ๊ตฌ์กฐ๋ ์ฌ์ฉ์๊ฐ ๋ถํ์ํ๊ฒ ํจ๋์ ์ข
๋ฃํ๊ฒ ๋ง๋ค๊ณ , ์ฆ์ follow-up ์ฃผ์
์ ๋ถ๋ชจ ๋ํ ํ๋ฆ์ ๋์ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ handoff๋ parent inbox์ unread ํญ๋ชฉ์ผ๋ก ์ ์ฅํ๊ณ , ๋ถ๋ชจ๊ฐ /panels์์ ์ ํํด ์
๋ ฅ์ฐฝ์ ์ฝ์
ํ๊ฑฐ๋ ๋ช
์์ ์ผ๋ก follow-up ์ ์กํ ๋๋ง ๋ํ ์ปจํ
์คํธ์ ๋ค์ด์ต๋๋ค.
์์ ํจ๋์ ๋ถ๋ชจ ๊ธฐ์ค P1, P2 ๊ฐ์ ์ฃผ์๋ฅผ ๊ฐ๊ณ , ๊ทธ label์ ์
๋ ฅ์ฐฝ ๋ฉํ ์์ญ์ ํ์ํฉ๋๋ค. ๋ถ๋ชจ ํจ๋์ ๋ช
์์ ์ผ๋ก P0๋ก ํ์ํด ํ์ฌ ์ธ์
์ด handoff์ ๊ธฐ์ค์ ์์ ๋๋ฌ๋
๋๋ค. /handoff --inject์ /done --inject๋ ๋ถ๋ชจ๋ฅผ ์ฆ์ interruptํด๋ ๋๋ ์ํฉ์์๋ง ์ฐ๋ ๊ฐํ ์ต์
์ด๊ณ , ์๊ธฐ์น ์์ ์ข
๋ฃ fallback์ inbox ์ ์ฅ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
TUI ๋ชฉ๋ก row๋ ๋ฐ๋์ ๋จ์ผ ํ์ด์ด์ผ ํฉ๋๋ค. preview๋ label์ newline, code block, ANSI/control ๋ฌธ์๊ฐ ๋จ์ ์์ผ๋ฉด ํ๋ฉด ์ ์ฒด๊ฐ ๊นจ์ง ์ ์์ต๋๋ค. ๊ณผ๊ฑฐ ์ ์ฅ ๋ฐ์ดํฐ๊ฐ multi-line์ด์ด๋ ๋ ๋๋ง ๋จ๊ณ์์ ์ ๊ทํํ๊ณ ํญ์ ์ ํํด์ผ ํฉ๋๋ค.
์ธ๋ถ ์ธ์
๊ธฐ๋ก์ pilee JSONL๋ก ๋ณํํ ๋๋ message๋ง ์ฎ๊ธฐ์ง ๋ง๊ณ ์๋ณธ ์์คํ
์ session title๋ session_info.name์ผ๋ก ๋ณด์กดํฉ๋๋ค. ์๋ฏธ ์๋ Untitled๋ ์ ์ธํ๊ณ , ๋ฉ์์ง๊ฐ ์๋ ์ธ์
์ title๋ง์ผ๋ก ํ์ผ์ ๋ง๋ค์ง ์์ต๋๋ค. ์ด ์์น์ subagent-model-policy์ฒ๋ผ agent fan-out์ด ๋์ด๋ ์๋ก ๋ ์ค์ํด์ง๋๋ค.