Files
hanarang-rails/.claude/rules/stack.md
이랑이 e58945dc2c chore: 내부망 IP/인프라 정보 제거 — 공개 레포 정리
- deployment.md: 구체적 IP/VMID/LXC ID 제거 → 일반화
- stack.md: DB 호스트 정보 제거
- SPRINT-004: LXC 참조 제거
- migration: LXC ID 제거 → 역할 기반
- install.sh: 하드코딩 repo URL 제거 → RAILS_REPO_URL 또는 --repo 필수

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 13:37:26 +09:00

1.0 KiB

기술 스택

레이어 선택
런타임 Node 22 + TypeScript (strict)
패키지 pnpm (npm/yarn 금지)
상태 머신 XState v5
스키마 Zod
영속화 MariaDB (Prisma ORM)
프로세스 execa + AbortController
CLI citty
로그 pino (구조화 JSON)
디스코드 discord.js v14
테스트 Vitest

코딩 룰

  • TypeScript strict 모드 고정 (strict: true + noUncheckedIndexedAccess: true)
  • Zod 검증 경계 — 모든 외부 입력(파일, 네트워크, subprocess stdout)은 Zod 로 파싱 후 사용
  • async/await 만 사용.then() 체이닝 금지
  • Result<T, E> 패턴 — throw 대신 neverthrow 또는 자체 Result 로 에러 표면화
  • 로그는 pinoconsole.* 금지
  • 파일 경로는 node:path + import.meta.url__dirname 금지
  • 환경변수는 Zod schema 로 검증된 env 객체 통해서만process.env.X 직접 참조 금지