skills/commit/SKILL.md
Commits changes with strict safety gates and high-signal commit messages. Use when asked to commit changes or run /commit with push/no-push/no-verify/amend flags.
npx skillsauth add kjanat/skills commitInstall 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.
Safe /commit workflow for git repos.
Primary flow stays here. Edge-case playbooks live in references/.
Git-only skill. If .jj/ exists, do not run this flow.
/commit [push|no-push|no-verify|amend] [context...]
| Situation | Read |
| ------------------------------------------------- | -------------------------------------------- |
| Asked to amend | references/amend.md |
| Just created malformed commit message in this run | references/malformed-message-recovery.md |
git commit --amend unless amend was explicit.--no-verify unless no-verify was explicit.git commit -m "$(cat <<'EOF' ... EOF ... )" syntax.git commit -m "$msg".git commit -F -, git commit --amend -F -, or newline escapes in -m.EOF.EOF with trailing text, abort and regenerate before execution.push and no-push are present, no-push wins.git add.git add -A allowed only if both true: nothing staged and no args/flags.push present: push after successful commit.no-push/nopush present: do not push.git log -1 --format=%B and git status --short --branch.Check VCS guard:
test -d .jj && echo "jj repo detected; stop and use jj flow"
Parse args/flags: push|no-push|no-verify|amend.
If amend present, follow references/amend.md.
Inspect repo state:
git --no-pager status --short --branch
git --no-pager diff --numstat
git --no-pager diff --staged --numstat
git --no-pager log -10 --pretty=medium
Apply staging gate exactly.
Write commit message using Commit Message Forms.
If the user corrected commit-message wording/format in this conversation, restate the exact intended commit artifact before mutating.
Create one non-amend commit action.
Verify:
git log -1 --format=%B
git status --short --branch
If malformed message was just created in this run and worktree is clean, follow references/malformed-message-recovery.md.
Push only if push present and no-push absent.
improved ux, addressed feedback.git commit -m "type(scope): subject"
\n.-F for multiline commit messages.git commit -m "$(cat <<'EOF'
feat(parser): tighten svg filter constraints
Reject invalid filter primitive/type combinations and keep valid
defs + text-link structures parseable so AST consumers can trust
structure for linting and transforms.
EOF
)"
$msg = @"
feat(parser): tighten svg filter constraints
Reject invalid filter primitive/type combinations and keep valid
defs + text-link structures parseable so AST consumers can trust
structure for linting and transforms.
"@
git commit -m "$msg"
EOF on its own line.EOF line.$(cat <<'EOF' inside the quoted -m value.EOF followed by )"; trailing shell chaining after that is allowed.EOF with trailing text, abort and regenerate before execution.git commit -m "$msg".@" and "@ on dedicated lines.git commit command.Good:
git commit -m "$(cat <<'EOF'
feat(parser): tighten svg filter constraints
Reject invalid filter primitive/type combinations and keep valid
defs + text-link structures parseable so AST consumers can trust
structure for linting and transforms.
EOF
)"
git commit -m "$(cat <<'EOF'
chore(release): 0.4.0 - collision fix + exec/run unification
- Bump `runner` to 0.4.0 and fill in the CHANGELOG section.
- Explain the breaking CLI change and the fallback allocation fix.
EOF
)" && sleep 2 && OTHER_TASK && ANOTHER_ONE
$msg = @"
chore(release): 0.4.0 - collision fix + exec/run unification
- Bump `runner` to 0.4.0 and fill in the CHANGELOG section.
- Explain the breaking CLI change and the fallback allocation fix.
"@
git commit -m "$msg"
git log -1 --format=%B
git status --short --branch
Bad:
git commit -F - <<'EOF'
...
EOF
git commit -m "line 1\n\nline 2"
git commit -m "$(cat <<'EOF' && git push
...
EOF
git commit -m "$(cat <<'EOF'
...
EOF trailing-text
git commit -m @"
...
"@
amend is used and message changes, write message for full final commit intent (not delta).Split done, verified, tmp cleaned up.
src/index.ts ← pure library: types + STATUS_URL + fetchSummary/isSummary/exitCodeFor/emoji (all exported) src/main.ts ← CLI shell: shebang, argv parsing, console output, process.exit
★ Insight ─────────────────────────────────────
Smoke test: bun src/main.ts → up — All Systems Operational, exit 0. ✓
Unresolved:
❯ you decided to export it... now commit
Committed b0e75d, ran 5 bash commands
Committed as b0e75d6. Tree clean.
★ Insight ─────────────────────────────────────
! git last commit b0e75d69e354db9ed5821f1b2448482997c5901d Author: Kaj Kowalski [email protected] Date: Mon Apr 13 19:21:41 2026 +0200
split index.ts: lib exports vs cli binary
package.json: main→module, add build/fmt scripts, devDeps, engines.
drop chrome-inspect scratchpad. add .gitignore, bun.lock.
.gitignore | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ bun.lock | 21 ++++++ chrome-inspect | 55 -------------- package.json | 16 +++-- src/index.ts | 89 +++++++++++++++++++++++ src/main.ts | 66 +++++++++++++++++ 6 files changed, 409 insertions(+), 59 deletions(-)
❯ xxx this commit message is whack
Amended commit 52315a, called 3 tools, ran 1 bash command
Amended. b0e75d6 → 52315a9. Message now describes what the diff actually contains.
★ Insight ─────────────────────────────────────
| Task | Read |
| ----------------------- | -------------------------------------------------------------- |
| Run default commit flow | SKILL.md (Hard Safety Gates, then Standard Flow) |
| Asked to amend | references/amend.md |
| Fix malformed message | references/malformed-message-recovery.md |
| Write better message | SKILL.md (Commit Message Forms + Heredoc Safety Rules) |
| File | Purpose |
| -------------------------------------------- | -------------------------------------------- |
| SKILL.md | Primary flow, global safety gates |
| references/amend.md | Explicit amend workflow and constraints |
| references/malformed-message-recovery.md | Same-run malformed-message recovery playbook |
development
Use this skill whenever the user is designing, building, scaffolding, reviewing, or debugging Go-based reverse proxy or HTTP edge infrastructure, especially when they mention statute, config-as-code proxies, building an nginx replacement in Go, networking topology, TLS termination, load balancing, HTTP/2, HTTP/3, QUIC, ACME, upstream pools, middleware chains, or graceful shutdown. Trigger this skill even when the user does not explicitly name statute but is clearly working on a Go HTTP server, edge proxy, or networking infrastructure problem where the resulting artefact will be a compiled binary rather than a runtime-configured server. Also trigger when the user asks for explanations of networking protocols (HTTP/1.1, HTTP/2, HTTP/3, WebSockets, gRPC, TLS) in the context of building or operating a proxy, or when they ask about Go net/http pitfalls, transport tuning, or production-grade server defaults.
development
Routes Threlte questions to exact, commit-pinned docs paths and practical workflows. Use when helping with setup, debugging, or architecture across @threlte/core, @threlte/extras, @threlte/gltf, @threlte/rapier, @threlte/theatre, @threlte/xr, @threlte/flex, and @threlte/studio.
testing
Comprehensive lightning physics knowledge base derived from Rakov & Uman (2003) "Lightning: Physics and Effects". Covers discharge types, current parameters, leader/return-stroke physics, cloud electrification, protection, detection systems, atmospheric effects, and quantitative reference data. Use when answering questions about lightning physics, electromagnetic fields, thunderstorm electricity, lightning protection, or atmospheric electrical phenomena.
development
Generate hierarchical AGENTS.md knowledge base for a codebase. Creates root + complexity-scored subdirectory documentation.