Add Cursor Cloud dev environment setup instructions

🟢 open · #1 · ericlovold/mike ← ericlovold/mike · opened 14d ago by ericlovold · self · +107 across 1 file · ↗ on GitHub

From the PR description

Summary

Sets up a fully local development environment for Mike (frontend + backend + Supabase + S3 storage) that runs end to end, and documents it in a new AGENTS.md for future agents. Verified non-LLM flows with no secrets, and the LLM assistant flow with an instance-wide Anthropic key.

Why / Motivation

Mike cannot run without Supabase (Auth + Postgres) and an S3-compatible bucket. To make the app runnable in a cloud dev VM without provisioning external services, this establishes a self-contained local stack: a local Supabase stack (supabase start) for Auth + Postgres and a local MinIO bucket for S3-compatible storage. The only committed change is the setup documentation.

Changes

  • Add AGENTS.md with a ## Cursor Cloud specific instructions section covering the non-obvious local-stack bring-up (Docker daemon, supabase start, MinIO bucket, schema load), the required gitignored .env values, and gotchas (JWT-style Supabase keys, optional LLM keys, model-picker behavior, missing LibreOffice, .env restart behavior, service ports).
  • No application code changed. backend/.env, frontend/.env.local, and the local supabase/ config are intentionally left untracked (gitignored / local-only).
  • The environment update script installs dependencies only: npm install --prefix backend and npm install --prefix frontend.

Tradeoffs & risks

  • The local stack (Docker/Supabase/MinIO) is started manually per the AGENTS.md steps - it is deliberately not in the update script (no service startup there). Office→PDF conversion needs LibreOffice, which is not installed by default. LLM flows need a provider key (added as a VM secret, not committed).

How verified

Standard checks (matching CI):

App Command Result
backend npm test --prefix backend 259 passed, 5 skipped
backend npm run build --prefix backend success
frontend npm run lint --prefix frontend 0 errors (warnings only)
frontend npm test --prefix frontend 38 passed
frontend npm run build --prefix frontend success (23 routes)

End-to-end run against the local stack (frontend :3000, backend :3001, Supabase :54321, MinIO :9000):

  • Non-LLM chain: sign up via Supabase Auth → create project via backend → upload a PDF → object confirmed in MinIO (documents/<user>/<doc>/source.pdf, 441 B). Verified via script and via the browser UI (project "Acme Corp NDA Review" with synthetic_nda.pdf listed as ready).
  • LLM chain (instance-wide Anthropic key): streaming POST /chat with a claude-* model returned a streamed answer; verified in the UI by selecting Claude Opus 4.8 in the assistant and asking "In one short sentence, what is an NDA?" - a coherent streamed answer appeared.

Non-LLM hello-world:

mike_hello_world_signup_project_upload.mp4 Project created Document uploaded to project

LLM assistant chat (Claude):

mike_assistant_claude_chat.mp4 Assistant answered NDA question with Claude

Checklist

  • Ran the relevant build/test command for the area changed.
  • Reviewed git diff and removed unrelated changes.
  • Updated docs / env examples if setup, config, or behavior changed.
  • No secrets, API keys, real documents, or .env files committed.

To show artifacts inline, enable in settings.

Our analysis

Document a self-contained local Mike stack — read the full analysis →

Think the analysis missed something the PR description covers?

Capture this PR into my fork

Download a Markdown prompt that tells Claude how to port every commit in this PR into your working tree. Run it via claude -p < capture-pull-1.md from inside the repo you want the changes in.

⬇ Download capture-pull-1.md