Repository navigation
fix(runtime): publish the Claude target as a skills-dir plugin - #46
Merged
Merged
Conversation
Claude Code discovers skills only one level under ~/.claude/skills/, so nothing in ~/.claude/skills/stack/skills/<name>/ has loaded since the runtime was first published: a fresh session listed zero Stack skills. The compiler now writes .claude-plugin/plugin.json into the Claude target. Claude Code then loads the directory in place (through the installer's symlink) as stack@skills-dir and exposes every staged skill, command, and agent as stack:<name>. Verified with a throwaway HOME (`claude plugin list` shows stack@skills-dir loaded through a symlink) and with --plugin-dir (190 stack: entries). - Manifest is written before attestation, so the staged tree digest covers it; version is 1.0.0+<source commit>. - The Claude post-switch verifier checks the manifest name and version. - No raw skill root, marketplace, or plugin store is touched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
Problem
Claude Code has never loaded Stack's Claude runtime. It discovers skills only one level under
~/.claude/skills/(~/.claude/skills/<name>/SKILL.md), but Stack publishes to~/.claude/skills/stack/skills/<name>/SKILL.md.A fresh headless session listed zero Stack skills. That includes the 17 Emil skills and
blank-pagefrom #44/#45, and thematt-*/david-*imports installed since August.Fix
compile-runtime.pynow writes.claude-plugin/plugin.jsoninto the Claude target only. With that manifest, Claude Code loads the directory in place as a skills-dir plugin (stack@skills-dir). Every staged skill, command, and agent then appears asstack:<name>, e.g.stack:emil-animate,stack:blank-page,stack:ship.staged_tree_digestcovers it.1.0.0+<source commit>. The Claude post-switch verifier now checks it.Verification
python3 -m unittest discover -s tests: 493 tests, OK. The new test covers: Claude gets the manifest, Codex doesn't, and the attestation covers it.claude plugin validateon the runtime with the manifest: success.~/.claude/skills/stackas a symlink (the installer's real layout):claude plugin listshowsstack@skills-dir ✔ loaded.claude -p --plugin-dir <runtime>: the session loads 190stack:entries.After merge
Reinstall with the documented
bootstrap-stack.py --installcommand, then start a new Claude Code session.🤖 Generated with Claude Code