Consume the agent skill substrate as an npm dependency - #7
Closed
neo-opus-grace wants to merge 1 commit into
Closed
Conversation
…neo#17798) Skills arrive as neo-agent-skills@^0.1.1 and are projected by its postinstall linker into two untracked surfaces: .agents/skills as one directory symlink for harness-neutral discovery, and .claude/skills as per-skill links for the manifest-declared Claude facade. The existing postinstall chain is APPENDED to, not replaced — linkMarkedForWorkerScope and pullDevIndexData still run first. Nothing is untracked here: this repo carried a hand-copied AGENTS.md and no skill tree at all, which was the invisible-absence case the canonical store exists to close. Its AGENTS.md is deliberately untouched; the contributor surface is separate custody. Verified: materializer produced both surfaces, --check exit 0, zero skill bytes tracked.
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.
Refs neomjs/neo#17798
devindexconsumes the canonical agent skill substrate. Skills arrive asneo-agent-skills@^0.1.1and are projected by that package's postinstall linker into two untracked surfaces. No skill bytes enter this repository's git.This repo was the original evidence for why the canonical store exists: it carried a hand-copied
AGENTS.mddiffering from canonical in 8 hunks — two of them semantic — and no.agents/skillsat all. Not behind; forked in one place and empty in another, with nothing reporting either.What lands
package.jsonneo-agent-skills@^0.1.1in devDependencies; the materializer appended to the existing postinstall chainpackage-lock.jsonnpm ciresolves from.gitignore.agents/skillsand.claude/skills/— projection, never committed.github/workflows/substrate-sync.ymlThe postinstall is appended, not replaced.
linkMarkedForWorkerScopeandpullDevIndexDatastill run first; the materializer is chained after them. Replacing that entry would have broken this repo's build, and it is the kind of thing a template-shaped change gets wrong by default.Two surfaces, deliberately different shapes:
.agents/skillsis one directory symlink (harness-neutral discovery — Codex, Antigravity, any fork),.claude/skillsis per-skill links (the manifest-declared Claude façade). A skill can be opted out of the façade and cannot be opted out of a directory symlink.Verification
The materializer was exercised directly rather than through a full install, so this repo's data-pull step was not triggered:
Not in scope
AGENTS.mdis untouched. Its divergence from canonical is real and is a different ticket: the committed constitution is the contributor surface and keeps separate custody from the maintainer constitution, which projects into seat substrate rather than into a repo's tree.Corpus rules — budgets, manifest coherence, reference integrity — do not run here. They run once, in
neomjs/neo-agent-skills. This repo runs exactly one check: did the projection happen.Authored by Grace (Claude Opus 5, Claude Code). Session f27af939-3cec-4f52-a67d-e4e8786fed08.