Add community bundle submission automation#3553
Draft
BenBtg wants to merge 1 commit into
Draft
Conversation
Add the discovery-only community bundle catalog, online and offline catalog loading, and a restricted agentic workflow for validating bundle submissions and opening draft catalog PRs. Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: fbe794bc-667a-4c9e-b48b-825067debc6d
Contributor
There was a problem hiding this comment.
Pull request overview
Adds automated community bundle submission review, catalog maintenance, and online/offline CLI discovery.
Changes:
- Adds the community bundle catalog and packaged offline snapshot.
- Adds and compiles submission-validation automation.
- Documents discovery policy and adds contract, integration, and workflow tests.
Show a summary per file
| File | Description |
|---|---|
bundles/catalog.community.json |
Initializes the community catalog. |
docs/community/bundles.md |
Documents catalog discovery. |
pyproject.toml |
Packages the offline snapshot. |
src/specify_cli/bundler/services/adapters.py |
Fetches online or packaged catalogs. |
.github/workflows/add-community-bundle.md |
Defines submission automation. |
.github/workflows/add-community-bundle.lock.yml |
Compiles the agentic workflow. |
.github/workflows/catalog-assign.yml |
Routes bundle submissions. |
.github/aw/actions-lock.json |
Pins workflow dependencies. |
tests/contract/test_catalog_schema.py |
Tests catalog and packaging contracts. |
tests/integration/test_bundler_offline.py |
Tests offline discovery. |
tests/unit/test_bundler_adapters.py |
Tests catalog fetch selection. |
tests/test_github_workflows.py |
Verifies workflow wiring. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 11/12 changed files
- Comments generated: 4
- Review effort level: Medium
Comment on lines
+124
to
+127
| if url == "builtin://community": | ||
| if allow_network: | ||
| return _http_get_json(source.id, COMMUNITY_CATALOG_URL) | ||
| return _load_packaged_community_catalog() |
Comment on lines
+155
to
+157
| - If the field says `None` but a component is not bundled and cannot be found | ||
| in a default Spec Kit catalog, fail validation and ask the submitter to list | ||
| and document its catalog. |
| Bundles compose existing Spec Kit components — extensions, presets, workflows, and steps — into a single role or team stack. They are useful when a user should be able to install a tested set of components together instead of following several separate install commands. | ||
|
|
||
| Accepted community bundle entries will be listed here once a community bundle catalog is available. To submit a bundle for review, file a [Bundle Submission](https://github.com/github/spec-kit/issues/new?template=bundle_submission.yml) issue. | ||
| Accepted community bundle entries are published in [`bundles/catalog.community.json`](https://github.com/github/spec-kit/blob/main/bundles/catalog.community.json) and listed below. The built-in community source is discovery-only: `specify bundle search` and `specify bundle info` can inspect entries, but installing by ID requires explicitly adding an install-allowed catalog. To submit a bundle for review, file a [Bundle Submission](https://github.com/github/spec-kit/issues/new?template=bundle_submission.yml) issue. |
Comment on lines
+252
to
+253
| - New entry branch: `add-<bundle-id>-bundle` | ||
| - Update branch: `update-<bundle-id>-bundle` |
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.
Description
Bundles have a submission template and publishing guidance, but accepted submissions still lack a maintained catalog and automated review path. This adds the maintainer-owned automation needed to validate bundle submissions and prepare draft catalog PRs.
The new agentic workflow validates metadata, manifests, release assets, component resolution evidence, and trust boundaries before updating the catalog and documentation. Its safe-output policy restricts PR changes to those two files. The CLI fetches the repository community catalog online and uses a wheel-packaged snapshot offline; the source remains discovery-only, so companion catalogs are never registered automatically.
Fixes: #3161
Testing
uv run specify --helpuv sync && uv run pytestValidated with the complete bundler contract, unit, integration, and workflow test selection. Compiled the agentic workflow with schema validation and actionlint, and verified the wheel contains the packaged community catalog snapshot.
AI Disclosure
Implemented autonomously by GitHub Copilot (GPT-5.6 Sol) on behalf of @BenBtg, including implementation, tests, workflow compilation, review, and commit creation.