Propose
Create a spec change, generate a proposal (why/what), get human approval at Gate 1, then auto-continue to scenarios.
Claude CodeGeneric
---
name: "Spec: Propose"
description: Create a spec change, generate a proposal (why/what), get human approval at Gate 1, then auto-continue to scenarios.
category: Spec-Gate
tags: [spec-gate, proposal, gate-1]
---
Propose sub-flow for the spec-gate methodology. Handles `draft` and `proposal-pending-approval` phases.
**Input**: Change name (required). If not provided, ask the user what they want to build and derive a kebab-case name.
## Steps
1. **Resolve or create the change**
Check if `.swamp/spec-change-{name}.json` exists:
- If not: run `swamp model method run spec-change create --name {name}` to initialise it
- If exists and phase is not `draft` or `proposal-pending-approval`: tell the user the change is already past the proposal phase and route appropriately
2. **Present or generate proposal text**
If the change is in `proposal-pending-approval`, an existing proposal is stored — display it:
Existing proposal for: {name}
{proposal_text}
Ask: "Approve this proposal? (yes / edit / no)"
If the change is in `draft`, generate a proposal:
- Research the relevant code; consult `openspec/specs/` for reference (rendered outputs, not source of truth)
- Write a concise proposal covering:
- **Why**: Problem being solved
- **What**: Scope of change (what will be built, what will not)
- **Success criteria**: How we know it is done
- Present the proposal to the user
- Ask: "Approve this proposal? (yes / edit / no)"
3. **Iterate on proposal**
If the user wants edits, apply them and re-present. Repeat until approved.
On each iteration: run `swamp model method run spec-change set-proposal --name {name} --text "{text}"`
4. **Gate 1: Record approval**
When the user approves, run:
swamp model method run spec-change approve-proposal --name {name}
Announce: "Proposal approved ✓ — continuing to scenarios..."
5. **Auto-continue to scenarios flow**
Load the `/spec:scenarios` sub-flow with the same change name.
## Guardrails
- Gate 1 MUST be called — never skip `approve-proposal`
- Proposals must be specific enough to generate unambiguous Given/When/Then scenarios
- Store proposal text before asking for approval via `set-proposal`
Maintain Propose?
Let people know it's listed here — add the badge (live metrics, light/dark aware) or a plain link to your README or docs.
[Propose on getagentictools](https://getagentictools.com/loops/dhansak79-propose?ref=badge)