Agent skill

Cherrypick Log

by komikku-app in komikku-app/komikku

Update and review cherrypicklog.md, the todo list of upstream commits not yet cherry-picked into the fork's target branch.

Apache-2.0Auto-check passedProductivity & Automation

Install Cherrypick Log

skills CLI
$ npx skills add komikku-app/komikku --skill cherrypick-log -a claude-code

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

GitHub CLI
$ gh skill install komikku-app/komikku cherrypick-log --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/komikku-app/komikku.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/cherrypick-log .claude/skills/cherrypick-log && 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
cherrypick-log
GitHub stars
4.8k
Token cost
~1.9k tokens
SKILL.md length
935 words
Files
6
Skills in repo
1
Repo updated
First seen
Licence
Apache-2.0

At a glance

Update and review cherrypicklog.md, the todo list of upstream commits not yet cherry-picked into the fork's target branch.

  • Works in 6 steps: Update the list → Get the rows to review → Review each row → …
  • Asked to refresh/update the cherry-pick log
  • SKILL.md covers 1. Update the list, 2. Get the rows to review, 3. Review each row and 4. Record the verdict (never…, plus 4 more sections
  • Runs Python scripts from its folder; calls python3 and git

What it does

Cherrypick Log is an agent skill from komikku-app/komikku. Update and review cherrypicklog.md, the todo list of upstream commits not yet cherry-picked into the fork's target branch. The upstreams are set in config.json (one main upstream plus one or more additional ones; in Komikku, main mihon/main, additional tachiyomiSY/master). Use when asked to refresh/update the cherry-pick log, list new upstream commits, resolve '?' (uncertain) entries by checking whether an upstream change is already in master, or clean the log by omitting (marking X) commits that only bump the…

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `README.md`, `config.json` and `test_update_cherrypick_log.py`).

It sits in Productivity & Automation, covering Task management and Comics and storyboards. It works with Kotlin and Android. The repository describes itself as: Free and open source manga reader for Android. The licence is Apache-2.0.

When your agent uses it

  • Asked to refresh/update the cherry-pick log
  • List new upstream commits
  • Resolve ? (uncertain) entries by checking whether an upstream change is already in master
  • Clean the log by omitting (marking X) commits that only bump the app version

Example prompts

  • “/cherrypick-log”

Requirements

  • Python 3

Workflow steps

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

  1. Update the list
  2. Get the rows to review
  3. Review each row
  4. Record the verdict (never hand-edit the table)
  5. Clean the log: omit version-bump-only commits
  6. Finish

What it can do on your machine

Read from SKILL.md and the folder at commit 43e92b6. 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 script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • git

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

  • Network

    No URLs in SKILL.md. Its commands use git, 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

Cherrypick Log loads about 1.9k tokens when it runs. Until then it costs about 136 tokens; SKILL.md has 935 words of instructions outside code blocks.

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

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from komikku-app/komikku at commit 43e92b6, republished under its Apache-2.0 licence (© komikku-app). 935 words, ~1,913 tokens.

Download SKILL.mdSave it as .claude/skills/cherrypick-log/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
cherrypick-log
description
Update and review cherrypick_log.md, the todo list of upstream commits not yet cherry-picked into the fork's target branch. The upstreams are set in config.json (one main upstream plus one or more additional ones; in Komikku, main mihon/main, additional tachiyomiSY/master). Use when asked to refresh/update the cherry-pick log, list new upstream commits, resolve '?' (uncertain) entries by checking whether an upstream change is already in master, or clean the log by omitting (marking X) commits that only bump the app version.

Cherry-pick log: update + AI review

Everything for this tool lives in this folder (.claude/skills/cherrypick-log/):

FileRole
SKILL.mdThis file: the procedure an AI agent follows
update_cherrypick_log.pyDeterministic generator: fetch, filter, pair, order, detect, keep manual marks
config.jsonMain upstream + additional upstreams, target branch, start date (since, per repo), output path, excluded identities
README.mdHuman documentation: rules, columns, commands, porting to another project

The output is cherrypick_log.md in the repo root. The script is the source of truth for the list, its order and statuses found by hash or PR. It also flags commits that cancel each other out: a commit and its revert (or a longer revert chain) that the fork has none of get ? with a Cancels out (script): note on every update. These flags are recomputed on every run until the row gets an AI checked note or a status set by hand (see README "Revert chains"). The AI's job is narrow:

  • decide the rows the script could not (?, and empty rows only if the user asks) by comparing the code itself (sections 2-4);
  • when asked to clean the log, omit the commits that only bump the app version (section 5).

1. Update the list

bash
python3 .claude/skills/cherrypick-log/update_cherrypick_log.py          # fetch + regenerate
python3 .claude/skills/cherrypick-log/update_cherrypick_log.py update --no-fetch   # offline

