ai-startup-skills
AI 제품을 만드는 스타트업을 위한 7단계 에이전트 스킬: 검증 → 비즈플랜 → 정책 → 로드쇼 → 고객 확보 → 가격 책정 → 등록
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A modular enterprise platform unifying CRM, ERP, ECM, HRIS, innovation management, identity and analytics behind one product experience.
CLAUDE.md is the architectural contract. Read it before changing anything — it defines module boundaries, the permission model, the database conventions and the rules every change must follow. §28 is the authoritative implementation status.
Phase 0 and Phase 1 are fully done and verified against a live database: Supabase in eu-west-1, four migrations applied (including deny-by-default row-level security and an append-only audit trigger), seed run, and a real administrator account created and verified — anyone with that account can sign in today.
| Suite | Result |
|---|---|
npm run verify (typecheck → lint → test) | 107 passing |
| Integration vs PostgreSQL (local by default) | 35 passing |
| Playwright e2e vs running app + Supabase | 7 passing |
npm run build | 10 routes |
Next.js 16 (App Router) · React 19 · TypeScript 5.9 strict · Tailwind 4 · Prisma 7 with the
pg driver adapter · PostgreSQL (Supabase) · Supabase Auth · Zod · Vitest · Playwright.
Versions are pinned exactly. Read the upgrade hazards in CLAUDE.md §3 before bumping anything — TypeScript must stay below 6.1 and ESLint on 9.x, or linting breaks.
npm install
cp .env.local.example .env.local # then fill in real values
npx prisma generate
npm run dev
The seed deliberately creates no user account — a seeded admin password would be a backdoor committed to the repository. Two steps, once per environment:
npm run db:bootstrap-admin -- --id <user-uid> --email [email protected] --name "Your Name"
Then npm run dev and sign in at http://localhost:3000/login.
Both DATABASE_URL and DIRECT_URL use the session pooler (port 5432), not
db.<ref>.supabase.co. That direct host publishes only an AAAA record, so any machine
without routable IPv6 cannot reach it at all. Do not switch to the transaction pooler on
6543: it breaks migrations and Prisma's prepared statements. Details in CLAUDE.md §23.
| Command | What it does |
|---|---|
npm run dev | Development server |
npm run verify | The gate: typecheck → lint → test. Must pass. |
npm run build | Production build |
npm run test | Unit, authorization and (if configured) integration |
npm run test:integration | Integration suite against the local test database |
npm run test:e2e | Playwright against a running app |
npm run db:migrate | Create and apply a migration (review the diff first) |
npm run db:deploy | Apply pending migrations (no schema diffing) |
npm run db:seed | Idempotent seed |
npm run db:bootstrap-admin | Link a Supabase user and grant platform-admin |
npm run db:studio | Prisma Studio |
npm run format | Prettier |
npm run test:integration
This reads TEST_DATABASE_URL from .env.local, which points at a local PostgreSQL
database techvault_test — isolated from the Supabase development data and ~6x faster than
reaching eu-west-1 (9s vs 55s).
TEST_DATABASE_URL is a separate variable from DATABASE_URL on purpose: these tests
TRUNCATE every IAM and platform table, so pointing them at real data must be a deliberate
act. Never aim it at Supabase or production.
To recreate the test database from scratch:
psql -U postgres -c "CREATE DATABASE techvault_test"
DATABASE_URL="postgresql://postgres:[email protected]:5432/techvault_test" npx prisma migrate deploy
A modular monolith: one Next.js app, one PostgreSQL database, one schema per module
(iam, platform, and later crm, erp, ecm, hris, innovation, bi).
modules/<domain>/; a module's contracts/ is its only public
surface. services/ and repositories/ are private.platform/ and never import a module.platform/authz. No module implements its own.eslint.config.mjs.Never commit .env* (only .env.local.example). The Supabase secret/service-role key is
server-only and is currently not configured, because nothing needs it yet. See
CLAUDE.md §18.