From 128a791349e13cb3e7ee4f877ebd6824fe4af1fb Mon Sep 17 00:00:00 2001 From: Jason Zhou Date: Tue, 25 Aug 2026 11:46:24 +1000 Subject: [PATCH] refactor(plugin): move the MiniMax root under plugins/ beside the Cursor root Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01WBkwAP4DPMJsxBRmG1UGSb --- docs/MINIMAX-PLUGIN.md | 8 ++++---- docs/context/interface/skill.md | 4 ++-- plugin/README.md | 2 +- .../minimax}/.minimax-plugin/plugin.json | 0 {minimax => plugins/minimax}/icon.png | Bin {minimax => plugins/minimax}/skills/treg/SKILL.md | 0 scripts/build_plugin.py | 6 +++--- scripts/minimax_plugin.py | 4 ++-- tests/test_plugin.py | 6 +++--- 9 files changed, 15 insertions(+), 15 deletions(-) rename {minimax => plugins/minimax}/.minimax-plugin/plugin.json (100%) rename {minimax => plugins/minimax}/icon.png (100%) rename {minimax => plugins/minimax}/skills/treg/SKILL.md (100%) diff --git a/docs/MINIMAX-PLUGIN.md b/docs/MINIMAX-PLUGIN.md index e2d7d380..7c09173a 100644 --- a/docs/MINIMAX-PLUGIN.md +++ b/docs/MINIMAX-PLUGIN.md @@ -14,18 +14,18 @@ login; the rules that matter are encoded in `scripts/minimax_plugin.py`. ## What is where ``` -minimax/ +plugins/minimax/ ├── .minimax-plugin/plugin.json the manifest (schemaVersion 1) ├── icon.png 512×512, the ▚ mark — same file as plugin/assets/icon.png └── skills/treg/SKILL.md GENERATED — never edit by hand scripts/minimax_plugin.py validator (--check) and ZIP builder (--zip OUT) ``` -`minimax/` is the **plugin root**: `.minimax-plugin/plugin.json` sits directly inside it, which is +`plugins/minimax/` is the **plugin root** (a sibling of the Cursor root `plugins/treg/`; each store needs its own root because the manifests and generated bootstraps differ): `.minimax-plugin/plugin.json` sits directly inside it, which is what MiniMax requires of a ZIP root or a GitHub subdirectory. Manifest `name` is `treg`; the skill is exposed at runtime as `treg:treg`. -**Never edit `minimax/skills/treg/SKILL.md`.** Change `src/treg/web/skill.md` and regenerate: +**Never edit `plugins/minimax/skills/treg/SKILL.md`.** Change `src/treg/web/skill.md` and regenerate: ```bash python3 scripts/build_plugin.py # regenerate ALL plugins @@ -79,7 +79,7 @@ use one the team keeps, the *same* account must query status later): | Source | GitHub | | Repo | `https://github.com/superdesigndev/treg` | | Ref | `main` (or the release tag, e.g. `v0.12.1`) | -| Plugin subdirectory | `minimax` | +| Plugin subdirectory | `plugins/minimax` | | Email | jason@superdesign.dev | ZIP alternative — built deterministically, no wrapper directory: diff --git a/docs/context/interface/skill.md b/docs/context/interface/skill.md index 5915dbb3..143d423a 100644 --- a/docs/context/interface/skill.md +++ b/docs/context/interface/skill.md @@ -12,7 +12,7 @@ sources: - package.json - dsh/cordis.patch.yml - dsh/index.js - - minimax/.minimax-plugin/plugin.json + - plugins/minimax/.minimax-plugin/plugin.json - scripts/minimax_plugin.py related: - interface/cli.md @@ -55,7 +55,7 @@ served**, because a second copy of the product's most-read page is a copy that r | Codex/ChatGPT plugin | `plugin/.codex-plugin/` + generated `plugin/skills/treg/SKILL.md` | the directory ChatGPT and Codex share | | Cursor plugin | `.cursor-plugin/marketplace.json` + generated `plugins/treg/skills/treg/SKILL.md` | the Cursor marketplace (plugin root is never the repo root) | | DeepSeek Harness bundle | root `package.json` (`dsh.bundle`) + `dsh/cordis.patch.yml` + generated `dsh/skills/treg/SKILL.md` | `dsh plugin --profile add github:superdesigndev/treg` | -| MiniMax plugin | `minimax/.minimax-plugin/plugin.json` + generated `minimax/skills/treg/SKILL.md`; `scripts/minimax_plugin.py` pre-runs their validator and builds the ZIP | the MiniMax Plugin Marketplace (MiniMax Code + MiniMax Agent), submitted by form as GitHub subdir `minimax`; skills-only because the package may hold no credential and the bootstrap omits `treg mcp install`, which cannot write a MiniMax config. See [docs/MINIMAX-PLUGIN.md](../../MINIMAX-PLUGIN.md) | +| MiniMax plugin | `plugins/minimax/.minimax-plugin/plugin.json` + generated `plugins/minimax/skills/treg/SKILL.md`; `scripts/minimax_plugin.py` pre-runs their validator and builds the ZIP | the MiniMax Plugin Marketplace (MiniMax Code + MiniMax Agent), submitted by form as GitHub subdir `plugins/minimax`; skills-only because the package may hold no credential and the bootstrap omits `treg mcp install`, which cannot write a MiniMax config. See [docs/MINIMAX-PLUGIN.md](../../MINIMAX-PLUGIN.md) | | the domain itself | `GET /.well-known/skills/index.json` + `/.well-known/skills/treg/SKILL.md` | anything speaking the agentskills.io convention (Hermes reads this directly) | `scripts/build_plugin.py` renders every plugin copy from the one source and `--check` fails if any is diff --git a/plugin/README.md b/plugin/README.md index 8cd3f769..3df46c0e 100644 --- a/plugin/README.md +++ b/plugin/README.md @@ -12,7 +12,7 @@ searching the plugin directory that ChatGPT and Codex share. > disabled until there is a token. All of them are rendered by the same `scripts/build_plugin.py` > from the same source; they differ only in the prepended bootstrap. See > [`docs/CLAUDE-PLUGIN.md`](../docs/CLAUDE-PLUGIN.md), [`docs/DSH-PLUGIN.md`](../docs/DSH-PLUGIN.md) -> and [`docs/MINIMAX-PLUGIN.md`](../docs/MINIMAX-PLUGIN.md) (skills-only, from `minimax/`). +> and [`docs/MINIMAX-PLUGIN.md`](../docs/MINIMAX-PLUGIN.md) (skills-only, from `plugins/minimax/`). plugin/ ├── .codex-plugin/plugin.json the manifest + the listing copy diff --git a/minimax/.minimax-plugin/plugin.json b/plugins/minimax/.minimax-plugin/plugin.json similarity index 100% rename from minimax/.minimax-plugin/plugin.json rename to plugins/minimax/.minimax-plugin/plugin.json diff --git a/minimax/icon.png b/plugins/minimax/icon.png similarity index 100% rename from minimax/icon.png rename to plugins/minimax/icon.png diff --git a/minimax/skills/treg/SKILL.md b/plugins/minimax/skills/treg/SKILL.md similarity index 100% rename from minimax/skills/treg/SKILL.md rename to plugins/minimax/skills/treg/SKILL.md diff --git a/scripts/build_plugin.py b/scripts/build_plugin.py index 522e937d..e7748992 100644 --- a/scripts/build_plugin.py +++ b/scripts/build_plugin.py @@ -15,7 +15,7 @@ Five shop windows, four bootstraps, one source: connector AND the CLI path in one install: the MCP row is disabled until `TREG_TOKEN` exists, so its bootstrap has to cover both states and steer away from `treg mcp install`, which cannot write a dsh profile. See docs/DSH-PLUGIN.md. -- **minimax** -> `minimax/skills/treg/SKILL.md` — skills-only (MiniMax forbids credentials in the +- **minimax** -> `plugins/minimax/skills/treg/SKILL.md` — skills-only (MiniMax forbids credentials in the package), CLI bootstrap with NO `treg mcp install` step. See docs/MINIMAX-PLUGIN.md. The Claude variant sits at the REPO ROOT rather than under `plugin/` because that one path is @@ -70,9 +70,9 @@ CURSOR_TARGET = ROOT / "plugins" / "treg" / "skills" / "treg" / "SKILL.md" DSH_TARGET = ROOT / "dsh" / "skills" / "treg" / "SKILL.md" # MiniMax (MiniMax Code desktop + MiniMax Agent cloud) prescribes `.minimax-plugin/plugin.json` at # the plugin root and forbids credentials anywhere in the package, so it ships skills-only from its -# own root — submitted as the GitHub subdirectory `minimax/`, or zipped from inside it. See +# own root — submitted as the GitHub subdirectory `plugins/minimax/`, or zipped from inside it. See # docs/MINIMAX-PLUGIN.md. -MINIMAX_TARGET = ROOT / "minimax" / "skills" / "treg" / "SKILL.md" +MINIMAX_TARGET = ROOT / "plugins" / "minimax" / "skills" / "treg" / "SKILL.md" CODEX_BOOTSTRAP = """ ## First, check which treg you have diff --git a/scripts/minimax_plugin.py b/scripts/minimax_plugin.py index 140de413..58731473 100644 --- a/scripts/minimax_plugin.py +++ b/scripts/minimax_plugin.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Validate the MiniMax plugin at `minimax/` against the marketplace's intake rules, and zip it. +"""Validate the MiniMax plugin at `plugins/minimax/` against the marketplace's intake rules, and zip it. The rules are MiniMax's (docs/MINIMAX-PLUGIN.md carries the source): `.minimax-plugin/plugin.json` at the package root with no wrapper directory; ASCII-only paths; no symlinks, hardlinks, install @@ -21,7 +21,7 @@ import zipfile from pathlib import Path ROOT = Path(__file__).resolve().parent.parent -PLUGIN = ROOT / "minimax" +PLUGIN = ROOT / "plugins" / "minimax" MANIFEST = PLUGIN / ".minimax-plugin" / "plugin.json" CATEGORIES = {"Office", "Studio", "Design & Sites", "Code", "Business", "Sales", "Productivity", diff --git a/tests/test_plugin.py b/tests/test_plugin.py index 0ec5f1d7..c76188cb 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -12,7 +12,7 @@ Five of them now, generated by `scripts/build_plugin.py` from the one source `sr - **DeepSeek Harness** (root `package.json` + `dsh/`) — no manifest at all: an npm package declaring `dsh.bundle`, whose patch mounts the skill and a treg MCP row that is disabled until there is a token. See docs/DSH-PLUGIN.md. -- **MiniMax** (`minimax/`) — skills-only again, because MiniMax rejects any credential in the +- **MiniMax** (`plugins/minimax/`) — skills-only again, because MiniMax rejects any credential in the package and gates authenticated MCP behind its App/Connector program. Its bootstrap has no `treg mcp install` step: that command cannot write a MiniMax config. See docs/MINIMAX-PLUGIN.md. @@ -62,8 +62,8 @@ DSH_SKILL = ROOT / "dsh" / "skills" / "treg" / "SKILL.md" # MiniMax (MiniMax Code + MiniMax Agent) prescribes `.minimax-plugin/plugin.json` at the plugin root # and rejects any package holding a credential, so this one is skills-only from its own root -# `minimax/`, submitted as a GitHub subdirectory or a wrapper-free ZIP. See docs/MINIMAX-PLUGIN.md. -MINIMAX_PLUGIN_DIR = ROOT / "minimax" +# `plugins/minimax/`, submitted as a GitHub subdirectory or a wrapper-free ZIP. See docs/MINIMAX-PLUGIN.md. +MINIMAX_PLUGIN_DIR = ROOT / "plugins" / "minimax" MINIMAX_MANIFEST = MINIMAX_PLUGIN_DIR / ".minimax-plugin" / "plugin.json" MINIMAX_SKILL = MINIMAX_PLUGIN_DIR / "skills" / "treg" / "SKILL.md"