From 324d835478490e02cb19d712a20d872e9a9684b5 Mon Sep 17 00:00:00 2001 From: Manfred Riem <15701806+mnriem@users.noreply.github.com> Date: Tue, 6 Oct 2026 07:40:20 -0500 Subject: [PATCH 1/3] chore(triage): prioritize extension submissions Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../ISSUE_TEMPLATE/extension_submission.yml | 4 ++-- extensions/EXTENSION-PUBLISHING-GUIDE.md | 9 +++++---- tests/test_github_workflows.py | 20 +++++++++++++++++++ 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/extension_submission.yml b/.github/ISSUE_TEMPLATE/extension_submission.yml index eae85a4340..da7bf12a85 100644 --- a/.github/ISSUE_TEMPLATE/extension_submission.yml +++ b/.github/ISSUE_TEMPLATE/extension_submission.yml @@ -1,7 +1,7 @@ name: Extension Submission description: Submit your extension to the Spec Kit catalog title: "[Extension]: Add " -labels: ["enhancement", "needs-triage"] +labels: ["triage-must-have"] body: - type: markdown attributes: @@ -14,7 +14,7 @@ body: - Create a GitHub release with a version tag (e.g., v1.0.0) - Test installation: `specify extension add --from ` - **After submitting:** a maintainer applies the `extension-submission` label during issue triage, which starts the automated catalog validation. You don't need to apply any label or ask for one. + **After submitting:** GitHub automatically applies the `triage-must-have` intake verdict. A maintainer separately applies the `extension-submission` label during issue triage, which starts the automated catalog validation. You don't need to apply any label or ask for one. - type: input id: extension-id diff --git a/extensions/EXTENSION-PUBLISHING-GUIDE.md b/extensions/EXTENSION-PUBLISHING-GUIDE.md index 0cbe93aae6..70c934e90d 100644 --- a/extensions/EXTENSION-PUBLISHING-GUIDE.md +++ b/extensions/EXTENSION-PUBLISHING-GUIDE.md @@ -151,10 +151,11 @@ To submit your extension to the community catalog, file a new issue using the ** ### What Happens After You Submit -1. A maintainer reviews the issue during issue triage and applies the `extension-submission` label, which starts the automated catalog validation. On this public repository, contributors cannot apply that label themselves, so there is nothing to label or re-request — the issue simply waits in triage. -2. A maintainer verifies that the catalog entry is complete and correctly formatted -3. Once approved, the maintainer adds your extension to `extensions/catalog.community.json` and the Community Extensions table in the README -4. Your extension becomes discoverable via `specify extension search` +1. GitHub applies the `triage-must-have` verdict when the issue is opened through the Extension Submission form. This intake automation is specific to extension submissions and does not change the manual triage rubric for other issues. +2. A maintainer reviews the issue during issue triage and applies the separate `extension-submission` label, which starts the automated catalog validation. On this public repository, contributors cannot apply that label themselves, so there is nothing to label or re-request — the issue simply waits in triage. +3. A maintainer verifies that the catalog entry is complete and correctly formatted +4. Once approved, the maintainer adds your extension to `extensions/catalog.community.json` and the Community Extensions table in the README +5. Your extension becomes discoverable via `specify extension search` ### What Maintainers Check diff --git a/tests/test_github_workflows.py b/tests/test_github_workflows.py index 34a6f04211..ac45915c31 100644 --- a/tests/test_github_workflows.py +++ b/tests/test_github_workflows.py @@ -495,6 +495,26 @@ def test_community_submission_automation_is_wired_to_allowed_files(): assert label in assignment_text +def test_extension_submission_form_applies_only_automatic_intake_verdict(): + forms_dir = REPO_ROOT / ".github" / "ISSUE_TEMPLATE" + extension_form = yaml.safe_load( + (forms_dir / "extension_submission.yml").read_text(encoding="utf-8") + ) + + assert extension_form["labels"] == ["triage-must-have"] + assert "extension-submission" not in extension_form["labels"] + + for form_name in ( + "agent_request.yml", + "bug_report.yml", + "bundle_submission.yml", + "feature_request.yml", + "preset_submission.yml", + ): + form = yaml.safe_load((forms_dir / form_name).read_text(encoding="utf-8")) + assert "triage-must-have" not in form["labels"] + + @pytest.mark.parametrize("kind", [item[0] for item in COMMUNITY_SUBMISSION_WORKFLOWS]) def test_community_upgrade_uses_established_runtime_defaults(kind): _, compiled_text, source, compiled = _agentic_workflow(f"add-community-{kind}") From 64b42760a8011ad1d91fabda17a55e9fc94bc214 Mon Sep 17 00:00:00 2001 From: Manfred Riem <15701806+mnriem@users.noreply.github.com> Date: Tue, 6 Oct 2026 07:53:55 -0500 Subject: [PATCH 2/3] docs: correct extension approval files Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- extensions/EXTENSION-PUBLISHING-GUIDE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/EXTENSION-PUBLISHING-GUIDE.md b/extensions/EXTENSION-PUBLISHING-GUIDE.md index 70c934e90d..4ea1836932 100644 --- a/extensions/EXTENSION-PUBLISHING-GUIDE.md +++ b/extensions/EXTENSION-PUBLISHING-GUIDE.md @@ -154,7 +154,7 @@ To submit your extension to the community catalog, file a new issue using the ** 1. GitHub applies the `triage-must-have` verdict when the issue is opened through the Extension Submission form. This intake automation is specific to extension submissions and does not change the manual triage rubric for other issues. 2. A maintainer reviews the issue during issue triage and applies the separate `extension-submission` label, which starts the automated catalog validation. On this public repository, contributors cannot apply that label themselves, so there is nothing to label or re-request — the issue simply waits in triage. 3. A maintainer verifies that the catalog entry is complete and correctly formatted -4. Once approved, the maintainer adds your extension to `extensions/catalog.community.json` and the Community Extensions table in the README +4. Once approved, the maintainer adds your extension to `extensions/catalog.community.json` and `docs/community/extensions.md` 5. Your extension becomes discoverable via `specify extension search` ### What Maintainers Check From 168a96a0372ad8c8ce36a5fa7516f2626179a540 Mon Sep 17 00:00:00 2001 From: Manfred Riem <15701806+mnriem@users.noreply.github.com> Date: Tue, 6 Oct 2026 07:58:33 -0500 Subject: [PATCH 3/3] docs: clarify automated extension approval flow Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- extensions/EXTENSION-PUBLISHING-GUIDE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/EXTENSION-PUBLISHING-GUIDE.md b/extensions/EXTENSION-PUBLISHING-GUIDE.md index 4ea1836932..72562f3ad7 100644 --- a/extensions/EXTENSION-PUBLISHING-GUIDE.md +++ b/extensions/EXTENSION-PUBLISHING-GUIDE.md @@ -153,8 +153,8 @@ To submit your extension to the community catalog, file a new issue using the ** 1. GitHub applies the `triage-must-have` verdict when the issue is opened through the Extension Submission form. This intake automation is specific to extension submissions and does not change the manual triage rubric for other issues. 2. A maintainer reviews the issue during issue triage and applies the separate `extension-submission` label, which starts the automated catalog validation. On this public repository, contributors cannot apply that label themselves, so there is nothing to label or re-request — the issue simply waits in triage. -3. A maintainer verifies that the catalog entry is complete and correctly formatted -4. Once approved, the maintainer adds your extension to `extensions/catalog.community.json` and `docs/community/extensions.md` +3. The automated workflow validates the submission and, when validation passes, updates `extensions/catalog.community.json` and `docs/community/extensions.md` in a draft pull request +4. A maintainer reviews the generated pull request and merges it when approved 5. Your extension becomes discoverable via `specify extension search` ### What Maintainers Check