Instruction file imported from Baiqiang/333.fm (
.cursor/rules/monorepo-conventions.mdc). Copyright stays with the author.
Monorepo Conventions
- This repo is a pnpm monorepo. Use
pnpm@11.6.0; do not add Yarn/npm lockfiles. - Workspaces are
frontend,server, andpackages/*. Add shared code as a workspace package, not by cross-importing app internals. - Use root scripts for broad checks:
pnpm -r build,pnpm -r lint, or scoped commands such aspnpm --filter 333.fm build. - Keep app-specific dependencies in the app package. Only put framework-free dependencies in shared packages.
- Do not commit local runtime state:
.env*,node_modules, build outputs, logs, uploads, or local scratch scripts. - Prefer small, reviewable changes. Avoid refactors unrelated to the requested behavior.
Package Boundaries
frontend/may import from@333fm/utils; it must not import fromserver/src.server/may import from@333fm/utils; it must not import fromfrontend.packages/utilsmust stay framework-free: no Nuxt/Vue, Nest, TypeORM, browser DOM, or Node-only APIs unless the package is explicitly split.