review-codebase
[Review & Quality] ⚡⚡⚡ Scan & analyze the codebase.
SKILL.md
| Name | review-codebase |
| Description | [Review & Quality] ⚡⚡⚡ Scan & analyze the codebase. |
Easy.Platform Framework
Easy.Platform is a comprehensive framework for building enterprise applications with .NET 9 backend and Angular 19 frontend, featuring Clean Architecture, CQRS, Domain-Driven Design, and event-driven patterns.
Quick Navigation
| I am a... | Start Here | Learn More |
|---|---|---|
| New Developer | Getting Started | Learning Paths |
| Backend Dev | Backend Quickref | CLAUDE.md Patterns |
| Frontend Dev | Frontend Quickref | CLAUDE.md Patterns |
| AI Agent | CLAUDE.md | docs/claude/ |
What is Easy.Platform?
Easy.Platform provides a complete foundation for enterprise application development:
- Clean Architecture: Four-layer architecture (Domain, Application, Infrastructure, Presentation) ensuring separation of concerns and testability
- CQRS Pattern: Command Query Responsibility Segregation with fluent validation and event-driven side effects
- Event-Driven Architecture: Domain events and RabbitMQ message bus for cross-service communication
- Multi-Database Support: MongoDB, SQL Server, PostgreSQL with unified repository patterns
- Angular Integration: PlatformVmStore state management, base components, and reactive forms
The framework is battle-tested in production enterprise applications and provides patterns for common challenges like background jobs, data migrations, authorization, and multi-tenancy.
Quick Start (30 seconds)
# Backend
dotnet run --project src/Backend/PlatformExampleApp.TextSnippet.Api
# Frontend
cd src/Frontend && npm install && nx serve playground-text-snippet
# Infrastructure
docker-compose -f src/platform-example-app.docker-compose.yml -f src/platform-example-app.docker-compose.override.yml up -d
Detailed setup: Getting Started Guide
Documentation
| Doc | Purpose |
|---|---|
| Getting Started | Prerequisites, setup, commands, troubleshooting |
| Architecture Overview | System design, project structure, diagrams |
| Backend Quickref | Backend decision tree and key patterns |
| Frontend Quickref | Frontend decision tree and key patterns |
| Learning Paths | Developer onboarding by role |
| CLAUDE.md | Complete code patterns, AI agent instructions |
| Business Features | Module documentation, features, APIs |
Business Documentation: For detailed business module documentation (requirements, workflows, APIs, test specs), see
docs/business-features/withdocs/BUSINESS-FEATURES.mdas the master index.
AI-Assisted Team Collaboration
This project includes a complete team collaboration system for AI agents, supporting agile workflows from idea capture to release.
Team Roles & Commands
| Role | Commands | Purpose |
|---|---|---|
| Product Owner | /team-idea, /team-prioritize | Capture ideas, backlog prioritization |
| Business Analyst | /team-refine, /team-story | PBI refinement, user story creation |
| QA Engineer | /team-test-spec, /team-test-cases | Test specification, test case generation |
| UX Designer | /team-design-spec, /team-figma-extract | UI specs, Figma design extraction |
| QC Specialist | /team-quality-gate | Pre-dev/QA/release quality gates |
| Project Manager | /team-status, /team-dependency, /team-team-sync | Status reports, dependency mapping, meetings |
Artifact Management
team-artifacts/
├── ideas/ # Raw ideas (IDEA-YYMMDD-NNN)
├── pbis/ # Product Backlog Items (PBI-YYMMDD-NNN)
├── test-specs/ # Test specifications (TS-MOD-NNN)
├── design-specs/ # UI/UX specifications
├── qc-reports/ # Quality gate reports
└── templates/ # Artifact templates
Full guide: Team Collaboration Guide
Architecture Overview
graph TB
subgraph "Frontend - Nx Workspace"
subgraph "Apps"
PLAYGROUND["playground-text-snippet"]
end
subgraph "Libraries"
PLATFORM_CORE["platform-core"]
PLATFORM_COMP["platform-components"]
APPS_DOMAINS["apps-domains"]
end
PLAYGROUND --> PLATFORM_CORE
PLAYGROUND --> APPS_DOMAINS
end
subgraph "Backend - .NET 9"
API["TextSnippet.Api"]
APP["TextSnippet.Application"]
DOMAIN["TextSnippet.Domain"]
PERSIST["TextSnippet.Persistence"]
end
subgraph "Infrastructure"
RABBIT["RabbitMQ"]
REDIS["Redis"]
DB["MongoDB/SQL/Postgres"]
end
PLAYGROUND --> API
API --> APP
APP --> DOMAIN
APP --> PERSIST
PERSIST --> DB
APP --> RABBIT
APP --> REDIS
Technology Stack
| Layer | Technologies |
|---|---|
| Backend | .NET 9, ASP.NET Core, CQRS |
| Frontend | Angular 19, TypeScript, RxJS, PlatformVmStore |
| Data | MongoDB, SQL Server, PostgreSQL |
| Messaging | RabbitMQ |
| Caching | Redis |
| Jobs | Hangfire |
Full architecture details: Architecture Overview
Project Structure
Backend
src/Platform/ # Easy.Platform framework
├── Easy.Platform/ # Core (CQRS, validation, repositories)
├── Easy.Platform.AspNetCore/ # ASP.NET Core integration
├── Easy.Platform.MongoDB/ # MongoDB patterns
├── Easy.Platform.RabbitMQ/ # Message bus
└── Easy.Platform.*/ # Other modules
src/Backend/ # Example microservice
├── *.Api/ # Web API layer
├── *.Application/ # CQRS handlers, jobs, events
├── *.Domain/ # Entities, domain events
├── *.Infrastructure/ # External concerns (storage, external APIs)
└── *.Persistence*/ # Database implementations
Frontend
src/Frontend/ # Angular 19 Nx workspace
├── apps/
│ └── playground-text-snippet/ # Example app
└── libs/
├── platform-core/ # Base classes, utilities
├── platform-components/ # Reusable UI components
├── apps-domains/ # Business domain code
├── apps-domains-components/ # Domain-specific components
└── apps-shared-components/ # Shared app components
Key Principles
Backend
- Repository Pattern: Use
IPlatformQueryableRootRepository<TEntity, TKey> - Validation: Use
PlatformValidationResultfluent API (never throw) - Side Effects: Use entity event handlers (never in command handlers)
- CQRS: Command + Result + Handler in ONE file
- DTO Mapping: DTOs own mapping via
MapToEntity()
Frontend
- Component Hierarchy:
AppBaseComponent→ Feature Component - State Management:
PlatformVmStorefor complex state - API Services: Extend
PlatformApiService - Subscriptions: Always use
untilDestroyed() - CSS Naming: BEM convention (
block__element --modifier)
Complete patterns: CLAUDE.md
Development Commands
# Backend
dotnet build src/Easy.Platform.sln
dotnet run --project src/Backend/PlatformExampleApp.TextSnippet.Api
dotnet test [Project].csproj
# Frontend
cd src/Frontend
npm install
nx serve playground-text-snippet
nx build playground-text-snippet
nx test platform-core
Getting Help
- Study Examples:
src/Backend/for backend,src/Frontend/apps/playground-text-snippet/for frontend - Search Codebase: Use grep/glob to find existing patterns
- Check Documentation:
docs/directory for guides,CLAUDE.mdfor patterns - Read Base Classes: Check platform-core source for available APIs
Version Information
- Platform Version: Easy.Platform 1.0
- Backend Framework: .NET 9
- Frontend Framework: Angular 19
- Last Updated: February 2026
For detailed code patterns and complete examples, see CLAUDE.md and the working examples in src/Backend/.