Agent skill

Commit

by timusus in timusus/Shuttle2

Analyse working tree changes, group them into logical atomic commits, and create well-structured conventional commits with module scopes.

Apache-2.0Auto-check: notesDevelopment

Install Commit

skills CLI
$ npx skills add timusus/Shuttle2 --skill commit -a claude-code

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

GitHub CLI
$ gh skill install timusus/Shuttle2 commit --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/timusus/Shuttle2.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/commit .claude/skills/commit && 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
commit
GitHub stars
229
Token cost
~1.9k tokens
SKILL.md length
879 words
Files
1
Skills in repo
13
Repo updated
First seen
Licence
Apache-2.0

At a glance

Analyse working tree changes, group them into logical atomic commits, and create well-structured conventional commits with module scopes.

  • Works in 7 steps: Gather context → Review changes and decide inclusion → Classify changes by component → …
  • Tasks that involve Commit messages
  • SKILL.md covers Steps and Examples
  • Calls git

What it does

Commit is an agent skill from timusus/Shuttle2. Analyse working tree changes, group them into logical atomic commits, and create well-structured conventional commits with module scopes.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Commit messages. It works with Android. The repository describes itself as: Shuttle Music: a music player for Android and iOS. Plays local files and streams from Jellyfin, Emby, Plex and Navidrome/Subsonic, with Chromecast, Android Auto, EQ and replay… The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Commit messages

Example prompts

  • “/commit”

Workflow steps

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

  1. Gather context
  2. Review changes and decide inclusion
  3. Classify changes by component
  4. Group into logical commits
  5. Determine commit message for each group
  6. Stage and commit each group
  7. Summary

What it can do on your machine

Read from SKILL.md and the folder at commit 116c579. 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

    Shell commands in SKILL.md call:

    • 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

Commit loads about 1.9k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 879 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~36
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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:48
    ive files** (credentials, keys, tokens, `.env` with secrets) — warn and **never** commit these

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 timusus/Shuttle2 at commit 116c579, republished under its Apache-2.0 licence (© timusus). 879 words, ~1,886 tokens.

