Enforces FastAPI Clean Architecture with blocking validation. Use when implementing router-service-repository patterns, enforcing layer separation, or validating dependency injection in backend code.
View on GitHubyonatangross/orchestkit
ork
January 25, 2026
Select agents to install to:
npx add-skill https://github.com/yonatangross/orchestkit/blob/main/skills/backend-architecture-enforcer/SKILL.md -a claude-code --skill backend-architecture-enforcerInstallation paths:
.claude/skills/backend-architecture-enforcer/Enforce FastAPI Clean Architecture with **BLOCKING** validation. ## Architecture Overview ``` +-------------------------------------------------------------------+ | ROUTERS LAYER | | HTTP concerns only: request parsing, response formatting | | Files: router_*.py, routes_*.py, api_*.py | +-------------------------------------------------------------------+ | SERVICES LAYER | | Business logic: orchestration, validation, transformations | | Files: *_service.py | +-------------------------------------------------------------------+ | REPOSITORIES LAYER | | Data access: database queries, external API calls | | Files: *_repository.py, *_repo.py | +-------------------------------------------------------------------+ | MODELS LAYER | | Data structures: SQLAlchemy models, Pydantic schemas | | Files: *_model.py (ORM), *_schema.py (Pydantic) | +-------------------------------------------------------------------+ ``` ## Validation Rules (BLOCKING) | Rule | Check | Layer | |------|-------|-------| | **No DB in Routers** | Database operations blocked | routers/ | | **No HTTP in Services** | HTTPException blocked | services/ | | **No Business Logic in Routers** | Complex logic blocked | routers/ | | **Use Depends()** | Direct instantiation blocked | routers/ | | **Async Consistency** | Sync calls in async blocked | all | | **File Naming** | Must follow naming convention | all | ## File Naming Conventions ### Quick Reference | Layer | Allowed Patterns | Blocked Patterns | |-------|-----------------|------------------| | **Routers** | `router_*.py`, `routes_*.py`, `api_*.py`, `deps.py` | `users.py`, `UserRou