Skip to content

Latest commit

 

History

History
48 lines (34 loc) · 1.75 KB

File metadata and controls

48 lines (34 loc) · 1.75 KB
description Auto-commit changes after a Spec Kit command completes

Auto-Commit Changes

Automatically stage and commit all changes after a Spec Kit command completes.

Behavior

This command is invoked as a hook after (or before) core commands. It:

  1. Determines the event name from the hook context (e.g., if invoked as an after_specify hook, the event is after_specify; if before_plan, the event is before_plan)
  2. Checks .specify/extensions/git/git-config.yml for the auto_commit section
  3. Looks up the specific event key to see if auto-commit is enabled
  4. Falls back to auto_commit.default if no event-specific key exists
  5. Uses the per-command message if configured, otherwise a default message
  6. If enabled and there are uncommitted changes, runs git add . + git commit

Execution

Determine the event name from the hook that triggered this command, then run the script:

  • Bash: .specify/extensions/git/scripts/bash/auto-commit.sh <event_name>
  • PowerShell: .specify/extensions/git/scripts/powershell/auto-commit.ps1 <event_name>

Replace <event_name> with the actual hook event (e.g., after_specify, before_plan, after_implement).

Configuration

In .specify/extensions/git/git-config.yml:

auto_commit:
  default: false          # Global toggle — set true to enable for all commands
  after_specify:
    enabled: true          # Override per-command
    message: "[Spec Kit] Add specification"
  after_plan:
    enabled: false
    message: "[Spec Kit] Add implementation plan"

Graceful Degradation

  • If Git is not available or the current directory is not a repository: skips with a warning
  • If no config file exists: skips (disabled by default)
  • If no changes to commit: skips with a message