Skip to main content

infra

Use when working with packages, dependencies, monorepo structure, or build configuration

Source facts

Repository
trycompai/comp
Last source activity
April 27, 2026 at 13:56
Detected SKILL.md language
English
Stars
2,079
Forks
445

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
infra
description
Use when working with packages, dependencies, monorepo structure, or build configuration
Source Cursor rule: `.cursor/rules/infra.mdc`. Original Cursor alwaysApply: `false`. # Infrastructure ## Package Manager **Use `bun`, never npm/yarn/pnpm.** ```bash bun install # Install deps bun add <pkg> # Add package bun add -D <pkg> # Add dev dependency bun run <script> # Run script bunx <cmd> # Execute binary ``` ## Monorepo Structure ``` comp/ ├── apps/ │ ├── api/ # NestJS backend │ ├── app/ # Next.js main app │ └── portal/ # Next.js portal ├── packages/ │ ├── db/ # Prisma (@trycompai/db) │ ├── ui/ # Legacy UI (@trycompai/ui); prefer @trycompai/design-system │ └── ... ├── turbo.json └── package.json ``` ## Running Commands ```bash # Multi-package (via turbo) bun run build # Build all bun run lint # Lint all bun run typecheck # Type check all bun run dev # Dev all # Single package bun run -F apps/app dev bun run -F @trycompai/db prisma:generate turbo build --filter=@trycompai/ui ``` ## Importing Between Packages ```tsx // ✅ Import from package name import { Button } from '@trycompai/design-system'; import { prisma } from '@trycompai/db'; // ❌ Never relative paths across packages import { Button } from '../../../packages/ui/src/button'; ``` ## Adding Dependencies ```bash # To specific package bun add axios -F apps/app bun add -D vitest -F @trycompai/ui # To root (dev tools only) bun add -D -w prettier typescript ``` ## After Code Changes **Always run checks:** ```bash bun run typecheck bun run lint ``` Fix all errors before committing. ## Common TypeScript Fixes - **Property does not exist**: Check interface definitions - **Type mismatch**: Verify expected vs actual type - **Empty interface extends**: Use `type X = SomeType` instead ## Common ESLint Fixes - **Unused variables**: Remove or prefix with `_` - **Any type**: Add proper typing - **Empty object type**: Use `type` instead of `interface` ## Creating a New Package ```bash mkdir packages/my-package ``` ```json // packages/my-package/package.json { "name": "@trycompai/my-package", "version": "0.0.0", "private": true, "main": "./src/index.ts", "scripts": { "build": "tsup src/index.ts --format cjs,esm --dts", "typecheck": "tsc --noEmit" } } ``` ```json // packages/my-package/tsconfig.json { "extends": "@trycompai/tsconfig/base.json", "include": ["src"] } ``` ## Package Boundaries **✅ Create packages for:** - Code used by 2+ apps - Self-contained, focused functionality **❌ Don't create packages for:** - Code only used in one app (colocate instead) - App-specific business logic
View on GitHub