adaptationio

ac-commit-manager

Manage git commits for autonomous coding. Use when committing feature implementations, creating descriptive commits, managing git workflow, or handling version control.

adaptationio 11 2 Updated 7mo ago

Resources

1
GitHub

Install

npx skillscat add adaptationio/skrillz/ac-commit-manager

Install via the SkillsCat registry.

About this skill

The AC Commit Manager automates the git commit process for autonomous coding tasks by validating, staging, and generating structured commit messages. It ensures a clean project history and consistent version control by mapping changes to specific feature IDs and acceptance criteria. Use this skill when completing feature implementations or managing routine maintenance tasks.

SKILL.md

AC Commit Manager

Manage git commits for completed feature implementations.

Purpose

Creates well-structured git commits after each feature completion, ensuring proper version control and clear project history.

Quick Start

from scripts.commit_manager import CommitManager

manager = CommitManager(project_dir)
result = await manager.commit_feature("auth-001")

Commit Workflow

1. VALIDATE → Ensure changes are safe to commit
2. STAGE    → Stage relevant files
3. MESSAGE  → Generate descriptive commit message
4. COMMIT   → Create the commit
5. VERIFY   → Verify commit was created
6. TAG      → Optional: tag milestone commits

Commit Message Format

feat(auth): implement user registration (#auth-001)

- Add registration endpoint with email/password
- Implement password hashing with bcrypt
- Add input validation for email format
- Create user model and database migration

Test: All 5 acceptance criteria passing
Coverage: 92%

Feature: auth-001
Status: passes

Commit Result

{
  "success": true,
  "commit_hash": "abc123def456",
  "feature_id": "auth-001",
  "message": "feat(auth): implement user registration",
  "files_changed": [
    "src/auth/register.py",
    "src/models/user.py",
    "tests/test_auth_001.py"
  ],
  "stats": {
    "insertions": 145,
    "deletions": 12,
    "files_changed": 3
  }
}

Commit Categories

Based on feature category:

  • feat: New features
  • fix: Bug fixes
  • refactor: Code refactoring
  • test: Test additions/changes
  • docs: Documentation
  • chore: Maintenance tasks
  • perf: Performance improvements

Pre-Commit Checks

# Run validation before commit
validation = await manager.pre_commit_check()
if validation.can_commit:
    await manager.commit_feature(feature_id)

Checks include:

  • No uncommitted sensitive files
  • All tests pass
  • Linting passes
  • No merge conflicts

Atomic Commits

Each feature gets exactly one commit:

  • Includes implementation + tests
  • Self-contained and revertable
  • Descriptive message with context

Configuration

{
  "require_tests_pass": true,
  "require_lint_pass": true,
  "auto_stage_tests": true,
  "message_template": "{{type}}({{scope}}): {{description}}",
  "protected_files": [".env", "credentials.*"],
  "sign_commits": false
}

Rollback Support

# Rollback last commit
await manager.rollback_last_commit()

# Rollback to specific feature
await manager.rollback_to_feature("auth-003")

Integration

  • Uses: ac-code-validator for pre-commit checks
  • Input: Completed features from ac-task-executor
  • Updates: ac-state-tracker with commit info

API Reference

See scripts/commit_manager.py for full implementation.