Add Command Code integration to spec-kit - #4019
Merged
mnriem merged 2 commits intoAug 10, 2026
Merged
Conversation
Adds `command-code` as a built-in skills-based integration so Spec Kit can be installed into Command Code. Command Code loads agent skills from `.commandcode/skills/speckit-<name>/SKILL.md` and invokes them in chat as `$speckit-<command>`. - New `CommandCodeIntegration` (SkillsIntegration) writing to `.commandcode/skills/`; declared multi-install safe (static, isolated agent root). - Register in `_register_builtins()` and the integration catalog. - Add `command-code` to `DOLLAR_SKILLS_AGENTS` so next-steps guidance renders `$speckit-*` invocations. - Tests: reuse `SkillsIntegrationTests` mixin plus a dollar-invocation next-steps test; registry completeness updated. - Docs: README and docs/reference/integrations.md (supported agents + multi-install-safe table). Co-authored-by: CommandCodeBot <noreply@commandcode.ai> Assisted-by: Command Code (autonomous)
Contributor
There was a problem hiding this comment.
Review details
Suppressed comments (6)
tests/integrations/test_integration_command_code.py:47
- These assertions expect an invocation Command Code does not use. Installed skills are invoked from its slash menu, so this should verify
/speckit-constitutionand reject the dollar form.
assert result.exit_code == 0
assert "$speckit-constitution" in result.output
assert "/speckit.constitution" not in result.output
src/specify_cli/_invocation_style.py:15
- Command Code exposes installed skills as slash commands (
/speckit-<name>), not dollar commands. Classifying it here makes init guidance, extension hook references, and inherited CLI dispatch emit an invocation the agent will not recognize. Move it to the slash-skills set instead.
DOLLAR_SKILLS_AGENTS: frozenset[str] = frozenset({"codex", "zcode", "command-code"})
src/specify_cli/integrations/command_code/init.py:5
- This documents the wrong invocation syntax. Command Code lists installed skills in its slash menu and invokes this skill as
/speckit-<name>, so the module documentation should not advertise a dollar prefix.
(project) or ``~/.commandcode/skills/`` (personal). Skills are invoked in chat
with ``$speckit-<name>``.
tests/integrations/test_integration_command_code.py:14
- The test description codifies the same incorrect dollar-prefix behavior. Command Code uses slash invocations for installed skills, unlike Codex/ZCode.
This issue also appears on line 45 of the same file.
"""Command Code renders $speckit-* chat invocations (like Codex/ZCode)."""
docs/reference/integrations.md:17
- The supported-agents table advertises the wrong invocation syntax. Command Code exposes installed skills as slash commands, so this entry should show
/speckit-<command>.
| [Command Code](https://commandcode.ai/docs) | `command-code` | Skills-based integration; installs skills into `.commandcode/skills/` and invokes them as `$speckit-<command>` |
README.md:93
- Command Code skills use
/speckit-<command>, not the Codex-style dollar prefix. Also, every following quickstart example uses the generic slash-dot form, so this sentence needs to tell Command Code and Codex users how to translate those examples rather than sending them to unrecognized commands.
Launch your coding agent in the project directory. Most agents expose spec-kit as `/speckit.*` slash commands; Codex CLI and Command Code in skills mode use `$speckit-*` instead; GitHub Copilot CLI uses `/agents` to select the agent or address it directly in a prompt.
- Files reviewed: 8/8 changed files
- Comments generated: 0 new
- Review effort level: Balanced
mnriem
requested changes
Aug 10, 2026
mnriem
left a comment
Collaborator
There was a problem hiding this comment.
Please address test & lint errors
The runtime AGENT_CONFIG now includes command-code, but the GitHub issue templates and the consistency test's expected key list were not updated, failing test_issue_template_agent_lists_match_runtime_integrations. Co-authored-by: CommandCodeBot <noreply@commandcode.ai> Assisted-by: Command Code (autonomous)
Contributor
There was a problem hiding this comment.
Review details
Suppressed comments (1)
tests/integrations/test_integration_command_code.py:14
- The new test only exercises
initnext-step rendering. Adding this integration toDOLLAR_SKILLS_AGENTSalso controlsSkillsIntegration.build_command_invocation()and the$speckit-git-commitguidance injected into generated skills, while the existing regression test attests/integrations/test_base.py:221still parametrizes onlycodexandzcode. Please includecommand-codethere (or add equivalent assertions here) so those runtime/generated-file paths are covered.
class TestCommandCodeInvocation:
"""Command Code renders $speckit-* chat invocations (like Codex/ZCode)."""
- Files reviewed: 12/12 changed files
- Comments generated: 0 new
- Review effort level: Balanced
mnriem
approved these changes
Aug 10, 2026
Collaborator
|
Thank you! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds Command Code as a first-class built-in integration so Spec Kit can be installed into Command Code with:
Command Code discovers agent skills from
.commandcode/skills/<name>/SKILL.md(project) or~/.commandcode/skills/(personal), which matches thespeckit-<name>/SKILL.mdlayout Spec Kit'sSkillsIntegrationbase class generates. Skills are invoked in chat as$speckit-<command>(dollar-prefix chat invocation, like Codex/ZCode).Changes
CommandCodeIntegration(src/specify_cli/integrations/command_code/__init__.py), aSkillsIntegrationsubclass:.commandcode/skills/requires_cli: True(CLI iscmdc/command-codeon PATH; supports-p/--output-format jsondispatch).commandcode/agent root), so it can coexist with Claude Code, Codex, etc._register_builtins()(import +_register()) and added tointegrations/catalog.json.command-codetoDOLLAR_SKILLS_AGENTSsospecify initnext-steps and hook references render$speckit-*.tests/integrations/test_integration_command_code.pyreuses theSkillsIntegrationTestsmixin (setup/teardown, file inventory, frontmatter, uninstall round-trip, multi-install) plus a$speckit-*next-steps invocation test;command-codeadded toALL_INTEGRATION_KEYSintest_registry.py.docs/reference/integrations.md(supported-agents table + multi-install-safe table).Verification
pytest tests/integrations/test_integration_command_code.py— 31 passedpytest tests/integrations/test_registry.py— 664 passed (includes multi-install-safe contracts)tests/integrationssuite — all files green (only pre-existing skips/warnings)Produced
.commandcode/skills/speckit-{analyze,checklist,clarify,constitution,converge,implement,plan,specify,tasks,taskstoissues}/SKILL.mdand next-steps showing$speckit-constitution,$speckit-specify, etc. (no/speckit.constitution).