WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗사주와 기질 데이터를 바탕으로 생애 고민을 해석하고, AI 상담과 코칭 액션으로 이어주는 웹 프로토타입.
현재 단계: Explore
핵심 루프는 사주/기질 입력 -> 리포트 생성 -> 현재 고민 상담 -> 코칭 액션 등록 -> 재방문이다.
현재 구현된 사용자 기능:
lunar-javascript로 만세력 계산 후 Gemini가 해석.npm install
vercel env pull .env.local
npm run dev
개발 URL은 http://localhost:3000이다. vercel dev를 사용하면 Vercel 런타임과 env 주입을 더 가깝게 에뮬레이션할 수 있다.
직접 env를 세팅할 때는 .env.example을 따른다.
필수:
GEMINI_API_KEYKV_REST_API_URLKV_REST_API_TOKENNEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY주요 선택/운영:
GEMINI_MODEL — 기본 gemini-2.5-proAI_GENERATION_ENABLED — false면 신규 AI 생성을 즉시 중지AI_GENERATION_ACCOUNT_DAILY_LIMIT / AI_GENERATION_DAILY_LIMIT / AI_<KIND>_DAILY_LIMIT — 비용·남용 방어용 UTC 일일 한도ADMIN_EMAILSNEXT_PUBLIC_SITE_URLNEXT_PUBLIC_KAKAO_JS_KEYnpm run typecheck
npm run test:unit
npm run build
npm run eval:render
npm run test:e2e
npm run eval:render는 Gemini를 호출하지 않고 lib/prompts/defaults.ts 기준 프롬프트를 렌더한다.
실제 리포트/상담 생성 API는 Gemini 비용이 발생한다. 자동 검증에서 무심코 호출하지 않는다.
test:e2e는 Gemini를 호출하지 않으며, E2E_EMAIL/E2E_PASSWORD CI secret이 있을 때에만 전용 스테이징 계정의 로그인·공유 재발급·폐기를 추가로 검증한다.
app/
page.tsx # 랜딩, 게스트 시작
auth/ # 이메일 로그인/회원가입/confirm
onboarding/ # 사주 프로필 입력
dashboard/ # 리포트 허브
tci/, saju/, fusion/ # 기질/개인/융합 리포트
family/ # 가족 구성원 + 가족 리포트
consult/ # AI 상담
coaching/ # 코칭 액션 플랜
share/[token]/ # 공개 공유 리포트
api/ # profile, reports, consult, coaching, share, prompts
components/
report/ # 리포트 종류별 시각화/본문 컴포넌트
PromptDebugPanel.tsx # debug 화면 공통 프롬프트 패널
lib/
ai/ # Gemini provider abstraction
prompts/ # 기본 프롬프트, 렌더, KV override
saju/ # 만세력 계산, 포맷, 시각화 메타
tci/ # 문항, 하위척도, 채점
store/ # Upstash KV 저장소
supabase/ # SSR/client/middleware
scripts/eval/ # 비용 0 프롬프트 렌더/eval 하니스
docs/ # 제품/운영/시장/작업 문서
제품 데이터는 Supabase auth.uid()를 기준으로 Upstash KV에 저장한다.
promptsuser:{userId}:profileuser:{userId}:tci:{short|full}user:{userId}:tci — legacy short fallbackuser:{userId}:familyuser:{userId}:report:{tci|personal|family|fusion}user:{userId}:consultsuser:{userId}:actionsuser:{userId}:consult-basis — 옛 상담 근거 요약. 2026-10-15부터 만들지 않고, 인물 삭제 때 남은 값만 지운다share:{token}user:{userId}:share:{kind}리포트 4종은 종류별 최신본만 저장하고 재생성 시 덮어쓴다. 상담은 최근 50개, 액션은 최근 200개를 유지한다.
lib/prompts/defaults.ts가 source of truth다. KV prompts에 저장된 관리자 override가 있어도 default의 version이 더 높으면 default가 우선한다.
현재 prompt key는 7개다.
tci-reportpersonal-sajuyongsin-sajufamily-sajucompat-sajutci-saju-fusionconsult상세 문서는 docs/README.md, 제품 브리프는 docs/product/PRODUCT_BRIEF.md, 아키텍처는 docs/operations/ARCHITECTURE.md, 의사결정 기록은 docs/decisions/DECISIONS.md를 먼저 본다.
로컬 전용 프로젝트 매니저 메모:
~/Projects/project-manager/projects/sajulife.md~/Projects/project-manager/PROJECT_PRIORITIES.md