infra

SkillDev tools

Helps your agent work with packages, dependencies, monorepo structure, and build configuration.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the infra skill

About this capability

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

What this skill tells your AI

The instructions your AI receives, as published by trycompai/comp in .agents/skills/infra/SKILL.md and read by ahel’s review.

Source Cursor rule: .cursor/rules/infra.mdc. Original Cursor alwaysApply: false.

Infrastructure

Package Manager

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

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

# 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

// ✅ 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

# 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:

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

mkdir 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"]
}

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

Signals

GitHub stars
2k
Forks
412
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
infra
Source
github.com/trycompai/comp