Toolchain, commands, and CI
SkillCloud & infraLets your agent install dependencies, run builds, tests, and lint, and start local dev services for Latitude projects.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Toolchain, commands, and CI skill
About this capability
Installing dependencies, running dev/build/test/lint, filtering packages, single-test runs, git hooks, preparing a clone (.env.development / .env.test), or Docker-backed local services and dev servers.
What this skill tells your AI
The instructions your AI receives, as published by latitude-dev/latitude-llm in .agents/skills/toolchain-commands/SKILL.md and read by ahel’s review.
When to use: Installing dependencies, running dev/build/test/lint, filtering packages, single-test runs, git hooks, preparing a clone (.env.development / .env.test), or Docker-backed local services and dev servers.
Stack (summary)
- Runtime: Node.js
25viamise.toml(alsoenginesin rootpackage.json). Usemise install/mise execso Vitest andUint8Array.fromHex/toHexmatch production; Node 22 lacks those APIs and will fail tests that touch@repo/utilscrypto helpers. - Package manager:
package.jsonpackageManagerfield (e.g. pnpm). Install deps:pnpm install - Task runner:
turbovia root scripts - Lint/format: Biome (
@biomejs/biome1.9.x) - TypeScript: 6.0.x + TypeScript 7 beta (
@typescript/native-preview) for typechecking.pnpm typecheckrunstsgo(the native preview binary) — never invoketscdirectly in scripts or docs. - Bundler:
tsdown(replaces the deprecatedtsup). App builds and library DTS emission run undertsdown. - Tests: Vitest 3.x
- Core logic: Effect TS primitives
- Postgres ORM: Drizzle
- API/ingest boundaries: Hono
- Web app: TanStack Start + React
Top-level commands (repo root)
pnpm dev— run all workspacedevtasks via Turbopnpm build— run all workspace buildspnpm check— run all workspace lint and format check scriptspnpm typecheck— run all workspace typecheckspnpm test— run all workspace testspnpm hooks— configure local git hooks for this clone
Searching the repo
grep is a shadowed shell function here, and some sources (e.g. packages/domain/spans/src/otlp/transform.ts) trip binary-file detection because of lone surrogates, which silently suppresses matches. Use command grep -a, or the dedicated search tools, before concluding a string is absent.
Git hooks (pre-commit)
- Pre-commit hook lives at
.husky/pre-commit - Pre-commit runs:
pnpm check,pnpm typecheck, andpnpm knip - Hooks are auto-configured on dependency install via root
preparescript (pnpm hooks) - Existing clones should run
pnpm hooksonce to configurecore.hooksPathand hook permissions
Package-scoped (--filter)
pnpm --filter @app/api check
pnpm --filter @app/api typecheck
pnpm --filter @app/api build
pnpm --filter @app/api test
Path-based filtering also works:
pnpm --filter ./apps/api test
pnpm --filter ./packages/domain/workspaces check
Single-test workflows
Vitest is invoked as vitest run --passWithNoTests:
# Single test file
pnpm --filter @app/api test -- src/some-file.test.ts
# Test name pattern
pnpm --filter @app/api test -- -t "health endpoint"
# Specific file + name
pnpm --filter @app/api test -- src/some-file.test.ts -t "returns 200"
CI-equivalent local checks
Before opening PRs:
pnpm check
pnpm typecheck
pnpm test
CI workflows (check.yml, typecheck.yml, knip.yml, test.yml) use Node 25 + pnpm and run the same commands.
Cloud agent environment setup
Before starting work, ensure .env.development and .env.test exist. They are required for the dev server, tests, and tooling like knip.
cp .env.example .env.development
cp .env.example .env.test
Then set NODE_ENV appropriately:
- In
.env.development:NODE_ENV=development - In
.env.test:NODE_ENV=test
This provides working defaults for all services (Postgres, ClickHouse, Redis, etc.) that match the Docker Compose setup. For LAT_* naming and parseEnv usage when you add variables, see env-configuration.
Local services (Docker) and dev apps
Start infrastructure before app processes (e.g. in cloud agents or a fresh clone):
sudo dockerd &>/dev/null & # if the daemon is not already running
sudo docker compose up -d postgres clickhouse redis redis-bullmq mailpit temporal temporal-ui
Migrations and seeds (only when the user asked you to set up DBs in this conversation — see database-postgres and database-clickhouse-weaviate for agent rules):
pnpm --filter @platform/db-postgres pg:migrate
pnpm --filter @platform/db-clickhouse ch:up
pnpm --filter @platform/db-postgres pg:seed # optional: seed users
pnpm --filter @platform/db-clickhouse ch:seed # optional: sample spans
Dev servers (e.g. tmux-style):
pnpm --filter @app/web dev &
pnpm --filter @app/api dev &
pnpm --filter @app/ingest dev &
pnpm --filter @app/workers dev &
pnpm --filter @app/workflows dev &
pnpm --filter @app/design-system dev &
| Service | Port | Health check |
|---|---|---|
| Web | 3000 | curl http://localhost:3000 (redirect to /login) |
| API | 3001 | curl http://localhost:3001/health |
| Ingest | 3002 | curl http://localhost:3002/health |
| Workers | 9090 | curl http://localhost:9090/health |
| Workflows | 9091 | curl http://localhost:9091/health |
| Design system | 5173 (Vite default) | pnpm --filter @app/design-system dev |
| Mailpit UI | 8025 | curl http://localhost:8025 |
| Temporal UI | 8233 | curl http://localhost:8233 |
Manual auth: magic links appear in Mailpit at http://localhost:8025 after signup at http://localhost:3000/signup.
Signals
- GitHub stars
- 5k
- Forks
- 387
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
toolchain-commands- Source
- github.com/latitude-dev/latitude-llm