Files
msd-core/.github/PULL_REQUEST_TEMPLATE/registry-entry.md
Tom Boucher 60e3c4988a feat(#2182): scaffold community capability + EoS registry (tests + stubbed core)
Adds the discoverability-registry surface for issue #2182: JSON-sourced
capability/eos catalogs, a pure schema/vocab module (registry-schema.cjs)
with the ADR-857 loop points + ADR-1239 axes, thin validate/gen CLIs,
the registry-entry PR template, README spec, and CONTEXT.md glossary terms.

The three pure functions (isValidGsdRange/validateEntries/renderMarkdown)
are stubbed here so the comprehensive test suite fails first (red), per the
feature-implementation red-first directive; the next commit implements them.

Refs #2182

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 14:13:02 -04:00

4.4 KiB

Registry Entry PR

Using the wrong template? — Bug fix: use fix.md — New feature (not a registry listing): use feature.md — Enhancement to existing behavior: use enhancement.md

Full schema and process: docs/registries/README.md.


Registry type

  • Capability Registry entry — adds/updates one object in docs/registries/capabilities.json
  • EoS Registry entry — adds/updates one object in docs/registries/eos.json

The entry

{
  "id": "",
  "name": "",
  "type": "",
  "repo": "",
  "description": "",
  "author": "",
  "license": "",
  "enginesGsd": "",
  "install": "",
  "uninstall": "",
  "interactions": {},
  "discussion": ""
}

Required-field checklist

  • id, name, type, repo, description, author, license, enginesGsd, install, uninstall, interactions, discussion are all present and non-empty
  • (Capability entries only) interactions.loopExtensionPoints is a non-empty subset of the 12 Loop Extension Points, interactions.hookKinds ⊆ {step, contribution, gate}, and interactions.configKeys / requires / runtimeCompat / produces / consumes are present (empty arrays are fine where nothing applies)
  • (EoS entries only) protocolVersion is an integer ≥ 1, interactions.interfacePoints is a non-empty subset of the six interface points, interactions.profile is one of programmatic-cli / declarative-cli / ide, and interactions.axes has exactly the eight required axis keys

Ownership & non-endorsement

  • repo links to a repository I own or am the primary maintainer of — not a fork, mirror, or someone else's project
  • I understand that inclusion in this registry means only that a maintainer merged this PR — it is not an endorsement, and GSD has not reviewed, tested, audited, or verified my solution or its claimed GSD interactions
  • I understand this entry is removed only for illegal content, malware, spam, or a dead/non-functional link — never for quality — and a maintainer may remove it on that narrow basis without further notice

One entry, one PR

  • This PR adds or updates exactly one entry, in exactly one of capabilities.json / eos.json
  • I have not bundled any other registry entry, code change, or unrelated docs change into this PR

Generated file in sync

  • I ran npm run gen:registry after editing the JSON source, and this PR includes the regenerated docs/registries/capability-registry.md or docs/registries/eos-registry.md
  • I did not hand-edit the generated .md file directly — all edits were made to the JSON source

Documentation

CI enforces lint:docs for any changeset fragment typed Added / Changed / Deprecated / Removed — it must also touch a file under docs/. The JSON source and its regenerated markdown, both under docs/registries/, satisfy this.

  • This PR includes both the JSON source file and the regenerated markdown file under docs/registries/

Checklist

  • npm run validate:registry passes locally against my entry
  • discussion links to a GitHub Discussion in the Registry category (or notes that one will be created on merge, per docs/registries/README.md)
  • .changeset/ fragment added with an Added type describing the new listing

Example filled entry

{
  "id": "linear-issue-sync",
  "name": "Linear Issue Sync",
  "type": "capability",
  "repo": "some-org/gsd-cap-linear-sync",
  "description": "Mirrors ROADMAP.md items to Linear issues as a ship:post contribution.",
  "author": "Some Org <hello@some-org.example>",
  "license": "MIT",
  "enginesGsd": ">=1.6.0",
  "install": "gsd capability install https://github.com/some-org/gsd-cap-linear-sync.git#v1.0.0",
  "uninstall": "gsd capability remove linear-issue-sync",
  "interactions": {
    "loopExtensionPoints": ["ship:post"],
    "hookKinds": ["contribution"],
    "configKeys": ["linear-issue-sync.enabled"],
    "requires": [],
    "runtimeCompat": ["all"],
    "produces": ["linear-issue-links"],
    "consumes": ["ROADMAP.md"]
  },
  "discussion": "https://github.com/open-gsd/gsd-core/discussions/1234"
}