src/corecontains the layered Clean Architecture modules (domain, data, infra, main, presentation).src/apphosts business modules and pages (feature-oriented).src/assetsstores local assets used by the app.publiccontains static assets (also used by MSW workers).scriptscontains tooling likescripts/seed/index.mjsfor mock data.databasecontains project data artifacts (if needed for local setups).distis build output generated by Vite.
pnpm installinstalls dependencies (Node >= 20).pnpm devstarts the Vite dev server.pnpm buildrunstscand produces a production build.pnpm previewserves the production build locally.pnpm lintruns ESLint onsrc/**/*.{ts,tsx}.pnpm formatruns Prettier using repository settings.pnpm type:checkruns TypeScript withtsconfig.app.json.pnpm storybook:devruns Storybook atlocalhost:6006.pnpm seed:mockseeds mock data for local development.
- Indentation is 2 spaces (per
.editorconfig). - Use TypeScript strict style with
typealiases; if you must useinterface, prefix withIto satisfy ESLint. - Prefer
functiondeclarations for components and hooks. - File and folder names use
kebab-case; components usePascalCase. - Hooks end with
.hook.ts; stories use.stories.tsx. - Use absolute imports with
@/*and@database/*(examples:@/core/...,@/app/...). - Formatting uses Prettier (
semi: false,singleQuote: true) and ESLint; avoidconsole.log.
- No automated test suite is currently configured in this repo.
- If you add tests, prefer
*.test.tsor*.test.tsxcolocated with the feature. - When adding or changing API behavior, update MSW handlers in
src/core/mocks/handlers.
- Commit messages follow Conventional Commits (examples:
feat: ...,fix: ...,chore: ..., optional scopes likefeat(auth): ...). - PRs should include a clear summary, linked issue or ticket, and basic test steps.
- Include screenshots or screen recordings for UI changes when applicable.
GEMINI.mdandCODEX.mdare steering files with project rules; keep changes aligned with them.