AgentSkillsCN

commit

当用户说“提交更改”“提交这段代码”“提交我的工作成果”“将改动保存到Git”“保存我的修改”“推送这段代码”“推送我的工作成果”“创建一次提交”,或希望将自己的工作成果纳入版本控制时,可选用此技能。它能完整覆盖Git工作流程,从暂存、提交到推送一气呵成。

SKILL.md
--- frontmatter
name: commit
description: This skill should be used when the user says "commit changes", "commit this", "commit my work", "save to git", "save my changes", "push this", "push my work", "create a commit", or wants to save their work to version control. Handles the full git workflow including staging, committing, and pushing.

Git Commit Workflow

Direct execution of git commit workflow - no agent delegation, fast and simple.

Trigger Phrases

This skill activates on:

  • "commit changes", "commit this", "commit my work"
  • "save to git", "save my changes", "save this to git"
  • "push this", "push my changes", "push my work"
  • "create a commit", "make a commit"
  • "git commit", "check in my changes"

Proactive Triggering

After completing implementation work, proactively offer to commit:

  • "I've finished implementing the feature. Would you like me to commit these changes?"
  • Use AskUserQuestion with options: "Yes, commit now" / "No, I'll review first"

Workflow

Step 1: Assess Changes

bash
git status
git diff

If no changes: Report "No changes to commit" and end.

Step 2: Stage Files

Stage logically related changes:

bash
git add <files>

Skip sensitive files: .env, credentials, tokens - warn user if detected.

Step 3: Create Conventional Commit

Analyze changes and determine:

  • Type: feat, fix, docs, style, refactor, perf, test, chore
  • Scope: Component/area affected
  • Subject: Imperative, lowercase, max 50 chars, no period

Commit format:

code
<type>(<scope>): <subject>

[Narrative body explaining WHAT and WHY - 2-4 sentences, NO bullet points]

Good example:

code
feat(auth): add session timeout handling

Implements automatic session refresh when user activity is detected
within the timeout window. Sessions now persist across page reloads
using localStorage with encrypted tokens.

Bad example (avoid):

code
feat(auth): add features

- Added timeout
- Added refresh
- Added localStorage

Step 4: Execute Commit

bash
git commit -m "$(cat <<'EOF'
<commit message here>
EOF
)"

Step 5: Handle Pre-commit Hooks

If hooks modify files:

  1. Stage the modified files
  2. Amend the commit: git commit --amend --no-edit

Step 6: Ask About Push

Use AskUserQuestion:

  • "Commit successful! Push to remote?"
  • Options: "Yes, push now" / "No, keep local"

Step 7: Push (if confirmed)

bash
git push
# or if no upstream:
git push -u origin <branch>

Safety Rules

  • NEVER commit .env files or credentials
  • NEVER force push without explicit user request
  • NEVER amend commits on shared branches without warning
  • Always show what will be committed before committing