Skip to content

Agent always ask what change I mean even if there is only one #679

Closed

Description

@uiii

When I use any of the commands like /opsx-continue the agent almost always ask me after several seconds of thinking (enough for me to switch to another app) what spec change do I want that command apply to event if there is only one change active. This bothers me because I execute the prompt and go do something else but after I return nothing was done because it got stuck on this confirm. I see I can specify the spec change name as parameter but it is cumbersome to always write it. I think it should take the active one if there is only one.

Activity

  1. 21st-connector commented on Feb 7, 2026

    @21st-connector
    Contributor

    Task completed.

    The enrichment comment has been posted on issue #679. Here's a summary of the findings:

    Root cause: The /opsx:continue skill template in src/core/templates/skill-templates.ts:416 has an explicit instruction: "Do NOT guess or auto-select a change. Always let the user choose." This forces the AI agent to always prompt the user, even when there's only one active change.

    Key inconsistency: The /opsx:apply skill template (line 529 of the same file) already implements auto-selection when only one change exists. The fix is straightforward — update the continue template's change selection logic (lines 404-416) to match the apply template's pattern.

    Related issues: #663 and #673 deal with other /opsx:continue behavioral quirks but are not duplicates.


    View full conversation

    Powered by 1Code

  2. 21st-connector commented on Feb 7, 2026

    @21st-connector
    Contributor

    Issue Analysis

    Root Cause

    The /opsx:continue skill template explicitly forbids auto-selection, even when only one change exists. In src/core/templates/skill-templates.ts:416:

    **IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.
    

    This instruction (lines 404-416) tells the AI agent to always run openspec list --json, present options via AskUserQuestion, and wait for user input — regardless of how many changes are active.

    Inconsistency with /opsx:apply

    Notably, the /opsx:apply skill template already implements the exact behavior requested here. In src/core/templates/skill-templates.ts:525-532:

    If a name is provided, use it. Otherwise:
    - Infer from conversation context if the user mentioned a change
    - Auto-select if only one active change exists
    - If ambiguous, run `openspec list --json` to get available changes and use the AskUserQuestion tool to let the user select
    

    So /opsx:apply auto-selects when there's one change, but /opsx:continue always prompts. This inconsistency is likely unintentional.

    Suggested Fix

    Update the change selection logic in getContinueChangeSkillTemplate() (line 404-416 of src/core/templates/skill-templates.ts) to match the pattern used by getApplyChangeSkillTemplate():

    1. **Select the change**
    
       If a name is provided, use it. Otherwise:
       - Infer from conversation context if the user mentioned a change
       - Auto-select if only one active change exists
       - If ambiguous, run `openspec list --json` to get available changes and use the **AskUserQuestion tool** to let the user select
    
       Always announce: "Using change: <name>" and how to override (e.g., `/opsx:continue <other>`).
    

    This would replace the current step 1 (lines 404-416) and remove the "Do NOT guess or auto-select" guardrail.

    Files to Modify

    • src/core/templates/skill-templates.ts — getContinueChangeSkillTemplate() function, lines 404-416. Update the change selection instructions to auto-select when only one active change exists.

    Related Issues

    Both are related to the /opsx:continue workflow but address different aspects.

  3. clay-good commented on Jul 28, 2026

    @clay-good
    Collaborator

    Fix up in #1468: the continue/update/verify/sync/archive workflows now select a change the way /opsx:apply has since #513 — use the given name, infer from conversation context, auto-select when only one active change exists, and only prompt when it's genuinely ambiguous (always announcing "Using change: " with how to override). The templates' "Do NOT guess or auto-select" instruction was the cause of the stall you described.

  4. added a commit that references this issue on Jul 28, 2026
    fc886af
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions