Agent skill

Flutter Cherry Pick

by flutter in flutter/flutter

How to land a formal cherry-pick of a merged PR for the flutter/flutter repo stable or beta channel.

BSD-3-ClauseAuto-check passedMobile

Install Flutter Cherry Pick

skills CLI
$ npx skills add flutter/flutter --skill flutter-cherry-pick -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install flutter/flutter flutter-cherry-pick --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/flutter/flutter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/flutter-cherry-pick .claude/skills/flutter-cherry-pick && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
flutter-cherry-pick
GitHub stars
179k
Token cost
~1.8k tokens
SKILL.md length
888 words
Files
2 (incl. scripts)
Skills in repo
14
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

How to land a formal cherry-pick of a merged PR for the flutter/flutter repo stable or beta channel.

  • Works in 4 steps: Initialization and Channel Detection → Run Cherry-Pick Orchestrator → Conflict Resolution → …
  • Flutter/flutter landed pull requests
  • SKILL.md covers Constraints, Quick Start and Workflows
  • Runs Dart scripts from its folder; calls git and gh

What it does

Flutter Cherry Pick is an agent skill from flutter/flutter. How to land a formal cherry-pick of a merged PR for the flutter/flutter repo stable or beta channel. Only use for flutter/flutter landed pull requests. Only use when the cherry pick request is into "stable", "beta" or a branch that has the format with flutter-<major.<minor-candidate.0.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts.

It sits in Mobile, covering Cross-platform mobile apps. It works with Flutter and Dart. The repository describes itself as: Flutter makes it easy and fast to build beautiful apps for mobile and beyond. The licence is BSD-3-Clause.

When your agent uses it

  • Flutter/flutter landed pull requests
  • The cherry pick request is into stable
  • A branch that has the format with flutter-<major.<minor-candidate.0

Example prompts

  • “stable”
  • “/flutter-cherry-pick”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Initialization and Channel Detection
  2. Run Cherry-Pick Orchestrator
  3. Conflict Resolution
  4. Fill Template and Apply

What it can do on your machine

Read from SKILL.md and the folder at commit 8679894. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Dart), which the agent can run.

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Flutter Cherry Pick loads about 1.8k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 888 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~77
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from flutter/flutter at commit 8679894, republished under its BSD-3-Clause licence (© flutter). 888 words, ~1,817 tokens.

Download SKILL.mdSave it as .claude/skills/flutter-cherry-pick/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
flutter-cherry-pick
description
How to land a formal cherry-pick of a merged PR for the flutter/flutter repo stable or beta channel. Only use for flutter/flutter landed pull requests. Only use when the cherry pick request is into "stable", "beta" or a branch that has the format with flutter-<major>.<minor>-candidate.0.

Flutter Cherry-Pick Workflow

Constraints

This skill has the following strict constraints:

  • Target Repository: Only use for the flutter/flutter repository.
  • Target Channels: Only use when the cherry-pick is targeted at stable, beta, or a release candidate branch matching the format flutter-<major>.<minor>-candidate.<hotfix> (e.g., flutter-3.10-candidate.0).
  • PR Status: Only use for pull requests that have already been successfully merged into master.

Quick Start

Trigger this skill by providing a merged PR number or URL and optionally the target channel:

Workflows

Phase 1: Initialization and Channel Detection
  1. Identify Inputs:
    • Original PR: <ORIGINAL_PR> (number or URL provided by the user).
    • Target Channel: <CHANNEL> (either stable or beta).
  2. Determine Channel:
    • Parse the user's request for the target channel.
    • GATING STEP: If the target channel is not specified in the user's request, you MUST STOP CALLING TOOLS AND ASK the user: "Would you like to cherry-pick this to stable or beta?" and wait for their response before proceeding.
  3. Verify you are in the root of the flutter repository.
  4. Verify Environment: Ensure the repository is clean (no uncommitted changes). Run git status --porcelain to check. If there are pending changes, stop and ask the user to resolve them or stash them.
Phase 2: Run Cherry-Pick Orchestrator
  1. Run the helper script to start the process:
    bash
    <DART_EXECUTABLE> .agents/skills/flutter-cherry-pick/scripts/flutter_cp.dart --pr <ORIGINAL_PR> --channel <CHANNEL> --action start
  2. Evaluate Script Output:
    • Exit Code 0 (Success):
      • The output will end with SUCCESS:AUTOMATED:<CP_PR> or SUCCESS:MANUAL:<CP_PR>.
      • Extract the <CP_PR> number.
      • Proceed to Phase 4: Fill Template.
    • Exit Code 2 (Conflicts):
      • The cherry-pick encountered conflicts and the script checked out a local branch cherry-pick-<ORIGINAL_PR>-to-<CHANNEL>.
      • Proceed to Phase 3: Conflict Resolution.
    • Exit Code 1 (Error):
      • An unexpected error occurred. Report the failure to the user.
