Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# AGENTS

This repo hosts two things:

- **Bloom** (repo root) — a Vite + TypeScript webcam hand-tracking web app. Raise a hand → a tulip blooms open; lower it → it closes. Camera stays on-device and is never displayed. Source in `src/`, prebuilt tulip frames in `public/tulip/`.
- **GODMODE** (`godmode/`) — a portable agent plugin package (markdown agents/skills/commands + shell scripts). No build system; see `godmode/README.md` and `godmode/AGENTS.md`.

## Cursor Cloud specific instructions

Environment is refreshed on startup by the update script (`npm install`). The notes below are non-obvious caveats; standard commands live in `package.json` and `README.md`.

### Bloom (primary app)
- Package manager is **npm** (`package-lock.json`). Node 18+ is fine (built with Node 22).
- Dev server: `npm run dev` → Vite on **port 5175** (fixed in `vite.config.ts`).
- There is **no lint script and no test framework**. The quality/type gate is `npm run build` (`tsc && vite build`); run it to typecheck.
- **Runtime network egress is required**: the MediaPipe hand-tracking WASM is fetched from `cdn.jsdelivr.net` and the model (`hand_landmarker.task`) from `storage.googleapis.com` at runtime (see `src/vision.ts`). These are not bundled; without egress the "Warming up…" step never completes.
- Core functionality needs a camera **and a visible hand**. To exercise the bloom in a headless cloud VM without a real webcam, launch Chrome with a fake camera fed by a video/image of raised open hands, e.g.:
`google-chrome --use-fake-ui-for-media-stream --use-fake-device-for-media-stream --use-file-for-fake-video-capture=/tmp/hands.y4m http://localhost:5175/`
Generate the `.y4m` from a hand image with ffmpeg. In `src/vision.ts`, `raise` is driven by how high the fingertips are in frame, so place the hand high (small y) to fully open the flower. The desktop X display is `:1`.

### GODMODE plugin (`godmode/`)
- No dependencies/build. Its self-check is `bash godmode/scripts/validate.sh` (requires `python3`); it validates plugin manifests and skill frontmatter.