Generalize flykit beyond Claude Code plugins - #23
Merged
Conversation
tools.json becomes the ecosystem-neutral registry: every entry now carries an ecosystem field (claude-code or dsh), and dsh-claude-live is listed as the first DeepSeek Harness plugin with a web.json sidecar. .claude-plugin/marketplace.json is untouched — it is the contract Claude Code itself reads, it only understands Claude Code plugins, and nothing from another ecosystem goes in it. README is restructured into per-ecosystem sections, CONTRIBUTING documents which manifest a new entry belongs in, and CI validates that every tools.json entry declares an ecosystem and has a readable web.json.
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.
Motivation
flykit lists Claude Code plugins and Claude Code companion tools. The org just published
dsh-claude-live, a plugin for the DeepSeek Harness, and there was nowhere to list it. Rather than inventing a new file, this generalizes the registry that already exists.What changed
tools.jsonbecomes the ecosystem-neutral registry. Every entry now carries a requiredecosystemfield (claude-codeordsh). Renamed the manifest's ownnametoflykit-registryand widened itsdescription. Entry shape is otherwise unchanged, soflykit-web'slib/tools.tskeeps working with no change (the extra field is ignored).dsh-claude-livelisted as the first dsh entry, with atools/dsh-claude-live/web.jsonsidecar in the same shape astools/ghostcode/web.json. It will render as a card on flykit.cc on merge, no site deploy change needed.tools.jsonentry.pr-check.yml) validates everytools.jsonentry declares anecosystemand points at a readableweb.json. Verified it fails for the right reason by deleting the field locally.notify-web.ymlnow also fires ontools.json/tools/**changes, so registry edits reach flykit.cc.What deliberately did NOT change
.claude-plugin/marketplace.jsonis byte-identical. It is the contract Claude Code itself reads; it only understands Claude Code plugins. No dsh entry goes in it, now or later.git diff main -- .claude-plugin/marketplace.jsonis empty. Existing installs offlowandsteuerare unaffected — no plugin directories, versions, or the marketplace schema were touched.Open questions
ghostcode), which is the recommendation: dsh plugins ship to npm from their own repo with their own release cycle, and vendoring them here would duplicate versioning for no gain. Say the word if you'd rather they sit under adsh-plugins/directory.tools.jsonfilename. Kept as-is because flykit-web fetches it by name and$schemapoints atflykit.cc/schemas/tools.json.registry.jsonreads better now that it holds plugins for other ecosystems, but renaming means a coordinated change in flykit-web (and the schema URL). Your call.flykit-cc/flykit-web: rename the section and show theecosystemvalue as a badge onToolCard.marketplace.jsondescription still say "Claude Code plugins". Left alone deliberately — that's a branding decision, not a mechanical one.