github / github/spec-kit

bug(agy): --model ignored, EXTRA_ARGS appended after --print, and --add-dir workspace not passed

Open
#4,480 1 comment 0 reactions 0 assignees View on GitHub
triage-nice-to-have
Dominant language
Python
Stars
137k
Forks
12.3k
Avg merge
2d 7h
Merged PRs (30d)
155

Description

### Summary

In `src/specify_cli/integrations/agy/__init__.py`, `AgyIntegration.build_exec_args()` currently hardcodes ignoring the `model` parameter:

```python
def build_exec_args(
self,
prompt: str,
*,
model: str | None = None,
output_json: bool = True,
) -> list[str] | None:
# agy does not support --model or JSON output; both params are ignored
args = [self._resolve_executable(), "--print", prompt]
self._apply_extra_args_env_var(args)
return args
```

### Issues Observed

1. **`--model` is supported by `agy` CLI**:
Modern Antigravity CLI (`agy`) supports `--model ` (e.g. `agy --model claude-sonnet-4-6 -p "..."` or `agy --model gemini-3.1-pro-high -p "..."`). Because `model` is omitted from `build_exec_args`, stage-level model tiering defined in workflows (such as `.specify/workflows/...`) fails to route to the desired model, silently falling back to the user's default local model.

2. **Working directory / workspace flag**:
When `agy` is launched in headless `--print` mode, it does not automatically bind the current directory unless `--add-dir ` is passed, causing it to report:
```text
You do not currently have an active workspace open.
By default, scratch files and projects are located at: ~/.gemini/antigravity-cli/scratch
```

3. **Flag positioning before `--print`**:
Any extra args appended *after* `--print ` are treated by `agy`'s CLI parser as part of the positional prompt text rather than CLI flags. Flags (such as `--model`, `--add-dir`, `--dangerously-skip-permissions`, `--print-timeout`) should precede `--print`.

### Proposed Fix

In `AgyIntegration.build_exec_args()`:

```python
def build_exec_args(
self,
prompt: str,
*,
model: str | None = None,
output_json: bool = True,
) -> list[str] | None:
args = [self._resolve_executable()]
if model:
args.extend(["--model", model])
self._apply_extra_args_env_var(args)
args.extend(["--print", prompt])
return args
```

And in `AgyIntegration.dispatch_command()`, pass `--add-dir` with `project_root` when invoking the subprocess so `agy` recognizes the project repository workspace.

Happy to submit a PR with tests if this looks good to the maintainers!

Contributor guide

Open the contributing guide

Research direction

Start in src/specify_cli/integrations/agy/__init__.py by reading AgyIntegration.build_exec_args() and dispatch_command(). Verify that model and extra arguments precede --print, and that project_root is passed through --add-dir; done means the generated command routes the requested model, preserves flags, and binds the repository workspace, with tests covering these cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
ai, cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
76/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.