Phase 3: Conflict Resolution
  1. Analyze Conflicts:
    • Identify the conflicted files from the script output (or run git status --porcelain to see unmerged files).
  2. Document Conflicts: Articulate what conflicts were encountered and how they were resolved. You will need to include this information in the final PR description.
  3. Attempt Auto-Resolution:
    • For each conflicted file, analyze the conflict markers (<<<<<<<, =======, >>>>>>>).
    • If the conflict is simple (e.g., import ordering, minor formatting, non-overlapping changes), resolve it.
  4. User Fallback:
    • If you cannot resolve the conflicts automatically or the conflicts reflect a change in logic that impacts flutter users:
      • Present the list of conflicted files to the user in the chat.
      • Ask the user to resolve them in their editor.
      • Stop calling tools and wait for the user to confirm resolution.
  5. Continue the Process:
    • Once all conflicts are resolved (either by you or the user), run git add <resolved-files> to stage them.
    • Resume the orchestrator script:
      bash
      <DART_EXECUTABLE> .agents/skills/flutter-cherry-pick/scripts/flutter_cp.dart --pr <ORIGINAL_PR> --channel <CHANNEL> --action continue
    • The script will run git cherry-pick --continue, push, create the PR, and print SUCCESS:MANUAL:<CP_PR>.
    • Extract the <CP_PR> number and proceed to Phase 4: Fill Template.
Show full SKILL.md (403 more words)Show less
Phase 4: Fill Template and Apply
  1. Retrieve Template:
    • Read the local cherry-pick template (located at [PULL_REQUEST_CP_TEMPLATE](../../../.github/PR_TEMPLATE/PULL_REQUEST_CP_TEMPLATE.md) relative to this skill).
  2. Gather Context:
    • Parse the original PR description for linked issues (e.g., "Fixes #187322", "Closes #123").
    • If found, fetch the issue details: gh issue view <ISSUE_NUMBER> --json title,body.
    • Fetch original PR details if needed.
    • If conflicts were encountered and resolved in Phase 3, gather the documentation of those conflicts.
  3. Draft the Template:
    • Fill in the retrieved template fields using LLM reasoning based on the issue and original PR context.
    • If conflicts were resolved, clearly document them in the PR description (e.g., in the "Description" or "Changelog" section), explaining what was resolved and how.
    • Keep the Markdown structure of the template intact.
    • CRITICAL: Remove any instructional text or guidelines within the sections (e.g., "What is the impact...", "Explain this cherry pick...") when replacing them with your responses. Do NOT remove explanations around checkboxes or selection items (e.g., "What is the risk level...", "Are you confident...").
    • Example of filling a text section (remove instructional text):
      • Before:
        markdown
        ### Impact
        What is the impact of this cherry-pick? (Explain the impact on users...)
      • After:
        markdown
        ### Impact
        This fixes a critical crash in the image decoder when rendering corrupted GIFs.
    • Example of filling a checkbox/selection section (do NOT remove options):
      • Before:
        markdown
        ### Shared Engineering Cohort
        Were any engineering cohorts (e.g. Flutter Tooling, Engine, Framework) consulted?
        - [ ] Yes
        - [ ] No
      • After:
        markdown
        ### Shared Engineering Cohort
        Were any engineering cohorts (e.g. Flutter Tooling, Engine, Framework) consulted?
        - [x] Yes
        - [ ] No
  4. Review with User (GATING STEP):
    • Present the drafted template to the user in the chat and ask for approval or edits.
    • YOU MUST STOP CALLING TOOLS AND WAIT for the user's explicit approval in the chat before proceeding. Do not attempt to apply the template pre-emptively.
  5. Apply Template, Update Title, and Add Label:
    • Only proceed to this step after receiving explicit user approval in the chat.
    • Ensure the PR title is formatted as [<CHANNEL>] <ORIGINAL_PR_TITLE>.
    • Ensure the cp: review label is added to the CP PR.
    • Once approved, update the CP PR description, title, and add the label:
      bash
      gh pr edit <CP_PR> --title "[<CHANNEL>] <ORIGINAL_PR_TITLE>" --body "<FINAL_TEMPLATE>" --add-label "cp: review"
      (Note: If gh pr edit fails due to GraphQL deprecation errors, you can use the REST API via gh api to update the body and add the label).
    • Provide the user with the link to the new cherry-pick PR.

© flutter, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in .agents/skills/flutter-cherry-pick of flutter/flutter.

  • SKILL.md
  • scripts/flutter_cp.dart

Open the folder on GitHubat commit 8679894

Compare with similar skills

Flutter Cherry Pick next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Flutter Cherry Pick compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Flutter Cherry Pick this skillflutter/flutter179k—~1.8kAutomated safety check: PassBSD-3-Clause
Flutter Pub ReleaseMixinNetwork/flutter-plugins512—~1.3kAutomated safety check: PassMIT
Liquid Glass Widgetssdegenaar/liquid_glass_widgets712—~3.8kAutomated safety check: PassMIT
Flutter Bloc and Cubitandrewyng/context-hub14k—~998Automated safety check: PassMIT
Solidnank1ro/solid165—~3.1kAutomated safety check: PassMIT
Sync Cbl Docscbl-dart/cbl-dart152—~2kAutomated safety check: PassApache-2.0

