{"id":"1501d882-01eb-4f9d-8696-028daa882cc5","shortId":"6EQT75","kind":"skill","title":"commit","tagline":"Semantic commit format and pre-commit checks","description":"## STOP — verification gate\n\n**Before reading further, confirm in this session you have:**\n\n1. Used your `verify` capability on the staged diff.\n2. Applied any findings.\n3. Re-verified until clean.\n\n**If any of those is missing, stop now and verify first.** A 30-day audit found 60% of commit-time sessions skipped this step despite the precondition being declared. The pattern is the agent skipping past preamble — this gate exists to interrupt that. Do not draft the commit message, do not run `git add`, do not continue past this section until verification has happened.\n\n## Before every commit\n\nRun automatically without asking. **Set the bash tool's `workdir` to the repo root rather than passing `git -C <path>`.** Permission patterns like `git push *` match parsed argv starting with `git push`; `git -C <path> push` injects flags between `git` and the subcommand and bypasses those patterns silently.\n\n1. **Stage**: `git add -A`.\n2. **Skip globally-ignored files**: `git check-ignore <files>`. Do NOT stage files in `~/.config/git/ignore` (e.g. `.talismanrc`, `.opencode/context-log.md`).\n3. **Run the full test suite** — unit, integration, e2e, system. Do not commit with failures.\n4. **Draft the commit message** in the format below, with a `Co-Authored-By` trailer naming the model used (e.g. `anthropic/claude-sonnet-4-6`):\n   ```\n   Co-Authored-By: anthropic/claude-sonnet-4-6 <noreply@opencode.ai>\n   ```\n5. **Show the drafted commit message in chat.** Brief summary of what was implemented + the message itself. The user reviews it before approving.\n\n## Format\n\n```\ntype(scope): description\n```\n\n| Type | When |\n|------|------|\n| `feat` | New feature or capability |\n| `fix` | Bug fix |\n| `refactor` | Code change that neither fixes nor adds |\n| `docs` | Documentation only |\n| `test` | Adding or updating tests |\n| `chore` | Build, CI, dependencies, tooling |\n\n**Scope** — component/area (`fix(auth): ...`). Semantic, not ticket numbers.\n\n**Description** — lowercase, no trailing period, imperative (\"add\" not \"added\"), focus on *why*, under 72 characters.\n\n```\nfeat(auth): add password reset flow\nfix(auth): prevent token refresh race condition\nrefactor(api): extract validation middleware\nchore(deps): bump lodash to 4.17.21\n```\n\n## Squashing\n\n**Before first push:** squash related commits — multiple feature attempts → single `feat`, fix+test for same issue → single `fix`. Keep unrelated changes separate.\n\n**After review feedback:** add new commits, don't rewrite history. Each round gets its own commit(s) with an appropriate type (e.g. `fix(auth): address review — validate token expiry`). Never force-push pushed commits — reviewers lose context. Squashing at merge happens via the platform's squash-and-merge.","tags":["commit","dotfiles","athal7","agent-skills"],"capabilities":["skill","source-athal7","skill-commit","topic-agent-skills"],"categories":["dotfiles"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/athal7/dotfiles/commit","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add athal7/dotfiles","source_repo":"https://github.com/athal7/dotfiles","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 6 github stars · SKILL.md body (2,734 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:14:34.288Z","embedding":null,"createdAt":"2026-05-18T13:22:28.921Z","updatedAt":"2026-05-18T19:14:34.288Z","lastSeenAt":"2026-05-18T19:14:34.288Z","tsv":"'/.config/git/ignore':175 '1':22,155 '2':31,160 '3':35,179 '30':53 '4':194 '4.17.21':326 '5':222 '60':57 '72':301 'ad':271,296 'add':95,158,266,294,305,353 'address':374 'agent':75 'anthropic/claude-sonnet-4-6':215,220 'api':317 'appli':32 'appropri':369 'approv':244 'argv':135 'ask':112 'attempt':336 'audit':55 'auth':283,304,310,373 'author':207,218 'automat':110 'bash':115 'brief':230 'bug':257 'build':276 'bump':323 'bypass':151 'c':127,141 'capabl':26,255 'chang':261,348 'charact':302 'chat':229 'check':9,168 'check-ignor':167 'chore':275,321 'ci':277 'clean':40 'co':206,217 'co-authored-bi':205,216 'code':260 'commit':1,3,8,60,89,108,191,197,226,333,355,365,384 'commit-tim':59 'component/area':281 'condit':315 'confirm':16 'context':387 'continu':98 'day':54 'declar':70 'dep':322 'depend':278 'descript':248,288 'despit':66 'diff':30 'doc':267 'document':268 'draft':87,195,225 'e.g':176,214,371 'e2e':187 'everi':107 'exist':81 'expiri':378 'extract':318 'failur':193 'feat':251,303,338 'featur':253,335 'feedback':352 'file':165,173 'find':34 'first':51,329 'fix':256,258,264,282,309,339,345,372 'flag':144 'flow':308 'focus':297 'forc':381 'force-push':380 'format':4,201,245 'found':56 'full':182 'gate':12,80 'get':362 'git':94,126,131,138,140,146,157,166 'global':163 'globally-ignor':162 'happen':105,391 'histori':359 'ignor':164,169 'imper':293 'implement':235 'inject':143 'integr':186 'interrupt':83 'issu':343 'keep':346 'like':130 'lodash':324 'lose':386 'lowercas':289 'match':133 'merg':390,399 'messag':90,198,227,237 'middlewar':320 'miss':46 'model':212 'multipl':334 'name':210 'neither':263 'never':379 'new':252,354 'noreply@opencode.ai':221 'number':287 'opencode/context-log.md':178 'pars':134 'pass':125 'password':306 'past':77,99 'pattern':72,129,153 'period':292 'permiss':128 'platform':394 'pre':7 'pre-commit':6 'preambl':78 'precondit':68 'prevent':311 'push':132,139,142,330,382,383 'race':314 'rather':123 're':37 're-verifi':36 'read':14 'refactor':259,316 'refresh':313 'relat':332 'repo':121 'reset':307 'review':241,351,375,385 'rewrit':358 'root':122 'round':361 'run':93,109,180 'scope':247,280 'section':101 'semant':2,284 'separ':349 'session':19,62 'set':113 'show':223 'silent':154 'singl':337,344 'skill' 'skill-commit' 'skip':63,76,161 'source-athal7' 'squash':327,331,388,397 'squash-and-merg':396 'stage':29,156,172 'start':136 'step':65 'stop':10,47 'subcommand':149 'suit':184 'summari':231 'system':188 'talismanrc':177 'test':183,270,274,340 'ticket':286 'time':61 'token':312,377 'tool':116,279 'topic-agent-skills' 'trail':291 'trailer':209 'type':246,249,370 'unit':185 'unrel':347 'updat':273 'use':23,213 'user':240 'valid':319,376 'verif':11,103 'verifi':25,38,50 'via':392 'without':111 'workdir':118","prices":[{"id":"9ec1f96a-2c95-401e-9859-de1002e8b89a","listingId":"1501d882-01eb-4f9d-8696-028daa882cc5","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"athal7","category":"dotfiles","install_from":"skills.sh"},"createdAt":"2026-05-18T13:22:28.921Z"}],"sources":[{"listingId":"1501d882-01eb-4f9d-8696-028daa882cc5","source":"github","sourceId":"athal7/dotfiles/commit","sourceUrl":"https://github.com/athal7/dotfiles/tree/main/skills/commit","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:28.921Z","lastSeenAt":"2026-05-18T19:14:34.288Z"}],"details":{"listingId":"1501d882-01eb-4f9d-8696-028daa882cc5","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"athal7","slug":"commit","github":{"repo":"athal7/dotfiles","stars":6,"topics":["agent-skills"],"license":null,"html_url":"https://github.com/athal7/dotfiles","pushed_at":"2026-05-18T18:53:57Z","description":null,"skill_md_sha":"b6b746205a6e9d9e8a04c63a02e36a541a667678","skill_md_path":"skills/commit/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/athal7/dotfiles/tree/main/skills/commit"},"layout":"multi","source":"github","category":"dotfiles","frontmatter":{"name":"commit","license":"MIT","description":"Semantic commit format and pre-commit checks"},"skills_sh_url":"https://skills.sh/athal7/dotfiles/commit"},"updatedAt":"2026-05-18T19:14:34.288Z"}}