the signals and their derived score are provisional and subject to change.
validate manually before sharing.
3184b1532fd74a0b777207f8a86e9efe7dafce659666eadc5bbf1 week agoCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>56319b76fc603 weeks agoCo-authored-by: Claude Fable 5.1 <noreply@anthropic.com>96970cfba6c73 weeks agoCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>5e89efba646f6 months agoCo-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>c91d8745b4607 months agoCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>d6c724b13be18 months agoCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>445f9174eaea1 year agoCo-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>e2ffc9d5a10c1 year agoCo-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com># server/AGENTS.md
NestJS + Kysely + PostgreSQL, layered `controllers` → `services` → `repositories`. The process model and job system are described in `docs/docs/developer/architecture.mdx`.
## Rules
- ESM with no relative imports (lint-enforced). Import as `src/...js` and `test/...js`.
- Every route has `@Authenticated(...)` and `@Endpoint({ summary, description, history })`; the global `AuthGuard` throws otherwise. Controllers only call one service method with `(auth, dto)`.
- Services `extends Ba# e2e/AGENTS.md
End-to-end tests against a real Immich stack from `docker-compose.yml` (server on port 2285): API specs with vitest, browser specs with Playwright.
## Rules
- `test-assets/` is a git submodule; initialize it before running exif or upload specs.
- Use the shared helpers in `src/utils.ts` (`utils.adminSetup`, `utils.userSetup`, `utils.resetDatabase`, `utils.createAsset`, `utils.waitForQueueFinish`, `asBearerAuth`, `asKeyAuth`, `immichCli`) instead of re-implementing login or fixtures.
## S# mobile/AGENTS.md
Flutter app with Riverpod, Drift (SQLite), auto_route, pigeon and a Rust core in `../native/`.
## Rules
- Run `mise //mobile:checkout` after switching branches. All generated Dart is git-ignored; never edit it.
- New code follows `lib/domain/` (models, services, utils; no dependency on presentation or infrastructure) → `lib/infrastructure/repositories/` → `lib/presentation/`, wired by providers in `lib/providers/`. New data access goes in `lib/data/` (`lib/data/db/main/` holds the # AGENTS.md
Immich monorepo: `server/` (NestJS API + job workers), `web/` (SvelteKit SPA), `mobile/` (Flutter), `native/` (Rust core for mobile), `machine-learning/` (FastAPI + ONNX), `e2e/` (API + Playwright tests), `packages/` (`@immich/sdk`, `@immich/cli`, plugin SDK/core, release scripts), `open-api/`, `i18n/`, `docs/`. Before changing code in `server/`, `web/`, `mobile/`, `native/`, `machine-learning/` or `e2e/`, read that folder's `AGENTS.md`.
## Rules
- No PRs of LLM-generated code; the human cont# machine-learning/AGENTS.md
Python 3.12 FastAPI service running ONNX models for CLIP, facial recognition and OCR, managed with uv.
## Rules
- Install with `uv sync --extra cpu`; run tools through `uv run` or the mise tasks.
- `mise //machine-learning:check` is `mypy --strict`, and ruff enforces line length 120. Code must pass both.
- `immich_ml/main.py` is the app (`/predict`, `/ping`); `pipeline.py` composes the Clip, FacialRecognition and Ocr pipelines.
## Skills
- **Add or change a model**: models # web/AGENTS.md
SvelteKit SPA (SSR off), Svelte 5 runes, Tailwind, `@immich/ui`, `@tanstack/svelte-query`. Talks to the server through the workspace `@immich/sdk`.
## Rules
- Import with the `#lib/*` alias and an explicit `.ts` extension: `import { authManager } from '#lib/managers/auth-manager.svelte.ts'`. Never `$lib`. Other aliases: `#i18n/*`, `#test-data/*`, `#tests/*`.
- Build URLs with the typed `Route` object in `src/lib/route.ts`. `continue`/`previousRoute` query params must go through `Route.con# native/AGENTS.md
Rust code compiled into the mobile app. `crates/codecs` holds the image decoders (one feature each), `crates/native_core` the shared logic, and `crates/native_core_ffi` the C ABI whose header cbindgen writes to `include/native_core.h`. `native_core/` is the Flutter package with the build hook that compiles the crates from source and the ffigen bindings.
## Rules
- Every `unsafe` block needs a `// SAFETY:` comment; clippy denies `undocumented_unsafe_blocks` and `mise //native:lint` runsnone