# commit > Stage all changes and commit with a descriptive message. Use when the user asks to commit, save changes, or says "/commit". - Author: Jason Abbott - Repository: toba/go-html-validate - Version: 20260131112427 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/toba/go-html-validate - Web: https://mule.run/skillshub/@@toba/go-html-validate~commit:20260131112427 --- --- name: commit description: Stage all changes and commit with a descriptive message. Use when the user asks to commit, save changes, or says "/commit". args: "[push]" --- ## Workflow **IMPORTANT**: Only use `PUSH=true` when the user explicitly says "/commit push" or asks to push. Plain "/commit" should NEVER push. 1. Review changes to determine commit message and version bump: ```bash git diff git describe --tags --abbrev=0 2>/dev/null || echo "none" ``` 2. Analyze changes for version bump (if tags exist): - **Major (X.0.0)**: Breaking changes - removed/renamed public APIs, changed behavior - **Minor (0.X.0)**: New features - new rules, new CLI flags, new capabilities - **Patch (0.0.X)**: Bug fixes, docs, refactoring, dependency updates 3. Run commit script with subject and description: ```bash # Local commit only (no push, no release): .claude/skills/commit/commit.sh "subject line" "description body" # Push and release with version bump: PUSH=true NEW_VERSION=vX.Y.Z .claude/skills/commit/commit.sh "subject line" "description body" # Push without version bump: PUSH=true .claude/skills/commit/commit.sh "subject line" "description body" ``` - **Subject**: Lowercase, imperative mood (e.g., "add feature" not "Added feature") - **Description**: Explain the "why" and context. What problem does this solve? What approach was taken? Include relevant details about the implementation. The script handles: lint, test, stage, commit, and beanup sync. Push and release only happen when `PUSH=true`.