addyosmani / addyosmani/agent-skills

Antigravity CLI (agy): the 8 lifecycle slash commands (/spec, /build, etc.) don't appear as searchable commands, despite `plugin validate` reporting them as processed

Open
#445 11 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
93.8k
Forks
10k
Avg merge
3d 15h
Merged PRs (30d)
23

Description

## Environment
- Antigravity CLI version: 1.1.9
- Install method: `agy plugin install https://github.com/addyosmani/agent-skills.git`
- Install location on disk: `~/.gemini/config/plugins/agent-skills/`
(note: this differs from the path documented in `docs/antigravity-setup.md`, which states the plugin installs to `~/.gemini/antigravity-cli/plugins/agent-skills/` — that directory does not exist on my system; only `~/.gemini/config/`, `~/.gemini/antigravity-cli/`, `~/.gemini/antigravity/`, and `~/.gemini/antigravity-ide/` exist, and the plugin lives under `config/`, not `antigravity-cli/`)

## Problem
Per `docs/antigravity-setup.md`, the plugin should register 8 slash commands (`/spec`, `/planning`, `/build`, `/test`, `/review`, `/code-simplify`, `/ship`, `/webperf`), each invoking a corresponding skill with additional wrapper instructions (e.g. `/build` invokes `incremental-implementation` + `test-driven-development`, supports a `/build auto` mode, and writes to `tasks/plan.md` / `tasks/todo.md`).

In practice, none of these short commands resolve to the agent-skills command definitions. Typing `/spec`, `/plan`, or `/build` in the CLI only surfaces commands from other installed plugins that happen to share similar names — never the agent-skills ones.

The 24 lifecycle **skills** ARE correctly discovered and searchable under the `/agent-skills:` namespace (e.g. `/agent-skills:planning-and-task-breakdown`, `/agent-skills:incremental-implementation` both work). Only the 8 **command wrappers** (`commands/*.toml`) fail to surface anywhere.

## Steps to reproduce
1. `agy plugin install https://github.com/addyosmani/agent-skills.git`
2. `agy plugin list` → confirms import:
```json
{
"imports": [
{
"name": "agent-skills",
"source": "antigravity",
"components": ["skills", "agents", "commands"]
}
]
}
```
3. `agy plugin validate ~/.gemini/config/plugins/agent-skills` → reports success:
```
[ok] ~/.gemini/config/plugins/agent-skills
✔ skills : 24 processed
✔ agents : 4 processed
✔ commands : 8 processed (converted to skills)
- mcpServers : skipped (not found)
- hooks : skipped (not found)
```
4. `cat ~/.gemini/config/plugins/agent-skills/commands/build.toml` → confirms the file exists on disk with the expected `description` and `prompt` fields, matching the format of the other working command files.
5. Start a fresh `agy` session inside a git project directory (not `$HOME`) and type `/build` → scroll through all ~23 suggestions shown; none match the `build.toml` description ("Implement tasks incrementally — build, test, verify, commit. Add \"auto\" to run the whole plan in one approved pass.").
6. Type `/agent-skills:build` → "No matches" (the command wrapper isn't indexed under this namespace either, even though the underlying skill `/agent-skills:incremental-implementation` resolves fine).
7. Type `/agent-skills:spec` and `/agent-skills:planning` → these DO resolve, but only because they fuzzy-match the skill names `spec-driven-development` and `planning-and-task-breakdown` — not because the command wrapper itself is indexed. It's unclear whether the extra wrapper instructions (spec save location, plan-mode enforcement, etc.) are actually being applied, since the skill entry that resolves has the plain skill description, not the command's richer prompt text.

## Expected
Typing `/spec`, `/planning`, `/build`, `/test`, `/review`, `/code-simplify`, `/ship`, `/webperf` (or some consistent, discoverable equivalent, e.g. `/agent-skills:build`) should surface the actual command wrapper defined in `commands/build.toml`, not just the underlying skill.

## Additional context — related cross-tool command wiring issues
This may be part of a broader pattern where slash-command discovery isn't fully consistent across the different CLI targets this repo supports:

- PR #363 (GitHub Copilot CLI) found that commands were "only wired up for Claude Code (via `.claude/commands/` auto-discovery) and Antigravity CLI (via `commands/*.toml` filesystem convention)" — Copilot CLI needed an explicit `commands` key in `plugin.json` that wasn't present.
- In that same PR thread, the maintainer noted uncertainty about whether adding a `commands` key to the root `plugin.json` (currently treated as "the Antigravity manifest") might affect Antigravity's own command resolution — suggesting the Antigravity command-registration path is still being finalized and may have edge cases like this one.
- There's also an open PR titled "ci: validate command descriptions stay in sync across all three tool directories," implying command definitions currently live in three separate places (`.claude/commands/`, root `commands/`, and possibly `.gemini/commands/`) that can drift out of sync.
- PR #273 ("fix(claude-plugin): clear 'commands/ ignored' lint without breaking Antigravity") confirms by design that Antigravity is *supposed* to read the root `commands/*.toml` files independently of Claude Code's `.claude-plugin/plugin.json` — quote: "Antigravity CLI — unaffected; still reads root `commands/` + root `plugin.json`." So this isn't a case of Antigravity simply not knowing about the folder; the files ARE being read (per `agy plugin validate`'s "8 processed" output), they just don't surface as resolvable slash commands afterward.

## Workaround currently in use
Invoking the underlying skill directly via its full name, e.g. `/agent-skills:incremental-implementation`, and manually describing any wrapper-specific behavior (like `/build auto`'s single-approval autonomous mode) in the prompt.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.