Skip to content

Commit 0030bce

Browse files
committed
feat: improve catalog submission templates and CODEOWNERS
Simplify the community catalog submission flow to use issue templates with manual maintainer review (no automation scripts or workflows). - Add explicit CODEOWNERS entries for catalog.community.json files so submissions are automatically assigned to a maintainer for review - Improve preset submission template: - Add 'Required Extensions' optional field - Make 'Templates Provided' optional (supports command-only presets) - Add 'Number of Scripts' optional field The existing extension and preset issue templates already collect all required catalog metadata. Maintainers review submissions and manually update the catalog JSON files. Closes #2400
1 parent 9483e5c commit 0030bce

9 files changed

Lines changed: 101 additions & 247 deletions

File tree

.github/CODEOWNERS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
# Global code owner
22
* @mnriem
33

4+
# Community catalog files — explicit ownership for when global ownership expands
5+
/extensions/catalog.community.json @mnriem
6+
/integrations/catalog.community.json @mnriem
7+
/presets/catalog.community.json @mnriem
8+

.github/ISSUE_TEMPLATE/preset_submission.yml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,27 @@ body:
9595
validations:
9696
required: true
9797

98+
- type: input
99+
id: required-extensions
100+
attributes:
101+
label: Required Extensions (optional)
102+
description: Comma-separated list of required extension IDs (e.g., aide)
103+
placeholder: "e.g., aide, canon"
104+
105+
- type: markdown
106+
attributes:
107+
value: |
108+
**At least one** of Templates Provided or Commands Provided must be filled in.
109+
98110
- type: textarea
99111
id: templates-provided
100112
attributes:
101-
label: Templates Provided
102-
description: List the template overrides your preset provides
113+
label: Templates Provided (optional)
114+
description: List the template overrides your preset provides (leave empty for command-only presets)
103115
placeholder: |
104116
- spec-template.md — adds compliance section
105117
- plan-template.md — includes audit checkpoints
106118
- checklist-template.md — HIPAA compliance checklist
107-
validations:
108-
required: true
109119
110120
- type: textarea
111121
id: commands-provided
@@ -115,6 +125,13 @@ body:
115125
placeholder: |
116126
- speckit.specify.md — customized for compliance workflows
117127
128+
- type: input
129+
id: scripts-count
130+
attributes:
131+
label: Number of Scripts (optional)
132+
description: How many scripts does your preset provide? (leave empty if none)
133+
placeholder: "e.g., 1"
134+
118135
- type: textarea
119136
id: tags
120137
attributes:
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: "Catalog: Auto-assign submission"
2+
3+
on:
4+
issues:
5+
types: [opened]
6+
7+
jobs:
8+
assign:
9+
if: >
10+
contains(github.event.issue.labels.*.name, 'extension-submission') ||
11+
contains(github.event.issue.labels.*.name, 'preset-submission')
12+
runs-on: ubuntu-latest
13+
permissions:
14+
issues: write
15+
steps:
16+
- uses: actions/github-script@v7
17+
with:
18+
script: |
19+
// Assign default maintainer and notify the team
20+
await github.rest.issues.addAssignees({
21+
owner: context.repo.owner,
22+
repo: context.repo.repo,
23+
issue_number: context.issue.number,
24+
assignees: ['mnriem'],
25+
});
26+
27+
await github.rest.issues.createComment({
28+
owner: context.repo.owner,
29+
repo: context.repo.repo,
30+
issue_number: context.issue.number,
31+
body: 'cc @github/spec-kit-maintainers — new catalog submission for review.',
32+
});

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ Want to see Spec Kit in action? Watch our [video overview](https://www.youtube.c
174174
## 🧩 Community Extensions
175175

176176
> [!NOTE]
177-
> Community extensions are independently created and maintained by their respective authors. GitHub and the Spec Kit maintainers may review pull requests that add entries to the community catalog for formatting, catalog structure, or policy compliance, but they do **not review, audit, endorse, or support the extension code itself**. The Community Extensions website is also a third-party resource. Review extension source code before installation and use at your own discretion.
177+
> Community extensions are independently created and maintained by their respective authors. Maintainers only verify that catalog entries are complete and correctly formatted — they do **not review, audit, endorse, or support the extension code itself**. The Community Extensions website is also a third-party resource. Review extension source code before installation and use at your own discretion.
178178
179179
🔍 **Browse and search community extensions on the [Community Extensions website](https://speckit-community.github.io/extensions/).**
180180

docs/community/presets.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Community Presets
22

33
> [!NOTE]
4-
> Community presets are independently created and maintained by their respective authors. GitHub and the Spec Kit maintainers may review pull requests that add entries to the community catalog for formatting, catalog structure, or policy compliance, but they do **not review, audit, endorse, or support the preset code itself**. Review preset source code before installation and use at your own discretion.
4+
> Community presets are independently created and maintained by their respective authors. Maintainers only verify that catalog entries are complete and correctly formatted — they do **not review, audit, endorse, or support the preset code itself**. Review preset source code before installation and use at your own discretion.
55
66
The following community-contributed presets customize how Spec Kit behaves — overriding templates, commands, and terminology without changing any tooling. Presets are available in [`catalog.community.json`](https://github.com/github/spec-kit/blob/main/presets/catalog.community.json):
77

extensions/EXTENSION-DEVELOPMENT-GUIDE.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -528,11 +528,9 @@ specify extension add <extension-name> --from https://github.com/.../spec-kit-my
528528

529529
Submit to the community catalog for public discovery:
530530

531-
1. **Fork** spec-kit repository
532-
2. **Add entry** to `extensions/catalog.community.json`
533-
3. **Update** the Community Extensions table in `README.md` with your extension
534-
4. **Create PR** following the [Extension Publishing Guide](EXTENSION-PUBLISHING-GUIDE.md)
535-
5. **After merge**, your extension becomes available:
531+
1. **Create a GitHub release** for your extension
532+
2. **File an issue** using the [Extension Submission](https://github.com/github/spec-kit/issues/new?template=extension_submission.yml) template
533+
3. **After review**, a maintainer updates the catalog and your extension becomes available:
536534
- Users can browse `catalog.community.json` to discover your extension
537535
- Users copy the entry to their own `catalog.json`
538536
- Users install with: `specify extension add my-ext` (from their catalog)

0 commit comments

Comments
 (0)