Skip to content

feat: add approval gates feature#2010

Open
jlameira wants to merge 4 commits intogithub:mainfrom
jlameira:feature/approval-gates
Open

feat: add approval gates feature#2010
jlameira wants to merge 4 commits intogithub:mainfrom
jlameira:feature/approval-gates

Conversation

@jlameira
Copy link
Copy Markdown

@jlameira jlameira commented Mar 28, 2026

feat(extensions): add approval-gates extension

Summary

Add Approval Gates extension to enforce approval requirements between spec-driven development phases.

Overview

Approval Gates is a Spec Kit extension that enforces approval requirements at specific phases of the spec-driven development workflow. Teams can configure which phases require approval before proceeding to the next phase.

Features

  • Command: /speckit.approval-gates.status — Display current approval gates configuration
  • Per-phase configuration: Define approval requirements for constitution, specify, plan, tasks, and implement phases
  • Configurable approvals: Set required roles, minimum approvals, and descriptions
  • Hook integration: Optional prompt after /speckit.tasks to check approval gates
  • Graceful defaults: Works with or without configuration
  • Extensible: Built on Spec Kit extension architecture

Configuration

Teams customize approval gates in .specify/extensions/approval-gates/approval-gates-config.yml:

specify:
  enabled: true
  requires: [product_lead, architect]
  min_approvals: 1
  description: "Functional spec approval"

plan:
  enabled: true
  requires: [architect, tech_lead]
  min_approvals: 2
  description: "Technical spec approval"

Installation

# Install extension
specify extension add --dev extensions/approval-gates

# Create configuration
mkdir -p .specify/extensions/approval-gates
cp extensions/approval-gates/approval-gates-config.template.yml \
   .specify/extensions/approval-gates/approval-gates-config.yml

Usage

Display approval gates status:

> /speckit.approval-gates.status

Files Added

  • extensions/approval-gates/extension.yml — Extension manifest
  • extensions/approval-gates/commands/status.md — Status command implementation
  • extensions/approval-gates/approval-gates-config.template.yml — Configuration template
  • extensions/approval-gates/README.md — Documentation
  • extensions/approval-gates/CHANGELOG.md — Version history
  • extensions/approval-gates/LICENSE — MIT License

Alignment

This extension aligns with Spec Kit's extension architecture, enabling teams to add functionality without modifying the core CLI. Approval Gates can be installed optionally by teams that require workflow governance.

  - Configuration loader for .speckit/approval-gates.yaml
  - CLI command: specify approval
  - Unit tests and YAML template
  - Enables approval enforcement between workflow phases
@jlameira jlameira requested a review from mnriem as a code owner March 28, 2026 16:22
Copy link
Copy Markdown
Collaborator

@mnriem mnriem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you instead of integrating it into the CLi create a Spec Kit extension for it? See https://github.com/github/spec-kit/tree/main/extensions

  Add Approval Gates extension to enforce approval requirements between
  spec-driven development phases.

  Features:
  - Command: /speckit.approval-gates.status - display gate configuration
  - Configuration: per-phase approval requirements (roles, min approvals)
  - Hook integration: after_tasks phase with optional prompt
  - Config template: approval-gates-config.template.yml for customization

  Extension includes:
  - extension.yml manifest with command and config definitions
  - commands/status.md with Markdown-based implementation
  - approval-gates-config.template.yml for project customization
  - README.md with installation and configuration guide
  - CHANGELOG.md with version history
@jlameira jlameira force-pushed the feature/approval-gates branch from 2158b4f to fc8cfa2 Compare April 5, 2026 17:13
   Add default configuration values to extension.yml to align with
   extension development guidelines.
@jlameira jlameira force-pushed the feature/approval-gates branch from ea25e6c to 83d706f Compare April 5, 2026 17:55
@jlameira
Copy link
Copy Markdown
Author

jlameira commented Apr 5, 2026

Can you instead of integrating it into the CLi create a Spec Kit extension for it? See https://github.com/github/spec-kit/tree/main/extensions

Done! Refactored to follow Spec Kit extension architecture:

✅ Extension created: extensions/approval-gates/
✅ extension.yml manifest with command and config definitions
✅ commands/status.md with Markdown-based implementation
✅ Full documentation and CHANGELOG
✅ Follows EXTENSION-DEVELOPMENT-GUIDE.md schema

Command: /speckit.approval-gates.status
Config: .specify/extensions/approval-gates/approval-gates-config.yml
Hook: after_tasks (optional prompt)

Ready for review!

@jlameira jlameira requested a review from mnriem April 5, 2026 18:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants