{"id":"9b8aeaf4-97ea-4089-80dc-d1c455517691","shortId":"XWWJAw","kind":"skill","title":"git-commit","tagline":"Use when inspecting local git changes, drafting or validating Conventional Commit messages, checking type or scope choices, explaining breaking changes, or creating a focused commit from the actual diff.","description":"# Git Commit\n\nInspect the actual diff before writing the message. Prefer one coherent commit per intent, then map that intent to a Conventional Commits title and only add extra sections when they carry concrete information.\n\nRead `references/conventional-commits.md` when the type is ambiguous, when you need trailers or breaking-change wording, or when the user asks for exact format details.\n\n## Workflow\n\n1. Inspect the exact commit contents.\n   Start with `git status --short`. If the user asks for a commit, inspect `git diff --cached` first; inspect `git diff` too when unstaged changes might affect the commit boundary.\n2. Define the commit boundary.\n   Group files by one user-visible intent. If the diff mixes unrelated work, recommend splitting it into multiple commits instead of forcing one vague summary over several intents.\n3. Choose the type and scope from behavior.\n   Pick the lowercase Conventional Commits type that best matches the dominant behavior. Add a short noun-like scope only when it adds signal.\n4. Write the title in the required format.\n   Use `<type>[optional scope][!]: <description>`. Keep the description short, specific, and grounded in the diff.\n5. Add body and footers only when they add concrete value.\n   Use the body for why, constraints, or tradeoffs. Add footers only for real trailers or `BREAKING CHANGE:`.\n6. Keep the message aligned with the selected diff.\n   Do not describe unstaged changes, planned follow-up work, or unrelated cleanup that is not part of the commit.\n\n## Decision Rules\n\n- Prefer `feat` for a new capability and `fix` for incorrect behavior or regressions.\n- Prefer `refactor` when behavior should stay the same, and `docs` when only documentation changes.\n- Prefer no scope, body, or footer unless each one adds concrete signal.\n- Prefer multiple commits over one vague summary when the diff contains unrelated work.\n- If the user asks for validation, check both the structure and whether the wording matches the inspected diff.\n- Follow repo git rules for staging and commit structure; this skill focuses on mapping the diff to the right message.\n- Do not add, preserve, or generate any AI attribution trailers in commits, PRs, or messages, including `Co-authored-by`, `Generated-by`, `Created-by`, `Coding-Agent`, model names, tool names, or agent attribution footers.\n\n## Reference\n\n- `references/conventional-commits.md`: exact format, common types, footer rules, breaking-change wording, and examples.","tags":["git","commit","skills","narumiruna","agent-skills"],"capabilities":["skill","source-narumiruna","skill-git-commit","topic-agent-skills"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/narumiruna/skills/git-commit","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add narumiruna/skills","source_repo":"https://github.com/narumiruna/skills","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 7 github stars · SKILL.md body (2,475 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:13:45.567Z","embedding":null,"createdAt":"2026-05-18T19:13:45.567Z","updatedAt":"2026-05-18T19:13:45.567Z","lastSeenAt":"2026-05-18T19:13:45.567Z","tsv":"'1':94 '2':129 '3':163 '4':195 '5':216 '6':244 'actual':31,37 'add':60,183,193,217,224,235,311,367 'affect':125 'agent':393,399 'ai':372 'align':248 'ambigu':74 'ask':88,108,330 'attribut':373,400 'author':383 'behavior':170,182,285,291 'best':178 'bodi':218,229,305 'boundari':128,133 'break':22,81,242,411 'breaking-chang':80,410 'cach':115 'capabl':280 'carri':65 'chang':9,23,82,123,243,257,301,412 'check':16,333 'choic':20 'choos':164 'cleanup':265 'co':382 'co-authored-bi':381 'code':392 'coding-ag':391 'coher':45 'commit':3,14,28,34,46,56,98,111,127,132,153,175,272,316,352,376 'common':406 'concret':66,225,312 'constraint':232 'contain':324 'content':99 'convent':13,55,174 'creat':25,389 'created-bi':388 'decis':273 'defin':130 'describ':255 'descript':208 'detail':92 'diff':32,38,114,119,144,215,252,323,344,360 'doc':297 'document':300 'domin':181 'draft':10 'exact':90,97,404 'exampl':415 'explain':21 'extra':61 'feat':276 'file':135 'first':116 'fix':282 'focus':27,356 'follow':260,345 'follow-up':259 'footer':220,236,307,401,408 'forc':156 'format':91,202,405 'generat':370,386 'generated-bi':385 'git':2,8,33,102,113,118,347 'git-commit':1 'ground':212 'group':134 'includ':380 'incorrect':284 'inform':67 'inspect':6,35,95,112,117,343 'instead':154 'intent':48,52,141,162 'keep':206,245 'like':188 'local':7 'lowercas':173 'map':50,358 'match':179,341 'messag':15,42,247,364,379 'might':124 'mix':145 'model':394 'multipl':152,315 'name':395,397 'need':77 'new':279 'noun':187 'noun-lik':186 'one':44,137,157,310,318 'option':204 'part':269 'per':47 'pick':171 'plan':258 'prefer':43,275,288,302,314 'preserv':368 'prs':377 'read':68 'real':239 'recommend':148 'refactor':289 'refer':402 'references/conventional-commits.md':69,403 'regress':287 'repo':346 'requir':201 'right':363 'rule':274,348,409 'scope':19,168,189,205,304 'section':62 'select':251 'sever':161 'short':104,185,209 'signal':194,313 'skill':355 'skill-git-commit' 'source-narumiruna' 'specif':210 'split':149 'stage':350 'start':100 'status':103 'stay':293 'structur':336,353 'summari':159,320 'titl':57,198 'tool':396 'topic-agent-skills' 'tradeoff':234 'trailer':78,240,374 'type':17,72,166,176,407 'unless':308 'unrel':146,264,325 'unstag':122,256 'use':4,203,227 'user':87,107,139,329 'user-vis':138 'vagu':158,319 'valid':12,332 'valu':226 'visibl':140 'whether':338 'word':83,340,413 'work':147,262,326 'workflow':93 'write':40,196","prices":[{"id":"c142c7cf-5802-400f-9e4a-c1b628e4636e","listingId":"9b8aeaf4-97ea-4089-80dc-d1c455517691","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"narumiruna","category":"skills","install_from":"skills.sh"},"createdAt":"2026-05-18T19:13:45.567Z"}],"sources":[{"listingId":"9b8aeaf4-97ea-4089-80dc-d1c455517691","source":"github","sourceId":"narumiruna/skills/git-commit","sourceUrl":"https://github.com/narumiruna/skills/tree/main/skills/git-commit","isPrimary":false,"firstSeenAt":"2026-05-18T19:13:45.567Z","lastSeenAt":"2026-05-18T19:13:45.567Z"}],"details":{"listingId":"9b8aeaf4-97ea-4089-80dc-d1c455517691","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"narumiruna","slug":"git-commit","github":{"repo":"narumiruna/skills","stars":7,"topics":["agent-skills"],"license":"mit","html_url":"https://github.com/narumiruna/skills","pushed_at":"2026-05-17T11:15:28Z","description":null,"skill_md_sha":"27e86c1d2b5c131dfb6742310068036d87c606a0","skill_md_path":"skills/git-commit/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/narumiruna/skills/tree/main/skills/git-commit"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"git-commit","description":"Use when inspecting local git changes, drafting or validating Conventional Commit messages, checking type or scope choices, explaining breaking changes, or creating a focused commit from the actual diff."},"skills_sh_url":"https://skills.sh/narumiruna/skills/git-commit"},"updatedAt":"2026-05-18T19:13:45.567Z"}}