AgentSkillsCN

git-workflow

在创建提交、拉取请求、发布版本或标签时使用。触发关键词包括:“帮我提交”、“commit”、“提交代码”、“创建PR”、“发布版本”、“打标签”、“写commit message”、“推代码”。

SKILL.md
--- frontmatter
name: git-workflow
description: Use when creating commits, pull requests, releases, or tags. Triggers on「帮我提交」「commit」「提交代码」「创建 PR」「发布版本」「打 tag」「写 commit message」「推代码」

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

text
type(scope): concise summary

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

Types: feat, fix, refactor, docs, test, chore

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>

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:

bash
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)

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

Pull Request

bash
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

bash
# 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