From flutter-craft
Enforces running Flutter verification commands (analyze, test, build) before claiming work is complete or fixed.
How this skill is triggered — by the user, by Claude, or both
Slash command
/flutter-craft:flutter-verificationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Claiming work is complete without verification is dishonesty, not efficiency.
Claiming work is complete without verification is dishonesty, not efficiency.
Core principle: Evidence before claims, always.
Violating the letter of this rule is violating the spirit of this rule.
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
If you haven't run the verification command in this message, you cannot claim it passes.
flutter analyze
Expected output:
Analyzing <project>...
No issues found!
If issues found:
Analyzing <project>...
info • ... • lib/path/file.dart:42:10 • ...
warning • ... • lib/path/file.dart:50:5 • ...
3 issues found. (1 warning, 2 hints)
# All tests
flutter test
# Specific feature tests
flutter test test/features/<feature>/
# Specific test file
flutter test test/features/<feature>/data/repositories/user_repository_test.dart
Expected output:
00:05 +12: All tests passed!
If tests fail:
00:03 +10 -2: Some tests failed.
Run against the project's actual target platform only:
# Android
flutter build apk --debug
# iOS (macOS only)
flutter build ios --debug --no-codesign
# Web
flutter build web
# Desktop
flutter build windows / macos / linux
Expected output (example, Android):
✓ Built build/app/outputs/flutter-apk/app-debug.apk (XX.XMB)
dart format --set-exit-if-changed lib/
BEFORE claiming any status or expressing satisfaction:
1. IDENTIFY: What command proves this claim?
2. RUN: Execute the FULL command (fresh, complete)
3. READ: Full output, check exit code, count failures
4. VERIFY: Does output confirm the claim?
- If NO: State actual status with evidence
- If YES: State claim WITH evidence
5. ONLY THEN: Make the claim
Skip any step = lying, not verifying
| Claim | Requires | Not Sufficient |
|---|---|---|
| "Code is clean" | flutter analyze: No issues | "I wrote correct code" |
| "Tests pass" | flutter test: All passed | "Should pass", "Looks correct" |
| "Build succeeds" | flutter build: Built successfully | "Analyze passed" |
| "Feature complete" | All verification + requirements check | "Tests pass" |
| "Bug fixed" | Test original symptom + verify | "Code changed" |
| "Widget works" | Widget test or manual verification | "Code looks right" |
If you catch yourself thinking or saying:
STOP. Run the verification command.
Before claiming completion:
### Verification Results
**Static Analysis:**
```bash
$ flutter analyze
Analyzing flutter_app...
No issues found!
✅ Passed
Unit Tests:
$ flutter test test/features/<feature>/
00:05 +12: All tests passed!
✅ 12/12 passed
Build:
$ flutter build apk --debug
✓ Built build/app/outputs/flutter-apk/app-debug.apk
✅ Built successfully
Ready to claim completion.
## Key Patterns
**Static Analysis:**
✅ [Run flutter analyze] [See: No issues found!] "Analysis passes" ❌ "Code looks clean" / "I wrote it correctly"
**Tests:**
✅ [Run flutter test] [See: 34/34 pass] "All tests pass" ❌ "Should pass now" / "Tests look correct"
**Build:**
✅ [Run flutter build] [See: Built successfully] "Build passes" ❌ "Analyze passed" (analyze doesn't check build)
**Feature completion:**
✅ Re-read plan → Verify each requirement → Run all verifications → Report ❌ "Tests pass, feature complete"
## Rationalization Prevention
| Excuse | Reality |
|--------|---------|
| "Should work now" | RUN flutter analyze/test |
| "I'm confident" | Confidence ≠ evidence |
| "Just this once" | No exceptions |
| "Analyze passed" | Analyze ≠ build ≠ test |
| "Code looks right" | Verify independently |
| "I'm tired" | Exhaustion ≠ excuse |
| "It's simple code" | Simple code can still fail |
## Why This Matters
- **Trust:** If you claim "tests pass" without running them, trust is broken
- **Time:** False completion → redirect → rework wastes everyone's time
- **Quality:** Unverified code may crash in production
- **Integrity:** Honesty is a core value
## When To Apply
**ALWAYS before:**
- ANY variation of success/completion claims
- ANY expression of satisfaction ("Done!", "Fixed!", "Works!")
- Committing code
- Creating PRs
- Moving to next task
- Reporting to user
## The Bottom Line
**No shortcuts for verification.**
Run the command. Read the output. THEN claim the result.
```bash
# Always run these before claiming completion:
flutter analyze
flutter test
This is non-negotiable.
A full flutter build is NOT required at every completion claim — it is slow
and platform-dependent. It runs once, in flutter-finishing, against the
project's actual target platform.
For work that includes UI changes, perform visual verification if the design-polish plugin is installed. If it is not installed, skip this step (SOFT_FAIL).
~/.claude/plugins/marketplaces/design-polish or ~/.claude/plugins/design-polish)scripts/capture.cjs existsBuild Flutter Web
flutter build web
Serve the build output locally
npx serve build/web -l 3000 &
SERVER_PID=$!
Screenshot + WCAG check
BASE_URL=http://localhost:3000 node <design-polish-path>/scripts/capture.cjs --wcag /
Check the results
.design-polish/health-score.json: design health score (0-100).design-polish/accessibility/wcag-report.json: WCAG violations.design-polish/screenshots/current-main.png: current screenshotStop the server
kill $SERVER_PID 2>/dev/null
| Result | Condition | Action |
|---|---|---|
| PASS | 0 WCAG violations, Health Score ≥ 60 | Done |
| WARN | 1-3 WCAG violations (minor/moderate) | Improvement recommended, not blocking |
| FAIL | Critical WCAG violation exists | Fix recommended (SOFT_FAIL: does not block) |
| SKIP | design-polish not installed | Skipped |
**Visual Verification:**
- Health Score: 85/100
- WCAG: 0 violations
- Screenshot: .design-polish/screenshots/current-main.png
✅ Visual check passed (or ⚠️ skipped / ⚠️ warnings found)
npx claudepluginhub vp-k/flutter-craftExecutes Flutter implementation plans in task batches with verification checkpoints. Runs flutter analyze, flutter test, and flutter build after each batch, then reports results and awaits feedback before continuing.
Reviews Flutter/Dart code against a checklist covering widget best practices, state management patterns, Dart idioms, performance, accessibility, security, and clean architecture.
Guides Flutter development for cross-platform iOS, Android, Web apps. Covers non-interactive CLI, project setup, state management, widgets, GoRouter navigation, platform channels, testing, CI/CD.