Files
TaskManagerMobile/.claude/skills/full-cycle/SKILL.md
T
TrochtaOndrej b75266f67c feat: add Flutter pipeline agents and skills
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 05:13:47 +01:00

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 @riverpod annotations for state
  • Use Drift 2.x with proper migrations for DB changes
  • Use const constructors, 44px touch targets, HapticFeedback for 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 analyze fails after 2 fix attempts → stop and report
  • flutter test fails with unrecoverable errors → stop and report
  • Merge conflict on dev → resolve manually, then continue from step 4