feature-builder
Feature Builder Skill
Zero-to-feature orchestration pipeline for mobile development. Transforms a feature description into production-ready code through six structured phases with automated agent coordination, build verification, and quality enforcement.
Overview
The feature builder runs a deterministic six-phase pipeline:
Phase 1: Planning Phase 2: Implementation Phase 3: Testing
┌────────────┐ ┌────────────────┐ ┌──────────────┐
│ Plan + Arch│────────────▶│ 5-Agent DAG │───────────▶│ 3 Test Agents│
│ Review │ │ Build Code │ │ in Parallel │
└────────────┘ └────────────────┘ └──────────────┘
│ │
▼ ▼
Phase 6: Verification Phase 5: Quality Gate Phase 4: Build & Fix
┌────────────┐ ┌────────────────┐ ┌──────────────┐
│ pass@k=3 │◀────────────│ 3 Reviewers │◀───────────│ Compile/Test │
│ Coverage │ │ in Parallel │ │ Fix Loop │
└────────────┘ └────────────────┘ └──────────────┘
Entry Points:
/feature-build <description>-- Full pipeline from planning to verification/feature-build --from-phase=<N>-- Resume from a specific phase/feature-build --skip-phase=<N>-- Skip a phase (e.g., skip quality gate for prototypes)- Individual phase commands for targeted execution
Supported Platforms: Android, iOS, KMP (auto-detected or explicit via --platform)
Usage
Full Pipeline
# Auto-detect platform, run all phases
/feature-build "User authentication with biometric login"
# Explicit platform
/feature-build --platform=android "Shopping cart checkout flow"
/feature-build --platform=ios "Push notification preferences"
/feature-build --platform=kmp "Offline-first data sync"
Partial Execution
# Resume from implementation (plan already exists)
/feature-build --from-phase=2 --feature=auth
# Skip quality gate for rapid prototyping
/feature-build --skip-phase=5 "Quick settings screen"
# Run only a single phase
/feature-plan "User profile editor"
/feature-implement --feature=profile-editor
/feature-test --feature=profile-editor
Flags
| Flag | Description | Default |
|---|---|---|
--platform |
Target platform: android, ios, kmp |
Auto-detect |
--from-phase |
Start from phase N (1-6) | 1 |
--skip-phase |
Comma-separated phases to skip | None |
--feature |
Feature name (for resuming) | Derived from description |
--force |
Reset and re-run current phase | false |
--dry-run |
Generate plan only, no implementation | false |
Phase 1: Planning (/feature-plan)
Creates a comprehensive plan document and validates it through architecture review.
Workflow
User Description
│
▼
┌──────────────────┐ ┌───────────────────┐ ┌─────────────┐
│ feature-planner │────▶│ mobile-architect │────▶│ User Review │
│ (create plan) │ │ (critique plan) │ │ (approve) │
└──────────────────┘ └───────────────────┘ └─────────────┘
Steps
- Platform Detection -- Scan project for platform markers (see Platform Detection)
- Codebase Analysis --
feature-planneragent reads project structure, existing modules, DI setup, navigation graph, and version catalog - Plan Generation -- Produces
.omc/plans/feature-{name}.jsonwith module breakdown, file list, dependency graph, and task ordering - Architecture Review --
mobile-architectagent (model: opus) critiques the plan for:- Layer separation violations
- Missing error handling paths
- Navigation integration gaps
- DI registration completeness
- Naming convention adherence
- Revision -- Planner incorporates architect feedback
- User Approval -- Present plan summary; user approves, requests changes, or cancels
Checkpoint
Checkpoint: after-plan-{featureName}
Contents: plan document, platform detection results, codebase analysis
Phase 2: Implementation (/feature-implement)
Executes a five-agent dependency DAG to build the feature layer by layer.
Agent DAG
┌─────────────────────┐
│ architecture-impl │ Phase 2a: Domain layer
│ (domain models, │ - Models, repository interfaces
│ use cases, repo │ - Use cases with Result<T>
│ interfaces) │ - Domain exceptions
└──────────┬──────────┘
│
┌────────┴────────┐
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ network-impl │ │ ui-impl │ Phase 2b: Parallel
│ (API client, │ │ (Composables, │ - Network + UI run
│ DTOs, remote │ │ Screens, │ simultaneously
│ data source) │ │ ViewModels, │ - Both read plan for
└────────┬────────┘ │ States, │ file locations
│ │ Intents) │
│ └─────────────────┘
▼
┌─────────────────┐
│ data-impl │ Phase 2c: Data layer
│ (Repository │ - Needs network DTOs
│ impl, mappers,│ - Implements domain interfaces
│ local cache) │ - Mapper functions
└────────┬────────┘
│
▼
┌─────────────────┐
│ wiring-impl │ Phase 2d: Integration
│ (DI modules, │ - Koin/Hilt module registration
│ navigation, │ - Navigation graph updates
│ manifest) │ - AndroidManifest changes (if any)
└─────────────────┘
Execution Rules
- Each agent reads from
.omc/plans/feature-{name}.jsonfor its file list and module paths - Agents write only to their designated files (enforced by plan document)
network-implandui-implrun in parallel since they have no mutual dependencydata-implwaits fornetwork-impl(needs DTOs for mapping)wiring-implruns last to connect all layers- All agents respect the project's existing patterns (read from mobile-memory MCP)
Platform-Specific Behavior
| Platform | Domain | Network | UI | Data | Wiring |
|---|---|---|---|---|---|
| Android | Kotlin data classes | Retrofit/Ktor | Compose + ViewModel | Room/DataStore | Koin/Hilt + Navigation |
| iOS | Swift structs | URLSession/Alamofire | SwiftUI + ObservableObject | CoreData/SwiftData | Dependency container + NavigationStack |
| KMP | commonMain models | Ktor (shared) | Compose Multiplatform / SwiftUI | SQLDelight | Koin + expect/actual navigation |
Checkpoint
Checkpoint: after-impl-{featureName}
Contents: all generated source files, updated DI modules, navigation changes
Phase 3: Testing (/feature-test)
Three test-writing agents run in parallel, each reading the plan's test section.
Agents
┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐
│ unit-test-writer │ │ ui-test-writer │ │ mobile-e2e-runner │
│ │ │ │ │ │
│ - ViewModel tests │ │ - Screen tests │ │ - Flow tests │
│ - UseCase tests │ │ - Component tests │ │ - Integration │
│ - Repository tests│ │ - Navigation tests│ │ - Happy path │
│ - Mapper tests │ │ - Snapshot tests │ │ - Error paths │
└───────────────────┘ └───────────────────┘ └───────────────────┘
Test Coverage Targets
| Test Type | Minimum Coverage | Agent |
|---|---|---|
| Unit tests | 80% line coverage | unit-test-writer |
| UI tests | All screens + key interactions | ui-test-writer |
| E2E tests | Happy path + top 3 error paths | mobile-e2e-runner |
Test File Locations
| Platform | Unit Tests | UI Tests | E2E Tests |
|---|---|---|---|
| Android | src/test/java/... |
src/androidTest/java/... |
src/androidTest/java/.../e2e/ |
| iOS | Tests/{Feature}Tests/ |
UITests/{Feature}UITests/ |
UITests/{Feature}E2ETests/ |
| KMP | src/commonTest/... |
Platform-specific androidTest/iosTest |
Platform-specific |
Checkpoint
Checkpoint: after-test-{featureName}
Contents: all test files, test configuration changes
Phase 4: Build & Fix (/feature-build-fix)
Iterative compile-test-fix loop that resolves build errors and test failures.
Loop
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Compile │────▶│ Analyze │────▶│ Fix │
│ │ │ Errors │ │ │
└──────┬───────┘ └──────────────┘ └──────┬───────┘
│ │
│ ┌──────────────┐ │
│ │ Run Tests │ │
│ └──────┬───────┘ │
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────┐
│ All Green? │
│ YES ──▶ Proceed to Phase 5 │
│ NO ──▶ Iteration++ (max 5) │
│ MAX ──▶ Escalate to user with diagnostics │
└─────────────────────────────────────────────────┘
Build Commands by Platform
| Platform | Compile | Unit Tests | UI Tests |
|---|---|---|---|
| Android | ./gradlew assembleDebug |
./gradlew test |
./gradlew connectedAndroidTest |
| iOS | xcodebuild build |
xcodebuild test |
xcodebuild test -testPlan UITests |
| KMP | ./gradlew build |
./gradlew allTests |
Platform-specific |
Error Resolution Agents
| Platform | Agent | Specialization |
|---|---|---|
| Android | android-build-resolver |
Gradle, Kotlin compiler, resource errors |
| iOS | xcode-build-resolver |
Xcode, Swift compiler, linker errors |
| KMP | Both (routed by error source) | Shared + platform-specific errors |
Iteration Limits
- Max iterations: 5
- Per-iteration timeout: 3 minutes
- Escalation: After 5 failed iterations, pause and present:
- Full error log from last iteration
- Summary of attempted fixes
- Suggested manual interventions
- Option to
--forcereset the phase
Checkpoint
Checkpoint: after-build-fix-{featureName}
Contents: compiled artifacts, fixed source files, build logs
Phase 5: Quality Gate (/feature-quality-gate)
Three review agents run in parallel to assess code quality, security, and performance.
Reviewers
┌───────────────────────┐ ┌──────────────────────────┐ ┌────────────────────────────────┐
│ android-reviewer │ │ mobile-security-reviewer │ │ mobile-performance-reviewer │
│ (or ios-reviewer) │ │ │ │ │
│ │ │ - Hardcoded secrets │ │ - Memory leaks │
│ - Code style │ │ - Insecure storage │ │ - Unnecessary recomposition │
│ - Architecture │ │ - Network security │ │ - Blocking main thread │
│ - Error handling │ │ - Input validation │ │ - Large allocations │
│ - Naming conventions │ │ - Logging exposure │ │ - N+1 queries │
│ - Dead code │ │ - Permission usage │ │ - Image loading efficiency │
└───────────┬───────────┘ └────────────┬─────────────┘ └───────────────┬────────────────┘
│ │ │
└───────────────┬───────────┘ │
│◀───────────────────────────────────────────┘
▼
┌────────────────┐
│ Collect & Triage│
│ Findings │
└────────┬───────┘
│
┌────────▼───────┐
│ Apply Fixes │
│ (auto for low) │
└────────┬───────┘
│
┌────────▼───────┐
│ Re-verify │
│ Critical Items │
└────────────────┘
Finding Severity Levels
| Severity | Action | Example |
|---|---|---|
| Critical | Block release, fix immediately | Hardcoded API key, SQL injection |
| High | Must fix before merge | Missing error handling, memory leak |
| Medium | Should fix, auto-applied when possible | Naming convention violation, missing null check |
| Low | Informational, auto-applied | Import ordering, trailing whitespace |
Gate Pass Criteria
- Zero critical findings
- Zero high findings (or user-acknowledged exceptions)
- All medium findings addressed or explicitly deferred
- Re-verification passes for any critical/high fixes applied
Checkpoint
Checkpoint: after-quality-gate-{featureName}
Contents: review reports, applied fixes, acknowledged deferrals
Phase 6: Verification (/feature-verify)
Final sign-off with pass@k reliability testing and coverage enforcement.
Process
- pass@k=3 Testing --
mobile-verifieragent runs all feature tests 3 times - Flaky Detection -- Identify tests with pass@k < 1.0
- Coverage Check -- Enforce >= 80% line coverage on new code
- Report Generation -- Produce final verification report
Acceptance Criteria
| Metric | Threshold | Action if Failed |
|---|---|---|
| Unit test pass@3 | >= 0.95 | Fix flaky tests, re-run |
| UI test pass@3 | >= 0.80 | Investigate, fix or quarantine |
| E2E test pass@3 | >= 0.60 | Investigate root cause |
| Line coverage | >= 80% | Add missing tests |
| Critical findings | 0 | Return to Phase 5 |
Final Report
Feature: {featureName}
Platform: {platform}
Status: PASSED / FAILED
Phase Results:
1. Planning .............. COMPLETED
2. Implementation ........ COMPLETED (5 agents, 23 files)
3. Testing ............... COMPLETED (14 unit, 6 UI, 3 E2E)
4. Build & Fix ........... COMPLETED (2 iterations)
5. Quality Gate .......... COMPLETED (0 critical, 1 medium fixed)
6. Verification .......... COMPLETED (pass@3=0.96, coverage=84%)
Files Created: 23
Tests Written: 23
Build Iterations: 2
Duration: ~18 minutes
Checkpoint
Checkpoint: feature-complete-{featureName}
Contents: full verification report, final metrics, all source + test files
Phase 7: Learning (/feature-learn)
Automatic pattern extraction and continuous learning. Runs immediately after Phase 6 verification completes -- no separate invocation needed.
Process
Phase 6 PASSED
|
v
+-----------------------+ +------------------------+ +---------------------+
| Scan Generated Files |---->| Extract Mobile Patterns|---->| Detect Feature |
| (from plan manifest) | | (17 pattern matchers) | | Composite Patterns |
+-----------------------+ +------------------------+ +---------------------+
|
v
+---------------------+ +------------------------+ +---------------------+
| Save Learning |<----| Calculate Completeness |<----| Store as Instincts |
| Summary Report | | Score (weighted) | | (with confidence) |
+---------------------+ +------------------------+ +---------------------+
Pattern Extraction
The learning phase scans all generated feature files for established mobile patterns:
| Category | Patterns Detected | Context Tag |
|---|---|---|
| Compose | State hoisting, lazy keys, immutable data classes | jetpack-compose |
| MVI | Intent handling, sealed state/intent/side-effect | mvi-architecture |
| DI | Koin module definition, ViewModel injection | koin-patterns |
| Network | Safe Ktor requests with runCatching | ktor-patterns |
| Coroutines | Structured concurrency with viewModelScope | coroutines-patterns |
| Clean Architecture | Repository interface/impl, use cases, mappers, Result type | clean-architecture |
| Navigation | Compose Navigation route registration | navigation-patterns |
Feature Composite Patterns
Higher-level patterns detected by combining individual pattern presence:
| Pattern ID | Criteria | Weight |
|---|---|---|
feature-clean-architecture |
Domain + Data + Presentation layers all present (repository interface, impl, and use case detected) | 25% |
feature-mvi-complete |
State + Intent + SideEffect sealed interfaces + ViewModel with viewModelScope | 25% |
feature-di-complete |
Koin module definition + ViewModel injection present | 15% |
feature-test-coverage |
Unit + UI + E2E test files all present in plan | 20% |
feature-navigation-wired |
Navigation route registered in navigation graph | 15% |
Confidence Scoring
- Individual patterns start at confidence 0.5 (higher than session-detected patterns at 0.4, since feature builds are more deliberate)
- Each subsequent detection of the same pattern increases confidence by 0.1 (capped at 1.0)
- Composite feature patterns start at 0.5-0.6 based on complexity
- Unused instincts decay by 0.05 after 30 days of inactivity
Completeness Score
The feature completeness score is a weighted sum (0-100%) of the five composite patterns:
Score = (clean_arch * 25) + (mvi_complete * 25) + (di_complete * 15)
+ (test_coverage * 20) + (navigation_wired * 15)
Score >= 80% --> High quality feature build
Score 50-79% --> Acceptable, some patterns missing
Score < 50% --> Needs improvement, review missing layers
Learning Output
Saved to .omc/state/feature-{name}-learning.json:
{
"featureName": "auth",
"platform": "android",
"learnedAt": "2026-03-28T10:20:00Z",
"patternsDetected": ["sealed-interface-state", "mvi-intent-handling", "..."],
"featurePatterns": {
"feature-clean-architecture": true,
"feature-mvi-complete": true,
"feature-di-complete": true,
"feature-test-coverage": true,
"feature-navigation-wired": true
},
"completenessScore": 100,
"filesScanned": 23,
"instinctsAdded": 12
}
Feedback Loop
Learned patterns feed back into the instinct system:
- Future
/feature-buildruns consult high-confidence instincts when generating plans - Patterns with confidence >= 0.7 are treated as established project conventions
- The
/feature-learncommand shows accumulated learning across all feature builds - Instincts can be exported via
/instinct-exportfor sharing across projects
Checkpoint
Checkpoint: feature-learning-{featureName}
Contents: learning summary, updated instincts, completeness score
Plan Document Schema
Plan documents are stored at .omc/plans/feature-{name}.json.
{
"featureName": "auth",
"description": "User authentication with email/password and biometric login",
"platform": "android",
"createdAt": "2026-03-28T10:00:00Z",
"updatedAt": "2026-03-28T10:15:00Z",
"architecture": {
"pattern": "MVI",
"diFramework": "Koin",
"networkClient": "Ktor",
"localStorage": "DataStore",
"navigationLib": "Compose Navigation"
},
"moduleLocation": "feature/auth",
"modules": {
"domain": {
"path": "feature/auth/domain",
"files": [
"model/User.kt",
"model/AuthToken.kt",
"repository/AuthRepository.kt",
"usecase/LoginUseCase.kt",
"usecase/BiometricAuthUseCase.kt"
]
},
"data": {
"path": "feature/auth/data",
"files": [
"remote/AuthApi.kt",
"remote/dto/LoginRequest.kt",
"remote/dto/LoginResponse.kt",
"repository/AuthRepositoryImpl.kt",
"mapper/AuthMapper.kt",
"local/TokenStorage.kt"
]
},
"presentation": {
"path": "feature/auth/presentation",
"files": [
"LoginViewModel.kt",
"LoginState.kt",
"LoginIntent.kt",
"LoginSideEffect.kt",
"ui/LoginScreen.kt",
"ui/BiometricPromptWrapper.kt"
]
},
"di": {
"path": "feature/auth/di",
"files": [
"AuthModule.kt"
]
}
},
"wiring": {
"navigationChanges": [
{
"file": "app/src/main/java/.../navigation/AppNavGraph.kt",
"action": "add_route",
"detail": "Add Login and BiometricPrompt routes"
}
],
"diRegistration": [
{
"file": "app/src/main/java/.../di/AppModule.kt",
"action": "add_module",
"detail": "Register authModule in appModules list"
}
],
"manifestChanges": [
{
"file": "app/src/main/AndroidManifest.xml",
"action": "add_permission",
"detail": "USE_BIOMETRIC permission"
}
]
},
"tests": {
"unit": [
"LoginViewModelTest.kt",
"LoginUseCaseTest.kt",
"AuthRepositoryImplTest.kt",
"AuthMapperTest.kt"
],
"ui": [
"LoginScreenTest.kt",
"BiometricPromptWrapperTest.kt"
],
"e2e": [
"AuthFlowE2ETest.kt"
]
},
"dependencies": {
"new": [
{ "name": "androidx.biometric:biometric", "version": "1.2.0-alpha05" }
],
"existing": [
"io.insert-koin:koin-android",
"io.ktor:ktor-client-core"
]
},
"tasks": [
{ "id": 1, "phase": "impl", "agent": "architecture-impl", "description": "Create domain models and repository interface", "dependsOn": [] },
{ "id": 2, "phase": "impl", "agent": "network-impl", "description": "Create AuthApi, DTOs, and remote data source", "dependsOn": [1] },
{ "id": 3, "phase": "impl", "agent": "ui-impl", "description": "Create LoginViewModel, State, Intent, and LoginScreen", "dependsOn": [1] },
{ "id": 4, "phase": "impl", "agent": "data-impl", "description": "Create AuthRepositoryImpl, mappers, and TokenStorage", "dependsOn": [2] },
{ "id": 5, "phase": "impl", "agent": "wiring-impl", "description": "Register DI module, add navigation routes, update manifest", "dependsOn": [3, 4] },
{ "id": 6, "phase": "test", "agent": "unit-test-writer", "description": "Write unit tests for ViewModel, UseCase, Repository, Mapper", "dependsOn": [5] },
{ "id": 7, "phase": "test", "agent": "ui-test-writer", "description": "Write Compose UI tests for LoginScreen", "dependsOn": [5] },
{ "id": 8, "phase": "test", "agent": "mobile-e2e-runner", "description": "Write E2E auth flow test", "dependsOn": [5] }
]
}
State File Schema
State files are stored at .omc/state/feature-{name}.json and track real-time progress.
{
"featureName": "auth",
"platform": "android",
"startedAt": "2026-03-28T10:00:00Z",
"currentPhase": 4,
"phases": {
"1_planning": {
"status": "completed",
"startedAt": "2026-03-28T10:00:00Z",
"completedAt": "2026-03-28T10:05:00Z",
"planPath": ".omc/plans/feature-auth.json"
},
"2_implementation": {
"status": "completed",
"startedAt": "2026-03-28T10:05:00Z",
"completedAt": "2026-03-28T10:12:00Z",
"agents": {
"architecture-impl": { "status": "completed", "filesCreated": ["model/User.kt", "model/AuthToken.kt", "repository/AuthRepository.kt"] },
"network-impl": { "status": "completed", "filesCreated": ["remote/AuthApi.kt", "remote/dto/LoginRequest.kt"] },
"ui-impl": { "status": "completed", "filesCreated": ["LoginViewModel.kt", "ui/LoginScreen.kt"] },
"data-impl": { "status": "completed", "filesCreated": ["repository/AuthRepositoryImpl.kt", "mapper/AuthMapper.kt"] },
"wiring-impl": { "status": "completed", "filesCreated": ["di/AuthModule.kt"] }
}
},
"3_testing": {
"status": "completed",
"startedAt": "2026-03-28T10:12:00Z",
"completedAt": "2026-03-28T10:15:00Z",
"agents": {
"unit-test-writer": { "status": "completed", "testsCreated": 4 },
"ui-test-writer": { "status": "completed", "testsCreated": 2 },
"mobile-e2e-runner": { "status": "completed", "testsCreated": 1 }
}
},
"4_build_fix": {
"status": "in_progress",
"startedAt": "2026-03-28T10:15:00Z",
"iterations": 2,
"maxIterations": 5,
"lastError": "Unresolved reference: BiometricManager",
"lastFix": "Added missing import for androidx.biometric.BiometricManager"
},
"5_quality_gate": {
"status": "pending",
"findings": { "critical": 0, "high": 0, "medium": 0, "low": 0 }
},
"6_verification": {
"status": "pending",
"passAtK": null,
"coverage": null
}
}
}
Status Values
| Status | Meaning |
|---|---|
pending |
Phase not yet started |
in_progress |
Phase currently executing |
completed |
Phase finished successfully |
failed |
Phase failed, requires intervention |
skipped |
Phase skipped via --skip-phase flag |
Platform Detection
Auto-detection scans the project root for platform markers. First match wins.
Detection Rules
| Platform | Primary Marker | Secondary Marker | Tertiary Marker |
|---|---|---|---|
| KMP | shared/src/commonMain/ directory |
build.gradle.kts with kotlin("multiplatform") |
composeApp/ directory |
| Android | build.gradle.kts or build.gradle at root |
app/src/main/AndroidManifest.xml |
settings.gradle.kts with Android modules |
| iOS | *.xcodeproj or *.xcworkspace |
Package.swift |
*.pbxproj file |
Detection Priority
1. Check for shared/src/commonMain/ → KMP
2. Check for *.xcodeproj or *.xcworkspace → iOS
3. Check for build.gradle.kts with android block → Android
4. Prompt user if ambiguous
Override
# Force platform when auto-detection is wrong
/feature-build --platform=kmp "Feature description"
Error Recovery
Every phase creates a checkpoint before execution. On failure, the pipeline can resume from the last successful state.
Recovery Commands
# Resume from where it left off (reads state file)
/feature-build --from-phase=auto --feature=auth
# Force re-run a specific phase (resets that phase's state)
/feature-build --from-phase=4 --force --feature=auth
# View current state
cat .omc/state/feature-auth.json
Recovery Strategy
| Failure Point | Recovery Action |
|---|---|
| Phase 1 fails | Re-run planning from scratch |
| Phase 2 agent fails | Re-run only the failed agent + its dependents |
| Phase 3 test writer fails | Re-run only the failed test agent |
| Phase 4 exceeds max iterations | Present diagnostics, user chooses fix or skip |
| Phase 5 critical finding | Apply fix, re-run Phase 4 then Phase 5 |
| Phase 6 coverage below 80% | Return to Phase 3 for additional tests |
State File Integrity
- State file is written atomically (write to temp, then rename)
- Each phase reads the previous phase's state before starting
- Corrupted state file triggers a full checkpoint restore
--forceflag resets a single phase's state topending
Phase Commands
Each phase can be invoked independently for targeted execution.
| Command | Phase | Description | Prerequisite |
|---|---|---|---|
/feature-plan <desc> |
1 | Create and review plan | None |
/feature-implement |
2 | Run 5-agent implementation DAG | Plan exists |
/feature-test |
3 | Run 3 test-writing agents | Implementation complete |
/feature-build-fix |
4 | Iterative compile/test/fix loop | Tests written |
/feature-quality-gate |
5 | Run 3 review agents | Build passing |
/feature-verify |
6 | pass@k testing + coverage | Quality gate passed |
/feature-build <desc> |
1-6 | Full pipeline | None |
Common Workflows
# Full feature from scratch
/feature-build "Payment processing with Stripe"
# Already have a plan, just implement
/feature-implement --feature=payments
# Code exists, need tests and verification
/feature-build --from-phase=3 --feature=payments
# Quick iteration: fix build and re-verify
/feature-build-fix --feature=payments && /feature-verify --feature=payments
Integration
Mobile Memory MCP
The feature builder reads and writes to mobile-memory for cross-session context:
- Reads: Project architecture patterns, existing module structure, DI conventions, naming patterns, test patterns
- Writes: New feature metadata, file manifest, dependency additions, learned patterns from build-fix iterations
Checkpoint System
Integrates with the mobile-checkpoint skill:
- Auto-creates checkpoints at each phase boundary
- Naming convention:
{phase-name}-{featureName}(e.g.,after-impl-auth) - Full checkpoint at feature completion:
feature-complete-{featureName} - Checkpoints include instinct snapshots for rollback safety
Instinct Hooks
The feature builder triggers instinct learning:
- Phase 2 patterns: Architecture decisions, file organization choices
- Phase 4 patterns: Common build errors and their fixes per project
- Phase 5 patterns: Recurring code review findings
- Instincts are versioned per feature so rollback does not lose learning
Hook Events
| Hook Point | Event | Data |
|---|---|---|
PreToolUse |
Phase start | Phase number, feature name, platform |
PostToolUse |
Phase complete | Phase number, status, metrics |
PostToolUse |
Build iteration | Iteration count, error summary |
PostToolUse |
Quality finding | Severity, category, file path |
Remember: The feature builder is a pipeline, not a monolith. Each phase is independently testable, resumable, and skippable. Trust the DAG -- let agents work in parallel where dependencies allow, and checkpoint aggressively so no work is ever lost.
More from ahmed3elshaer/everything-claude-code-mobile
mvi-architecture
Model-View-Intent architecture patterns for Android with unidirectional data flow, state management, and side effects.
17koin-patterns
Koin dependency injection patterns for Android with modules, scopes, and ViewModel injection.
17kmp-networking
Ktor client for Kotlin Multiplatform. Shared networking layer with platform-specific engines (OkHttp for Android, Darwin for iOS).
17kmp-di
Dependency Injection for KMP. Koin multiplatform setup, platform modules, and manual DI patterns.
16gradle-patterns
Gradle build configuration patterns for Android including Version Catalogs, convention plugins, build optimization, and multi-module setup.
15kmp-repositories
Repository pattern for Kotlin Multiplatform. Shared interfaces with platform-specific implementations, clean data layer architecture.
15