Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
## Summary

<!-- Describe what this PR does in 1-3 bullet points -->

-

Closes #<!-- issue number -->

## Test plan

<!--
Each item MUST include an evidence link. PRs without evidence links will be blocked.

Evidence link formats:
- File reference: ([file.md:L10-L20](https://github.com/.../files#diff-...))
- CI run: ([CI check](https://github.com/.../actions/runs/.../job/...))
- Commit: ([commit](https://github.com/.../commit/...))

Example:
- [x] Feature implemented ([src/feature.ts:L15-L30](link))
- [x] Tests pass ([CI check](link))
- [x] Linting passes ([CI run](link))
-->

- [ ] <!-- Test item --> ([evidence](link))
- [ ] <!-- Test item --> ([evidence](link))
- [ ] Linting passes ([CI run](link))

---

<!--
Exemplar PR with proper evidence: #263
See CONTRIBUTING.md for complete checklist requirements
-->
26 changes: 26 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,32 @@ Refs: #1
- Otherwise → **Fast-forward only**
3. **Squash commit messages** must be Conventional Commits with ticket reference

### PR Evidence Requirements

**All test plan items must include evidence links.** This is enforced by DangerJS and will block
merge if not satisfied.

**Required format:**

```markdown
- [x] Feature implemented ([file.ts:L15-L30](https://github.com/.../files#diff-...))
- [x] Tests pass ([CI check](https://github.com/.../actions/runs/.../job/...))
- [x] Linting passes ([CI run](https://github.com/.../actions/runs/...))
```

**Evidence link types:**

| Type | Format | Example |
| -------------- | --------------------- | -------------------------------- |
| File reference | `([path:lines](url))` | `([src/api.ts:L10-L20](link))` |
| CI run | `([CI check](url))` | `([CI check](actions/runs/123))` |
| Commit | `([commit](url))` | `([abc123](commit/abc123))` |

**Resources:**

- PR template: `.github/PULL_REQUEST_TEMPLATE.md`
- Exemplar PR with proper evidence: [#263](https://github.com/mcj-coder/development-skills/pull/263)

### Quality Gates

Before submitting PR:
Expand Down
4 changes: 2 additions & 2 deletions dangerfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -179,9 +179,9 @@ async function validate() {
findCheckedItemsWithoutEvidence(testPlanContent);

if (testPlanWithoutEvidence.length > 0) {
warn(
fail(
`[PR] ${testPlanWithoutEvidence.length} test plan items missing evidence links. ` +
`Recommended format: - [x] Item ([evidence](link))`,
`Required format: - [x] Item ([evidence](link))`,
);
}
}
Expand Down
Loading