AGENTS.md@packages/trueforge-ui · git:20261007.8d39138 · 2026-10-07 · sha256 53ec54a437102037

AGENTS.md@packages/trueforge-ui git:20261007.8d39138A

Immutable. This exact content never changes and is served at /api/v1/blob/53ec54a437102037.

# @truefoundry/trueforge-ui

- Atoms are presentational; containers wire runtime hooks and resolve atoms via `useSlot`.
- New JSX-bearing atoms MUST augment `AtomSlots`, register in `defaultSlots`, and be consumed via `useSlot` (see `.cursor/rules/trueforge-ui-slots.mdc`).
- AgentUIServer / server-port types MUST be re-exported from `src/server/types.ts` only — no parallel hand-written DTOs.
- UI lengths use `rem` (1rem = 16px); prefer Tailwind scale utilities.

## Analytics

- The analytics sink is host-only. This package MUST NOT depend on PostHog or any other vendor SDK.
- Canonical event names live only in `src/analytics/events.ts` (`AnalyticsEvents`).
- Fire from containers wrapping atom callbacks (or documented atom chrome: settings, config trigger, share). Do not duplicate sinks.
- `useTrackAnalytics()` MUST no-op when no host `track` is provided (never throw).
- New clickable product actions MUST add a catalog entry and a fire site in the same change.