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
9 changes: 9 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,12 @@ Before changing product behavior, read:
## Definition of done

A story is done when its acceptance criteria are mapped, tests pass, privacy impact is documented, and all user-visible outputs remain observational and non-diagnostic.

## Cursor Cloud specific instructions

The cloud VM is Linux (x86_64). Two of the three components run here; the SwiftUI app does not.

- Backend (`backend/`, FastAPI): fully runnable/testable. Uses `uv` + a uv-managed Python 3.13. Standard commands live in the `Makefile` (`make backend-run`, `make backend-test`) and `README.md`. `make backend-run` serves on port 8000: health at `/health`, Swagger UI at `/docs`, main endpoint `POST /v1/educator-insights`. It runs fully offline: OpenAI is disabled by default and returns a deterministic local summary. To exercise the remote provider, copy `.env.example` to `.env` and set `OPENAI_ENABLED=true` plus `OPENAI_API_KEY`.
- Shared Swift package (`apple/Packages/LearningLensCore`): also runs on Linux. It only imports `Foundation` + `Testing`, so `make swift-test` (and thus `make test`, which chains swift-test + backend-test) passes here using a Swift 6 Linux toolchain installed via `swiftly`. Despite the iOS/macOS platforms in `Package.swift`, SwiftPM ignores those on Linux.
- SwiftUI app (`apple/App`) is macOS/Xcode-only: `make xcodegen`, `xcodebuild`, and running the app itself CANNOT be done on this Linux VM. Verify app-level changes via the `LearningLensCore` tests here and rely on the `macos-15` CI job for the app build.
- Toolchains are on `PATH` in login shells (`uv` via `~/.local/bin`, `swift` via `~/.local/share/swiftly` sourced in `~/.profile`). In non-login/non-interactive shells, prepend `~/.local/bin` to `PATH` and `source ~/.local/share/swiftly/env.sh` before running `swift`. The Swift package has no external dependencies, so nothing needs re-syncing after startup; the startup update script only refreshes backend deps.
Loading