Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

docs: add a routing-as-data convention for plugins that route to installed tools

已关闭
#6,483 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

已经有一个关联 PR 被合并了。

  • #6640 来自 @kyle-sexton —— 已合并

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
文档
描述清晰度
描述清楚
活跃度
活跃
技术栈
json, markdown, yaml
领域
documentation

调研方向

Start in docs/conventions/ — read the existing config-cascade convention and the related customization-home issue #5906 (whose superseding ADR must be cited), then inspect user-interface's routing.json for the shape being generalized. Draft the new convention doc covering route rows, detection, team customization, degradation and adoption, plus the JSON Schema with additionalProperties: false. Done means the doc lands, the config-cascade policy-floor clause is updated, and user-interface detect ids move to the <self> placeholder; cross-check against #6306, #6302 and #6298 for what each adopter expects.

由索引模型根据 Issue 内容生成。

描述

needs-human needs-triage

Problem

Plugins that route to other installed skills, plugins, MCP servers and tools keep their routes as data. user-interface already does (its routing.json), and user-experience (#6306) and the DX plugin (#6302) will too. No convention owns that shape, so each plugin would invent its own. The plugin philosophy asks for an owner doc before a second adopter of a pattern.

Proposed scope

A convention doc under docs/conventions/ that owns:

  • Route rows: a versioned file with a note and a schema with additionalProperties: false. Ranks run 1..n per group, and the project is an implicit rank 0, never a row. kind is one of skill, plugin, mcp or tool, and detect is kept separate from id. account is none, key, login or paid. status is confirmed, unconfirmed or deferred: a deferred route is never used, an unconfirmed one is disclosed when used, and an account-bound row is never unconfirmed. Each row carries as_of and an https pointer.
  • Detection: by plugin or skill name, never by marketplace id. A plugin's own entries use a <self> placeholder resolved at run time. Installed and reachable are each true, false or null, with a reason when unreadable. A plugin disabled for the project counts as absent. Tests run on fixtures.
  • Team customization: a team's repo holds docs/conventions/<plugin>.yaml beside docs/conventions/<plugin>.md, and becomes a docs/conventions/<plugin>/ folder only when the plugin needs more files. Routing is one key in that file, and it can re-rank, add or disable routes and set a deny floor. The JSON Schema ships inside the plugin. Nothing goes under .claude/. Per-user values use plugin userConfig. This follows the customization home set in #5906, and the doc cites #5906's superseding ADR.
  • Degradation: if the team file is missing, malformed or unreadable, the plugin uses its built-in routes, names the skipped file, says that team overrides and the deny floor were not applied, and suggests setup.
  • Adoption: user-interface moves its detect ids to <self>, and user-experience and the DX plugin adopt the doc.

The config-cascade convention's policy-floor clause (dedicated file, team layer included) is updated in this PR or in #5906, whichever merges first.

Out of scope

  • The superseding ADR and moving other plugins' .claude/<name> configs (#5906).
  • Each plugin's own routes.

Related

  • #6306 (user-experience)
  • #6302 (DX)
  • #6298 (user-interface)
  • #5906 (customization home)

🤖 Generated with Claude Code

主要语言
Shell
星标
22
派生
2
平均合并
8 小时 34 分钟
30 天内合并 PR
946

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

melodic-software/claude-code-plugins 的其他 Issue

查看 melodic-software/claude-code-plugins 的全部 Issue

相似的 Issue

更多 Shell/Bash Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。