b75266f67c
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
Skill: Full Dev Cycle (Flutter)
Execute a complete feature development cycle for a Flutter project from branch creation to PR.
Steps
1. Branch
Create a feature branch from dev:
git checkout dev && git pull gitea dev
git checkout -b feature/<slug> dev
Use a concise kebab-case slug derived from the task title.
2. Implement (agent-coder patterns)
- READ CLAUDE.md first
- Follow feature-first architecture:
features/<name>/screens/,widgets/,providers/ - Domain entities in
domain/entities/must be pure Dart - Use Riverpod 3.x
@riverpodannotations for state - Use Drift 2.x with proper migrations for DB changes
- Use
constconstructors, 44px touch targets,HapticFeedbackfor key interactions - Minimum touch target: 44x44 logical pixels
3. Code Generation
If any @riverpod or Drift Table annotations were added or modified:
dart run build_runner build --delete-conflicting-outputs
4. Static Analysis
Must produce zero issues:
flutter pub get && flutter analyze
Fix all warnings before continuing.
5. Code Review (agent-review patterns)
Self-review the diff for:
- CRITICAL: null crashes, wrong lifecycle usage, missing migrations
- WARNING: architecture violations, missing
const, touch target < 44px - INFO: naming, unused imports, missing docs
6. Fix Issues
Fix all CRITICAL and WARNING findings. Re-run:
flutter analyze
7. Test
flutter test
Fix any failing tests. Do not skip or delete tests.
8. PR
git push gitea feature/<slug>
gh pr create \
--title "<descriptive title>" \
--base dev \
--body "$(cat <<'EOF'
## Summary
- <what changed>
- <why>
## Test Plan
- [ ] flutter analyze: 0 issues
- [ ] flutter test: all pass
- [ ] Tested on: <device/emulator/web>
Generated with AI pipeline
EOF
)"
Abort Conditions
flutter analyzefails after 2 fix attempts → stop and reportflutter testfails with unrecoverable errors → stop and report- Merge conflict on
dev→ resolve manually, then continue from step 4