- PR template: move "Closes #" to top as required field with explicit warning that PRs without a linked issue are closed without review - CONTRIBUTING.md: add mandatory issue-first policy with clear rationale - Add require-issue-link.yml workflow: checks PR body for a closing keyword (Closes/Fixes/Resolves #NNN) on open/edit/reopen/sync events; posts a comment and fails CI if no reference is found PR body is bound to an env var before shell use (injection-safe). The github-script step uses the API SDK, not shell interpolation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
60 lines
1.3 KiB
Markdown
60 lines
1.3 KiB
Markdown
## Linked Issue
|
|
|
|
> **Required.** PRs without a linked issue are closed without review.
|
|
> Open an issue first if one doesn't exist: https://github.com/gsd-build/get-shit-done/issues/new/choose
|
|
|
|
Closes #
|
|
|
|
## What
|
|
|
|
<!-- One sentence: what does this PR do? -->
|
|
|
|
## Why
|
|
|
|
<!-- One sentence: why is this change needed? -->
|
|
|
|
## How
|
|
|
|
<!-- Brief description of the approach taken. Skip for trivial changes. -->
|
|
|
|
## Testing
|
|
|
|
### Platforms tested
|
|
|
|
- [ ] macOS
|
|
- [ ] Windows (including backslash path handling)
|
|
- [ ] Linux
|
|
|
|
### Runtimes tested
|
|
|
|
- [ ] Claude Code
|
|
- [ ] Gemini CLI
|
|
- [ ] OpenCode
|
|
- [ ] Codex
|
|
- [ ] Copilot
|
|
- [ ] N/A (not runtime-specific)
|
|
|
|
### Test details
|
|
|
|
<!-- How did you verify this works? Manual steps, automated tests, etc. -->
|
|
|
|
## Checklist
|
|
|
|
- [ ] Issue linked above (`Closes #NNN`) — **PR will be auto-closed if missing**
|
|
- [ ] Follows GSD style (no enterprise patterns, no filler)
|
|
- [ ] Updates CHANGELOG.md for user-facing changes
|
|
- [ ] No unnecessary dependencies added
|
|
- [ ] Works on Windows (backslash paths tested)
|
|
- [ ] Templates/references updated if behavior changed
|
|
- [ ] Existing tests pass (`npm test`)
|
|
|
|
## Breaking Changes
|
|
|
|
<!-- List any breaking changes, or write "None" -->
|
|
|
|
None
|
|
|
|
## Screenshots / recordings
|
|
|
|
<!-- If this is a visual change, add before/after screenshots. Delete this section if not applicable. -->
|