ping — Claude Code skill: verify the Mycelium plugin loaded
A smoke test that answers with one marker line when the Mycelium plugin is packaged and wired up correctly. Not meant for everyday use.
npx skills add haabe/mycelium --skill ping -a claude-codeWhat ping does
Call it and you get a single line back: MYCELIUM_PLUGIN_LOAD_OK. Nothing else. The string is a plugin-shape marker, not a version claim — it proves the whole path works, from manifest through the marketplace and install to a namespaced invocation. To see which version is actually running, check /plugin list or the version field in plugin.json.
The marker used to carry a version suffix, and that drifted: it sat at _v0.20.0 while plugin.json moved through 10 patches. It came up during dogfood on 2026-05-09, so the suffix is gone.
Metadata sets disable-model-invocation: true, so the model will not pick this skill up on its own. It also assumes it runs inside the Mycelium framework — standalone, you lose the canvas state, theory gates and harness behavior it expects. Real Mycelium skills live in the parent skills/ directory.
What it helps with
- confirm the Mycelium plugin installed and responds to a namespaced call
- check packaging after edits to the manifest or marketplace entry
- tell an install problem apart from a skill problem
- get a predictable answer to assert on in a script
Example prompts for the agent
- Run the ping skill and show me the output verbatim
- Check that the Mycelium plugin loaded — invoke ping
- ping should return one line; what did it return?
How to install ping
1Skills CLI (Vercel)
npx skills add haabe/mycelium --skill ping -a claude-code2Manually: put the files in place
~/.claude/skills/ping/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ping/
1Skills CLI (Vercel)
npx skills add haabe/mycelium --skill ping -a codex2Manually: put the files in place
.agents/skills/ping/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add haabe/mycelium --skill ping -a cursor2Manually: put the files in place
.cursor/skills/ping/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install haabe/mycelium ping2Manually: put the files in place
.github/skills/ping/SKILL.md1Skills CLI (Vercel)
npx skills add haabe/mycelium --skill ping -a gemini-cli2Platform CLI
gemini skills install https://github.com/haabe/mycelium --path plugins/mycelium/skills/pingManually: put the files in place
.devin/skills/ping/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add haabe/mycelium --skill ping -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about ping
How do I install ping in Claude Code?
Use the skills installer: npx skills add haabe/mycelium --skill ping -a claude-code. The skill file then sits at ~/.claude/skills/ping/SKILL.md.
What does the ping skill do?
It replies with the single line MYCELIUM_PLUGIN_LOAD_OK, which confirms the Mycelium plugin is packaged and reachable by a namespaced call.
Why doesn't the model invoke ping by itself?
The skill metadata sets disable-model-invocation: true, so there is no automatic pickup — you call it yourself.
Source text
SKILL.md · MIT
--- name: ping description: Smoke-test skill that confirms the Mycelium plugin loaded correctly. Returns a deterministic marker string for plugin-shape validation. Not for end-user invocation in normal use. disable-model-invocation: true metadata: framework_dependency: "mycelium" framework_dependency_note: "This skill is designed to run within the Mycelium framework (https://github.com/haabe/mycelium). Standalone use will skip the canvas state, theory gates, and harness behavior the skill assumes. Install: /plugin install mycelium@haabe-mycelium." --- # Ping (smoke-test only) When invoked, respond with exactly this single line and nothing else: ``` MYCELIUM_PLUGIN_LOAD_OK ``` This is a plugin-shape marker, not a version assertion — it confirms the plugin packaging works end-to-end (manifest → marketplace → install → namespaced invocation). The version a user is actually running comes from `/plugin list` or `plugin.json#version`, not this marker. (The marker was previously version-suffixed, which created drift: it stayed pinned at `_v0.20.0` while plugin.json moved through 10 patches. Detected during 2026-05-09 dogfood.) For real Mycelium skills, see the parent `skills/` directory once migration completes.
© haabe · MIT · haabe/mycelium