The problem with Flutter releases
Every Flutter release used to cost me 20–30 minutes of repetitive, error-prone steps:
- Manually editing
pubspec.yamlto bump the version - Running tests and hoping I didn't forget
- Copying git logs into a release notes file
- Building the AAB, then the APK
- Writing a commit message, tagging, pushing
- Realizing I forgot to update the CSV log
After doing this for the tenth time, I decided to automate the whole thing as a multi-agent skill.
What is a multi-agent skill?
This skill is a plain markdown instruction file — no SDKs, no plugins, no vendor lock-in.
It works with any AI coding agent that can read a markdown skill/instruction file, including:
-
Claude Code (Anthropic) — place in
~/.claude/skills/ - OpenAI Codex — place in your Codex instructions directory
- Antigravity — add as a custom instruction/rule
- Any future agent — the format is open and portable
You install it once, and from then on you just say:
"Run the Flutter release pipeline"
...and your agent handles everything.
What the skill does
In a single command, the Flutter Release Pipeline skill:
Step 0 — Project verification
Checks that pubspec.yaml exists, DOCs/ and DOCs/releases/ directories are in place, and loads saved preferences (build type, branch) from flutter_release_config.json.
Step 1 — Run tests (GATE)
Runs flutter test --machine, parses JSON output, counts passed/failed/skipped, logs results to DOCs/test_log.csv. If any test fails — the pipeline stops. No exceptions.
Step 2 — Version bump
Reads the current version: X.Y.Z+BUILD from pubspec.yaml, increments patch and build number, writes it back.
Step 3 — Git log extraction
Extracts commits since the last tag, categorizes them into Features, Bug Fixes, Improvements, and Other.
Step 4 — Release notes
Generates a markdown file at DOCs/releases/release_notes_vX.Y.Z.md and presents it to you for review before proceeding.
Step 5 — CSV logging
Appends the release record to DOCs/releases/releases.csv — append-only, never overwrites.
**Step 6 — iOS prep (optional)
Runs flutter clean + flutter pub get to prepare for Xcode archive.
Step 7 — **Android build
Builds AAB or APK (or both) based on your saved preference.
Step 8 — Git operations
Stages, commits, tags, and pushes everything to your branch.
Step 9 — Summary
Prints a clean summary box with version, branch, test count, build type, and tag.
Safety rules baked in
- No deletions — ever
- Append-only CSVs — release history is never overwritten
-
Case-sensitive paths —
DOCs/is always respected - Test gate — the pipeline cannot proceed past a test failure
- OS detection — uses correct commands on macOS, Linux, and Windows
How to install
Claude Code:
cp flutter-release-pipeline/CLAUDE.md ~/.claude/skills/flutter-release-pipeline.md
OpenAI Codex:
cp flutter-release-pipeline/CLAUDE.md ~/codex/instructions/flutter-release-pipeline.md
Antigravity:
Add the contents of CLAUDE.md as a custom instruction or .cursorrules file in your project root.
Then just say to your agent:
"Run the Flutter release pipeline"
Works on macOS, Linux, and Windows
The skill detects your OS and uses the correct commands for each platform — including PowerShell-compatible output piping on Windows.
Also submitted to the official Anthropic skills repo
PR #931 is open on anthropics/skills (117k stars). Once merged, Claude Code users can install it directly via:
/plugin install flutter-release-pipeline@anthropic-agent-skills
GitHub
https://github.com/Jaywalker-not-a-whitewalker/flutter-release-pipeline
Stars, issues, and PRs welcome. What other agents do you use for Flutter development?
Top comments (0)