Agent skill

agent-ops-git

Manage git operations safely. Includes stale state detection, branch/commit management. Never pushes without explicit user confirmation.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/agent-ops-git

SKILL.md

Git Workflow (active-safe)

Works with or without aoc CLI installed. Issue tracking can be done via direct file editing.

Git Commands

Operation Command Notes
Check current branch git branch --show-current
Check current commit git rev-parse --short HEAD
Check uncommitted changes git status --porcelain
Create branch git checkout -b <branch> From constitution branch policy
Stage changes git add <files>
Commit git commit -m "..." Use structured message format
Stash work git stash push -m "..."
Unstash work git stash pop
View stash git stash list
Revert commit git revert <commit> Requires confirmation

Issue Integration (File-Based — Default)

Operation How to Do It
Start work Edit issue in .agent/issues/{priority}.md: set status: in_progress
Close issue Set status: done, add log entry with commit hash

CLI Integration (when aoc is available)

When aoc CLI is detected in .agent/tools.json:

bash
# Update issue when starting work
aoc issues update <ID> --status in-progress --log "Started work"

# Close issue when committing
aoc issues close <ID> --log "Fixed in commit abc123"

Never Auto-Execute

bash
# These require explicit user confirmation:
git push           # Never auto-push
git push --force   # Never force push
git branch -D      # Never delete branches

Scope

  • ✅ Detect stale state (authoritative source)
  • ✅ Create feature branches
  • ✅ Commit checkpoints with structured messages
  • ✅ Detect uncommitted changes
  • ✅ Stash/unstash work in progress
  • ✅ Revert agent's own commits (with confirmation)
  • ❌ Never push without explicit user request
  • ❌ Never force push
  • ❌ Never delete remote branches

Stale State Detection (authoritative)

Called by agent-ops-state at session start. This is the single source of truth for staleness.

Procedure

  1. Read .agent/focus.md session info:

    • branch: expected branch name
    • last_commit: expected HEAD commit (short hash)
    • last_updated: timestamp
  2. Get current git state:

    bash
    git branch --show-current    # current branch
    git rev-parse --short HEAD   # current commit
    git status --porcelain       # uncommitted changes
    
  3. Compare and categorize:

    Check Mismatch Severity Action
    Branch changed focus says main, now on feature-x ⚠️ WARN Ask user
    Commit changed focus says abc123, HEAD is def456 ⚠️ WARN Ask user
    Uncommitted changes git status shows changes ℹ️ INFO Note, may continue
    All match ✅ OK Continue
  4. If any WARN:

    ⚠️ State may be stale.
    - Expected branch: X, actual: Y
    - Expected commit: A, actual: B
    
    Options:
    A) Continue anyway (I made these changes)
    B) Update focus.md to current state
    C) Stop and investigate
    

Branch Strategy

Read .agent/constitution.md for project-specific rules:

  • Branch naming pattern
  • When to create branches
  • Whether to work on main directly

Commit Message Format

Follow constitution format. Default:

[AgentOps] <type>: <short summary>

<body - what and why>

Task: T-XXXX

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

Issue Reference in Commits

Every commit should reference an issue ID:

[AgentOps] fix: Resolve login timeout

Fixed the session expiry logic that was causing premature logouts.

Issue: BUG-0023@efa54f

If no issue exists for the work being committed:

⚠️ No issue found for this commit.

Create an issue first? [Y]es / [N]o, commit without issue

Note: All work should be tracked for auditability.

Checkpoint Commits

Create commits at these moments:

  • Before risky changes (labeled [checkpoint])
  • After each implementation step completes successfully
  • Before switching tasks

Rollback Procedure

When rolling back:

  1. List commits made by agent (search for [AgentOps] prefix)
  2. Show user what will be reverted
  3. Ask for confirmation
  4. Use git revert (not reset) to preserve history

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results