[Bug]: Amp dispatch sends `-p`/`--model`/`--output-format` — none of these exist in the Amp CLI
- 主要語言
- 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