| name | review-code-changes |
| description | Multi-stage code review for ProjectX Apple platforms app. Functional review validates business logic and acceptance criteria. Technical review checks Clean Architecture layers, @Observable usage, Design System compliance, strict Swift 6 concurrency, platform 26 support, and navigation correctness. |
Review Code Changes — ProjectX Apple Platforms
Review Pipeline
Stage 1: Functional Review
Focus: Does the code solve the right problem?
- AC Traceability — Map each acceptance criterion to test and implementation code
- Business Logic — Verify correctness of domain rules in UseCases
- Data Integrity — Check DTO ↔ Entity mapping completeness
- Edge Cases — Empty states, error handling, boundary values
- Test Coverage — Unit tests exist for all branches
Stage 2: Technical Review
Focus: Does the code follow architecture and conventions?
Architecture Compliance
- Domain layer has NO imports from Data or Presentation
- Repository protocols in Domain, implementations in Data
- ViewModels in Presentation, injected with Domain protocols
- UseCases mediate between layers
Swift/SwiftUI Patterns
@Observable used (not ObservableObject)
@MainActor on UI-thread types
[weak self] in escaping closures
- No force unwraps in production code
async/await, Task, AsyncStream, and actor isolation preferred for async flows; no new Combine-first feature logic
- Task cancellation handled
Design System
- Colors:
DSColor / Color.appColor(_:) — no hex/hardcoded
- Fonts:
DSFont / Font.appFont(_:) — no system fonts
- Spacing:
DSSpacing, DSRadius, DSSize — no magic numbers
- Components:
DSButton, DSText, DSTextField — no raw SwiftUI equivalents for styled elements
- Strings:
LocalizedKey — no hardcoded user text
Navigation
- New screens have
Route case
- Wired in
RouteContentView
- Navigation via
Router methods
Memory & Performance
- No retain cycles
- Lazy containers for large lists
CacheAsyncImage for network images
Finding Format
**[BLOCKER/MAJOR/MINOR/SUGGESTION]** — <file>:<line>
<Description of issue>
<Suggested fix with code snippet>
Verdict
- APPROVE — No blockers/majors, minors acceptable
- REQUEST CHANGES — Blockers or majors found, list required fixes
- REJECT — Fundamental business logic error