Skip to content

Handle AskUserQuestion for Kiro platform #280

@avifenesh

Description

@avifenesh

Summary

agentsys skills use AskUserQuestion for interactive user prompts (task selection, policy choices, plan approval). Kiro has no programmatic equivalent - no structured question API with options/checkboxes. We need a Kiro-specific transform.

Current behavior

Skills contain patterns like:

AskUserQuestion({
  questions: [{
    question: "Which task to work on?",
    header: "Task",
    options: [
      { label: "Bug fix", description: "Fix the auth issue" },
      { label: "Feature", description: "Add dark mode" }
    ]
  }]
});

When transforming for Kiro, this is currently stripped entirely (along with other Claude-specific syntax).

Kiro interaction model

  • Supervised mode: Per-hunk file edit approval (accept/reject), but not programmable
  • Chat: User types responses naturally - no checkbox/option UI
  • # mentions: Context providers (#file, #codebase, #steering) but not interactive
  • Approval gates: Specs have manual phase transitions but no API

Proposed solution

Transform AskUserQuestion into a markdown prompt that works in Kiro's chat:

**Question: Which task to work on?**

Please reply with one of:
1. **Bug fix** - Fix the auth issue
2. **Feature** - Add dark mode

Type the number or name of your choice.

This gives the Kiro agent a structured prompt it can present to the user in chat, and the user responds by typing.

Implementation

Add to transformCommandForKiro() in lib/adapter-transforms.js:

// Transform AskUserQuestion to markdown prompt
content = content.replace(
  /AskUserQuestion\s*\(\s*\{[\s\S]*?\}\s*\);?/g,
  (match) => {
    // Extract question text and options, format as numbered list
    // Return markdown prompt
  }
);

Acceptance criteria

  • AskUserQuestion calls transformed to markdown numbered-list prompts
  • Question text, option labels, and descriptions preserved
  • Multi-select questions noted with "select all that apply"
  • Tests for various AskUserQuestion patterns
  • Works for both single and multi-question calls

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