Files
Gaudenz Alder 04a4ce1be3 refactor: restructure skill-cli as Claude Code plugin + marketplace
Repackage the draw.io Claude Code skill as an installable plugin under
plugins/claude-code/ and add a marketplace manifest at the repo root, so
users install via

  /plugin marketplace add jgraph/drawio-mcp
  /plugin install drawio@drawio

instead of hand-copying SKILL.md into ~/.claude/skills/.

Supersedes #49 (@TripleRD), the original plugin + marketplace proposal;
reimplemented here with shell-safety hardening and a deduped marketplace
manifest.

Structure:
- git mv skill-cli/{drawio/SKILL.md,README.md} -> plugins/claude-code/
- skill-cli/CLAUDE.md -> plugins/claude-code/DEVELOPING.md (a CLAUDE.md at a
  plugin root is not loaded as context and trips `claude plugin validate`;
  renamed so validation is clean while keeping the maintainer notes)
- .claude-plugin/marketplace.json (marketplace "drawio", owner "draw.io",
  plugin "drawio")
- plugins/claude-code/.claude-plugin/plugin.json: single source of truth for
  version/description/author/license; the marketplace entry stays minimal
  ({name, source, category}) and inherits the rest (verified against the
  official plugin docs)
- plugins/README.md (per-host grouping)
- docs re-pointed Skill+CLI -> Claude Code Plugin; invocation is now
  /drawio:drawio (auto-triggers without the command in normal use)

Security / correctness fixes in SKILL.md (beyond a verbatim move):
- Windows/WSL2 draw.io path used bash backticks (command substitution), which
  would execute the binary at locate-time rather than store its path; switched
  to double-quoting and corrected the explanation.
- Windows-native url mode built the .url shortcut with `echo URL=%URL%`, which
  cmd.exe splits on the URL's `&` query separators (truncated/corrupt shortcut,
  lost diagram payload) and referenced an undefined %URL%. Node now writes the
  .url file directly; only the `&`-free file path is passed to `start`.
- Quoted filenames passed to the export CLI and the node -e one-liner.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:27:17 +02:00

1.7 KiB

AI Assistant Plugins

This directory groups assistant-side integrations by host — one subdirectory per AI assistant. Each subdirectory is the plugin root for its host, packaging the draw.io skill in whatever format that host expects (manifest schema, file layout, invocation convention).

Directory Host Status
claude-code/ Claude Code Available

The Claude Code plugin is published through a marketplace manifest at the repo root (.claude-plugin/marketplace.json), so users can install it with:

/plugin marketplace add jgraph/drawio-mcp
/plugin install drawio@drawio

Adding a plugin for another host

If support for another assistant (Cursor, Codex, etc.) is added later, it lands as a sibling directory at this level:

plugins/
└── claude-code/              ← Claude Code plugin

The draw.io guidance itself — how to generate .drawio files, embed XML in PNG/SVG/PDF, and produce app.diagrams.net URLs — is shared. Only the wrapping (manifest format, file layout, invocation prefix) differs per host, and each host has its own plugin/skill model, so the wrapping is not assumed to be uniform.

The single source of truth for draw.io XML generation guidance lives at ../shared/xml-reference.md — every plugin references that file rather than duplicating its contents.

Other delivery mechanisms in this repo

Plugins are one of four ways to integrate draw.io with AI assistants. See the root README for the full comparison with the MCP App Server, MCP Tool Server, and Claude Project Instructions approaches.