์ด ๋ฌธ์๋ Claude Code๊ฐ ๋งค ์ธ์ ๋ง๋ค ์ฝ๋ ์ด์์๋ ์ปจํ ์คํธ ํ๋ธ๋ค. ์์ ํ ๋๋ง๋ค "ํ์ฌ ์งํ ์ํฉ / ์ต๊ทผ ๊ฒฐ์ ์ฌํญ / ์๋ ค์ง ์ด์"๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
AI ๊ธฐ๋ฐ ๋ฏธ๊ตญ ์ฃผ์ Tenbagger ํ๋ณด ํ์ ๋๊ตฌ. ๋ฏธ๊ตญ์ฃผ(FMP/SEC) ๊ธฐ๋ฐ. ์์ฐ์ด ํ ๋ง ์ ๋ ฅ โ ๊ธฐ์ ํ๋ณด ๋ฐ๊ตด โ Tenbagger Score + Bull/Bear/Verdict ๋ถ์.
์์ธ ๋ช ์ธ: PRD.md ยท ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ: AI-WORKFLOW.md ยท docs/agent-workflow.md
- Frontend: Next.js 14 App Router, TypeScript, Tailwind, shadcn/ui, Recharts
- AI: Claude API (claude-sonnet-4)
- DB: Supabase (PostgreSQL)
- ๋ฏธ๊ตญ ์ฌ๋ฌด: Financial Modeling Prep (FMP) API
- ๋ชจ๋ AI ๋ถ์ ๋ก์ง์
lib/ai/์๋ ๋ชจ๋๋ก ๋ถ๋ฆฌ - ์ธ๋ถ API ์๋ต์ ๋ฐ๋์ Supabase์ ์บ์ฑ (TTL ์ ์ฑ
:
docs/data-sources.md) - ๋ฐ์ดํฐ ์์ค ์ฒ๋ฆฌ ๋ก์ง์ ๊ณตํต ๋๋ฉ์ธ ํ์
(
lib/types/stock.ts)์ผ๋ก ์ถ์ํ - ๊ฐ๋ฐ ์ค์๋
lib/data/mock/์ mock data ์ฐ์ ์ฌ์ฉ - ์๋ฌ๋ ์ฌ์ฉ์์๊ฒ gracefulํ๊ฒ ํ์
- ๋ชจ๋ UI๋ Bloomberg Terminal ๋์์ธ ์์คํ
(docs/DESIGN.md)์ ๋ฐ๋ฅธ๋ค.
์/์ฌ๋ฐฑ/ํฐํธ/๋ชจ์๋ฆฌ๋
term-*ํ ํฐ๋ง ์ฌ์ฉ โ raw hexยทneutral-*ยทrounded-*๊ธ์ง. ํ๋ฉด์components/terminal/ํ๋ฆฌ๋ฏธํฐ๋ธ(Panel/DataRow/Delta/Tag)๋ฅผ ์ฐ์ ์กฐ๋ฆฝํ๋ค.
- ๋ธ๋์น:
mainโdevโfeature/*(feature โ dev PR, ์ง์ main push ๊ธ์ง) - ์ปค๋ฐ: Conventional Commits โ ๊ท์น ๋จ์ผ ์์ค docs/commit-convention.md (Agent๋
commitSkill๋ก ์๋ ์ ์ฉ) - Task: GitHub Issue๋ก ๋ฑ๋กยท๊ด๋ฆฌ
- ๋ฌธ์: ๊ธฐํ/์ํฌํ๋ก์ฐ๋ GitHub Wiki, ์ฝ๋ ๊ด๋ จ ๊ฒฐ์ ์
docs/
ANTHROPIC_API_KEY
FMP_API_KEY
NEXT_PUBLIC_SUPABASE_URL
SUPABASE_SERVICE_ROLE_KEY
- ์ ์ฅ์ ์ฐ๊ฒฐ + README + .gitignore
- ๋ธ๋์น ๊ตฌ์กฐ (main/dev/feature)
- CLAUDE.md ์ปจํ ์คํธ ํ๋ธ
- .claude ์ปค์คํ ์ปค๋งจ๋ + Agent Skill
- Agent ์ํฌํ๋ก์ฐ ๊ฐ์ด๋ (์์ ๋จ์ / ํ๋กฌํํธ ํจํด / ์ฒดํฌํฌ์ธํธ)
- GitHub Wiki ๊ธฐํ์ยท์ํฌํ๋ก์ฐ ์ ๋ฆฌ
- GitHub Issue๋ก Task ๋ฑ๋ก
- ํ๋ก์ ํธ scaffold (Next.js 14 App Router + TS + Tailwind)
- FMP API wrapper + ์บ์ฑ ๋ ์ด์ด (mock ์ฐ์ , TTL ์ ์ฑ
lib/cache) - ํ
๋ง ํ์ ํ๋กฌํํธ v1 (
lib/ai/prompts, ๋ฒ์ ๋ก๊ทธdocs/prompts.md) - Tenbagger Score ์๊ณ ๋ฆฌ์ฆ v1 (
lib/score, ๊ฐ์ค์น 25/20/15/25/15) - Bull/Bear/Verdict ํ๋กฌํํธ v1 + ๋ฅ๋ค์ด๋ธ UI (๋ ์ด๋/์ฌ๋ฌด/๋ถ์)
- AI provider ์ถ์ํ (
lib/ai: mock|cli|api ์ค์์นญ) - Supabase ์ค์ฐ๋ (ํ์ฌ in-memory mock ์บ์)
- ์ค API(FMP/Claude) ์๋ต ์คํค๋ง ์ค๋ฐ์ดํฐ ๊ฒ์ฆ (์ฒดํฌํฌ์ธํธ 3.2)
mock์ผ๋ก end-to-end ๋์ ํ์ธ ์๋ฃ (
AI_PROVIDER=mock): ๋๋ฉ โ/searchโ/company/[ticker]. typecheck/build ํต๊ณผ. ์คํ:AI_PROVIDER=mock npm run dev
- 2026-06-15: ๋ฐฐํฌ ์ ๋ต = ๋ก์ปฌ ์คํ. ๋ณ๋ ํธ์คํ
(Vercel ๋ฑ) ์์ด ์ฌ์ฉ์๊ฐ ์ ์ฅ์ clone โ
npm installโnpm run dev. mock ๋ชจ๋ ๊ธฐ๋ณธ, ์ค ํค๋.env.local์ ์ ํ ์ฃผ์ ..gitignore์์.env.example์ถ์ ํ์ฉ(!.env.example),.nvmrc(20)ยทengines.node>=18.18์ถ๊ฐ, README "์์ํ๊ธฐ"๋ฅผ ๋ก์ปฌ ์ค์น ๊ฐ์ด๋๋ก ๋ณด๊ฐ. - 2026-06-14: ๊ตญ์ฅ(ํ๊ตญ์ฃผ) ์ง์ ์ ๊ฑฐ โ ๋ฏธ๊ตญ์ฃผ ์ ์ฉ์ผ๋ก ๋ฒ์ ์ถ์.
Marketํ์ ยท์์ฅ ํํฐ(market/ALL)ยทDART/KRX ์ฐธ์กฐ๋ฅผ ์ฝ๋ยท๋ฌธ์์์ ๋ชจ๋ ์ ๊ฑฐ. - 2026-06-02: AI ํธ์ถ์ provider ์ถ์ํ(
lib/ai)๋ก mock|cli|api ์ ํ. ๊ฐ๋ฐ์cli(claude -p, ๊ตฌ๋ quota) ๋๋mock, ํ๋ก๋์ ์api. - 2026-06-02: ์บ์ฑ์ read-through(
lib/cache), TTL์ PRD ยง4.2. Supabase ๋ฐฑ์๋๋ ๋ฏธ์ฐ๋(in-memory). - 2026-06-02: UI๋ Bloomberg Terminal(classic GUI) ์ปจ์
์ผ๋ก ์ ๋ฉด ํต์ผ. ๊ท์นยทํ ํฐ ๋จ์ผ์์ค docs/DESIGN.md, ์ ๋ณธ ๋ ํผ๋ฐ์ค
docs/design/bloomberg-reference-3.png. ํ๋ฆฌ๋ฏธํฐ๋ธcomponents/terminal/*(Panel/DataRow/ColHead/Delta/Tag/Cell/Sparkline/Bar/LineChartPanel/TopToolbar/CommandLine). ์ ํ๋ฉด(๋๋ฉยท๊ฒ์ยท๋ฅ๋ค์ด๋ธ) ์ ์ฉ ์๋ฃ, ํ ํฐ ์๋ฐ 0.
@anthropic-ai/sdk๋ prompt caching GA ์ํด ^0.100 ์ฌ์ฉ (์ด๊ธฐ 0.30 โ ์ ๊ทธ๋ ์ด๋).- Supabase/FMP/Claude ์ค์ฐ๋ ๋ฏธ๊ฒ์ฆ โ ํ์ฌ ์ ๊ตฌ๊ฐ mock ๊ฒฝ๋ก๋ง ์คํ๋จ.