Skip to main content
Glama
bb4rjfl

Saju Concierge

by bb4rjfl
README.md
# Saju Concierge ๐Ÿ”ฎ

์ƒ๋…„์›”์ผ์‹œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์‚ฌ์ฃผ ๋ช…์‹์„ ๊ณ„์‚ฐํ•ด **์˜ค๋Š˜์˜ ๊ธฐ์šดยท์˜ฌํ•ด ์šด์„ธยท๊ถํ•ฉยท์ด๋ฆ„ํ’€์ดยทํƒ€๋กœ**๋ฅผ ์žฌ๋ฏธ์žˆ๊ฒŒ ํ’€์–ด์ฃผ๋Š” **MCP ์„œ๋ฒ„**. ์นด์นด์˜ค **Agentic Player 10** ๊ณต๋ชจ์ „ ์ถœํ’ˆ์ž‘(๋‚ด๊ตญ์ธ์šฉ, ์™ธ๊ตญ์ธ์šฉ Korea Trip Concierge์™€ ์ง).

## ์ด ์ €์žฅ์†Œ๋ฅผ ์ฒ˜์Œ ์—ฌ๋Š” ์‚ฌ๋žŒ(๋˜๋Š” Claude Code)์—๊ฒŒ

1. **`CLAUDE.md`** ๋ถ€ํ„ฐ ์ฝ์œผ์„ธ์š”. ํ”„๋กœ์ ํŠธ ํ—Œ๋ฒ•์ด์ž ๋ชจ๋“  ์ปจํ…์ŠคํŠธ์˜ ์ง„์ž…์ ์ž…๋‹ˆ๋‹ค.
2. ์นด์นด์˜ค ๊ทœ์น™์€ `docs/01` (์ ˆ๋Œ€ ๊ทœ์น™ โ€” ์–ด๊ธฐ๋ฉด ์‹ฌ์‚ฌ ๋ฐ˜๋ ค).
3. **์—”์ง„ยท๋ผ์ด์„ ์Šค๋Š” `docs/05`** (์ด ํ”„๋กœ์ ํŠธ์˜ ์ƒ๋ช…์„  โ€” AGPL ๊ธˆ์ง€).
4. ์ง„ํ–‰ ์ƒํ™ฉ์€ `docs/08` (๋‹จ์ผ ์ง„์‹ค ์†Œ์Šค).

## ํ•ต์‹ฌ ์ „๋žต (ํ•œ ๋ฌธ์žฅ)
> ๋ช…์‹ ๊ณ„์‚ฐ์€ ๊ฒ€์ฆ๋œ MIT ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(manseryeok-js)์— ๋งก๊ธฐ๊ณ , **ํ•ด์„์€ ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ๋งŒ๋“  ๋ช…๋ฆฌํ•™ ๋ฐ์ดํ„ฐ + LLM ํ‘œํ˜„**์œผ๋กœ ์ฐจ๋ณ„ํ™”ํ•œ๋‹ค. AGPL ์ฝ”๋“œ๋Š” ๊ฐœ๋…๋งŒ ์ฐธ๊ณ ํ•˜๊ณ  ์ฝ”๋“œ๋Š” ๊ฐ€์ ธ์˜ค์ง€ ์•Š๋Š”๋‹ค.

## ๋ฌธ์„œ ๋งต
| ํŒŒ์ผ | ๋‚ด์šฉ |
|---|---|
| `CLAUDE.md` | ํ”„๋กœ์ ํŠธ ํ—Œ๋ฒ•ยท๊ทœ์น™ ์š”์•ฝยทํ•„๋… ์ˆœ์„œ |
| `docs/01_kakao_playmcp_rules.md` | โญ ์นด์นด์˜ค PlayMCP ๊ฐœ๋ฐœ๊ฐ€์ด๋“œ+์‹ฌ์‚ฌ์ •์ฑ…+์ผ์ • |
| `docs/02_product_spec.md` | ์ œํ’ˆ ์ •์˜ยทํˆด 7๊ฐœยทํ†ค/์•ˆ์ „ |
| `docs/03_tool_contracts.md` | ํˆด ์ž…์ถœ๋ ฅ ๊ณ„์•ฝ(JSON) |
| `docs/04_ux_interaction.md` | "๋ฒ„ํŠผ/์„ ํƒ์ง€๋กœ ์ด์–ด๊ฐ€๊ธฐ" + chartCode ํŒจํ„ด |
| `docs/05_engine_and_licenses.md` | โญ ์—”์ง„ยทํ•ด์„ ๋ฐ์ดํ„ฐยท๋ผ์ด์„ ์Šค(์ƒ๋ช…์„ ) |
| `docs/06_working_agreement.md` | ์ž‘์—… ๋ฐฉ์‹ยท์ฝ”๋”ฉ ๊ทœ์น™ยทDoD |
| `docs/07_decision_log.md` | ๊ฒฐ์ • ์ด๋ ฅ |
| `docs/08_progress.md` | ์ง„ํ–‰ ์ƒํ™ฉ(SSOT) |
| `docs/09_kc_deploy_playbook.md` | โญ KC ๋ฐฐํฌยท์‹ค์ „ ํ•จ์ • (1๋ฒˆ์งธ ์ž‘ํ’ˆ ๊ฒฝํ—˜ ์ด์‹) |

## Claude Code ์Šฌ๋ž˜์‹œ ์ปค๋งจ๋“œ
- `/sync` ์„ธ์…˜ ์‹œ์ž‘(์ปจํ…์ŠคํŠธ ๋กœ๋“œ + ๋‹ค์Œ ํ•  ์ผ)
- `/newtool` ์ƒˆ ํˆด ์ผ๊ด€ ์ถ”๊ฐ€
- `/check` ์‘๋ชจ ์ „ ์นด์นด์˜ค ๊ทœ์น™ + ๋ผ์ด์„ ์Šค ์ ๊ฒ€
- `/handoff` ์„ธ์…˜ ์ข…๋ฃŒ(๋ฌธ์„œ ์ตœ์‹ ํ™”)

## ํ•ต์‹ฌ ์ œ์•ฝ (์š”์•ฝ)
- ์„œ๋ฒ„๋ช…ยทํˆด๋ช…์— `kakao` ๊ธˆ์ง€ ยท Streamable HTTP ยท Remote ยท Stateless
- ํˆด 3~10๊ฐœ ยท annotations 5์ข… ยท ์˜๋ฌธ description ยท ์‘๋‹ต Markdown โ‰ค24k
- p99 3s ยท ๊ด‘๊ณ /๋ฆฌ์›Œ๋“œ ๊ธˆ์ง€ ยท ๊ฐœ์ธ์ •๋ณด 6์ข… ๊ธˆ์ง€ ยท ์ƒ๋…„์›”์ผ ๋ฏธ์ €์žฅ
- ์šด์„ธ = **์—”ํ„ฐํ…Œ์ธ๋จผํŠธ ํ†ค**(๋‹จ์ •ยท๊ณตํฌ ๊ธˆ์ง€) + ๋ฉด์ฑ… ๋ฌธ๊ตฌ
- **๋ช…์‹ = manseryeok-js(MIT)** / **AGPL(orreryยทSwiss Ephemeris) ์ฝ”๋“œ ๊ธˆ์ง€**
- ์ž์ฒด ๊ณ„์‚ฐยทํ•ด์„ = LLM ๋‹จ๋… ๋ถˆ๊ฐ€ํ•œ ๊ณ ์œ ๊ฐ€์น˜(๋ฐ˜๋ ค ํšŒํ”ผ)

## ์ผ์ • (์—ญ์‚ฐ)
6์›” ๋ง~7์›” ์ดˆ 1์ฐจ ๋ฐฐํฌ โ†’ **7/7 ์‹ฌ์‚ฌ์š”์ฒญ ๋งˆ๊ฐ** โ†’ ์ „์ฒด๊ณต๊ฐœ โ†’ **7/14 ๋น„์ฆˆํผ ์‘๋ชจ**

## ๊ธฐ์ˆ  ์Šคํƒ (์ œ์•ˆ)
TypeScript + `@modelcontextprotocol/sdk` (Streamable HTTP, stateless) ยท `@fullstackfamily/manseryeok` (MIT) ยท Dockerfile(linux/amd64) โ†’ GitHub(public) โ†’ PlayMCP in KC