.claude/skills/cloud-dev-environment/SKILL.md
Cursor Cloud VM setup and service startup instructions for local development
npx skillsauth add elie222/inbox-zero cloud-dev-environmentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
apps/web): Next.js 16 app (Turbopack). Runs on port 3000.docker-compose.dev.yml.sudo dockerd (already running in snapshot).docker compose -f docker-compose.dev.yml up -d from repo root.cd apps/web && pnpm prisma:migrate:local (uses dotenv -e .env.local; do NOT use bare prisma migrate dev — it won't load .env.local).pnpm dev from repo root.The app reads apps/web/.env.local. Required non-obvious env vars beyond .env.example defaults:
DEFAULT_LLM_PROVIDER (e.g. openai) — app crashes at startup without this.MICROSOFT_WEBHOOK_CLIENT_STATE — required if MICROSOFT_CLIENT_ID is set.UPSTASH_REDIS_TOKEN must match the SRH_TOKEN in docker-compose.dev.yml (default: dev_token).pnpm test runs Vitest unit/integration tests (no DB or external services required).pnpm lint runs Biome. Pre-existing lint warnings/errors in the repo are expected.pnpm test-ai) require a real LLM API key and are skipped by default.The cloud VM is a Docker-in-Docker setup. Docker requires fuse-overlayfs storage driver and iptables-legacy. These are configured during initial setup. After snapshot restore, run sudo dockerd &>/dev/null & if Docker daemon is not running, then sudo chmod 666 /var/run/docker.sock.
tools
Use the Inbox Zero API CLI to inspect the live API schema, list and manage automation rules, and read inbox analytics through the public API. Use this when a task involves Inbox Zero rules, stats, or API-driven automation and can be solved through the CLI instead of browser interaction.
tools
Write focused unit tests for backend and utility logic
testing
Pause execution for a user-specified duration
testing
Update workspace packages while respecting the repo's pinned package list in .ncurc.cjs. Use when the user asks to update dependencies or refresh package versions.