-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Description
Summary
$ARGUMENTS is never substituted when SpecKit prompts are invoked via the Kiro CLI (kiro-cli chat). The literal string $ARGUMENTS is passed to the AI model, causing the agent to either error out or prompt the user to re-enter their input.
Environment
- AI Tool: Kiro CLI (
kiro-cli chat) - SpecKit version: latest (github/spec-kit)
- OS: macOS
Steps to Reproduce
- Install SpecKit into a project (
.specify/directory present) - Open
kiro-cli chatin the project root - Invoke
/speckit.specify Add employee onboarding flow - Observe the prompt fires but
$ARGUMENTSis passed literally to the model
Expected Behaviour
The text typed after /speckit.specify (i.e. Add employee onboarding flow) should be substituted for $ARGUMENTS in the prompt body before the model receives it.
Actual Behaviour
The model receives the literal string $ARGUMENTS and responds:
The
$ARGUMENTSplaceholder wasn't replaced — no feature description was provided.
Root Cause
Kiro CLI's file-based prompt system does not support argument substitution. Per the official Kiro documentation:
"File-based prompts (local and global) do not support arguments."
Arguments are only supported for MCP server prompts (@server-name/prompt-name <arg>). Local prompts stored in .kiro/prompts/ (or .specify/ via symlink/copy) receive no argument injection mechanism.
Impact
All SpecKit commands that rely on $ARGUMENTS substitution are broken on Kiro CLI:
/speckit.specify- Any other command that uses
$ARGUMENTSin its prompt body
Suggested Fix
One or more of the following:
- Document the limitation — add a note to the SpecKit README / agent compatibility matrix that Kiro CLI does not support
$ARGUMENTSin file-based prompts. - Workaround guidance — instruct Kiro users to type their feature description as a follow-up message immediately after invoking the prompt (the prompt instructions already hint at this: "Assume you always have it available in this conversation even if
$ARGUMENTSappears literally"), but this is not obvious to users. - MCP server prompt — expose SpecKit commands as MCP prompts, which Kiro does support with arguments (
@speckit/specify "Add employee onboarding"). - Prompt self-detection — add a preamble to affected prompts that detects the literal
$ARGUMENTSstring and instructs the model to ask the user for input gracefully rather than erroring.