From hax-yax
Stages changes safely, generates a conventional-commit message from the diff, and blocks secrets or debug artifacts from being committed. TRIGGER when: user asks to commit, save changes, stage files, write a commit message, run git commit, check in my changes, or commit my work. DO NOT TRIGGER when: user asks to push, open a PR, or create a branch.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hax-yax:create-commitThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guides agents through safe, well-formed git commits. Stages files automatically (skipping secrets and artifacts), generates a conventional-commit message from the diff, and confirms before committing.
Guides agents through safe, well-formed git commits. Stages files automatically (skipping secrets and artifacts), generates a conventional-commit message from the diff, and confirms before committing.
Side effects: stages files (git add), creates a git commit object. Does not push or open a PR.
git status
git diff
If git status shows no changes (clean working tree), stop and tell the user: "Nothing to commit — the working tree is clean."
Identify:
dist/, *.pyc, node_modules/, *.min.js), lock files unless they changed intentionallyIf the untracked file set is ambiguous (many files, files that look auto-generated, or files outside the project's normal structure), list them and ask the user which to include before proceeding.
Before staging anything, scan all modified, added, and untracked files identified in step 1 for secret patterns. Read references/secret-patterns.md for the full pattern list.
If any match is found:
.gitignore)Stage all safe files (those that passed step 2 and are not excluded artifacts) using individual git add <file> calls — never git add . or git add -A.
Report a brief summary:
If nothing is staged after exclusions, stop and tell the user what was skipped and why.
Read the staged diff:
git diff --cached
Derive the message following Conventional Commits:
<type>[optional scope]: <subject>
[optional body]
Type — pick the best fit:
feat: new feature or capabilityfix: bug fixdocs: documentation onlyrefactor: restructuring without behaviour changetest: adding or updating testschore: maintenance, tooling, dependenciesScope — optional; use the skill name, component, or directory most affected (e.g. feat(plan):, fix(skills):).
Subject — lowercase imperative mood, no trailing period, ≤72 characters.
Body — include when the change is non-obvious: explain why, not what. Wrap at 72 characters.
Display the proposed commit message to the user, then commit.
Invocation:
/commit
Feature addition:
User has edited
.agents/skills/plan/SKILL.mdto add update mode.
feat(plan): add update mode for existing issues
Allows /plan to be invoked with an issue number or URL to edit an
existing issue in place rather than always creating a new one.
Bug fix:
User fixed a typo and a broken link in
AGENTS.md.
fix: correct typo and broken link in AGENTS.md
Secret detected — partial commit:
User runs
/commit; one file contains a hardcoded database password.
Staged: src/api/client.py, README.md
Skipped:
- config/local.env [BLOCKED: explicit secret assignment on line 4]
Fix: remove DB_PASSWORD value; reference $DB_PASSWORD instead,
or add config/local.env to .gitignore
Commit message:
feat(api): add client module
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub geemus/plugins --plugin hax-yax