Report the summary line (commits / new / status changes / gone) and the summary table at the top of cherrypick_log.md. If the user only asked to update, stop here.

2. Get the rows to review

bash
P=.claude/skills/cherrypick-log/update_cherrypick_log.py
python3 $P uncertain --json                      # '?' rows not yet AI-reviewed
python3 $P uncertain --json --repo mihon --limit 20
python3 $P uncertain --json --include-empty --repo mihon --limit 30   # only when the user asks

Rows whose Notes already contain AI checked are skipped (use --include-reviewed to redo them). A ↳ tachiyomiSY row is SY's copy of the mihon row directly below it. Both share one status, so review the mihon commit once and mark both rows.

3. Review each row

A row with a Cancels out (script): note is part of a revert pair or chain: review all of its rows together (the hashes in the notes) and give them consistent verdicts. Leave them ? with an AI checked note when the pair cancels out and the fork has neither side, since dropping the pair (X) is the maintainer's decision.

For upstream commit H (already fetched locally):

  1. git show --stat --format=fuller H and then the diff (git show H -- <path>) for the main files.
  2. If Details names target commits (master `abc` [title], [pr only …]), inspect them: git show --stat abc, then compare the hunks with the upstream change.
  3. Otherwise, search master for the change itself:
    • git grep -n -F '<distinctive added line>' master -- <path> (Komikku keeps most upstream paths; changes may be wrapped in // KMK / // SY markers or be in a renamed file).
    • git log master --oneline -S'<distinctive snippet>' --since=<upstream date - 6 months>.
    • For removals, check that the removed code is gone from master.
  4. Decide:
    • O: the change is in master (cherry-picked, squashed into another commit, or re-implemented).
    • ?: partly present, conflicts with a Komikku rework, or you can't tell.
    • empty: not present. Never set X here. That is the maintainer's "won't pick" decision. The only exception is section 5 (version-bump-only commits).

4. Record the verdict (never hand-edit the table)

bash
python3 $P mark <hash> --status O    --note "AI checked YYYY-MM-DD: present in master <kmk-hash or file> - <why>"
python3 $P mark <hash> --status '?'  --note "AI checked YYYY-MM-DD: partial - <what is missing>"
python3 $P mark <hash> --status none --note "AI checked YYYY-MM-DD: not found - <what you searched>"
  • Every AI note must start with AI checked <date>:. The script uses this marker to keep an AI "not found" verdict and to leave reviewed rows out of uncertain.
  • mark refuses to change O / X rows. Do not pass --force unless the user explicitly asks.
  • Keep notes to one line. Mention the evidence (target commit hash, file, or search done).
Show full SKILL.md (393 more words)Show less

5. Clean the log: omit version-bump-only commits

Run this step when the user asks to clean the log, or together with a review if they ask for that. Release commits of a fork (mihon's Release v0.20.4, SY's Release 1.13.2 / 1.10.5, Bump versionCode to 33, Update version code) are only for that fork's releases, so the fork never picks them.

  1. List candidates among empty and ? rows (an AI checked note does not exclude them here):
    bash
    python3 $P uncertain --json --include-empty --include-reviewed \
      --grep '^(release|v?[0-9]+\.[0-9]+(\.[0-9]+)?$)|version ?code|bump (the )?(app )?version|update (app )?version'
    The title only nominates a row. Also nominate rows you come across whose diff only bumps the version.
  2. Check each one: git show --stat --format= H, then git show H for small diffs. Mark it X only if every change is release bookkeeping:
    • versionCode / versionName (or a version constant) in app/build.gradle.kts or another build file;
    • release notes: CHANGELOG.md release headings and links, fastlane/**/changelogs, release README badges;
    • version numbers in .github issue templates, and the release-notes text in a release workflow;
    • whitespace-only fixes (e.g. a missing final newline) that ride along with the release. Anything else in the diff (min/target SDK, dependency bumps, migrations, code, strings) means not X: leave the row as it is, and mention it in the report if it looks interesting.
  3. Record it: python3 $P mark H --status X --note "AI checked YYYY-MM-DD: omitted - version bump only (<files>)". SY copies (↳ rows) of a version-bump commit get the same mark.

6. Finish

  1. python3 $P update --no-fetch to make sure the file still parses and to refresh the summary. This also applies the script's revert-chain omission.
  2. Report to the user how many rows you reviewed, how many became O / stayed ? / empty / X, and any rows that need a human decision (big reworks, likely X candidates).
  3. Do not commit unless asked. If asked, follow AGENTS.md git rules (feature branch, never master).

Large batches

For more than ~20 rows, split them into batches (e.g. by --repo and --limit) and give each batch to a subagent, which only reports hash → verdict + one-line evidence. The main agent then runs all mark commands, so only one process writes the file.

Changing the rules

Matching and ordering rules are in update_cherrypick_log.py: the module docstring, the constants at the top, and Builder.pair / Builder.detect. They are explained in README.md. Update both when you change behavior.

© komikku-app, Apache-2.0. 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 5 other files in .claude/skills/cherrypick-log of komikku-app/komikku.

  • SKILL.md
  • .gitignore
  • README.md
  • config.json
  • test_update_cherrypick_log.py
  • update_cherrypick_log.py

Open the folder on GitHubat commit 43e92b6

Compare with similar skills

Cherrypick Log 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.

Cherrypick Log compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cherrypick Log this skillkomikku-app/komikku4.8k—~1.9kAutomated safety check: PassApache-2.0
Android Hidden API and R8 Checkgkd-kit/gkd43k—~1.5kAutomated safety check: PassGPL-3.0
Compose Multiplatform Patternsmonta-app/ocpp-emulator1805 repos~2kAutomated safety check: PassApache-2.0
Android Developmentdpconde/claude-android-skill337—~1.7kAutomated safety check: PassMIT
Ha Android Architecturehome-assistant/android4k—~1.7kAutomated safety check: PassApache-2.0
Architecture Overclocknekomangaorg/Neko2.8k—~1.4kAutomated safety check: PassApache-2.0

Similar skills

  • Checks whether Android hidden-API implementations and system callbacks survive R8 minification, and diagnoses Release-only failures such as AbstractMethodError.

    43k GitHub stars~1.5k tokensUpdated yesterday
    MobileAuto-check passed
  • Compose Multiplatform Patterns

    monta-app/ocpp-emulator

    Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.

    180 GitHub starsUsed in 5 repos~2k tokens
    MobileAuto-check passed
  • Android Development

    dpconde/claude-android-skill

    Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.

    337 GitHub stars~1.7k tokensUpdated 10 mo ago
    MobileAuto-check passed
  • Ha Android Architecture

    home-assistant/android

    Home Assistant Android module and layer architecture. An agent skill from home-assistant/android.

    4k GitHub stars~1.7k tokensUpdated today
    MobileAuto-check passed
  • Architecture Overclock

    nekomangaorg/Neko

    Resolves deep, structural performance bottlenecks in the Kotlin Android codebase.

    2.8k GitHub stars~1.4k tokensUpdated today
    MobileAuto-check passed
  • Claude Android Ninja

    Drjacky/claude-android-ninja

    Build and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle.

    124 GitHub stars~5.2k tokensUpdated 9 days ago
    MobileAuto-check passed

Works with

Questions about Cherrypick Log

What does Cherrypick Log do?

Update and review cherrypicklog.md, the todo list of upstream commits not yet cherry-picked into the fork's target branch. Cherrypick Log is an agent skill from komikku-app/komikku.md, the todo list of upstream commits not yet cherry-picked into the fork's target branch.

When should I use Cherrypick Log?

Cherrypick Log fits situations like: asked to refresh/update the cherry-pick log; list new upstream commits; resolve ? (uncertain) entries by checking whether an upstream change is already in master; clean the log by omitting (marking X) commits that only bump the app version.

How do I install Cherrypick Log in Claude Code?

Run `npx skills add komikku-app/komikku --skill cherrypick-log -a claude-code`. Or copy the skill folder (.claude/skills/cherrypick-log in komikku-app/komikku) into .claude/skills/cherrypick-log in your project. Claude Code loads it when a task matches its description.

How do I install Cherrypick Log in Codex?

Run `npx skills add komikku-app/komikku --skill cherrypick-log -a codex`. Or copy the skill folder (.claude/skills/cherrypick-log in komikku-app/komikku) into .agents/skills/cherrypick-log in your project. Codex loads it when a task matches its description.

Can I use Cherrypick Log 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 komikku-app/komikku --skill cherrypick-log -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cherrypick-log, .gemini/skills/cherrypick-log, .github/skills/cherrypick-log and .opencode/skills/cherrypick-log in your project.

What does Cherrypick Log need to run?

Going by SKILL.md and its folder, Cherrypick Log needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and git). Our summary lists: Python 3.

Does Cherrypick Log access the network?

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

Is Cherrypick Log 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. Review the folder before installing.

What licence does Cherrypick Log use?

Cherrypick Log is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cherrypick Log use?

About 1.9k tokens (SKILL.md is roughly 7.7k 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 Cherrypick Log?

Skills that share tags, products or a category with Cherrypick Log: Android Hidden API and R8 Check (gkd-kit/gkd, 43k stars), Compose Multiplatform Patterns (monta-app/ocpp-emulator, 180 stars), Android Development (dpconde/claude-android-skill, 337 stars) and Ha Android Architecture (home-assistant/android, 4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cherrypick Log?

komikku-app (a GitHub organization) maintains it in komikku-app/komikku, which has 4,832 GitHub stars. The repository was last updated on October 8, 2026.

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