Skip to content

Commit 4b53469

Browse files
author
test
committed
test+docs: address Copilot review on Grok multi-install and next steps
Assert init next-steps guidance for Grok (.grok/skills, /speckit-*) and clarify that multi-install safety is path/manifest isolation, not agent-context defaults such as shared AGENTS.md.
1 parent dc6d6a1 commit 4b53469

2 files changed

Lines changed: 46 additions & 2 deletions

File tree

docs/reference/integrations.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,11 @@ Spec Kit tracks one default integration in `.specify/integration.json` with `def
250250

251251
### Which integrations are multi-install safe?
252252

253-
An integration is multi-install safe when it uses isolated agent directories, a dedicated context file that does not collide with another safe integration, stable command invocation settings, and a separate install manifest. Shared Spec Kit templates remain aligned to the single default integration.
253+
An integration is multi-install safe when it uses a static, unique agent root and command directory, stable command invocation settings, and a separate install manifest whose managed files do not overlap another safe integration. Registry tests enforce those path and manifest invariants. Shared Spec Kit templates remain aligned to the single default integration.
254+
255+
The Isolation column below lists paths Spec Kit manages for that integration (skills/commands roots and any integration-owned rule files). It is not a full inventory of every file an agent may read.
256+
257+
**Agent-context defaults are separate.** The optional agent-context extension maps each integration to a default context file in `extensions/agent-context/agent-context-defaults.json`. Those defaults are independent of multi-install safety: several agents may share a root file such as `AGENTS.md` when the extension is enabled. Multi-install safety does not require a unique context file per safe integration.
254258

255259
The currently declared multi-install safe integrations are:
256260

@@ -274,7 +278,7 @@ The currently declared multi-install safe integrations are:
274278
| `trae` | `.trae/skills`, `.trae/rules/project_rules.md` |
275279
| `zcode` | `.zcode/skills`, `ZCODE.md` |
276280

277-
Integrations that share a context file or command directory with another integration, require dynamic install paths such as `--commands-dir`, or merge shared tool settings are not declared safe by default. They can still be installed alongside another integration with `--force`.
281+
Integrations that share a command directory with another integration, require dynamic install paths such as `--commands-dir`, or merge shared tool settings are not declared safe by default. They can still be installed alongside another integration with `--force`.
278282

279283
### What happens to my changes when I uninstall or switch?
280284

tests/integrations/test_integration_grok.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ def test_integration_grok_creates_skills(self, tmp_path):
5454
"--script",
5555
"sh",
5656
],
57+
catch_exceptions=False,
5758
)
5859

5960
assert result.exit_code == 0, f"init --integration grok failed: {result.output}"
@@ -84,3 +85,42 @@ def test_build_exec_args_uses_headless_prompt_flag(self):
8485
assert "grok-build" in args
8586
assert "--output-format" in args
8687
assert "json" in args
88+
89+
90+
class TestGrokNextSteps:
91+
"""CLI output tests for Grok next-steps display."""
92+
93+
def test_init_next_steps_show_grok_skill_guidance(self, tmp_path):
94+
"""init --integration grok should guide users to .grok/skills and /speckit-*."""
95+
from typer.testing import CliRunner
96+
from specify_cli import app
97+
98+
runner = CliRunner()
99+
target = tmp_path / "grok-next-steps"
100+
result = runner.invoke(
101+
app,
102+
[
103+
"init",
104+
str(target),
105+
"--integration",
106+
"grok",
107+
"--ignore-agent-tools",
108+
"--script",
109+
"sh",
110+
],
111+
catch_exceptions=False,
112+
)
113+
114+
assert result.exit_code == 0, f"init --integration grok failed: {result.output}"
115+
assert "Start Grok Build" in result.output, (
116+
f"Expected Grok start guidance in next steps but got:\n{result.output}"
117+
)
118+
assert ".grok/skills" in result.output, (
119+
f"Expected .grok/skills install path in next steps but got:\n{result.output}"
120+
)
121+
assert "/speckit-plan" in result.output, (
122+
f"Expected /speckit-plan in next steps but got:\n{result.output}"
123+
)
124+
assert "/speckit.plan" not in result.output, (
125+
f"Should not show /speckit.plan for Grok skills mode:\n{result.output}"
126+
)

0 commit comments

Comments
 (0)