mirror of
https://github.com/Fission-AI/OpenSpec.git
synced 2026-09-14 20:16:53 +08:00
1fe56159c4
Hardening pass on #1851. The docs and the adapter comment claimed Grok's flat command scan skips every vendor-compat directory, so a command could not register twice. That holds for `.claude/`, which nests commands under `opsx/`, and for `.agents/`, which no adapter writes commands into — but Cursor writes flat `opsx-<id>.md`, which the scan does find, and each of those roots can also hold an identical `openspec-*` skill. The copies differ only in the frontmatter each tool needs, so the outcome was never wrong; the stated reason was. Both places now describe the real shape. Also: - Adds the Grok row to `docs-lab/reference/supported-tools.md`, the source the published docs site renders. Without it the live page would not list the tool. - Orders the `--tools` id list in docs/supported-tools.md to match AI_TOOLS, so it is now identical to the copy in docs/cli.md. - Warns against naming your own Grok command `opsx-<workflow>.md`: Grok's flat scan means OpenSpec shares that directory with the user, and it owns those names. - Drops the upstream source citations from the user-facing footnote, which is the wrong altitude for it; they remain in the adapter header. - Asserts `available` on the Grok tool entry. Mutation testing found that flipping it to false removed Grok from the workset tool picker with a fully green suite, because the only test reading the field derives its expectation from AI_TOOLS itself. - Guards the command-stem loop against an empty command set, and adds grok to the flat-invocation tool list in command-references tests. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>