Spaces:
Sleeping
Sleeping
| # Git Branching Workflow Extension | |
| Git repository initialization, feature branch creation, numbering (sequential/timestamp), validation, remote detection, and auto-commit for Spec Kit. | |
| ## Overview | |
| This extension provides Git operations as an optional, self-contained module. It manages: | |
| - **Repository initialization** with configurable commit messages | |
| - **Feature branch creation** with sequential (`001-feature-name`) or timestamp (`20260319-143022-feature-name`) numbering | |
| - **Branch validation** to ensure branches follow naming conventions | |
| - **Git remote detection** for GitHub integration (e.g., issue creation) | |
| - **Auto-commit** after core commands (configurable per-command with custom messages) | |
| ## Commands | |
| | Command | Description | | |
| |---------|-------------| | |
| | `speckit.git.initialize` | Initialize a Git repository with a configurable commit message | | |
| | `speckit.git.feature` | Create a feature branch with sequential or timestamp numbering | | |
| | `speckit.git.validate` | Validate current branch follows feature branch naming conventions | | |
| | `speckit.git.remote` | Detect Git remote URL for GitHub integration | | |
| | `speckit.git.commit` | Auto-commit changes (configurable per-command enable/disable and messages) | | |
| ## Hooks | |
| | Event | Command | Optional | Description | | |
| |-------|---------|----------|-------------| | |
| | `before_constitution` | `speckit.git.initialize` | No | Init git repo before constitution | | |
| | `before_specify` | `speckit.git.feature` | No | Create feature branch before specification | | |
| | `before_clarify` | `speckit.git.commit` | Yes | Commit outstanding changes before clarification | | |
| | `before_plan` | `speckit.git.commit` | Yes | Commit outstanding changes before planning | | |
| | `before_tasks` | `speckit.git.commit` | Yes | Commit outstanding changes before task generation | | |
| | `before_implement` | `speckit.git.commit` | Yes | Commit outstanding changes before implementation | | |
| | `before_checklist` | `speckit.git.commit` | Yes | Commit outstanding changes before checklist | | |
| | `before_analyze` | `speckit.git.commit` | Yes | Commit outstanding changes before analysis | | |
| | `before_taskstoissues` | `speckit.git.commit` | Yes | Commit outstanding changes before issue sync | | |
| | `after_constitution` | `speckit.git.commit` | Yes | Auto-commit after constitution update | | |
| | `after_specify` | `speckit.git.commit` | Yes | Auto-commit after specification | | |
| | `after_clarify` | `speckit.git.commit` | Yes | Auto-commit after clarification | | |
| | `after_plan` | `speckit.git.commit` | Yes | Auto-commit after planning | | |
| | `after_tasks` | `speckit.git.commit` | Yes | Auto-commit after task generation | | |
| | `after_implement` | `speckit.git.commit` | Yes | Auto-commit after implementation | | |
| | `after_checklist` | `speckit.git.commit` | Yes | Auto-commit after checklist | | |
| | `after_analyze` | `speckit.git.commit` | Yes | Auto-commit after analysis | | |
| | `after_taskstoissues` | `speckit.git.commit` | Yes | Auto-commit after issue sync | | |
| ## Configuration | |
| Configuration is stored in `.specify/extensions/git/git-config.yml`: | |
| ```yaml | |
| # Branch numbering strategy: "sequential" or "timestamp" | |
| branch_numbering: sequential | |
| # Custom commit message for git init | |
| init_commit_message: "[Spec Kit] Initial commit" | |
| # Auto-commit per command (all disabled by default) | |
| # Example: enable auto-commit after specify | |
| auto_commit: | |
| default: false | |
| after_specify: | |
| enabled: true | |
| message: "[Spec Kit] Add specification" | |
| ``` | |
| ## Installation | |
| ```bash | |
| # Install the bundled git extension (no network required) | |
| specify extension add git | |
| ``` | |
| ## Disabling | |
| ```bash | |
| # Disable the git extension (spec creation continues without branching) | |
| specify extension disable git | |
| # Re-enable it | |
| specify extension enable git | |
| ``` | |
| ## Graceful Degradation | |
| When Git is not installed or the directory is not a Git repository: | |
| - Spec directories are still created under `specs/` | |
| - Branch creation is skipped with a warning | |
| - Branch validation is skipped with a warning | |
| - Remote detection returns empty results | |
| ## Scripts | |
| The extension bundles cross-platform scripts: | |
| - `scripts/bash/create-new-feature.sh` β Bash implementation | |
| - `scripts/bash/git-common.sh` β Shared Git utilities (Bash) | |
| - `scripts/powershell/create-new-feature.ps1` β PowerShell implementation | |
| - `scripts/powershell/git-common.ps1` β Shared Git utilities (PowerShell) | |