Skip to content

refactor: move plugin into plugins/slack/ and add marketplace.json#86

Draft
WilliamBergamin wants to merge 1 commit into
mainfrom
refactor-project-structure
Draft

refactor: move plugin into plugins/slack/ and add marketplace.json#86
WilliamBergamin wants to merge 1 commit into
mainfrom
refactor-project-structure

Conversation

@WilliamBergamin

@WilliamBergamin WilliamBergamin commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Restructures the repo so the plugin lives under plugins/slack/ and adds a top-level .claude-plugin/marketplace.json, per the FY27Q2 Technical Specification (Step 5). This enables a Slack-hosted marketplace and a future multi-plugin layout while keeping the plugin's skills, commands, and MCP configuration unchanged.

Layout: the two .claude-plugin/ dirs are deliberate — the root one holds marketplace.json, the plugin's own holds plugin.json.

  • Moved (via git mv, history preserved): .claude-plugin/, .cursor-plugin/, .mcp.json, .cursor-mcp.json, skills/, commands/plugins/slack/
  • Added .claude-plugin/marketplace.json (marketplace slack-skills, plugin sourced at ./plugins/slack)
  • Tooling stays at repo root, re-pointed at plugins/slack/ via a PLUGIN_ROOT constant (tests/config.py, scripts/sync_versions.py, scripts/cursor.py) and updated rumdl globs (pyproject.toml). scripts/cursor.py flattens the plugins/slack/ prefix on copy so the local Cursor install matches the root-style layout Cursor expects.
  • Docs updated to new paths; fixed the pre-existing stale homepage (slack-mcp-cursor-pluginslack-mcp-plugin)

Distribution safety

Verified end-to-end with the real Claude Code CLI (v2.1.205): claude plugin validate passes for both the marketplace and the plugin, and /plugin marketplace add ./ + install slack@slack-skills installs cleanly (cache flattened correctly).

The official claude-plugins-official listing is SHA-pinned to the current HEAD, so published installs keep working the moment this merges.

Testing

  • make lint — ✅ (rumdl finds all 14 md files at new paths)
  • make typecheck — ✅ 16 files, no issues
  • make test-unit — ✅ 18/18 (skill discovery resolves new paths)
  • python scripts/sync_versions.py — ✅ writes into plugins/slack/ manifests, formatting preserved
  • claude plugin validate . and ./plugins/slack — ✅ both pass
  • claude plugin marketplace add ./ + install slack@slack-skills — ✅ installs, cache flattened
  • make cursor-install — ✅ 16 files land flattened (no plugins/slack/ prefix)

Notes

Follow-ups tracked separately (out of scope here):

  • External PR to anthropics/claude-plugins-official: switch the slack entry from a url source to git-subdir with "path": "plugins/slack". Must land before that listing's pinned SHA advances past this restructure, or the official listing breaks.
  • Repo rename slack-mcp-pluginslack-skills (GitHub redirects cover it; never recreate the old name).
  • Cursor marketplace listing re-verification for the subdirectory layout.

Requirements

  • I've read and understood the Contributing Guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've run make test and the tests pass. (make test-unit/lint/typecheck pass; make test-eval requires Gemini keys — runs in CI.)

🤖 Generated with Claude Code

Restructure the repo so the plugin lives under plugins/slack/ and add a
top-level .claude-plugin/marketplace.json, per the FY27Q2 Technical
Specification. This enables a Slack-hosted marketplace and a future
multi-plugin layout while keeping the plugin's skills, commands, and MCP
configuration unchanged.

Dev/test/release tooling stays at the repo root and is re-pointed at
plugins/slack/ via a PLUGIN_ROOT constant (tests/config.py,
scripts/sync_versions.py, scripts/cursor.py) and updated rumdl globs
(pyproject.toml). scripts/cursor.py flattens the plugins/slack/ prefix on
copy so the local Cursor install matches the root-style layout Cursor
expects. Docs and the stale plugin homepage are updated to match.

Verified: make lint/typecheck/test-unit, sync_versions, claude plugin
validate (marketplace + plugin), local Claude Code install
(slack@slack-skills), and make cursor-install all pass.

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant