knowledge-base
This file contains domain knowledge about the Cal.diy product and codebase. For coding…
**Impact: CRITICAL**
$ npx -y skills add calcom/cal.diy --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
**Impact: CRITICAL**
title: Enforce Feature Boundaries Through Public APIs impact: CRITICAL impactDescription: Prevents architectural erosion and maintains loose coupling tags: architecture, boundaries, imports, coupling
**Impact: CRITICAL**
Features communicate through well-defined interfaces. If bookings needs availability data, it imports from `@calcom/features/availability` through exported interfaces, not by reaching into internal implementation details.
**Incorrect (reaching into internals):**
// Bad - Importing internal implementation details
import { calculateSlots } from "@calcom/features/availability/services/internal/slotCalculator";
import { AvailabilityCache } from "@calcom/features/availability/lib/cache";**Correct (using public API):**
// Good - Import through the feature's public API
import { getAvailability } from "@calcom/features/availability";
import type { AvailabilityResult } from "@calcom/features/availability";**Shared code placement:**
**Enforcement:** Domain boundaries are enforced automatically through linting. If `packages/features/bookings` tries to import from `packages/features/availability/services/internal`, the linter will block it. All cross-feature dependencies must go through the feature's public API.
**Benefits:**
Reference: [Cal.diy Engineering Blog](https://cal.com/blog/engineering-in-2026-and-beyond)
Repo: calcom/cal.com
This file contains domain knowledge about the Cal.diy product and codebase. For coding…
The `packages/features` package should contain only framework-agnostic code: - Repositories…
**Impact: CRITICAL (Prevents unauthorized access to sensitive data)**