Skip to content

feat(render): share what every host repeats - #11

Open
imoital wants to merge 5 commits into
mainfrom
feat/shared-description
Open

imoital wants to merge 5 commits into
mainfrom
feat/shared-description

Conversation

@imoital

@imoital imoital commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Every host restated the same things in its own files, so a change meant finding every copy. This puts each one in a single place.

  • One README. shared/README.md is every plugin's README. A host writes only readme/setup.md and, if needed, readme/more.md, through a new optional slot ({{>? more}}). A plugin with its own README.md fails the render; code hosts keep theirs.
  • One description. shared/text/zenrows-description.md says what Zenrows does. Manifests, the README and the using-zenrows skill use just the token.
  • One wording per error. What AUTH004, AUTH006, AUTH014 and REQS007's page_not_recognised mean lives in shared/text/, so code hosts quote the same facts as the skills.
  • Host tooling. A host's scripts/ is its own and never ships; npm run validate runs its scripts/validate.mjs and npm run package -- <host> its scripts/package.sh.
  • Copies can't creep back. Validate fails when a host or skill writes a snippet's text out instead of using its token. npm run new-host scaffolds the setup slot instead of a whole README.

Copilot, the only plugin on main, moves onto it. What it ships changes in 5 lines: the description, the README intro, "Skills:", the MCP docs link, and the skill's opening line. That opens a Copilot release. The host PRs (#1–#4 and the Activepieces one) are stacked on this branch and use all of it.

How to check it

  • npm run render -- --check, npm run validate and npm test pass (34 cases, 7 new).
  • npm run new-host end to end: validate stops only on the TODOs it leaves.
  • The Copilot mirror output keeps its README and banner.

One sentence in shared/text/zenrows-description.md, used by Copilot's plugin.json and README and the using-zenrows skill. validate now fails when a host or skill writes a snippet's text out instead of using its token.
shared/README.md is every plugin host's README; a host writes only readme/setup.md and, if it needs more, readme/more.md. The description snippet now carries its own lead-in, so manifests, the README and the using-zenrows skill use just the token. {{>? slot}} makes a slot optional. new-host scaffolds the setup slot instead of a whole README.
@imoital
imoital requested a review from tedi-z November 13, 2026 17:08
…nce, in shared/text/

The using-zenrows and extract-structured-data skills take the wording from four snippets, so code hosts can quote the same facts. Every plugin renders byte-identically.
…ackage

platforms/<host>/scripts/ is never shipped; validate runs a host's scripts/validate.mjs and npm run package -- <host> its scripts/package.sh. Moved here from the OpenAI PR, since Activepieces uses it too.
@imoital imoital changed the title feat(render): one README and one description for every plugin feat(render): share what every host repeats Nov 13, 2026

This branch has not been deployed

No deployments
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