Skip to content

Latest commit

ย 

History

History
76 lines (57 loc) ยท 4.75 KB

File metadata and controls

76 lines (57 loc) ยท 4.75 KB
title ์„ธ์…˜ ๋ถ„๋ฅ˜๋Š” ์›๋ณธ ์œ„์˜ sidecar๋‹ค
tags
archive
show-report
session-classification
sidecar
session
ai-suggestion
user-confirmation
category workflow
status active
confidence high
applies_to
extensions/archive-to-html
concern:archive
concern:show-report
source
user-direction:2026-05-09-show-report-session-classification
user-direction:2026-05-09-archive-command-name
user-direction:2026-05-09-session-classification-select-tags
user-direction:2026-05-25-session-body-search
reviewed_at 2026-06-02
reviewed_commit 91c739fbe51a72bee9c2a27aa4e3923da9fd4c03
related
artifact-archive-reopenability
session-export-source-preservation
backlog-source-session-provenance
deterministic-fallbacks-preserve-workflow

์„ธ์…˜ ๋ถ„๋ฅ˜๋Š” ์›๋ณธ ์œ„์˜ sidecar๋‹ค

Judgment

๋Œ€ํ™” ์„ธ์…˜์€ ํ•œ ํŒŒ์ผ ์•ˆ์— ์—ฌ๋Ÿฌ ๋งฅ๋ฝ์ด ์„ž์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™ˆ ์„ธ์…˜ ํ•˜๋‚˜์—๋„ ์žก๋‹ด, ์˜์ƒ ๋ถ„์„, ๊ธฐ๋Šฅ ๊ฐœ์„ , knowledge ์ •๋ฆฌ, ๊ฒ€์ฆ ๋ฆฌํฌํŠธ ํ™•์ธ์ด ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„ธ์…˜์„ ๋‹ค์‹œ ์ฐพ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๋ ค๋ฉด ์›๋ณธ JSONL์„ ๊ณ ์น˜์ง€ ๋ง๊ณ , ๋ณ„๋„์˜ sidecar metadata๋กœ ๋ถ„๋ฅ˜์™€ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์–น์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ถ„๋ฅ˜๋Š” canonical history๊ฐ€ ์•„๋‹ˆ๋ผ navigation layer์ž…๋‹ˆ๋‹ค. ์›๋ณธ ๋Œ€ํ™”, session export, Verify Report, TFT Studio transcript๋Š” ๊ทธ๋Œ€๋กœ ๋‘๊ณ  /archive Artifact Browser์—์„œ ์‚ฌ๋žŒ์ด ์ฐพ๊ธฐ ์‰ฌ์šด category/tag/summary/segment view๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด /show-report alias๋„ ๊ฐ™์€ ๋ถ„๋ฅ˜ sidecar๋ฅผ ์ฝ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹จ, ์„ธ์…˜ ํšŒ์ˆ˜์˜ 1์ฐจ ๊ฒฝ๋กœ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ „์— ์ €์žฅํ•œ ๋ถ„๋ฅ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋ณธ๋ฌธ ๊ฒ€์ƒ‰์ž…๋‹ˆ๋‹ค. ๋ถ„๋ฅ˜๊ฐ€ ์—†๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž์˜ ๊ธฐ์–ต ๋‹จ์–ด์™€ ๋งž์ง€ ์•Š์•„๋„, JSONL user/assistant text ๊ฒ€์ƒ‰๊ณผ matching snippet์œผ๋กœ ์„ธ์…˜์„ ์ฐพ์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Sidecar๋Š” ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žฌํƒ์ƒ‰์„ ๋•๋Š” ๋ณด์กฐ layer๋กœ ๋‚จ๊น๋‹ˆ๋‹ค.

Sidecar Rule

