Git Workflow

v0.3.0

Use this skill for any git commit, pull request, or release task. Invoke immediately when the user wants to: stage and commit changes, write a commit message...

0· 442· 6 versions· 0 current· 0 all-time· Updated 11h ago· MIT-0

Install

openclaw skills install nini-git-workflow

Git Workflow

Standardized Git workflow for commits, pull requests, and releases using conventional commits format and semantic versioning.

Prerequisites

ToolTypeRequiredInstall
gitcliYesbrew install git or git-scm.com
ghcliNobrew install gh then gh auth login (required for PR and Release)

Do NOT proactively verify these tools on skill load. If a command fails due to a missing tool, directly guide the user through installation and configuration step by step.

When to Use

  • Creating commits: Follow conventional commits with concise, imperative messages
  • Creating pull requests: Generate PR with clear description and test plan
  • Creating releases: Update versions, CHANGELOG, tags, and GitHub releases

These workflows can be used independently or together as needed.

Platform Detection

Check git remote get-url origin to select workflow:

Remote URL containsCommits/Tags/ReleasesPR/MR
github.comThis skillThis skill (gh pr create)
codeup.aliyun.comThis skillSwitch to yunxiao skill
gitlab.comThis skillThis skill (adapt for GitLab CLI)

Quick Reference

Commit Format

type(scope): concise summary

- Optional bullet points (max 3-4)
- Keep short and focused

Types: feat, fix, refactor, docs, test, chore, style, ci, perf, build, revert

Branch Naming

  • feature/description
  • fix/description
  • docs/description
  • refactor/description
  • test/description

Release Checklist

  1. Update version in project files
  2. Update CHANGELOG.md
  3. Commit: chore(release): bump version to x.y.z
  4. Tag: git tag v{version} && git push upstream v{version}
  5. Create GitHub release with gh release create

Default Behaviors

  • Keep messages concise: Commit messages and PR titles must be short and to the point. Omit filler words. The diff shows "what" — the message explains "why".
  • No AI signatures: Never include Co-Authored-By: Claude, Generated with Claude Code, or any AI markers in commits or PRs.
  • Commit always pushes: After commit, always push immediately. Do not ask.
    • Has upstream tracking → git push
    • No upstream tracking → git push -u origin <branch>
  • Single-purpose commits: Each commit does one thing. If a change spans multiple types or scopes, split into separate commits before pushing.
  • PR/MR description is prose, not template: subject + 2-3 declarative sentences explaining why + one 验证: / Verify: line. No markdown section headings inside the description, no emoji-bullets, no commit-list copy-paste. Full schema and forbidden patterns in examples-and-templates.md.

Detailed Guides

See examples-and-templates.md for commit examples (good/bad), PR body template, and CHANGELOG format.

Validation

Use scripts/validate_commit.py to validate commit messages:

python3 scripts/validate_commit.py "feat(auth): add OAuth2 support"
python3 scripts/validate_commit.py --file .git/COMMIT_EDITMSG

The validator checks:

  • Conventional commits format
  • Subject line length (< 72 chars)
  • Imperative mood usage
  • Absence of AI-generated markers
  • Body format and bullet point count

Common Workflows

Commit (default: commit + push)

git add <files>
git commit -m "feat(component): add new feature" && git push

Pull Request

git checkout -b feature/new-feature
# ... make changes, commit (auto-pushes per default behavior) ...
gh pr create --title "feat(component): add new feature" --body "..."

Release

# Update version files + CHANGELOG.md
git add .
git commit -m "chore(release): bump version to 1.2.0" && git push
git tag v1.2.0 && git push upstream v1.2.0
gh release create v1.2.0 -R owner/repo --title "v1.2.0" --notes "..."

Common Issues

IssueCauseFix
Subject line > 72 charsDescription too longShorten summary, put details in body
Multiple types in one commitScope too largeSplit into single-purpose commits
Merge commits appearUsed mergeUse git pull --rebase
Validator script errorsFormat mismatchCheck type(scope): format

Version tags

latestvk976kyxtqg2d6n2wnrbbsmxjr585neat

Runtime requirements

📝 Clawdis
Binsgit
Any bingh