# sm-flow Explicit Trigger Spec ## ADDED Requirements ### Requirement: Explicit Trigger Only `sm-flow` SHALL be used only when the user explicitly invokes `/sm-flow`, `/sm-flow explore`, `/sm-flow apply`, `/sm-flow archive`, or clearly asks to use the sm-flow process in natural language. #### Scenario: Plain engineering request - **Given** a user asks for an engineering task that mentions OpenSpec, devflow, cross-module work, or clarification - **When** the user does not explicitly request sm-flow - **Then** the agent handles the task as ordinary engineering work - **And** the agent does not auto-trigger sm-flow based on task type #### Scenario: Explicit sm-flow request - **Given** a user invokes `/sm-flow` or clearly asks to use sm-flow - **When** the agent starts the process - **Then** the agent follows the visible checkpoints Discover, Commit, Apply, and Archive - **And** the internal phase order remains clarify, context, propose, grill, specify, audit, commit, apply, archive ### Requirement: Scale Rules Have One Source The `micro / standard / complex` scale definitions SHALL be defined in `references/scales.md`; other files may only reference that file instead of redefining scale details. #### Scenario: Scale guidance is needed - **Given** a phase needs to choose or enforce a scale - **When** the rule is read - **Then** it points to `references/scales.md` - **And** no other reference file carries a competing full definition of the three scales ### Requirement: No Time-Based Skill Metrics The skill SHALL NOT use minute, hour, second, or timebox metrics to define scale, effort, or validation thresholds. #### Scenario: Protocol text is scanned - **Given** the sm-flow skill files are scanned - **When** obsolete time metrics are searched - **Then** no matching scale or effort rule remains ### Requirement: Fallback Capability Is Explicit When OpenSpec CLI or child skill capabilities are unavailable, `sm-flow` SHALL use `references/fallbacks.md` only as an explicit fallback and record the capability source in the current devflow process log. #### Scenario: External capability unavailable - **Given** OpenSpec child skills are not directly callable - **When** a change is still executed - **Then** the decisions log records fallback source, impact, and remaining risk - **And** the fallback does not skip context, grill, commit, apply, or archive gates