{"id":50580830,"url":"https://github.com/foonerd/evo-catalogue-schemas","last_synced_at":"2026-06-05T02:01:22.367Z","repository":{"id":354654021,"uuid":"1224560534","full_name":"foonerd/evo-catalogue-schemas","owner":"foonerd","description":"Versioned shape contracts for evo's brand-neutral catalogue shelves under the org.evoframework.* namespace.","archived":false,"fork":false,"pushed_at":"2026-06-04T18:23:12.000Z","size":188,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-04T21:09:12.525Z","etag":null,"topics":["catalogue","evo-framework","framework","plugin-contracts","schemas"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/foonerd.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-29T12:01:28.000Z","updated_at":"2026-06-04T18:23:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/foonerd/evo-catalogue-schemas","commit_stats":null,"previous_names":["foonerd/evo-catalogue-schemas"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/foonerd/evo-catalogue-schemas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fevo-catalogue-schemas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fevo-catalogue-schemas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fevo-catalogue-schemas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fevo-catalogue-schemas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foonerd","download_url":"https://codeload.github.com/foonerd/evo-catalogue-schemas/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fevo-catalogue-schemas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33927313,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["catalogue","evo-framework","framework","plugin-contracts","schemas"],"created_at":"2026-06-05T02:01:21.463Z","updated_at":"2026-06-05T02:01:22.357Z","avatar_url":"https://github.com/foonerd.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# evo-catalogue-schemas\n\nVersioned catalogue schemas for the evo framework's brand-neutral\nshelves under the `org.evoframework.*` namespace.\n\n## What this repository is\n\nThe evo framework's catalogue document declares racks, shelves,\nsubject types, and cardinality. Each shelf carries a **shape** —\nthe request types, payload shape, and acceptance criteria a\nplugin satisfies when claiming to implement that shelf. This\nrepository hosts the per-shelf shape schemas as versioned TOML\nfiles.\n\nThe framework's admission gate validates a plugin's manifest\nagainst the catalogue document; the schemas in this repository\nare what a plugin author reads to know what code contract that\nadmission gate translates to.\n\nSchemas evolve at their own cadence — independent of the\nframework's release cycle — so distributions and plugin\nauthors can pin a specific schemas version against their builds.\n\n## Scope: brand-neutral framework-tier shelves only\n\nThis repository hosts schemas under the\n**`org.evoframework.*`** namespace only. Distribution-specific\nshelves (`com.\u003cvendor\u003e.*`) live in each distribution's own\nschemas publication, not here. Brand-neutral shelves are\ncontracts shared across distributions: any audio reference,\nany vendor distribution, any third-party plugin author can\nimplement them and expect the same admission semantics.\n\n## Layout\n\n```text\nschemas/\n└── org.evoframework/\n    ├── \u003crack\u003e/\n    │   ├── _rack.toml                  # rack-level metadata (name, description, version)\n    │   ├── \u003cshelf\u003e.v\u003cN\u003e.toml           # shape-N schema for this shelf\n    │   └── \u003cshelf\u003e.v\u003cN\u003e.changes.md     # optional change-history pointer\n    └── example/\n        └── echo.v1.toml                # the worked-example reference\n```\n\nThe `\u003crack\u003e/\u003cshelf\u003e.v\u003cN\u003e.toml` naming convention matches the\nnaming the evo framework's `dist/catalogue/schemas/`\nin-tree skeleton uses. See the schema files themselves for the\nauthoring conventions per shape.\n\n## Versioning\n\nSemver on the repository as a whole. One version line; the\nrepository is one product.\n\n| Bump kind | When |\n| --- | --- |\n| Patch (vX.Y.z) | Additive: new shelves added; new acceptance criteria added to existing shapes. Acceptance criteria are documentation, not enforced; additions are non-breaking. |\n| Minor (vX.y.0) | New shape versions added. Existing shapes stay present via the `shape_supports` discipline so plugins targeting the older shape continue to admit. |\n| Major (vx.0.0) | A shape's semantic contract changes incompatibly. Rare; see CONTRIBUTING.md for the per-shape discussion process. |\n\nCHANGELOG.md tracks the per-version log of changes.\n\n## Consuming the schemas\n\n### Plugin authors\n\nReference this repository's URL in your plugin's README; pin a\nspecific tag in your CI; validate your plugin locally before\nshipping:\n\n```sh\n# Clone (or check out a pinned tag) into a known location.\ngit clone -b v0.1.0 https://github.com/foonerd/evo-catalogue-schemas /path/to/schemas\n\n# Validate your plugin against the schemas (evo-plugin-tool from a recent evo-core release).\nevo-plugin-tool validate-shelf-schema \\\n  --schemas-path=/path/to/schemas/schemas \\\n  --plugin=path/to/your/plugin.toml\n```\n\n### Distribution packagers\n\nVendor distributions ship a separate package that installs the\nschemas under `/usr/share/evo-catalogue-schemas/`. Example\nDebian package recipe outline:\n\n```text\nSource:    evo-catalogue-schemas\nBuild:     cp -r schemas/ debian/\u003cpackage\u003e/usr/share/evo-catalogue-schemas/\nDepends:   evo-core (\u003e= \u003cminimum-compatible-version\u003e)\n```\n\nConsumers on the device then resolve the schemas via the\ndefault `--schemas-path` cascade:\n\n1. `--schemas-path` flag if passed\n2. `$EVO_SCHEMAS_DIR` environment variable if set\n3. `/usr/share/evo-catalogue-schemas/` if present\n4. Error with guidance to install a schemas package or pass `--schemas-path`\n\n### evo-core CI\n\nevo-core's CI references this repository as a git submodule\npinned to the minimum-compatible version; runs\n`evo-plugin-tool validate-shelf-schema` against the in-tree\nworked-example to verify tool + schema agreement before\nrelease.\n\n## Repository governance\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for:\n\n- How to propose a new shelf shape.\n- How to bump an existing shelf's shape version.\n- The review process for additions and shape changes.\n- Namespace ownership rules.\n\n## License\n\nApache 2.0. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoonerd%2Fevo-catalogue-schemas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoonerd%2Fevo-catalogue-schemas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoonerd%2Fevo-catalogue-schemas/lists"}