What problem does it solve? Commit messages and branch names are often written from memory or a vague task summary, producing generic entries like "update task" that hide what actually changed. This Skill inspects the real git diff and produces a branch name and a concise commit message that name the actual paths and behaviors changed, with an optional --apply mode that creates the commit after explicit in-turn confirmation. ## Core Features & Use Cases - Diff-grounded naming: Reads git diff, git diff --staged, or git diff <base>...HEAD and derives the commit subject from real paths and hunks, never from the task summary alone. - Conventional Commits output: Returns a subject line of at most 72 characters with an optional two-line body, preferring feat:, fix:, docs:, and similar prefixes when they fit the diff. - Multi-concern detection: Flags diffs that span unrelated scopes and recommends splitting into separate commits or escalating to a full PR package. - Guarded --apply mode: Creates the commit only in Agent mode with a human present, after displaying the exact staged content and receiving same-turn confirmation, then records pre- and post-commit HEAD values for audit. - Use Case: You just finished a slice of work with staged changes. Run the command to get a branch name and commit message that accurately describe the diff, then use --apply to commit exactly what was shown. ## Quick Start Ask the assistant to run branch-commit on my current staged changes and suggest a branch name and commit message based on the real diff.