AgentSkillsCN

git-commit

以迭代的方式,将原子级变更提交至仓库。适用于用户或代理需要自主将原子级变更提交至仓库时使用。依次运用“git-add”、“git-message”和“git-status”等技能,完成提交操作。

SKILL.md
--- frontmatter
name: git-commit
description:
  Iteratively, commit atomic changes to the respository. Use when the
  user or agent needs to autonomously commit atomic changes to the
  repository. Employs the "git-add", "git-message", and "git-status" in
  skills in sequence to perform the commit.

Commit changes in the git repository

GOAL: use the git-add, git-message and git-status skills in sequence to commit changes in the repository and clean it.

WHEN: use when the user or agent needs to commit changes in the repository.

NOTE: Await user approval of commit messages before committing. Make commits only after the user has approved the commit message.

Workflow

Follow these steps in sequence:

Step 1: Stage atomic changes

  • Invoke the git-add skill.
  • Capture the status from skill output (SUCCESS, WARN, or ERROR).
  • Handle the status:
    • If ERROR: Halt and report the error to the user.
    • If WARN (no files available): Skip to Step 5.
    • If SUCCESS (files staged): Continue to Step 2.

Step 2: Generate commit message and await approval

  • Invoke the git-message skill.
  • Capture the status from skill output (APPROVED, REJECTED_EDIT_FILES, REJECTED_REGENERATE, REJECTED_ABORT, or ERROR).
  • Handle the status:
    • If ERROR: Halt and report the error to the user.
    • If APPROVED: Continue to Step 3.
    • If REJECTED_EDIT_FILES: Unstage all files with git restore --staged ., then loop back to Step 1.
    • If REJECTED_REGENERATE: Loop back to Step 2.
    • If REJECTED_ABORT: Halt and report abort to the user.

Step 3: Commit changes

IMPORTANT: To avoid a recursive loop, DON'T invoke the git-commit skill here.

  • Without using the git-commit skill, perform a direct commit with git using the approved message.
  • If success: report the commit SHA and continue to Step 4.
  • If failure: Halt and report the error to the user.

Step 4: Check for more commits (automatic loop control)

  • Run git status --porcelain=v2 to check for remaining changes.
  • If no changes: Continue to Step 5.
  • If changes remain: automatically loop back to Step 1 (no user prompt needed).

Step 5: Present final status

  • Invoke the git-status skill.
  • DONE

Efficiency directives

  • Optimize all operations for agent, token, and context efficiency
  • Batch operations on file groups, avoid individual file processing
  • Use parallel execution when possible
  • Target only relevant files
  • Reduce token usage