Download SKILL.mdSave it as .claude/skills/commit/SKILL.md (or your agent's skills folder).
name
commit
description
Analyse working tree changes, group them into logical atomic commits, and create well-structured conventional commits with module scopes.
user_invocable
true

Commit Changes

Analyse the current working tree, group changes into logical atomic commits, and create them using conventional commit format.

Steps

1. Gather context

Run these commands to understand the full picture:

bash
# Staged changes
git diff --cached --stat
git diff --cached

# Unstaged changes
git diff --stat
git diff

# Untracked files
git status -u

# Recent commits for style reference
git log --oneline -10

If there are no changes at all (nothing staged, unstaged, or untracked), tell the user and stop.

2. Review changes and decide inclusion

Review all changes (staged, unstaged, and untracked). Be autonomous — commit everything that looks intentional without asking. The bias is toward getting things committed, not toward caution-prompting.

Include without asking:

  • All staged changes — the user explicitly staged these
  • All unstaged changes to tracked files — these are work in progress that should be captured
  • Untracked files that clearly relate to the other changes (new source files, tests, resources, configs for the feature being worked on)
  • Deleted files — if a file is deleted in the working tree, the deletion is intentional
  • Files outside the apparent scope — include them in their own commit rather than leaving them uncommitted
  • CLAUDE.md changes — always include these

Only stop and ask if you encounter a genuine red flag:

  • Sensitive files (credentials, keys, tokens, .env with secrets) — warn and never commit these
  • Files that are almost certainly not meant for version control (e.g., .DS_Store, *.log, editor swap files, node_modules/)

If everything looks clean (which is the common case), proceed directly to grouping and committing — no confirmation prompt needed.

3. Classify changes by component

Determine which component each changed file belongs to:

  • app — files under android/app/
  • playback — files under android/playback/
  • mediaprovider — files under android/mediaprovider/ (any provider)
  • domain — files under android/domain/
  • core, networking, imageloader, trial — the corresponding android/<module>/
  • root — top-level files (CI, docs, scripts, Gradle config)

For root files, choose the most relevant scope:

  • CI/CD workflows for a specific module → use that module's scope
  • Cross-cutting or build-wide changes → omit the scope
4. Group into logical commits

Split changes into atomic commits. Each commit should represent one logical change that leaves the codebase in a working state.

Group by:

  • Same feature or purpose across related files
  • Same type of change (e.g., all test updates for a feature go together)
  • Dependencies — if change B only makes sense with change A, they belong together

Split when:

  • Changes serve different purposes (feature vs refactor vs test vs docs)
  • Unrelated files happen to be modified together
  • A rename/refactor is mixed with behaviour changes
  • Test additions are standalone (not tied to a specific feature change)

Ordering: Commit foundational changes first (e.g., new module before feature using it, refactor before feature built on it).

When in doubt, fewer well-grouped commits are better than many tiny ones. Don't split for the sake of splitting — only split when commits genuinely represent distinct logical changes.

5. Determine commit message for each group

Follow the conventional commit format from this project:

type(scope): description

[optional body]

[optional footer]
Type

Choose the most accurate type:

  • feat — new feature or capability
  • fix — bug fix
  • refactor — code restructuring without behaviour change
  • test — adding or updating tests
  • docs — documentation changes
  • style — formatting, linting (no logic change)
  • chore — maintenance, dependencies, config
  • build — build system or dependency changes
  • ci — CI/CD pipeline changes
  • perf — performance improvement
Scope

The module the change lives in (see the list above). Optional for cross-cutting or build-wide changes.

If a commit touches several modules, use the primary one (where the meaningful change is) or split into separate commits.

Show full SKILL.md (337 more words)Show less
Subject line
  • Imperative mood: "add", "fix", "update" — not "added", "adds", "adding"
  • Lowercase after the colon
  • No period at the end
  • Max 50 characters for the description (after type(scope): ). Stretch to 72 max if absolutely necessary
  • Explain the "why" or "what changed", not the mechanical "how"

Good: feat(playback): add queue reordering via drag and drop Bad: feat(playback): updated QueueScreen.kt and QueueViewModel.kt

Body

Include a body when:

  • The "why" isn't obvious from the subject line alone
  • There are side effects, trade-offs, or context worth capturing
  • Multiple files changed and the connection isn't obvious

Body rules:

  • Blank line between subject and body
  • Wrap at 72 characters
  • Explain why, not what (the diff shows what)
  • Use bullet points for multiple points

Skip the body for self-explanatory changes (typo fixes, simple renames, obvious additions).

Changelog upkeep

For feat/fix/perf commits, the .githooks/commit-msg hook requires one of:

  • Stage a new android/changelog.d/<issue>-<slug>.json fragment together with the code — when the commit changes what a user sees or experiences
  • Add a Changelog: none trailer to the message — when the change is internal (tests, refactors, tooling, CI, DI plumbing)

Which rule decides is in .claude/rules/changelog.md: a change iterating on an unreleased fragment edits that fragment rather than adding a new one, and internal changes take the trailer.

6. Stage and commit each group

For each logical commit group, stage the relevant files and commit:

bash
# Stage specific files for this commit
git add <file1> <file2> ...

# Use git add -p to stage partial file changes when needed
# (when a single file contains changes belonging to different commits)

# Commit with heredoc for proper formatting
git commit -m "$(cat <<'EOF'
type(scope): subject line here

Optional body here explaining why this change was made.
Wrap at 72 characters.
EOF
)"

Important:

  • Stage specific files by name — never use git add -A or git add .
  • Use git add -p <file> when a file has changes belonging to different logical commits
  • Verify each commit with git status before moving to the next group
  • If a pre-commit hook fails, fix the issue and create a new commit (never --amend unless the user explicitly asks)
7. Summary

After all commits are created, show a brief summary:

Created N commit(s):

  abc1234 type(scope): first commit subject
  def5678 type(scope): second commit subject

Examples

Single-component change
feat(android): add offline download support for episodes

Introduce DownloadManager and background worker to cache episodes
locally. Downloads persist across app restarts and respect user's
network preferences.
Multi-commit from mixed changes

Given changes to Android UI, Android tests, and a backend endpoint:

  1. feat(android): add episode search filter by duration
  2. test(android): add search filter unit tests
  3. feat(backend): add duration parameter to episode search endpoint

© timusus, 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

Just SKILL.md in .claude/skills/commit of timusus/Shuttle2.

Open the folder on GitHubat commit 116c579

Compare with similar skills

Commit 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.

