Skip to content

[Bug]: kiro-cli workflow dispatch exits 2, and Kiro doesn't expand dotted /speckit.* prompt names #4797

Description

@kartsan03

Bug Description

Workflow command and prompt steps with integration: kiro-cli don't work, in two layers. Both are checked against Kiro CLI 2.26.0, the current release.

  1. Dispatch argv. KiroCliIntegration inherits MarkdownIntegration.build_exec_args(), so a step runs kiro-cli -p "/speckit.constitution", which Kiro rejects at argument parsing (exit 2). Kiro runs one prompt headless as kiro-cli chat --no-interactive "<prompt>". In that mode it can't ask for tool approval: without --trust-all-tools every write is denied (tool permission approval is not supported in non-interactive mode. Use --trust-all-tools to auto-approve.) and the run still exits 0. Its --output-format takes text or stream-json, not json.

  2. Prompt names. Even with that argv, Kiro doesn't expand /speckit.constitution. In headless mode it expands /name from .kiro/prompts/name.md only when the name has no dot:

    Input File in .kiro/prompts/ Result
    /hello hello.md the prompt file runs
    /hello-world hello-world.md the prompt file runs
    /hello.world hello.world.md "That doesn't look like a recognized slash command."

    @name, the form in Kiro's prompt docs, isn't expanded in headless mode either. Spec Kit installs every Kiro prompt with a dot (speckit.plan.md), so no /speckit.* input reaches its prompt file.

Kiro CLI is one of the integrations listed as unverified in #2416.

Steps to Reproduce

  1. specify init kproj --integration kiro-cli --script sh, with Kiro CLI 2.26.0 on PATH and logged in.
  2. Add this workflow and run specify workflow run kiro-wf.yml:
schema_version: "1.0"
workflow:
  id: "kiro-constitution"
  name: "Kiro constitution"
  version: "1.0.0"

steps:
  - id: constitution
    command: speckit.constitution
    integration: kiro-cli
  - id: after
    type: shell
    run: echo "workflow continued past the constitution step"

Expected Behavior

The step runs the speckit.constitution prompt through Kiro CLI and the workflow continues.

Actual Behavior

On main:

  ▸ [constitution] speckit.constitution …
error: unexpected argument '-p' found
Usage: kiro-cli [OPTIONS] [COMMAND]
For more information, try '--help'.
Status: failed
Error: Command exited with code 2

With the argv changed to kiro-cli chat --no-interactive --trust-all-tools "/speckit.constitution", the workflow completes, but only because Kiro's model worked around the input:

`/speckit.constitution` is not a built-in Kiro CLI slash command. It's not documented as a built-in command.
...
Found it — it's a prompt at `.kiro/prompts/speckit.constitution.md`. Let me read it.

Specify CLI Version

1.0.14.dev0 (main at 2c0a57a)

AI Agent

Kiro CLI

Operating System

Linux 6.17

Python Version

3.13.15

Error Logs

error: unexpected argument '-p' found

Additional Context

Proposed fix:

  • Override build_exec_args() to run kiro-cli chat --no-interactive --trust-all-tools [--model M] [--output-format stream-json] <prompt>. I have this ready with tests.
  • Install Kiro prompts under hyphenated names (speckit-plan.md, invoked as /speckit-plan), the way Junie and Cline already format their command names.

The rename changes file names in existing projects, so I'd like to check the direction first: both in one PR, or the argv fix first? I'd also like to be assigned to this and open the PR, if that's okay with you.

Separately, --model is accepted, but in headless mode Kiro prints [warn] failed to set model '...': Method not found and falls back to its default model. That one is on Kiro's side.

AI Disclosure

Claude Code (Claude Opus 5.5, autonomous agent mode) was used to investigate Kiro CLI, run the reproductions and draft this issue.

Activity

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

    bug-assesstriage-nice-to-haveVerdict: evidence-backed fix or greenlit feature — land after review

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions