WallpaperMachine
The wallpapers you love. A new home on your Mac.
사주와 기질을 바탕으로 삶의 고민을 정리하고 다음 행동을 함께 설계하는 AI 인생 컨설팅 서비스
Translation pending
LifestyleGitHub @iplepineOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full 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