์„ธ์…˜ ๋ถ„๋ฅ˜๋Š” ~/.pi/agent/state/session-classification/*.json ๊ฐ™์€ local state์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ ๋‹จ์œ„๋Š” session realpath hash์ด๋ฉฐ, metadata์—๋Š” ๋‹ค์Œ๋งŒ ๋‘ก๋‹ˆ๋‹ค.

  • session path reference
  • primary category
  • tags
  • short summary
  • optional segments with title/category/tags/summary/message index range
  • created/updated timestamp

์›๋ณธ JSONL, normalized export, HTML export๋Š” ๋ถ„๋ฅ˜ ์ €์žฅ ๋•Œ๋ฌธ์— ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์›๋ณธ์„ ๋ฐ”๊พธ๋ฉด source-preservation ๊ฒฝ๊ณ„๊ฐ€ ๊นจ์ง€๊ณ , ๋‚˜์ค‘์— ์„ธ์…˜ export/cache ๊ฒ€์ฆ์ด ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.

AI Suggestion Rule

AI๋Š” ๋ถ„๋ฅ˜์˜ ์ตœ์ข… ๊ฒฐ์ •์ž๊ฐ€ ์•„๋‹ˆ๋ผ ์ดˆ์•ˆ ์ž‘์„ฑ์ž์ž…๋‹ˆ๋‹ค. /archive๊ฐ€ ์„ธ์…˜ ๋Œ€ํ™”๋ฅผ ์ฝ์–ด AI segment suggestion์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ ํ™•์ธํ•˜๊ณ  ์ €์žฅํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” sidecar์— ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถ”์ฒœ ๊ฒฐ๊ณผ๋„ public doctrine์ด๋‚˜ PR body์— raw session text๋ฅผ ์˜ฎ๊ธฐ๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ €์žฅ๋˜๋Š” summary๋Š” ๋‚˜์ค‘์— ์ฐพ๊ธฐ ์œ„ํ•œ ์งง์€ ์„ค๋ช…์ด์–ด์•ผ ํ•˜๋ฉฐ, private/company/customer/path detail์€ ์š”์•ฝ์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ ํ˜ธ์ถœ์ด ์‹คํŒจํ•˜๊ฑฐ๋‚˜ API key๊ฐ€ ์—†์œผ๋ฉด deterministic fallback์œผ๋กœ ๋‹จ์ผ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ œ์•ˆํ•˜๋˜, fallback์ž„์„ UI์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

UI Rule

/archive๋Š” session card์— ๋ถ„๋ฅ˜ action์„ ์ œ๊ณตํ•˜๊ณ , category/tag/summary/segments๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ๋ก์—๋Š” category filter๋ฅผ ์ œ๊ณตํ•ด pilee ๊ฐœ์„ , ์˜์ƒ ๋ถ„์„, ์žก๋‹ด/๋ฐฉํ–ฅ์„ฑ, ์—…๋ฌด ๊ฒ€์ฆ์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  ๋งฅ๋ฝ์œผ๋กœ ์„ธ์…˜์„ ์ฐพ์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๋ฅ˜(category)๋Š” 1์ฐจ ๋ณด๊ด€ํ•จ์ž…๋‹ˆ๋‹ค. ์ž์œ  ์ž…๋ ฅ๋งŒ ๋‘๋ฉด ๊ธฐ์ค€์ด ํฉ์–ด์ง€๋ฏ€๋กœ UI๋Š” selectbox๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๊ณ , ๋งˆ์ง€๋ง‰ ์˜ต์…˜์—์„œ ์ง์ ‘ ์ž…๋ ฅ์„ ์—ด์–ด ์˜ˆ์™ธ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ /archive ์ƒ๋‹จ ํ•„ํ„ฐ์™€ ์นด๋“œ grouping์— ๋ฐ”๋กœ ์“ฐ์ž…๋‹ˆ๋‹ค.

ํƒœ๊ทธ(tags)๋Š” ๊ฐ™์€ ๋ถ„๋ฅ˜ ์•ˆ์—์„œ ๋‚˜์ค‘์— ์ฐพ๊ธฐ ์œ„ํ•œ ๋ณด์กฐ ๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค. category๋ณด๋‹ค ์ž‘์€ cross-cutting facet์ด๋ฏ€๋กœ ํ•„์ˆ˜ ํŒ๋‹จ ์ถ•์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•˜์ง€ ๋ง๊ณ , ์‰ผํ‘œ ๊ตฌ๋ถ„ ์ž…๋ ฅ๊ณผ ์งง์€ ์„ค๋ช…์œผ๋กœ ์„ ํƒ ํ•ญ๋ชฉ์ž„์„ ๋“œ๋Ÿฌ๋ƒ…๋‹ˆ๋‹ค.

์„ธ๊ทธ๋จผํŠธ ๋ถ„๋ฅ˜๋Š” ๊ฒ€์ƒ‰๊ณผ ํƒ์ƒ‰์„ ๋•๋Š” ๋ณด์กฐ ์ƒ‰์ธ์ž…๋‹ˆ๋‹ค. ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด์„œ ์„ธ์…˜์„ ์‹ค์ œ๋กœ ์ชผ๊ฐœ๊ฑฐ๋‚˜ revive/export ๋Œ€์ƒ์ด ๋ฐ”๋€Œ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ โ€œ๋ถ€ํŠธ์ŠคํŠธ๋žฉโ€์ฒ˜๋Ÿผ ๋ณธ๋ฌธ ํ‘œํ˜„์„ ๊ธฐ์–ตํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” category/tag๋ณด๋‹ค ๋ณธ๋ฌธ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์™€ snippet์„ ๋จผ์ € ๋ณด์—ฌ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Review triggers

  • ๋ถ„๋ฅ˜ ์ €์žฅ์ด ์›๋ณธ JSONL ๋˜๋Š” normalized export๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ
  • AI ์ถ”์ฒœ์ด ์‚ฌ์šฉ์ž ํ™•์ธ ์—†์ด ์ž๋™ ์ €์žฅ๋  ๋•Œ
  • category/tags๊ฐ€ public/private ๊ฒฝ๊ณ„๋ฅผ ๋„˜๋Š” ๊ตฌ์ฒด ํšŒ์‚ฌยท๊ณ„์ •ยท๊ณ ๊ฐ ์ •๋ณด๋ฅผ ๋‹ด๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ
  • /archive filter๊ฐ€ ์›๋ณธ artifact ์ ‘๊ทผ์„ฑ์„ ๋ฐฉํ•ดํ•  ๋•Œ