diff --git a/.github/ISSUE_TEMPLATE/preset_submission.yml b/.github/ISSUE_TEMPLATE/preset_submission.yml index bb41d5fe18..a5c3d02e06 100644 --- a/.github/ISSUE_TEMPLATE/preset_submission.yml +++ b/.github/ISSUE_TEMPLATE/preset_submission.yml @@ -1,7 +1,7 @@ name: Preset Submission description: Submit your preset to the Spec Kit preset catalog title: "[Preset]: 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 from the release archive: `specify preset add --from ` - **After submitting:** a maintainer applies the `preset-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 `preset-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: preset-id diff --git a/presets/PUBLISHING.md b/presets/PUBLISHING.md index ece79bfa0c..061e2eaf1a 100644 --- a/presets/PUBLISHING.md +++ b/presets/PUBLISHING.md @@ -337,13 +337,15 @@ git push origin add-your-preset ## Verification Process -> **How submissions get picked up:** the automated catalog-validation workflow only runs -> once the `preset-submission` label is on the issue. On this public repository, contributors -> cannot apply that label themselves — a maintainer applies it during issue triage. Until then -> the issue simply waits in triage; there is no action required from you, and there is no need to -> re-request the label in a comment. +### What Happens After You Submit -After submission, maintainers will review: +1. GitHub applies the `triage-must-have` verdict when the issue is opened through the Preset Submission form. This intake automation is specific to preset 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 `preset-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. The automated workflow validates the submission and, when validation passes, updates `presets/catalog.community.json` and `docs/community/presets.md` in a draft pull request +4. A maintainer reviews the generated pull request and merges it when approved +5. Your preset becomes discoverable via `specify preset search` + +### What Maintainers Check 1. **Manifest validation** — valid `preset.yml`, all files exist 2. **Template quality** — templates are useful and well-structured diff --git a/tests/test_github_workflows.py b/tests/test_github_workflows.py index ac45915c31..d30623abd3 100644 --- a/tests/test_github_workflows.py +++ b/tests/test_github_workflows.py @@ -504,12 +504,24 @@ def test_extension_submission_form_applies_only_automatic_intake_verdict(): assert extension_form["labels"] == ["triage-must-have"] assert "extension-submission" not in extension_form["labels"] + +def test_preset_submission_form_applies_only_automatic_intake_verdict(): + forms_dir = REPO_ROOT / ".github" / "ISSUE_TEMPLATE" + preset_form = yaml.safe_load( + (forms_dir / "preset_submission.yml").read_text(encoding="utf-8") + ) + + assert preset_form["labels"] == ["triage-must-have"] + assert "preset-submission" not in preset_form["labels"] + + +def test_other_issue_forms_do_not_apply_automatic_intake_verdict(): + forms_dir = REPO_ROOT / ".github" / "ISSUE_TEMPLATE" 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"]