Commit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Commit this skilltimusus/Shuttle2229—~1.9kAutomated safety check: NotesApache-2.0
Git GitHub Opsc5inco/compose-pokedexer143—~1.3kAutomated safety check: PassMIT
Find ReviewerBrowserWorks/waterfox-android376—~898Automated safety check: PassCustom licence
Commitmanhpham90vn/Deskhub133—~978Automated safety check: PassMIT
Android UI Visual Reviewpermissionlesstech/bitchat-android7.7k—~2.6kAutomated safety check: PassGPL-3.0
jscpd Code Migration Trackerkucherenko/jscpd6.3k—~5kAutomated safety check: PassMIT

Similar skills

  • Git GitHub Ops

    c5inco/compose-pokedexer

    Handles Pokedexer Git and GitHub workflows: inspect changes, prepare commit messages, manage branches and pushes, and create or update issues and pull requests with safe file-based inputs.

    143 GitHub stars~1.3k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Find Reviewer

    BrowserWorks/waterfox-android

    Find the right reviewer for a Firefox/Gecko change so the user does not have to.

    376 GitHub stars~898 tokensUpdated 15 days ago
    DevelopmentAuto-check passed
  • Commit

    manhpham90vn/Deskhub

    Write a Deskhub commit message. An agent skill from manhpham90vn/Deskhub.

    133 GitHub stars~978 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Android UI Visual Review

    permissionlesstech/bitchat-android

    Analyze an Android pull request, branch, commit, or patch for user-visible changes and produce reproducible before/after screenshots from isolated builds.

    7.7k GitHub stars~2.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Measures a code port between languages or frameworks with jscpd's function-level comparison, porting tests before code and tracking what is left unmatched.

    6.3k GitHub stars~5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Code Guidelines

    getsentry/sentry-react-native

    Official

    Enforce Sentry React Native SDK code guidelines for implementation, refactoring, and review.

    1.8k GitHub stars~3.2k tokensUpdated today
    DevelopmentAuto-check passed

More from timusus/Shuttle2

All 13 skills in this repo
  • Comprehensive guidance for writing deterministic tests for Android code using Kotlin coroutines.

    229 GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Debug Receivers

    timusus/Shuttle2

    Drive the S2 debug build's playback and queue over ADB broadcasts — play the whole library, play/pause, skip, seek, remove a queue item, toggle shuffle/repeat, dump playback state as JSON, reimport…

    229 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Deploy Android

    timusus/Shuttle2

    Deploy the Android app to the Play Store via GitHub Actions.

    229 GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Reply Reviews

    timusus/Shuttle2

    Weekly Play Store review flow for S2: fetch new reviews, draft replies, get owner approval, then post.

    229 GitHub stars~1k tokensUpdated yesterday
    Auto-check passed
  • Check

    timusus/Shuttle2

    Run lint + unit tests, investigate and fix failures. An agent skill from timusus/Shuttle2.

    229 GitHub stars~449 tokensUpdated yesterday
    Auto-check passed
  • Delegate Verbose

    timusus/Shuttle2

    Run high-volume work in a subagent so its raw output never enters this conversation.

    229 GitHub stars~864 tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Commit

What does Commit do?

Analyse working tree changes, group them into logical atomic commits, and create well-structured conventional commits with module scopes. Commit is an agent skill from timusus/Shuttle2. Analyse working tree changes, group them into logical atomic commits, and create well-structured conventional commits with module scopes.

When should I use Commit?

Commit fits situations like: tasks that involve Commit messages.

How do I install Commit in Claude Code?

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

How do I install Commit in Codex?

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

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

What does Commit need to run?

Going by SKILL.md and its folder, Commit needs the command-line tools its instructions call (git).

Does Commit 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 Commit safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Commit use?

Commit 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 Commit use?

About 1.9k tokens (SKILL.md is roughly 7.5k 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 Commit?

Skills that share tags, products or a category with Commit: Git GitHub Ops (c5inco/compose-pokedexer, 143 stars), Find Reviewer (BrowserWorks/waterfox-android, 376 stars), Commit (manhpham90vn/Deskhub, 133 stars) and Android UI Visual Review (permissionlesstech/bitchat-android, 7.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Commit?

timusus (a GitHub user) maintains it in timusus/Shuttle2, which has 229 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 6, 2026.

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