Extension to enforce approval requirements between spec-driven development phases.
specify extension add --dev extensions/approval-gatesCopy the template to your project:
mkdir -p .specify/extensions/approval-gates
cp extensions/approval-gates/approval-gates-config.template.yml \
.specify/extensions/approval-gates/approval-gates-config.ymlEdit .specify/extensions/approval-gates/approval-gates-config.yml and set:
- Which phases require approval
- How many approvals are needed
- Who can approve each phase
- Descriptions for each gate
specify:
enabled: bool # Enable/disable this gate
requires: [role1, role2, ...] # Who can approve
min_approvals: int # How many approvals required
description: string # (optional) What this gate enforcesspecify:
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 plan approval"
tasks:
enabled: false> /speckit.approval-gates.statusShows which phases are gated and their approval requirements:
✅ Approval gates enabled
📋 specify
• Status: ✅ ENFORCED
• Min approvals: 1
• Description: Functional spec approval
📋 plan
• Status: ✅ ENFORCED
• Min approvals: 2
• Description: Technical spec approval
The extension integrates with the workflow:
> /speckit.tasks
# ... task generation ...
# Prompt appears:
# ❓ Check approval gates for next phase?
> YApproval gates can be configured for the following phases:
constitution— Project setup and contextspecify— Functional specificationplan— Technical specification and architecturetasks— Task breakdown and planningimplement— Implementation phase (optional)
❌ Command not found: speckit.approval-gates.status
Solution: Reinstall the extension:
specify extension remove approval-gates
specify extension add --dev extensions/approval-gatesℹ️ No approval gates configured
Solution: Ensure the config file exists:
ls .specify/extensions/approval-gates/approval-gates-config.yml
# If missing, create it from template❌ Error parsing approval-gates-config.yml
Solution: Validate YAML syntax:
yq eval '.' .specify/extensions/approval-gates/approval-gates-config.ymlCheck for:
- Proper indentation (2 spaces)
- Quotes around strings
- No trailing colons
/speckit.constitution— Project setup/speckit.specify— Create specification/speckit.plan— Create plan/speckit.tasks— Generate tasks