Require preset-usage README with Spec Kit CLI syntax in preset submissions#3104
Conversation
Tighten the community preset submission workflow so it validates the README referenced by the documentation field rather than merely checking for a root README. The workflow now fails submissions whose linked README lacks a valid 'specify preset add ...' command and flags monorepo submissions that point documentation at a generic root README. - Add a required Documentation URL field to the preset issue template - Add validation step 2d (documentation README + CLI-syntax check) to .github/workflows/add-community-preset.md and recompile the lock file - Document the stricter usage-README requirement and reviewer content check in presets/PUBLISHING.md Closes github#3103 Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR hardens the community preset submission workflow by requiring submitters to provide a Documentation URL that points to the actual preset-usage README, and by documenting/enforcing that the linked README contains valid Spec Kit CLI install syntax (e.g., specify preset add ...). This addresses monorepo submissions that previously passed validation by linking to a generic repo-root README that wasn’t preset usage documentation.
Changes:
- Updated the
add-community-presetworkflow spec to validate the README at the submitteddocumentationURL and require aspecify preset add ...invocation (preferring--from <download-url>). - Extended the preset submission issue form to collect a required Documentation URL and add a submission requirement checkbox.
- Updated
presets/PUBLISHING.mdwith explicit “Usage README Requirements” and reviewer guidance for the residual content judgment.
Show a summary per file
| File | Description |
|---|---|
presets/PUBLISHING.md |
Documents the new requirement for preset-scoped usage READMEs and Spec Kit CLI install syntax; adds reviewer note about remaining human judgment. |
.github/workflows/add-community-preset.md |
Updates the workflow spec to validate the README referenced by documentation and require specify preset add ... usage. |
.github/workflows/add-community-preset.lock.yml |
Regenerated lockfile reflecting the workflow spec body change (hash update). |
.github/ISSUE_TEMPLATE/preset_submission.yml |
Adds a required documentation field and a checkbox reinforcing the linked-README + CLI-syntax requirement. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 4/4 changed files
- Comments generated: 3
Address PR review feedback on github#3104: - PUBLISHING.md: clarify that only README resolution + a valid 'specify preset add ...' command are mechanically enforced; the preset-scoped-README and minimum-structure items are reviewer expectations, not automated checks. - PUBLISHING.md: state that a missing 'specify preset add ...' command is a hard validation failure (check 2d), not just 'flagged for changes'. - preset_submission.yml: require 'specify preset add ...' (not the looser 'specify preset ...') to match the workflow validation. Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Addressed the review feedback in e0ab77f:
No change to the workflow Posted on behalf of @mnriem by GitHub Copilot (model: Claude Opus 4.8, autonomous). |
Address PR review feedback on github#3104: - Workflow Step 2c: drop the generic repo-root README.md check so the README requirement is enforced exactly once, in Step 2d, against the file the documentation field points to (avoids monorepo false-positive). - Workflow Step 2d: restrict the documentation URL to GitHub-hosted README URLs (github.com/.../blob/... or raw.githubusercontent.com/...) before fetching user-provided input. - PUBLISHING.md: add the required 'id' field to the example catalog entry. - preset_submission.yml: fix the Documentation URL placeholder to match the recommended monorepo presets/<id>/README.md pattern. - Recompile add-community-preset.lock.yml (body hash only). Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Addressed the review feedback in da15c18:
Posted on behalf of @mnriem by GitHub Copilot (model: Claude Opus 4.8, autonomous). |
Address PR review feedback on github#3104: - Workflow Step 2d: broaden the documentation URL allowlist to also accept github.com/.../raw/... URLs; strip any fragment/query before fetching so the target is deterministic; clarify that a 'specify preset add --from <url>' command only counts when its URL matches the submitted Download URL (a different --from URL does not satisfy the requirement, though other accepted forms still can). - PUBLISHING.md: show both accepted download URL shapes (tag archive and release asset) in the README install example instead of implying only the releases/download form. - preset_submission.yml: remove the ambiguous generic 'README.md with description and usage instructions' checkbox; the linked-README requirement is the single source of truth. - Recompile add-community-preset.lock.yml (body hash only). Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Addressed the review feedback in 843d700:
Lockfile recompiled (body hash only). Posted on behalf of @mnriem by GitHub Copilot (model: Claude Opus 4.8, autonomous). |
…eset-usage-readme
|
The failing Merged the latest Posted on behalf of @mnriem by GitHub Copilot (model: Claude Opus 4.8, autonomous). |
Address PR review feedback on github#3104: the previous 'matching the download URL' wording overstated the requirement. Only the 'specify preset add --from <url>' form needs an exact download-URL match; other accepted forms ('specify preset add <id>' / '--dev <path>') don't reference the download URL at all. - preset_submission.yml: reword the Documentation URL description and the Submission Requirements checkbox to reflect what's enforced vs preferred. - PUBLISHING.md: clarify the reviewer note so the exact-match rule is scoped to the --from form. Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Addressed the review feedback in 5dcea60. All three comments were about the same over-strict 'matching the download URL' wording — only the
No workflow Posted on behalf of @mnriem by GitHub Copilot (model: Claude Opus 4.8, autonomous). |
Address PR review feedback on github#3104: - Workflow Step 2d: add an explicit check that the documentation URL path ends with README.md (case-insensitive) after stripping fragment/query, so a non-README markdown file is rejected before fetching. - PUBLISHING.md: reword the release-ZIP note, which conflicted with the earlier preset structure guidance. The real requirement is that the README is reachable at the documentation URL before download; it's fine for the same file to also ship inside the release ZIP. - Recompile add-community-preset.lock.yml (body hash only). Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Addressed the review feedback in b51fc37:
Lockfile recompiled (body hash only). Posted on behalf of @mnriem by GitHub Copilot (model: Claude Opus 4.8, autonomous). |
Address PR review feedback on github#3104: drop the '6.' prefix from the 'Usage README Requirements' heading so its GitHub anchor isn't tied to a section number (brittle under renumbering, and avoids confusion with the top-level 'Best Practices' TOC item). Update the Prerequisites cross-link to the new #usage-readme-requirements anchor. Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Addressed the review feedback in 8ea0f9a. Both comments were about the numbered
Docs-only change; no workflow/lockfile impact. Posted on behalf of @mnriem by GitHub Copilot (model: Claude Opus 4.8, autonomous). |
Address PR review feedback on github#3104: - PUBLISHING.md: the 'mechanically enforces' summary now lists all Step 2d checks (GitHub-hosted URL, path ends with README.md, resolves, contains a valid 'specify preset add ...' command), instead of only two. - PUBLISHING.md: reword the PR checklist item so a usage README + install command is the requirement, with preset-scoped README recommended for monorepos (matches the workflow's flag-not-fail behavior). - preset_submission.yml: include the full 'specify preset add' prefix on the --dev and --from forms in the field description and checklist so submitters copy the exact syntax. Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Addressed the review feedback in 3b4923d:
Docs/template-only; no workflow Posted on behalf of @mnriem by GitHub Copilot (model: Claude Opus 4.8, autonomous). |
Address PR review feedback on github#3104: remove the incorrect colon after 'the linked README' so the sentence reads naturally. Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Address PR review feedback on github#3104: rewriting documentation URLs into the raw.githubusercontent.com/<owner>/<repo>/<ref>/<path> form can't reliably represent refs that contain slashes (e.g. a feature/foo branch). Step 2d now fetches github.com blob URLs by swapping only /blob/ -> /raw/, and fetches github.com/.../raw/... and raw.githubusercontent.com/... URLs as-is, instead of reconstructing the raw host form. Recompile add-community-preset.lock.yml (body hash only). Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Addressed the review feedback in 696dcc0. Good catch on the lossy ref rewrite — reconstructing Step 2d now resolves the raw content without that rewrite:
Lockfile recompiled (body hash only). Posted on behalf of @mnriem by GitHub Copilot (model: Claude Opus 4.8, autonomous). |
Summary
Addresses #3103. The community preset submission workflow previously validated only that a
README.mdexists at the repository root, which passes trivially for monorepos even when the linkeddocumentationpoints at a product pitch rather than preset-usage docs.This PR tightens the workflow and docs to validate the README that
documentationactually points to, and requires a valid Spec Kit CLI install command.Changes
.github/workflows/add-community-preset.md— parse thedocumentationfield; new validation step 2d fetches the linked README (convertingblob→raw) and:specify preset add ...invocation (preferring--from <download-url>with an exact URL match),documentationpoints at a generic root README and recommends the preset-scoped one.Renumbered subsequent checks and recompiled
add-community-preset.lock.yml(only the body hash changed)..github/ISSUE_TEMPLATE/preset_submission.yml— required Documentation URL field + a new Submission Requirements checkbox.presets/PUBLISHING.md— a 'Usage README Requirements' section, updated prerequisites/checklist, and a reviewer note about the residual human content check.Acceptance criteria
documentation, not just root presencespecify preset ...invocationpresets/PUBLISHING.mdupdated to document the stricter requirementCloses #3103
🤖 Authored autonomously by GitHub Copilot (model: Claude Opus 4.8) on behalf of @mnriem.