flutter-versioning

Guidance for setting version and build numbers in a Flutter app. It explains how the value in pubspec.yaml becomes the version information used by both Android and iOS.

In plain words
What is it for?
Use it to bump versions before releases, understand the x.y.z+build format, and automate version changes in CI/CD.
Why use it?
It prevents release failures caused by unclear or unchanged version numbers and build numbers.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/nylo-core/claude-code/flutter-versioning
Any agent
npx skills add nylo-core/claude-code --skill flutter-versioning
Clone the repo
git clone --depth 1 https://github.com/nylo-core/claude-code

Made for: Claude Code, Codex.

Per session 44 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,197 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00044 $0.03197
Opus 5 $0.00022 $0.01598
Sonnet 5 $0.00009 $0.00639
Haiku 4.5 $0.00004 $0.00320

Measured yesterday against content hash 7a3a8f36ff59, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

flutter-versioning scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/flutter-versioning/SKILL.md · 365 lines

How it starts

The opening of the file, as written. The whole thing — 365 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Flutter Versioning

Overview

Flutter uses a single version field in pubspec.yaml with the format x.y.z+build to define both the user-facing version string and the internal build number. This value propagates to iOS (CFBundleShortVersionString / CFBundleVersion) and Android (versionName / versionCode) during the build process.

When to Use

  • User needs to set or bump the app version before a release
  • User is confused about the version format in pubspec.yaml
  • User needs to understand how Flutter versions map to platform-specific values
  • User is setting up CI/CD and needs automated version bumping
  • App was rejected because the version or build number was not incremented
  • NOT for Dart package versioning on pub.dev (similar format but different context)

Quick Reference

Concept pubspec.yaml iOS Android
Version string x.y.z CFBundleShortVersionString versionName
Build number +build CFBundleVersion versionCode
Full format version: 1.2.3+4 1.2.3 / 4 1.2.3 / 4
Where set pubspec.yaml Auto from pubspec Auto from pubspec
Override N/A --build-name / --build-number flags Same flags

Version Format in pubspec.yaml

version: 1.2.3+4

Breaking this down:

  • 1Major version: Incremented for breaking changes or major milestones
  • 2Minor version: Incremented for new features (backwards compatible)
  • 3Patch version: Incremented for bug fixes
  • +4Build number: Incremented for every build submitted to stores

Rules

  • The version string (x.y.z) follows Semantic Versioning
  • The build number (+build) must be a positive integer
  • The build number is optional in pubspec.yaml but required for store submissions
  • If omitted, the build number defaults to 0

How Versions Map to Platforms

iOS

Flutter reads pubspec.yaml and sets these in the generated Xcode build:

Read the full file on GitHub · 365 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 365 lines · 44 tokens per session scan A 7a3a8f36ff59

Subscribe to this mod's changes

flutter-versioning is a skill published in the GitHub repository nylo-core/claude-code (4 stars, last pushed 4mo ago), licensed MIT. It adds 44 tokens to every session and 3,197 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.