docs: add typed contribution templates and tighten contributor guidelines (#1673)
Overhaul CONTRIBUTING.md and all GitHub issue/PR templates to enforce a structured, approval-gated contribution process that cuts down on drive-by feature submissions. Changes: - CONTRIBUTING.md: add Types of Contributions section defining Fix, Enhancement, and Feature with escalating requirements and explicit rejection criteria; add Issue-First Rule section making clear that enhancements require approved-enhancement and features require approved-feature label before any code is written; backport gsd-2 testing standards (t.after() per-test cleanup, array join() fixture pattern, Node 24 as primary CI target, test requirements by change type, reviewer standards) - .github/ISSUE_TEMPLATE/enhancement.yml: new template requiring current vs. proposed behavior, reason/benefit narrative, full scope of changes, and breaking changes assessment; cannot be clicked through - .github/ISSUE_TEMPLATE/feature_request.yml: full rewrite requiring solo- developer problem statement, what is being added, full file-level scope, user stories, acceptance criteria, maintenance burden assessment, and alternatives considered; incomplete specs are closed, not revised - .github/pull_request_template.md: converted from general template to a routing page directing contributors to the correct typed template; using the default template for a feature or enhancement is a rejection reason - .github/PULL_REQUEST_TEMPLATE/fix.md: new typed template requiring confirmed-bug label on linked issue and regression test confirmation - .github/PULL_REQUEST_TEMPLATE/enhancement.md: new typed template with hard gate on approved-enhancement label and scope confirmation section - .github/PULL_REQUEST_TEMPLATE/feature.md: new typed template requiring file inventory, spec compliance checklist from the issue, and scope confirmation that nothing beyond the approved spec was added Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
74
.github/PULL_REQUEST_TEMPLATE/fix.md
vendored
Normal file
74
.github/PULL_REQUEST_TEMPLATE/fix.md
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
## Fix PR
|
||||
|
||||
> **Using the wrong template?**
|
||||
> — Enhancement: use [enhancement.md](?template=enhancement.md)
|
||||
> — Feature: use [feature.md](?template=feature.md)
|
||||
|
||||
---
|
||||
|
||||
## Linked Issue
|
||||
|
||||
> **Required.** This PR will be auto-closed if no valid issue link is found.
|
||||
|
||||
Fixes #
|
||||
|
||||
> The linked issue must have the `confirmed-bug` label. If it doesn't, ask a maintainer to confirm the bug before continuing.
|
||||
|
||||
---
|
||||
|
||||
## What was broken
|
||||
|
||||
<!-- One or two sentences. What was the incorrect behavior? -->
|
||||
|
||||
## What this fix does
|
||||
|
||||
<!-- One or two sentences. How does this fix the broken behavior? -->
|
||||
|
||||
## Root cause
|
||||
|
||||
<!-- Brief explanation of why the bug existed. Skip for trivial typo/doc fixes. -->
|
||||
|
||||
## Testing
|
||||
|
||||
### How I verified the fix
|
||||
|
||||
<!-- Describe manual steps or point to the automated test that proves this is fixed. -->
|
||||
|
||||
### Regression test added?
|
||||
|
||||
- [ ] Yes — added a test that would have caught this bug
|
||||
- [ ] No — explain why: <!-- e.g., environment-specific, non-deterministic -->
|
||||
|
||||
### Platforms tested
|
||||
|
||||
- [ ] macOS
|
||||
- [ ] Windows (including backslash path handling)
|
||||
- [ ] Linux
|
||||
- [ ] N/A (not platform-specific)
|
||||
|
||||
### Runtimes tested
|
||||
|
||||
- [ ] Claude Code
|
||||
- [ ] Gemini CLI
|
||||
- [ ] OpenCode
|
||||
- [ ] Other: ___
|
||||
- [ ] N/A (not runtime-specific)
|
||||
|
||||
---
|
||||
|
||||
## Checklist
|
||||
|
||||
- [ ] Issue linked above with `Fixes #NNN` — **PR will be auto-closed if missing**
|
||||
- [ ] Linked issue has the `confirmed-bug` label
|
||||
- [ ] Fix is scoped to the reported bug — no unrelated changes included
|
||||
- [ ] Regression test added (or explained why not)
|
||||
- [ ] All existing tests pass (`npm test`)
|
||||
- [ ] CHANGELOG.md updated if this is a user-facing fix
|
||||
- [ ] No unnecessary dependencies added
|
||||
|
||||
## Breaking changes
|
||||
|
||||
<!-- Does this fix change any existing behavior, output format, or API that users might depend on?
|
||||
If yes, describe. Write "None" if not applicable. -->
|
||||
|
||||
None
|
||||
Reference in New Issue
Block a user