feat(setup): recognize Grok as a universal skill reader - #1488
Conversation
Teach the setup registry and status surfaces that Grok reads the canonical .agents/skills/ path. Keep setup-status fixtures aligned with the rendered reader list and fix stale registry links in the harness authoring guide.
|
@potiuk I’ve started splitting the Grok work into small reviewable PRs. The first slice only wires Grok into the existing Next I’m planning:
Keeping the runtime/security changes separate should make each piece easier to review. |
xAI's Grok reads project skills from `.grok/skills/` only; it reads `.agents/skills/` at user scope (`~/.agents/skills/`), not in the project, so listing it under the `universal` target was inaccurate. - Drop Grok from the `universal` reader lists (registry, setup and status subdocs, collector fallback tuple, setup-status fixtures). - Add a `grok` registry row (`.grok/skills/`, native relay) with a note citing the xAI docs, including that Grok also reads Claude Code skills, so `.claude/skills/` relays reach it as well. - Wire `.grok/skills/` like `.kiro/skills/`: committed `magpie-*` relays, `.gitignore` and `.gitattributes` entries, the symlink-lint prek file patterns, `list_skills.py` and the release-contents doc. Generated-by: Claude Opus 5
potiuk
left a comment
There was a problem hiding this comment.
Thanks — I pushed a fixup commit (4c61a6c) rather than going another round, and approving with it.
What I changed and why. xAI's Grok reads project skills from .grok/skills/ only — it reads .agents/skills/ at user scope (~/.agents/skills/), not in the project (Grok skills docs). So listing it under the universal target would have recorded an inaccurate fact in the registry that collect_status.py copies into every adopter's status dashboard. The fixup:
- Drops Grok from the
universalreader lists — the registry row and prose, the setup/status subdocs, thecollect_status.pyfallback tuple, and the setup-status eval fixtures go back to their previous wording. - Adds a
grokregistry row (.grok/skills/, native relay), with a note citing the xAI docs. The note also records that Grok reads Claude Code skills and instruction files, so the.claude/skills/relays already reach it. (Per the same docs Grok reads theAGENTS.mdfamily natively too, which answers the other open question in #1416.) - Wires
.grok/skills/exactly like.kiro/skills/: committedmagpie-*relay symlinks into.agents/skills/, the.gitignoreand.gitattributes(export-ignore) entries, the symlink-lint prek file patterns,list_skills.py's directory list, and the release-contents doc.
Your add-a-harness.md link update is kept. prek run --all-files and both symlink-lint passes (tree and release archive) are green locally.
This review was drafted by an AI-assisted tool and
confirmed by an Apache Magpie maintainer. The maintainer
approving this PR has read the findings and signed off. If
something feels off, please reply on the PR and a maintainer
will follow up.More on how Apache Magpie handles maintainer review:
CONTRIBUTING.md.
Summary
.agents/skills/universal skill path instead of introducing a Grok-specific skill target.skills/setup/agents.mdreferences in the harness authoring guide so they point to the current registry underplugins/magpie-setup/skills/setup/agents.md.Type of change
.claude/skills/<name>/) — eval fixtures updated belowtools/<system>/*.md)tools/*/withpyproject.toml)docs/,README.md,CONTRIBUTING.md)projects/_template/)prek, workflows, validators)Test plan
prek run --all-filespassesuv run pytest/ruff check/mypypasses(
PYTHONPATH=tools/skill-evals/src python3 -m skill_evals.runner tools/skill-evals/evals/<skill>/)(a regression test for the bug fixed / the behaviour added — see CONTRIBUTING.md)
python3 -m py_compile plugins/magpie-setup/skills/status/scripts/collect_status.pyload_agent_targets()resolves Grok through the existinguniversaltarget and does not create agroktargetsetup-statuseval fixtures in runner print/assembly modeuv run --project tools/skill-and-tool-validator --group dev skill-and-tool-validatepreksuite passed withTMPDIR=/tmpon macOSRFC-AI-0004 compliance
.agents/skills/path rather than adding a vendor-specific skill placementLinked issues
Refs #1416
Notes for reviewers
This PR intentionally covers only the skill-discovery/setup portion of Grok support.
Grok already reads the standard
.agents/skills/project path, so no.grok/skills/relay or Grok-specific setup target is needed. The existinguniversaltarget remains the single canonical placement.Agent-guard integration, headless spec-loop support, and first-class adapter documentation/registry promotion are intentionally left for follow-up PRs under #1416.
The first full
prekrun hit macOS'sAF_UNIXpath-length limit in an unrelatedcontainer-gatewaytemporary socket test. Re-running withTMPDIR=/tmpmade the full workspace test andpreksuite pass.