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.
2.4 KiB
2.4 KiB
Project Context for AI Agents
Important
To all AI Agents working ON this repository:
Agent Skills Index
[!CRITICAL] Zero-Trust: Read the matching
SKILL.mdBEFORE 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:
- Match file type → find the category index in the router table below.
- 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.
- 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 |