github / github/spec-kit

[Bug]: Amp dispatch sends `-p`/`--model`/`--output-format` — none of these exist in the Amp CLI

未關閉 適合新手
#4,580 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
triage-nice-to-have
主要語言
Python
星號
137k
分支
12.3k
平均合併
2 天 13 小時
30 天內合併 PR
154

描述

### Bug Description

`AmpIntegration` never overrides `build_exec_args()`, so it inherits the generic implementation from `MarkdownIntegration` (`src/specify_cli/integrations/base.py:1062`), which emits:

```
-p --model --output-format json
```

None of those three flags exist in the Amp CLI. Every workflow `command:`/`prompt:` step dispatching to Amp fails immediately at argument parsing, even with `amp` installed and authenticated.

This is the `amp` row of the audit in #2416, which lists it first among the integrations still inheriting the unverified `-p / --model / --output-format json` pattern.

### Steps to Reproduce

1. Generate the argv Spec Kit dispatches with, from a source checkout at `main` (`d848fb4`):

```console
$ uv run python -c "from specify_cli.integrations.amp import AmpIntegration; print(AmpIntegration().build_exec_args('hello', model='gpt-5', output_json=True))"
['amp', '-p', 'hello', '--model', 'gpt-5', '--output-format', 'json']
```

2. Run exactly that against the real Amp CLI:

```console
$ amp -p "hello" --model gpt-5 --output-format json
Error: error: unknown option '-p'
$ echo $?
1
```

3. Confirm the flags Amp actually accepts:

```console
$ amp --help | grep -E '^\s+-x|^\s+--stream-json$'
-x, --execute [message]
--stream-json
```

### Expected Behavior

Spec Kit dispatches to Amp using Amp's documented execute-mode interface, so the command runs:

```
amp --execute [--stream-json]
```

### Actual Behavior

The dispatch fails at argument parsing with `error: unknown option '-p'` (exit 1). The agent is never invoked.

Checked against `amp --help` (v0.0.1789372854-ge954c8):

| Flag Spec Kit sends | Present in Amp CLI? | Amp's actual flag |
|---|---|---|
| `-p ` | No | `-x, --execute [message]` |
| `--model ` | No | none — `-m, --mode` sets an *agent mode* (`low`/`medium`/`high`/`ultra`), not a model name |
| `--output-format json` | No | `--stream-json` (used with `--execute`) |

### Specify CLI Version

1.0.7.dev0 (source checkout, git `d848fb4`)

### AI Agent

Amp

### Operating System

Windows 11

### Python Version

3.14.7

### Error Logs

```shell
$ amp -p "hello" --model gpt-5 --output-format json
Error: error: unknown option '-p'
```

For contrast, the proposed argv parses and proceeds (it only stops at the login prompt, because this machine has no API key):

```shell
$ amp --execute "hello" --stream-json
No API key found. Starting login flow...
To log in, visit:
https://auth.ampcode.com/device?user_code=...
```

### Additional Context

Amp CLI version tested: `0.0.1789372854-ge954c8`, installed via `npx @sourcegraph/amp`.

Documentation: [execute mode](https://ampcode.com/docs/cli/execute-mode) documents `-x, --execute`; [streaming JSON](https://ampcode.com/docs/cli/streaming-json) states "Use `--stream-json` with `--execute` to output streaming JSON instead of plain text."

On the `model` parameter: Amp exposes no model-selection flag. `-m, --mode` takes an agent mode (`low`, `medium`, `high`, `ultra`, or a plugin mode) which "controls the model, system prompt, and tool selection" — it is not a model identifier, so passing Spec Kit's `model` value through to `-m` would be incorrect. A fix should drop the model flag rather than remap it.

Same fix shape as the existing one-off overrides for opencode (#2409) and goose (#3781). Happy to open a PR.

**AI Assistance Disclosure:** AI assistance was used for the source inspection, reproduction, and drafting of this report. All CLI output above was executed and captured on the reporting machine.

貢獻指南

開啟貢獻指南

研究方向

從 AmpIntegration 開始,將其在 src/specify_cli/integrations/base.py:1062 中繼承的 build_exec_args() 與 Amp CLI 的說明輸出進行比較。確認 dispatch 使用 Amp 文件中所述的 execute 和 streaming 選項,省略不受支援的 model 引數,並產生一個能通過引數解析的 argv。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
python
領域
cli
Issue 類型
缺陷
難度
2/5
預估耗時
1-3 小時
活躍度
活躍
描述清晰度
描述清楚
新手友好度
84/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。