Similar skills

  • Flutter Pub Release

    MixinNetwork/flutter-plugins

    Prepare and draft a pub.dev release for a package in the flutter-plugins monorepo.

    512 GitHub stars~1.3k tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Liquid Glass Widgets

    sdegenaar/liquid_glass_widgets

    Mastery guide and architectural rules for liquidglasswidgets.

    712 GitHub stars~3.8k tokensUpdated today
    MobileAuto-check passed
  • Flutter Bloc and Cubit

    andrewyng/context-hub

    Helps choose between Bloc and Cubit in Flutter and sets defaults for packages, lifecycle, widget binding and tests.

    14k GitHub stars~998 tokensUpdated 4 mo ago
    MobileAuto-check passed
  • Solid

    nank1ro/solid

    PRIORITY — read this skill FIRST before writing Dart code when pubspec.yaml declares solidannotations or solidgenerator.

    165 GitHub stars~3.1k tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Sync Cbl Docs

    cbl-dart/cbl-dart

    Sync a Couchbase Lite for Dart documentation page with the official Couchbase Lite docs.

    152 GitHub stars~2k tokensUpdated 11 days ago
    MobileAuto-check passed
  • Flutter SoLoud Audio Filters

    alnitak/flutter_soloud

    Explains how to add and tune flutter_soloud's 13 audio filters at global, per-sound and mixing-bus level, including activation order and parameter fades.

    424 GitHub stars~2.1k tokensUpdated yesterday
    MobileAuto-check passed

More from flutter/flutter

All 14 skills in this repo
  • Engine Whats New

    flutter/flutter

    Generates the "what's new" release summary and diff file for changes in the Flutter engine (//engine/src/flutter) between two releases (e.g., 3.47 vs 3.44).

    179k GitHub stars~978 tokensUpdated today
    Auto-check passed
  • Upgrade Browser

    flutter/flutter

    Upgrade browser versions (Chrome or Firefox) in the Flutter Web Engine and/or Framework tests.

    179k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Code Review

    flutter/flutter

    Performs a comprehensive, multi-step code review of pull requests or local code changes, using iterative refinement (generation, critique, synthesis) to ensure high-quality, actionable feedback.

    179k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Bump Dart

    flutter/flutter

    Do not trigger automatically; only run when a user runs /bump-dart.

    179k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Run Devicelab With Led

    flutter/flutter

    Run DeviceLab tests for Flutter PRs using LUCI's led CLI tool.

    179k GitHub stars~786 tokensUpdated today
    Auto-check passed
  • Shepherd PRs

    flutter/flutter

    Automate shepherding, checking status, updating branches, and landing open PRs or approved third-party contributor PRs in the flutter/flutter repository using the gh CLI.

    179k GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Flutter Cherry Pick

What does Flutter Cherry Pick do?

How to land a formal cherry-pick of a merged PR for the flutter/flutter repo stable or beta channel. Flutter Cherry Pick is an agent skill from flutter/flutter. How to land a formal cherry-pick of a merged PR for the flutter/flutter repo stable or beta channel.

When should I use Flutter Cherry Pick?

Flutter Cherry Pick fits situations like: flutter/flutter landed pull requests; the cherry pick request is into stable; A branch that has the format with flutter-<major.<minor-candidate.0.

How do I install Flutter Cherry Pick in Claude Code?

Run `npx skills add flutter/flutter --skill flutter-cherry-pick -a claude-code`. Or copy the skill folder (.agents/skills/flutter-cherry-pick in flutter/flutter) into .claude/skills/flutter-cherry-pick in your project. Claude Code loads it when a task matches its description.

How do I install Flutter Cherry Pick in Codex?

Run `npx skills add flutter/flutter --skill flutter-cherry-pick -a codex`. Or copy the skill folder (.agents/skills/flutter-cherry-pick in flutter/flutter) into .agents/skills/flutter-cherry-pick in your project. Codex loads it when a task matches its description.

Can I use Flutter Cherry Pick in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add flutter/flutter --skill flutter-cherry-pick -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/flutter-cherry-pick, .gemini/skills/flutter-cherry-pick, .github/skills/flutter-cherry-pick and .opencode/skills/flutter-cherry-pick in your project.

What does Flutter Cherry Pick need to run?

Going by SKILL.md and its folder, Flutter Cherry Pick needs Dart for the scripts in its folder and the command-line tools its instructions call (git and gh).

Does Flutter Cherry Pick access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Flutter Cherry Pick safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Flutter Cherry Pick use?

Flutter Cherry Pick is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Flutter Cherry Pick use?

About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Flutter Cherry Pick?

Skills that share tags, products or a category with Flutter Cherry Pick: Flutter Pub Release (MixinNetwork/flutter-plugins, 512 stars), Liquid Glass Widgets (sdegenaar/liquid_glass_widgets, 712 stars), Flutter Bloc and Cubit (andrewyng/context-hub, 14k stars) and Solid (nank1ro/solid, 165 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Flutter Cherry Pick?

flutter (a GitHub organization) maintains it in flutter/flutter, which has 179,369 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 8, 2026.

Source: flutter/flutter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.