Skip to content

Add community bundle submission automation#3553

Draft
BenBtg wants to merge 1 commit into
mainfrom
benbtg-feat-3161-community-bundle-automation
Draft

Add community bundle submission automation#3553
BenBtg wants to merge 1 commit into
mainfrom
benbtg-feat-3161-community-bundle-automation

Conversation

@BenBtg

@BenBtg BenBtg commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

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

  • Tested locally with uv run specify --help
  • Ran existing tests with uv sync && uv run pytest
  • Tested with a sample project (if applicable)

Validated 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

  • I did not use AI assistance for this contribution
  • I did use AI assistance (describe below)

Implemented autonomously by GitHub Copilot (GPT-5.6 Sol) on behalf of @BenBtg, including implementation, tests, workflow compilation, review, and commit creation.

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
Copilot AI review requested due to automatic review settings July 15, 2026 19:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
Comment thread docs/community/bundles.md
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`
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.

[Feature]: Add community bundle submissions

2 participants