Thanks for considering a contribution. The Oxagen Claude Code plugin is the user-facing surface of the Oxagen ontology platform inside Claude Code; changes here ship to every developer who installs the plugin from the marketplace.
The plugin is developed inside the platform monorepo at
oxagenai/oxagen-platform
under plugins/oxagen-claude-code/. The standalone repo at
oxagenai/claude-code-plugin
is a mirror, refreshed on every release via
scripts/eject-claude-code-plugin.sh in the monorepo.
Make changes in the monorepo PR, not in the mirror. PRs opened against the mirror are accepted but will be replayed into the monorepo before being merged.
- Clone the platform monorepo.
- Symlink the plugin tree into Claude Code's plugin path:
ln -s "$(pwd)/plugins/oxagen-claude-code" ~/.claude/plugins/oxagen
- Restart Claude Code. The SessionStart hook fires;
/mcpshould listoxagenonceOXAGEN_MCP_TOKENis exported. - Edit, reload Claude Code, repeat.
- Create
commands/<name>.mdwith frontmatter:--- description: Short, single-line summary the agent surfaces in `/help`. argument-hint: "<arg>" allowed-tools: mcp__oxagen__<tool>, Bash, Read, Write ---
- Body is the runbook the agent follows when the command fires.
Numbered steps, explicit tool calls, expected response formats,
failure-mode table at the end. Use existing commands like
commands/setup.mdandcommands/ask.mdas templates. - Add the command to the appropriate table in
README.mdand in the docs site (services/docs/content/docs/plugins/claude-code-plugin.mdxin the platform monorepo). - Add a Linear issue under the Plugins project, link it in the PR.
skills/using-oxagen/SKILL.md is loaded into the system prompt on every
session start. Changes affect every user instantly. Be conservative:
prefer additive activation triggers over removing existing ones.
Versions are coordinated with the platform monorepo. The
pnpm release:* script in the monorepo bumps every package; the plugin's
plugin.json is included. Don't bump the version manually.
From the monorepo root, after a release merges to main:
scripts/eject-claude-code-plugin.sh /tmp/claude-code-plugin-eject
cd /tmp/claude-code-plugin-eject
git remote add origin git@github.com:oxagenai/claude-code-plugin.git
git push -u origin mainThe script copies a clean tree, initializes git, commits with a
release-stamped message, and prints the next-step git remote add /
git push commands.
- Bugs / feature requests: https://github.com/oxagenai/claude-code-plugin/issues
- Security issues: security@oxagen.ai (do not file public issues for CVEs or token leaks).
Be excellent to each other. Brand voice and tone for any public-facing
copy follow services/internal/content/docs/reference/brand-voice.mdx in
the platform monorepo: technically precise, declarative, numerically
honest, infrastructure-calm, developer-respectful.