An AI-powered scoping tool that interviews clients through a structured conversation, generates project specs, breaks them into tasks, and syncs with GitHub for tracking.
- Admin creates a project → generates a unique shareable link
- Client opens the link → no login required → chats with an AI that runs a structured discovery interview
- AI auto-transitions through phases: discovery → requirements (PRD) → implementation plan → task breakdown
- Spec & tasks are generated → admin reviews and edits in the dashboard
- Client sees progress → approved spec and task status on their link
- GitHub sync → tasks become GitHub issues, status polls back automatically
Monorepo using pnpm workspace:
- apps/user-application — TanStack Start frontend (admin dashboard + public client pages)
- apps/data-service — Hono API backend (Claude AI integration, GitHub API)
- packages/data-ops — Shared DB layer (schemas, queries, auth)
Stack: TanStack Start, Hono, Better Auth, Drizzle ORM, Cloudflare Workers, Neon Postgres, Claude API.
- Project — identified by unique slug for public access
- Message — conversation history (user + assistant) per project
- Spec — generated markdown specification
- Task — individual work items, optionally linked to GitHub issues
- Admin pages require Better Auth login
- Client pages are fully public (slug = access)
pnpm run setupInstalls all dependencies and builds data-ops package.
pnpm run dev:user-application # TanStack Start app (port 3000)
pnpm run dev:data-service # Hono backend service (port 8788)From packages/data-ops/ directory:
pnpm run drizzle:dev:generate # Generate migration
pnpm run drizzle:dev:migrate # Apply to databaseReplace dev with staging or production.
packages/data-ops/—.env.dev,.env.staging,.env.production(see .env.example)apps/user-application/—.envfiles per Vite modeapps/data-service/—.dev.vars(local), Cloudflare dashboard (remote)
pnpm run test # run all tests
pnpm run test:watch # watch mode
pnpm run test:coverage # with coverage reportUses Vitest with workspace projects. Each package can also run tests independently via pnpm --filter <package> test.
pnpm run deploy:staging:user-application
pnpm run deploy:staging:data-service
pnpm run deploy:production:user-application
pnpm run deploy:production:data-serviceSecrets sync: bash apps/{app}/sync-secrets.sh {env}
To deploy to a different CF account, copy .env.example to .env and fill in CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKEN.
Each package has its own AGENTS.md with detailed structure, patterns, and workflows (CLAUDE.md symlinks to AGENTS.md).
- Implementation plan: plans/ai-scoping-tool.md
- Planning skills (brainstormer) are pre-configured via
.claude/settings.json