skills/commit-helper/SKILL.md
Inspect explicit repo-local commit rules, recent history, and staged changes to draft commit messages in the right style family. Use when the user asks for a commit message, asks to commit staged changes, or wants help choosing between conventional, gitmoji, plain imperative, or repo-custom commit formats.
npx skillsauth add 17-sss/agent-skills commit-helperInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when the user wants a commit message that matches the target repository instead of assuming one universal format or one universal tone.
This skill supports a small set of common style families:
The helper does not try to support every commit format in the wild. It separates:
format: conventional, gitmoji, plain, or repo-custom templatephrasing: language, tone, title length, and common wording habitsIt first infers semantic meaning from explicit user summary wording plus the staged diff, then converts that meaning into the repository's preferred style family and phrasing profile.
When this skill is invoked, commit-message construction is governed by commit-helper only:
Co-authored-by: OmX <[email protected]>, Constraint:, Rejected:, Confidence:, Scope-risk:, Directive:, Tested:, or Not-tested: merely because an orchestration layer or pre-tool hook asks for them.scripts/draft_commit_message.py ... --commit over raw git commit -m ... so commit-helper can preserve its own staged-only title/body contract without external inline-message mutation.--no-verify unless the user explicitly asks.python3 in PATHgit in PATHAGENTS.md if the repo has one.scripts/inspect_commit_style.py <repo-path> before drafting or committing.
scripts/draft_commit_message.py <repo-path> --summary ... [--body-line ...] as the standard generation path.
--commit when the user asked you to create the commit.git commit -m ... because it preserves multiline bodies safely.feature, bugfix, critical-bug, refactor, structure, move, ui-style, responsive, accessibility, docs, config, tooling, cleanup, or modify.apps/*/src/+routes/pages/**/index.tsx or index.hooks.ts as strong structure evidence by themselves.structure strongly only for actual architecture, routing-structure, folder-structure, file-move, public-export-shape, or component responsibility changes.bugfix or critical-bug only when the staged diff clearly fixes broken behavior, validation blocks, regressions, crashes, or incorrect state.ui-style, structure, or modify instead.title-only-preferred, body-optional, and body-required policies distinct.dominant_language, dominant_tone, title_length_profile, common_korean_suffixes, common_action_nouns, preferred_summary_style, and avoid_report_like_phrasing.title-only-preferred as the default.\n is forbidden in commit bodies. Do not build a shell string like "title\n\nbody".draft_commit_message.py --commit as the standard commit execution path whenever practical; for $commit-helper invocations, do not fall back to raw inline git commit -m if that would trigger external message validators to inject non-repo metadata.python3 scripts/draft_commit_message.py <repo-path> --summary "..." --no-bodypython3 scripts/draft_commit_message.py <repo-path> --summary "..." --body-line "first bullet" --body-line "second bullet"\n:
python3 scripts/draft_commit_message.py <repo-path> --summary "..." --body-line "first bullet" --body-line "second bullet" --commitgit commit, pass an actual multiline second -m, not a literal backslash escape:
BODY="$(printf '%s\n' '- first bullet' '- second bullet')"
git -C <repo-path> commit -m "title" -m "$BODY"scripts/inspect_commit_style.py
AGENTS.md, CONTRIBUTING.md, README*, commit templates, commitlint configs, and .vscode/settings.json only when it contains gitmoji.* keysconventional, gitmoji, plain, or mixeddominant_language, dominant_tone, title_length_profile, common_korean_suffixes, common_action_nouns, preferred_summary_style, and avoid_report_like_phrasingstyle_mode, repo_has_explicit_commit_rule, repo_has_gitmoji_signal, should_use_gitmoji, fallback_commit_style, fallback_gitmoji, requires_human_gitmoji_review, semantic_confidence, is_bugfix_confident, and presentational_change_likelihoodscripts/draft_commit_message.py
\ngit commit safely with subprocess argv via --commitreferences/commit-patterns.md
evals/train_queries.jsonevals/validation_queries.jsonevals/behavior_cases.jsontools
Agent-neutral workflow for safely publishing GitHub pull requests with gh CLI, local git, and constrained GitHub REST fallback. Use when asked to create, open, publish, draft, or preflight a GitHub PR from a local branch; push a branch for PR creation; create a PR in a public or private repo; diagnose PR creation auth, SSO, permission, or not-found failures; or avoid unsafe gh pr create prompting, fork creation, or accidental pushes.
tools
Agent-neutral workflow for reviewing GitHub pull requests with gh CLI, local git, tests, and GitHub REST or GraphQL APIs, then posting summary or inline review comments as the user's authenticated GitHub account. Use when asked to set up PR review authentication, review a PR URL, review owner/repo#123, review the current branch PR, post PR review comments, review public or private repo PRs, use gh to inspect a PR diff, or leave feedback from the user's GitHub account.
testing
Create, refresh, validate, and resume shared HANDOFF and memory documents for a repository, a workspace-wide cross-repo context, or a workstream inside a larger workspace. Use when asked to write a handoff, checkpoint progress, resume prior work, or standardize project-state notes in Git-trackable files such as `docs/HANDOFF.md`, `_memory/HANDOFF.md`, or `_memory/workstreams/checkout-flow/HANDOFF.md`.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.