๐ฆ SARA ํตํฉ ์ธ์์ธ๊ณ์ (์ต์ ยท๋จ์ผ ์๋)
๐ฆ ์ ๋ํ๋ฐฉ ์ธ๊ณ ์ค๋ ์ท (2026-06-02 #11 โ ์ต์ ยท์ด ๋ธ๋ก๋ง ์ฝ์ผ๋ฉด ์ด์ด๋ฐ์)
์ด ๋ธ๋ก์ด ์ด์ ๋ชจ๋ NOW๋ฅผ ๋์ฒดํ๋ค. ๊ณผ๊ฑฐ ์งํ ์ด๋ ฅ(#2~#10 ยท 05-30 ์ผ๊ฐ ํ ยท UI/effort ํธ๋)์ ๐๏ธ ์ด๋ ฅ ์์นด์ด๋ธ๋ก ์ด๋ํ๋ค. ๋ถ๋ณ ํต์ฌยท๊ฒฝ๋กยทbroker ๊ท์นยทํ์ ์ฌ์คยท์คํค๋ง๋ ์๋ ๋ณธ๋ฌธ ๊ทธ๋๋ก. ํ์ฌ = SARAโ์ฝ๋ ์์((๋ค) CLI ๋ฌ๋) ์๋ฃ + ์๋์์ ON(ํ์ฑํ ์๋ฃ). - โ SARAโ์ฝ๋ ์์((๋ค) CLI ๋ฌ๋) ์๋ฃ + ์๋์์ ON(
SARA_CODI_CLI=1, SARA ์ฌ๊ธฐ๋ ๋ฐ์). ๊ฒ์ฆ 2๊ฑด PASS. ์ปค๋ฐยทpytestยทRDS id ๋ฑ ๊ฒฝ๊ณผ ์์ธ = ๐๏ธ ์ด๋ ฅ ์์นด์ด๋ธ 2026-06-02. - ๋๋๋ฆฌ๊ธฐ(์๋์์ OFF):.env์์SARA_CODI_CLI์ ๊ฑฐ/0โ ์ฌ๊ธฐ๋(์ฝ๋ inert, ๋จธ์ง ๋๋๋ฆผ ๋ถํ์). ๋ค์ (์ฐ์ ์์ ๋ฏธ์ โ ์ฌ์ฉ์ ๊ฒฐ์ ): 1. ์๋์์ ์ฒซ ์ค์ฌ์ฉ ๊ด์ธก โ ON ์ดํ ์ค์ task ์์์ ์์ง ์ ๋๋ ค๋ด. ์ฒซ ์์ ์ ResultContract ๋ฐํยทEVALUATOR verdictยทactivity_logs๊ธฐ๋กยทbroker ๊ฒ์ดํธ ์ค๋์์ ๋ผ์ด๋ธ๋ก ํ์ธ(PROBE๋ ์ ์ /best-effort๊น์ง๋ง). 2. ๐ EVALUATOR ์นํ์ด์ง ์ค์ฌ์ฉ ํ๊ฐ (์ ์ยท๊ฒฐ์ 2๊ฑด ๋๊ธฐ) โ ์ฝ๋ ์ถฉ์กฑ ๊ฒ์ฆ์ ๋์ด, ์ค์ ๋์ ์กฐ์ํ ์ฆ๊ฑฐ(์คํฌ๋ฆฐ์ท+์ฝ์/๋คํธ์ํฌ ์๋ฌ)๋ก ์ค์ฌ์ฉ ๋ฌธ์ ยท๊ฐ์ ์๊น์ง ํ์ . Playwright(MCP) ์ + ๋น์ ๋, 5๋จ๊ณ(previewโdriveโcaptureโevaluateโevidence ๊ณ์ฝ). ๋ฏธ๊ฒฐ: โ ํ์ ๊น์ด(๊ฒ์ฆ๊ธฐ์ค ํ๋ก์ฐ๋ง vs +์์ ํ์) โก ๋น์ ํ๊ฐ ํฌํจ ์ฌ๋ถ. ์์ธ = ๐ EVALUATOR ์น ์ค์ฌ์ฉ ํ๊ฐ โ ์ค๊ณ ์ ์. ์ ๋ฆฌ ๋๊ธฐ(์ญ์ ๋ ์ฌ์ฉ์):activity_logsํ7659(VERIFY-ํ๊ทธ) ยท ์์_verify_rds_insert_2026-06-02.pyยท ๋ฏธ์ปค๋ฐconfig/settings.json(effort ๋๋ฆฌํํธยท๋ฌด๊ด). ์์ฌ(๋ฏธ์ฐฉ์): untracked ๋ณด์กด ยท summary flip(B-2) ยท Q8 write-op ยท Q1 persist ๊ณ ์ chain ยทcustom_title/notion_url๋๋ฆฌํํธ ยทSARA_WORKSPACErepo ํด์ ยท (์ ํ)GPT ํ์ ๋๊ตฌ ์ ์ฉ. ์์ธ ๋งํฌ = ๋ฉํฐ์์ด์ ํธ ์ธ๋ถ ์์ ยง10 ยท ํ์ ๊ฒฐ๊ณผ(#28) ยท ์ด๋ ฅ ์์นด์ด๋ธ.
๐ ํ์ด์ง ๊ฐฑ์ ๊ธฐ๋ณธ ๊ท์น (์ธ์์ธ๊ณ์ยทํ์ ํ์ด์ง ๊ณตํต)
"๊ฐฑ์ "์ ๋จ์ ์ต์ ๋ด์ฉ ์ถ๊ฐ๊ฐ ์๋๋ผ ๋ค์์ ๋ชจ๋ ํฌํจํ๋ค.
1. ์ต์ ๋ด์ฉ ์ถ๊ฐ โ NOW(์ต๊ทผ ์์
)๋ฅผ ๋งจ ์ยท์ค์ฌ์ ๋๋ค.
2. ์ค๋ณต ์ ๊ฑฐ โ ๋์ ๋ ๊ณผ๊ฑฐ ์ค๋
์ทยท์ค๋ณต ์์ ์ ํตํฉํ๊ฑฐ๋ ์ ๊ฑฐํ๋ค.
3. ๊ฒฐ๋ก ํตํฉ โ ํฉ์ยท๊ฒฐ์ ๊ฒฐ๊ณผ๋ ๋ณ๋ ๋์ด์ด ์๋๋ผ ๊ธฐ์กด ๊ณํ(๋ก๋๋งตยท๊ตฌํ ๋จ์)์ ํก์ํด ์ ๋ฆฌํ๋ค.
4. ์๋ฃ ํญ๋ชฉ ์์นด์ด๋ธ ์ด๋ โ ์๋ฃ๋ Phaseยท์์
์์ ๋ธ๋ก์ ๐๏ธ ์ด๋ ฅ ์์นด์ด๋ธ๋ก ์ฎ๊ธฐ๊ณ ๋ณธ๋ฌธ์ ๋งํฌ+์์ฝ๋ง ๋จ๊ธด๋ค.
5. ๋ถ๋ณ ํต์ฌ ๋ณด์กด โ ๊ฒฝ๋ก/ํฌํธยท์ธ์ฆยท์ํ์์
๊ท์นยทํ์ ์ฌ์คยท์คํค๋ง๋ ๊ธธ์ด์ ๋ฌด๊ดํ๊ฒ ํญ์ ์ ์งํ๋ค.
6. ์์
ํธ๋์ปค ๋๊ธฐํ (ํ์) โ ๋
ธ์
ํ์ด์ง๋ฅผ ๊ฐฑ์ ํ ๋๋ ์์
ํธ๋์ปค DB(โ
์์
ํธ๋์ปค โ SARA ๊ตฌ์ถ, collection://37ebefdd-4151-4b7c-81f3-3325da9e43be) ๊ฐฑ์ ์ ๋ฐ๋์ ํฌํจํ๋ค. ๋๊ธฐยท์งํ์ค ํ์ ์ค์ ์๋ฃ ์ฌ๋ถ๋ฅผ ํ์ธํด ์ํ(๋๊ธฐ/์งํ์ค/์๋ฃ/๋ณด๋ฅ)๋ฅผ ๊ฐฑ์ ํ๊ณ , ์ ๊ท ์์
์ ํ์ ์ถ๊ฐํ๋ค(์ปฌ๋ผ: ์์
/Phase/๋ด๋น/์ํ/์ฐ์ ์์/๊ทธ๋ฃน1/๊ทธ๋ฃน2/๋น๊ณ ).
์ ์ฉ ๋ฒ์ = SARA ํ๋ธ ๋ฐ ๋ชจ๋ ํ์ ํ์ด์ง. RDS ์ํฐํฉํธ ๋ณ๊ฒฝ ํ์ SHOW TABLES/DESCRIBE ๊ต์ฐจ๊ฒ์ฆ(ํ์ ์ฌ์ค 9).
๐ฆ SARA ํตํฉ ์ธ์์ธ๊ณ์ (๋ถ๋ณ ํต์ฌ)
์ ๋ํ๋ฐฉ์ ์ ์ต์ ์ค๋ ์ท + ์ด ๋ณธ๋ฌธ๋ง ์ฝ์ผ๋ฉด ์ด์ด๋ฐ๋๋ค. ๊ณผ๊ฑฐ ์งํ ์ด๋ ฅ์ ๐๏ธ ์ด๋ ฅ ์์นด์ด๋ธ.
0. ํ ์ค ์์ฝ
VS Code ์์ ๋จ๋ SARA ์ฑํ ํจ๋์ claude-agent-sdk๋ก ๊ตฌ์ถํ๋ ํ๋ก์ ํธ. Phase 1(ํจ๋)ยท2b(๊ถํ ๊ฒ์ดํธ)ยท2a(์๋ ์ธ๊ณ)ยท2a-ext(Webview+๋ ธ์ ๋น๋๊ธฐ+UI) ์ ๋ถ ์๋ฃ. ์ฑํฐโGPT ์๋ ํ์ SW(agent-dialogue-hub) ์๋ฃ. ๋ฉํฐ์์ด์ ํธ ํตํฉ(โขโโกโโ ์) ์งํ ์ค์ด๋ฉฐ, SARAโ์ฝ๋ ์์((๋ค) CLI ๋ฌ๋)์ ์๋ฃยท์๋์์ ON.
1. ํต์ฌ ์์น
- SARA
C:\dev\SARA(:8770) โ 2026-05-29 tools ํ์์์ ๋ ๋ฆฝ ๋ฆฌํฌ๋ก ๋ถ๋ฆฌ(์๊ฒฉgithub.com/delix0731/SARAprivate, ํ์คํ ๋ฆฌ ๋ณด์กด subtree split).SARA_HOST=100.108.234.45(Tailscale). ์๋์ฌ์์ = ์์ฝ์์ SaraWatchdog(1๋ถ ์ฃผ๊ธฐ, :8770 ๋ฏธ์ ์ ์๋ง ๊ธฐ๋; ๊ตฌ Startup.bat์.disabled). - agent-dialogue-hub
C:\dev\tools\agent-dialogue-hub(:8780) โ ์ฑํฐโGPT ํ์ ์์ง.HUB_HOST=100.108.234.45(Tailscale, ๋ชจ๋ฐ์ผ ์ ์)ยทHUB_PORT=8780(.env). ์๋์ฌ์์ = ์์ฝ์์ HubWatchdog(1๋ถ ์ฃผ๊ธฐ, :8780 ๋ฏธ์ ์ ์๋ง ๊ธฐ๋, dup-guard;hub_watchdog.bat/.vbs). โ PC ์ฌ๋ถํ ์์๋ 1๋ถ ๋ด ์๋ ๊ธฐ๋. - broker
C:\dev\tools\cody-permission-broker(:7777) - cmdboard
C:\dev\cmdboard(RDS,BOARD_DB_*) ยท notion-bulkC:\dev\tools\notion-bulk - sara-memory(์ฝ๊ธฐ์ ์ฉ RDS ์กฐํ): MCP
C:\dev\SARA\custom_tools\(sara-memory ๋ฑ๋ก) + ๋ ๋ฆฝ CLIC:\dev\tools\sara-memory-cli\.
2. ์ธ์ฆ ยท ์์ ๋ชจ๋ ยท MCP
- ์ธ์ฆ: ๊ตฌ๋
OAuth /
setup-token, API ํค ๋ฏธ์ฌ์ฉ(ANTHROPIC_API_KEY๋น์). GPT๋ง OpenAI API(gpt-5.5). - ์์
๋ชจ๋ = ์๋์์ ON(2026-06-02 ํ์ฑํ). SARA๊ฐ task/verify ๋ฉ์์ง๋ฅผ ์ฝ๋
claude -p์๋ธํ๋ก์ธ์ค๋ก ์์((๋ค) CLI ๋ฌ๋,SARA_CODI_CLI=1). SARA ๋ณธ์ฒด๋ ์ฝ๊ธฐ์ ์ฉ(enable_write_tools:false, Bash ์์). ์ํ์์ ์ broker ๊ฒ์ดํธ(ํ ๋ ๊ทธ๋จ ์น์ธ/์ฐจ๋จ)๋ก ํต์ โ ํ๊ดดยท๋๋๋ฆฌ๊ธฐ ๋ถ๊ฐ ์์ ์ ํ์ธ ์ฒดํฌํฌ์ธํธ ๊ถ์ฅ. ์๋(์ฑํฐ.mdโ ์ฌ์ฉ์ ์ฝ๋ dispatch)์ ํด๋ฐฑ/๊ตฌ์ถ์ฉ. - ์์ ์์ ๊ณจ๊ฒฉ(๊ด์ธก 5์ข ): โ git/RDS ๊ถ์(์ฝ๋ ์๊ธฐ๋ณด๊ณ ์๋) โก์ข ๋จ ๊ณ์ฝ ํญ์ ๋ฐํ(์ฑ๊ณต/์คํจ/timeout/stall/ํฌ๋์ ์ ๊ฒฝ๋ก) โข๋ ๋ฆฝ EVALUATOR๊ฐ evidence ๊ฒ์ฆ โฃ์ค๋ ์ท ๊ธฐ๋ฐ ์ฌ๊ฐ/๋กค๋ฐฑ โคNDJSON ์ ์ฌ ์์ํ + stall ์์น๋ .
- SARA ๋ฑ๋ก MCP:
notion-anchor-mcpยทdesktop-notifyยทgithubยทaws-apiยทsara-memory.claude-code๋ ๋ฏธ๋ฑ๋ก(์์์claude -p์๋ธํ๋ก์ธ์ค ๊ฒฝ์ ) + broker ํ .
3. ๋ ธ์ ๋น๋๊ธฐ ๊ตฌ์กฐ (๋ชฉํ)
[๋น ๋ฅธ ๊ฒฝ๋ก] ๊ธฐ๋ก ๋ฐ์ โ cmdboard RDS ํ์ ์ฆ์ write โ ์์
๊ณ์ (์ง์ฐ 0)
[๋๋ฆฐ ๊ฒฝ๋ก] ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ปค๊ฐ '๋ฏธ๋ฐ์' ํ polling โ notion-bulk๋ก ๋
ธ์
๋ฐ์ โ '๋๊ธฐํ ์๋ฃ'
๋ณ๋ชฉ์ ๋ ธ์ (์์ญ ์ด)์ด์ง RDS(์ ms)๊ฐ ์๋๋ฏ๋ก 1์ฐจ ์ ์ฅ์๋ฅผ RDS๋ก ํต์ผํด๋ ์ฒด๊ฐ ์์ค ์์. ์ ์ฉ ๋ฒ์ = ๋ชจ๋ ๋ ธ์ ๋ฌธ์ ๊ฐฑ์ . ์ธ๊ณ ์์ฝ ์์น: NOW ์ค์ฌ + ๋ถ๋ณ ํต์ฌ ํญ์ ๋ณด์กด. ๊ตฌ์กฐ = โ NOW โ โก ์ง์ ๊ฒฐ์ ยท๋งฅ๋ฝ โ โข ๋ถ๋ณ ํต์ฌ โ โฃ ๊ณผ๊ฑฐ ์ด๋ ฅ(๋งํฌ).
4. โ ํ์ ์ฌ์ค
- ์ธ์
์ธ๊ณ ์ ์ฅ์ = cmdboard RDS ๋จ๋
. ๋นํ๊ดด ํ
์ด๋ธ
sara_continuation(017). - ๋
ธ์
๊ฐฑ์ 1์ฐจ ์ ์ฅ์ = cmdboard RDS ํต์ผ. ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ปค๊ฐ
notion-bulk๋ก ๋ฐ์. - ํจ๋ = VS Code Webview ์ต์คํ ์ . Simple Browser ํ๊ธฐ.
- ์ธ๊ณ ์๊ณ์น = 65% (
ResultMessage.usage). - ์ฐ๋ ์ฑ๋ = SARA โ cmdboard RDS ์ง์ (SQLAlchemy),
BOARD_DB_*. - ํ๋ก์ ํธ ์
๋ ํฐ = SARA๊ฐ cmdboard
projects์ง์ ์กฐํ. - ๋ ธ์ ๊ฐฑ์ ์ ์ ๋ถ RDS ๋น๋๊ธฐ ๊ฒฝ์ (๋ชจ๋ ๋ฌธ์). ํ(G2)ยท์์ปค(B-2) ์์ฑ๋จ.
- ์ธ๊ณ/์ธ์์ธ๊ณ์๋ ์ต๊ทผ ์์ ์ค์ฌ, ๋ถ๋ณ ํต์ฌ์ ํญ์ ๋ณด์กด(ยง3).
- RDS ์ํฐํฉํธ ๋ณ๊ฒฝ ํ
SHOW TABLES/DESCRIBE๊ต์ฐจ๊ฒ์ฆ ์๋ฌด. - ํ์ด์ง ๊ฐฑ์ ์ ์ ยงํ์ด์ง ๊ฐฑ์ ๊ธฐ๋ณธ ๊ท์น์ ๋ฐ๋ฅธ๋ค(์ต์ ์ถ๊ฐยท์ค๋ณต์ ๊ฑฐยท๊ฒฐ๋ก ํตํฉยท์๋ฃ ์์นด์ด๋ธ ์ด๋ยท๋ถ๋ณ ๋ณด์กดยทํธ๋์ปค ๋๊ธฐํ).
sara_continuation ์คํค๋ง (๋ง์ด๊ทธ๋ ์ด์ 017)
์ค์ ํ์ผ migrations/017_sara_continuation.sql์ด ๊ธฐ์ค. 14์ปฌ๋ผ. status = active/handing_off/handed_off/closed, usage_ratio(0.65 ํธ๋ฆฌ๊ฑฐ)ยทparent_id(๊ณ๋ณด)ยทmodelยทcontext_window ํฌํจ.
5. broker ๊ถํ ๊ฒ์ดํธ (์ฐจ๋จ/ํ์ฉ ๊ธฐ์ค)
- ๊ฒ์ดํธ ๋์ = Bash/Write/Edit/MultiEdit/NotebookEdit. ์ฝ๊ธฐ์ ์ฉ ํต๊ณผ.
- ๐ข ํ์ฉ:
master/main์ผ๋ฐ push(AUTO_ALLOW, ํซํฝ์ค9cacf78). - ๐ก ํ
๋ ๊ทธ๋จ ์น์ธ ๊ฒ์ดํธ: force push(
--force/-f/--force-with-lease)ยทgit reset --hard(risk_approvals, ๋ฏธ์๋ต 120์ด fail-safe deny) ยท aws-api ์ญ์ ยท์ข ๋ฃ. - ๐ด ์ฐจ๋จ(HARD_DENY):
rm -rf๋ฑ ยท aws-api SG/IAM ์ ์ฑ ๋ณ๊ฒฝ ยท ์ด์ ํ์ผ ์ฐ๊ธฐ ยท deploy ๊ธ์ง ์๊ฐ๋.
6. โฉ ๋๋๋ฆฌ๊ธฐ
- ์ ๊ท ํ ์ด๋ธ/ํ๋ ๋นํ๊ดด(DROP์ผ๋ก ์๋ณต).
- ์ต์คํ ์ ยทํ๋ค์ค ์ด์์ ๊ธฐ์กด ์์ฐ ๋ณด์กด ํ ์ ์ง ์ดํ. ํ๋ค์ค๋ vendored copy(์ง์ import ๊ธ์ง)๋ผ cmdboard ๋ณ๊ฒฝ์ด SARA๋ฅผ ๊นจ์ง ์์.
- ์ธ๊ณ ์ ์์ฝ ์์ฑ ์คํจ โ ์ธ๊ณ ๋ณด๋ฅ, ๊ธฐ์กด ์ธ์ ์ ์ง.
- broker ํซํฝ์ค๋ ๋ณ๊ฒฝ ์ ๋ฐฑ์ + git revert๋ก ์๋ณต.
- [page] ๐จ [๊ธด๊ธยท1์์] ๋ฉํฐ์์ด์ ํธ ํตํฉ ์ํคํ ์ฒ โ ์ธ๋ถ ์์ (cmdboard ์์ ์ฐธ์กฐ)