Files
git-learn/openspec/archive/2026-05-21-sm-flow-v3-1-upgrade/specs/sm-flow-commit-gate/spec.md
T

3.1 KiB

ADDED Requirements

Requirement: OpenSpec drafts are not executable

SM Flow SHALL distinguish Draft OpenSpec from Committed OpenSpec.

Scenario: Phase 1 proposal created

  • WHEN Phase 1 creates or updates proposal, design, specs, and tasks
  • THEN the flow treats those artifacts as Draft OpenSpec until Phase 2, Phase 2.5, and Phase 2.9 checks are complete

Scenario: Draft has unresolved questions

  • WHEN Draft OpenSpec contains unresolved user-interview questions, unreported evidence-driven conclusions, architecture conflicts, or unrecorded interface impact
  • THEN the flow SHALL NOT enter Phase 3

Requirement: Phase 2.9 commits executable OpenSpec

SM Flow SHALL include a Phase 2.9 Commit OpenSpec gate before Phase 3.

Scenario: Commit gate passes

  • WHEN proposal explains scope and non-goals, design captures implementation constraints, specs describe observable behavior, tasks are executable vertical slices, interface impact is recorded, and devflow conflicts are resolved
  • THEN the flow marks the OpenSpec change as Committed OpenSpec and may ask the user to proceed to Phase 3

Scenario: Commit gate fails

  • WHEN any required executable OpenSpec condition is missing
  • THEN the flow returns to Phase 1, Phase 2, or Phase 2.5 to repair the missing artifact before implementation

Requirement: Grill questions require explicit human confirmation

SM Flow SHALL treat Phase 2 grill as a human-in-the-loop process that requires explicit user confirmation for user-interview questions.

Scenario: User-interview grill question is asked

  • WHEN Phase 2 raises a user-interview question about terminology, scope, acceptance, risk, priority, or product preference
  • THEN the flow asks exactly one question, waits for the user's answer, records the answer, and only then continues to the next user-interview question

Scenario: Grill confirmation is missing

  • WHEN a user-interview question has no explicit user answer
  • THEN the flow SHALL NOT mark the question resolved, SHALL NOT commit OpenSpec, and SHALL NOT enter Phase 3

Requirement: Grill confirmation does not authorize apply

SM Flow SHALL distinguish confirmation of an individual grill decision from authorization to enter Phase 3.

Scenario: User confirms a grill decision

  • WHEN the user answers a Phase 2 user-interview question with confirmation such as "可以", "确认", or equivalent
  • THEN the flow records that decision and updates OpenSpec/devflow, but SHALL NOT treat the answer as authorization to modify execution target files

Scenario: OpenSpec has been updated after grill

  • WHEN Phase 2 or Phase 2.5 findings have been written back to proposal, design, specs, or tasks
  • THEN the flow stops at Phase 2.9, reports the Committed OpenSpec check result, and waits for explicit user authorization to enter Phase 3

Scenario: Apply authorization is missing

  • WHEN the user has not explicitly said to enter apply, start implementation, execute the changes, continue Phase 3, or equivalent
  • THEN the flow may update OpenSpec and devflow decision records, but SHALL NOT modify execution target files