dotfiles

andersuno
git clone git://git.andersuno.nu/dotfiles.git
Log | Files | Refs | README

commit 7651dbccda283bfae2082681d07bc5cb954b621c
parent 019485747e5c2dc2794dc341e4492d1bdfdb3647
Author: andersuno <anders.hedman01@gmail.com>
Date:   Tue, 25 Aug 2026 16:36:00 +0200

opencode: new skill commit-work
Diffstat:
A.config/opencode/skills/commit-work/SKILL.md | 56++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+), 0 deletions(-)

diff --git a/.config/opencode/skills/commit-work/SKILL.md b/.config/opencode/skills/commit-work/SKILL.md @@ -0,0 +1,55 @@ +--- +name: commit-work +description: "Create high-quality git commits: review/stage intended changes, split into logical commits, and write clear commit messages (including Conventional Commits). Use when the user asks to commit, craft a commit message, stage changes, or split work into multiple commits." +--- + +# Commit work + +## Goal +Make commits that are easy to review and safe to ship: +- only intended changes are included +- commits are logically scoped (split when needed) +- commit messages describe what changed and why + +## Inputs to ask for (if missing) +- Single commit or multiple commits? (If unsure: default to multiple small commits when there are unrelated changes.) +- Commit style: Conventional Commits are required. +- Any rules: max subject length, required scopes. + +## Workflow (checklist) +1) Inspect the working tree before staging + - `git status` + - `git diff` (unstaged) + - If many changes: `git diff --stat` +2) Decide commit boundaries (split if needed) + - Split by: feature vs refactor, backend vs frontend, formatting vs logic, tests vs prod code, dependency bumps vs behavior changes. + - If changes are mixed in one file, plan to use patch staging. +3) Stage only what belongs in the next commit + - Prefer patch staging for mixed changes: `git add -p` + - To unstage a hunk/file: `git restore --staged -p` or `git restore --staged <path>` +4) Review what will actually be committed + - `git diff --cached` + - Sanity checks: + - no secrets or tokens + - no accidental debug logging + - no unrelated formatting churn +5) Describe the staged change in 1-2 sentences (before writing the message) + - "What changed?" + "Why?" + - If you cannot describe it cleanly, the commit is probably too big or mixed; go back to step 2. +6) Write the commit message + - Use Conventional Commits (required): + - `type(scope): short summary` + - blank line + - body (what/why, not implementation diary) + - footer (BREAKING CHANGE) if needed + - Prefer an editor for multi-line messages: `git commit -v` + - Use `references/commit-message-template.md` if helpful. +7) Run the smallest relevant verification + - Run the repo's fastest meaningful check (unit tests, lint, or build) before moving on. +8) Repeat for the next commit until the working tree is clean + +## Deliverable +Provide: +- the final commit message(s) +- a short summary per commit (what/why) +- the commands used to stage/review (at minimum: `git diff --cached`, plus any tests run) +\ No newline at end of file