@locusgraph/claude-locus-skills-plugin
v1.0.3
Published
Claude Code plugin — reach a locus graph from a session
Downloads
56
Maintainers
Readme
locus-skills — Claude Code plugin
Reaches the user's locus graph from a session: a request goes in, the few sections that answer it come back.
.claude-plugin/marketplace.json at the REPO ROOT — a marketplace manifest
must sit there, not inside the plugin
packages/claude-plugin/
.claude-plugin/plugin.json the manifest Claude Code reads
skills/locus/SKILL.md when to reach for the graph, and how
commands/ /compile /skills /install /publish
hooks/session-start.sh reports whether the CLI is usable, and what the graph holdsInstalling
The catalog is hosted, so nothing here needs to be cloned:
/plugin marketplace add https://skills.locusgraph.com/marketplace.json
/plugin install locus-skills@locus-skillsThat entry installs @locusgraph/claude-locus-skills-plugin
from npm. A marketplace is not optional — every Claude Code install path resolves a plugin through
one — but it does not have to be a repository you can clone, which is why this one is served over
HTTPS and sources the plugin from the registry.
To script it, or to install without the interactive panel:
claude plugin marketplace add https://skills.locusgraph.com/marketplace.json
claude plugin install locus-skills@locus-skillsThe plugin drives the locus CLI, so that has to be present and signed in:
npm i -g @locusgraph/locus-skills-cli
locus loginnpx @locusgraph/locus-skills-cli login works too if you would rather not install it globally, but
the plugin calls a bare locus, so a global install is what makes the slash commands work.
Developing this plugin
The repo is its own marketplace, sourcing the plugin from the working tree rather than the registry:
/plugin marketplace add ./What it ships
One skill. skills/locus/SKILL.md teaches Claude when a task is likely to match something the
user has written down, and to pass their request through verbatim — retrieval matches on the words
they used, and rewriting the request is the most common reason a lookup misses.
Four commands. /compile <request> fetches a skill for one turn. /skills lists what the graph
holds. /install <request> pins a compiled skill into .claude/skills. /publish greps for
leftover TODOs, lints and seeds the skills under library/.
The skill also carries what the CLI's usage text does not: the eight archetypes, the rules a
publish is refused or degraded on (a knowledge or generative skill's sibling file, scaffold
placeholders left in place, trigger length), and the write-back operators — learn add, append and
update — with suggest and forget for the two ends of a skill's life.
One hook, deliberately read-only, and quick. SessionStart reports whether the CLI is installed and
signed in, then prints every skill in the graph with the phrases that fetch it, so a skill published
today fires tomorrow without anyone running a command. It prints from a cache the CLI keeps beside its
credentials (~/.config/locus/skills-cache.json) and refreshes that in the background, so the session
starts in well under a tenth of a second instead of waiting a few seconds on the graph; the heading says
how old the list is. locus publish rewrites the cache on success, so a skill published mid-session is
listed at the very next start. Under 50 skills every phrase prints; from 50 up each skill shows its first
three, because the phrases are what make a skill fire and the count per skill is what gives, never the
phrases altogether. The full list is always one command away: locus skills --brief, the hook's last
line. It writes nothing under .claude. .claude/skills/<slug>/SKILL.md is where locus compile --install pins a
compiled skill, and a hook that wrote there on every session would silently revert the user's pin —
so this one only reports.
Why the plugin ships no skills of its own
A plugin is static content installed from a git repo; a locus graph is per-user. Bundling this repo's own skills would hand every installer our library rather than connecting them to theirs, and would lose on-demand compilation entirely — twelve sections where three were asked for. So the plugin ships the bridge, and the skills stay in the graph.
