Repository navigation
docs(plugins): publish Plugin V1 format contract, schemas and a dependency-free public validator - #484
Open
hetaoBackend wants to merge 6 commits into
Open
docs(plugins): publish Plugin V1 format contract, schemas and a dependency-free public validator#484hetaoBackend wants to merge 6 commits into
hetaoBackend wants to merge 6 commits into
Conversation
Register the two new community documents in the public source inventory so check:source passes. - docs/community/oncall.md: role split (chat vs GitHub), rotation windows, 48h triage SLA, label hygiene rules, contribution-request rules, weekly feedback replay, reply templates, weekly metrics. - docs/community/groups.md: three community layers and what belongs in each, the single entry point, movement rules, Insider external-disclosure rule, showcase wall and AMA format.
…validator
External authors had no path to the Plugin package format: the contract,
the four JSON Schemas, the reference vectors and the validator all lived in
the internal marketplace repository, and the only onboarding tool
(plugin-creator) is private.
This publishes the contract into the public repository:
- docs/plugins/package-format-v1.md, host-bindings.md, showcases.md
- schemas/plugins/{plugin,mcp,app,host-binding,marketplace}-v1.schema.json
- test-vectors/plugins/content-digest-v1.{source,expected}.json
- tools/plugins/validate-plugin.mjs
The public validator runs the same code path an external author runs, and
check:source now calls it, so the published schemas and the validator cannot
drift apart. It uses only dependencies the repository already declares.
Catalog membership, cross-file capability closure, archive limits and
content_digest remain the responsibility of the official Marketplace
validator at submission time.
check:source also runs inside the exported source snapshot, which has no node_modules, so importing a YAML parser made the gate fail there. The Skill frontmatter subset the V1 contract requires is a flat scalar mapping, so it is parsed inline instead.
…gin entry The contract was published without a way in. This adds docs/plugins/README.md with the clone-to-submit path and a pnpm check:plugin script so an author can run the same validation the CI runs.
This was referenced Oct 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景
外部作者目前没有任何路径接触到 MiniMax Code 的 Plugin 包格式:
gitlab.xaminim.com/matrix/minimax-plugin-marketplace);minimax-code里没有任何 Plugin 资产;plugin-creator是私有 skill,只产出本地包,不是官方 Marketplace 包。外部作者即使看了 GitHub 也看不到官方 Plugin 的存在,更看不到格式契约。
变更
docs/plugins/—package-format-v1.md、host-bindings.md、showcases.md,以及新增的README.md(从 clone 到提交的完整上手路径)schemas/plugins/—plugin-v1/mcp-v1/app-v1/host-binding-v1/marketplace-v1test-vectors/plugins/—content-digest-v1的 source / expected 参考向量tools/plugins/validate-plugin.mjs— 公开 validatorscripts/source-inventory.mjs—check:source现在会调用 validatorpackage.json— 新增pnpm check:pluginvalidator 的设计约束
零运行时依赖。这不是偏好,是硬约束:
check:source也会在导出后的 source 快照里执行(该快照没有node_modules),任何第三方 import 都会让门禁失败。因此 Skill frontmatter 用内联解析器处理 V1 所需的标量映射子集。不重复实现官方规则。catalog 成员资格、跨文件能力闭合、archive 上限、
content_digest仍由官方 Marketplace validator 在提交时执行,validator 会显式声明这一点。与 CI 同源。外部作者跑的
node tools/plugins/validate-plugin.mjs和check:source跑的是同一段代码,本地通过意味着 CI 通过。验证
正例——官方四类 fixture 全部通过:
负例——四种坏包全部被拒:
categorySCHEMA_ENUM+SCHEMA_ANY_OFname与目录不符NAME_MISMATCHskills引用../outside/SKILL.mdSCHEMA_PATTERN+PATH_SEGMENT+SKILL_MISSINGdescriptionSKILL_DESCRIPTION门禁:
pnpm verify --profile docs→ 4 gates PASS(55 tests / 54 pass / 1 skip)。对 @开源布道者 的依赖
本 PR 只搬契约,不动闸门四文件。外部 Plugin 走的是公开仓 PR 通道,因此:
CONTRIBUTING.md/docs/maintainers.md/ISSUE_TEMPLATE/PULL_REQUEST_TEMPLATE需要在 Plugin 贡献路径上同步说明(建议作为第 5 处联动);CODEOWNERS建议把docs/plugins/、schemas/plugins/、tools/plugins/路由给 reviewer,否则外部 Plugin PR 会撞到* @hetaoBackend。🤖 Generated with MiniMax Code
Need help on this PR? Tag
@codesmith-botwith what you need.