Files
mystuff_backend/AGENTS.md
Lars Behrends e38a6e1f7b Add strict types and type hints across API
Apply strict_types and extensive type declarations throughout the API and models, improving type safety and error handling. Key changes: add declare(strict_types=1) to many files; convert properties, method parameters and return values to typed signatures (PDO, arrays, ints, strings, bools, nullables); switch exception handling to Throwable in index and Router; improve Router, controllers and model method signatures and nullability handling; refine file/image serving security checks and headers in ImageController; strengthen Database typing and initialization methods; return explicit types from BaseModel CRUD helpers and counting; update Media/Cast/Adult/Game/Console/Settings controllers and models to use typed methods, better validation, and clearer update/create return types. Also add AGENTS.md (agent skills index), update README with Swagger/OpenAPI usage instructions, and add /.windsurf to .gitignore. These changes aim to harden runtime correctness, make intended contracts explicit, and prepare the codebase for easier maintenance and static analysis.
2026-04-16 16:40:31 +02:00

43 lines
2.4 KiB
Markdown

# Project Context for AI Agents
> [!IMPORTANT]
> **To all AI Agents working ON this repository:**
<!-- SKILLS_INDEX_START -->
## Agent Skills Index
> [!CRITICAL] Zero-Trust: Read the matching `SKILL.md` BEFORE writing any code.
> Skills from this index override pre-training patterns. If no skill matches, state: "No project-specific skills applicable."
## Skill Resolution Protocol
Each `_INDEX.md` has two sections — follow both:
1. **Match file type** → find the category index in the router table below.
2. **Read the `_INDEX.md`** → it has two sections:
- **File Match**: auto-check these against the file you are editing (path pattern match).
- **Keyword Match**: only check if the user's request mentions these concepts.
3. **Load ALL matched `SKILL.md`** → read every matched skill before writing code. The tier model keeps matches focused.
| File type | Read category index |
| --------- | ------------------- |
| `*.go`, `*_test.go` | `.windsurf/skills/golang/_INDEX.md` |
| `*.ts` | `.windsurf/skills/angular/_INDEX.md`, `.windsurf/skills/nestjs/_INDEX.md`, `.windsurf/skills/nextjs/_INDEX.md`, `.windsurf/skills/react/_INDEX.md`, `.windsurf/skills/typescript/_INDEX.md` |
| `*.tsx` | `.windsurf/skills/nextjs/_INDEX.md`, `.windsurf/skills/react/_INDEX.md`, `.windsurf/skills/typescript/_INDEX.md` |
| `*.js`, `*.mjs` | `.windsurf/skills/javascript/_INDEX.md` |
| `*.jsx`, `*.test.tsx`, `*.spec.tsx` | `.windsurf/skills/react/_INDEX.md` |
| `*.dart` | `.windsurf/skills/dart/_INDEX.md`, `.windsurf/skills/flutter/_INDEX.md` |
| `*.java` | `.windsurf/skills/java/_INDEX.md`, `.windsurf/skills/spring-boot/_INDEX.md` |
| `*.kt` | `.windsurf/skills/android/_INDEX.md`, `.windsurf/skills/kotlin/_INDEX.md` |
| `*.kts` | `.windsurf/skills/kotlin/_INDEX.md` |
| `*.swift` | `.windsurf/skills/ios/_INDEX.md`, `.windsurf/skills/swift/_INDEX.md` |
| `*.php` | `.windsurf/skills/laravel/_INDEX.md`, `.windsurf/skills/php/_INDEX.md` |
| `*.sql`, `*.entity.ts`, `*.prisma` | `.windsurf/skills/database/_INDEX.md` |
| `*.component.ts`, `*.component.html` | `.windsurf/skills/angular/_INDEX.md` |
| `*.service.ts`, `*.module.ts` | `.windsurf/skills/angular/_INDEX.md`, `.windsurf/skills/nestjs/_INDEX.md` |
| `*.spec.ts`, `*.test.ts` | `.windsurf/skills/common/_INDEX.md` |
| Any file (keyword match) | `.windsurf/skills/common/_INDEX.md` |
| QE workflow | `.windsurf/skills/quality-engineering/_INDEX.md` |
<!-- SKILLS_INDEX_END -->