-
Notifications
You must be signed in to change notification settings - Fork 0
Code Quality Agents
Ali Sadeghi edited this page May 28, 2026
·
6 revisions
Tools that validate implementations against the project's architectural rules and the feature's spec.
Reviews a feature against:
- 11 critical architecture rules
- 4 integration points
- The UI file-organization allowlist (Screen.kt 5-slot rule, utilities, preview import)
- The feature's
spec.md(if it exists)
Invocation:
/feature-review {featurename}The command spawns the code-reviewer agent which globs feature files, greps for patterns, and writes .claude/docs/{featurename}/review.md plus fixes.md.
These commands perform code-quality tasks but don't spawn dedicated agents:
| Command | Purpose |
|---|---|
| Audit-Spec | Audit or generate feature specifications, or detect drift |
| Coverage | Generate Kover test-coverage reports |
| Features-Health | Snapshot of spec / tests / review status across all features |
- Interface + Impl — DataSource and Repository have interface + implementation pairs
-
Either — All fallible operations return
Either<T> -
setState —
_uiModel.setState { copy() }, never_uiModel.value = -
4 UI States — Uninitialized / Loading / Success / Failed (via generic
UiState<DTO>) -
X-components —
:core:designsystemonly, no Material3 -
ImmutableList —
.toImmutableList()for state collections -
Lowercase packages —
{PKG_PREFIX}.featurename -
DI binding —
singleOf(::Impl).bind<Interface>()+object … : BaseFeature - No UseCases — ViewModels invoke repositories directly
-
Callback params — Screens take callbacks, not
navController -
Single UiModel + DTO-wrapped UiState — no
*UiState.kt;UiState<T>slots wrap DTOs fromdata/model/;data/never imports frompresentation/
-
settings.gradle.kts— module included -
composeApp/build.gradle.kts— dependency added -
initKoin.kt—{Feature}Modules.initialize() -
BaseAppNavHost.kt—{featurename}(onBackClick = …)
- Data models match spec
- Interface signatures match
- UiModel structure matches (state slots + fields)
- Navigation callbacks match
| Status | Meaning |
|---|---|
| PASS | All rules and integrations valid |
| PASS WITH WARNINGS | Minor issues, non-blocking |
| FAIL | Critical violations found |
Reviewing feature: dashboard
✓ Data Layer
✓ DashboardRemoteDataSource: Interface + Impl found
✓ DashboardRepository: Interface + Impl found
✓ Either<T> used for all suspend functions
✓ UI Layer
✓ DashboardUiModel: single container, UiState<DTO> slots handle all 4 states
✓ DashboardViewModel: Uses setState { }
✓ Screen + ScreenRoot pair present; Screen.kt allowlist clean
✓ Integration
✓ settings.gradle.kts: Module included
✓ initKoin.kt: DashboardModules.initialize()
✓ BaseAppNavHost.kt: dashboard(...) wired
✅ Review Passed
Back to Agents