ワンクリックで
infra
Use when working with packages, dependencies, monorepo structure, or build configuration
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when working with packages, dependencies, monorepo structure, or build configuration
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
How to reuse ANY integration check's results in a feature via the universal CheckResultsService (apps/api integration-platform). Use whenever a feature needs data produced by an integration check — "show 2FA status on People", "surface AWS S3 findings in X", "reuse a check's results", "per-user/per-resource results from a connected integration", "which integrations feed task T". Read this BEFORE writing your own IntegrationCheckResult / CheckRunRepository query — don't hand-roll it.
MANDATORY for any UI work in apps/app, apps/portal, or packages/design-system — every component, page, or layout change must work on mobile (~375px), tablet (~768px), desktop (~1280px), and large desktop (~1920px) BY DEFAULT, without being asked. Read this before writing or editing any JSX/TSX that renders visible UI. Triggers on: new component, page, layout, table, toolbar, form, modal/sheet, dashboard, "build UI", "add a column", "add a filter", any styling change.
Use when building or editing frontend UI components, layouts, styling, design system usage, colors, dark mode, or icons.
The contract every new or modified API endpoint must follow so it is correct for the public OpenAPI spec, the MCP server (npm @trycompai/mcp-server), the ValidationPipe, and the docs. Triggers on "new endpoint", "add API", "new DTO", "@Body", "@RequirePermission", "MCP tool", "edit controller in apps/api", "OpenAPI", or whenever editing controllers under apps/api/src/.
Use when SDK generation failed or seeing errors. Triggers on "generation failed", "speakeasy run failed", "SDK build error", "workflow failed", "Step Failed", "why did generation fail"
Use when generating an MCP server from an OpenAPI spec with Speakeasy. Triggers on "generate MCP server", "MCP server", "Model Context Protocol", "AI assistant tools", "Claude tools", "speakeasy MCP", "mcp-typescript"
| 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.
Use bun, never npm/yarn/pnpm.
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
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
# 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
// ✅ 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';
# 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
Always run checks:
bun run typecheck
bun run lint
Fix all errors before committing.
type X = SomeType instead_type instead of interfacemkdir packages/my-package
// 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"
}
}
// packages/my-package/tsconfig.json
{
"extends": "@trycompai/tsconfig/base.json",
"include": ["src"]
}
✅ Create packages for:
❌ Don't create packages for: