feat(implement-issue): add Section E to setup-skills for agent CLI selection

- Add agents-seed.md as source of truth for supported agents
- Add Section E to setup-skills to present agent menu and validate binary on PATH
- Refactor implement-issue to read docs/agents/agent-cli.md instead of hardcoded table
- Remove detect-agent-linux.sh and detect-agent-macos.sh detection scripts
- Add mise/$SHELL -c runtime detection for agent dispatch
- Add invocation-time binary validation with clear error message
- Add test file documenting expected tmux command composition

Closes #9
This commit is contained in:
2026-06-27 16:26:17 -04:00
parent fa29b93a02
commit f9611e1343
7 changed files with 342 additions and 131 deletions
@@ -0,0 +1,45 @@
# Agent CLI Seed Data
This file is the source of truth for all supported CLI agents. It is read by `setup-skills` Section E to present the menu and by `implement-issue` for agent dispatch.
## Agents
```yaml
agents:
- name: pi
binary: pi
args: "-p @{prompt}"
description: "My primary agent harness. Accepts prompt file via -p flag."
- name: opencode
binary: opencode
args: "run -f @{prompt}"
description: "OpenCode agent. Accepts prompt file via -f flag."
- name: goose
binary: goose
args: "run -i @{prompt}"
description: "Goose agent. Accepts prompt file via -i flag."
- name: codex
binary: codex
args: ""
description: "OpenAI Codex. Pipes stdin via cat."
note: "Uses stdin piping: args must be empty, prompt via pipe."
- name: claude
binary: claude
args: "-p"
description: "Anthropic Claude CLI. Pipes stdin via cat."
note: "Uses stdin piping: args is just the prompt flag, prompt via pipe."
```
## Field meanings
| Field | Description |
|-------|-------------|
| `name` | Display name used in menus and `--agent` flag |
| `binary` | Command name expected on PATH |
| `args` | Static arguments appended after the binary. May include `@{prompt}` which is substituted at invocation time with the absolute path to the prompt file. Empty string means stdin piping (prompt is piped via `cat`). |
| `description` | Short human-readable description for the setup menu |
| `note` | Optional additional context |