Skip to main content

team-server-dev

Use when developing the Team Edition server (packages/team-server) — local run, tests against the guarded fleetlens_test database, authoring hand-written DB migrations, demo data, and the fixture-privacy rule.

Jump to install

Source facts

Repository
cowcow02/fleetlens
Last source activity
July 15, 2026 at 04:51
Detected SKILL.md language
English
Stars
4
Forks
1

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
team-server-dev
description
Use when developing the Team Edition server (packages/team-server) — local run, tests against the guarded fleetlens_test database, authoring hand-written DB migrations, demo data, and the fixture-privacy rule.
# Team Edition (team-server) development `packages/team-server/README.md` is the reference (local development, architecture orientation, env vars). This skill is the working checklist an agent needs in-loop. ## Run locally ```bash createdb fleetlens_local DATABASE_URL=postgres://localhost:5432/fleetlens_local \ FLEETLENS_ENCRYPTION_KEY=$(openssl rand -hex 32) \ BASE_URL=http://localhost:3322 \ pnpm -F @claude-lens/team-server dev ``` Migrations apply automatically on boot; the **first signup becomes the staff/admin account**. Root `pnpm dev` also boots team-server and crashes the whole turbo run without `DATABASE_URL` — export first or run per-package. ## Tests ```bash createdb fleetlens_test # once pnpm -F @claude-lens/team-server test ``` The suite defaults to `postgres://localhost:5432/fleetlens_test`, migrates it, and **truncates every table between tests**. It refuses any database whose name doesn't contain `test` — do not weaken that guard, and never point `DATABASE_URL` at a database you care about. ## Authoring a migration Read `packages/team-server/src/db/MIGRATIONS.md` first. Non-negotiables: - **Hand-write the SQL file** (`src/db/migrations/NNNN_<desc>.sql`, next free number). Do NOT run `drizzle-kit generate` — the journal is frozen at 0008 and it emits a corrupt migration re-creating existing tables. - First line must be `-- description: ...` (release pipeline hard-fails without it). - **Expand/contract**: every migration must be safe under the PREVIOUS container version still serving. DROP/RENAME take two releases — 0015 (expand) → 0016 (contract) is the worked example. - Update `src/db/schema.ts` in the same commit; run the test suite — it applies every migration including orphans. - Use the `migration-reviewer` agent (`.claude/agents/migration-reviewer.md`) on the diff before opening the PR. ## Fixture-privacy rule (hard requirement) All demo/mock/test data in this package is fictional by construction: project `orbit-shop`, tickets `ORB-<n>`, members Erin/Alice/Bob/Dana, emails `@example.com`. Never introduce real employer/customer names, real ticket prefixes, or real people into `insights-mock-data.ts`, seed scripts, or test fixtures — the `?mock=1` demo view renders this content to real customers, and scrubbing leaked data once cost a dedicated audit round. ## Releasing Own track: entry in `packages/team-server/CHANGELOG.md`, then version bump + `server-v<X.Y.Z>` tag (exact commands in root `CLAUDE.md` → Release process — the npm-from-subdirectory gotcha is real). Ships to GHCR; customers pin `:X.Y.Z` tags, `:latest` tracks master.
View on GitHub