Skip to content
Open
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
22 changes: 0 additions & 22 deletions .github/PULL_REQUEST_TEMPLATE.md

This file was deleted.

24 changes: 24 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## Summary

-

Closes #

## Contributor Checklist

- [ ] Tests were added or updated for the changed behavior.
- [ ] Impacted code meets the 95% coverage expectation, or the gap is explained.
- [ ] Accessibility was verified for UI changes, including keyboard flow, labels, focus states, and contrast.
- [ ] Documentation was updated, or no docs change is needed.
- [ ] `npm run lint`, `npm test`, and `npm run build` pass locally.

## Review Notes

- Testing guidance: [TESTING.md](../TESTING.md)
- Accessibility guidance: [docs/accessibility.md](../docs/accessibility.md)
- Contributor workflow: [CONTRIBUTING.md](../CONTRIBUTING.md)

## Security

- [ ] No secrets, wallet keys, `.env` files, or generated artifacts are included
- [ ] API or wallet trust-boundary changes are explained
30 changes: 30 additions & 0 deletions scripts/pr-checklist.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import fs from "node:fs";
import path from "node:path";

describe("pull request checklist template", () => {
const repoRoot = path.resolve(__dirname, "..");
const templatePath = path.join(repoRoot, ".github", "pull_request_template.md");
const template = fs.readFileSync(templatePath, "utf8");

it("keeps the contributor checklist focused on review readiness", () => {
for (const requiredText of [
"Tests were added or updated",
"95% coverage",
"Accessibility was verified",
"Documentation was updated",
"`npm run lint`, `npm test`, and `npm run build`",
]) {
expect(template).toContain(requiredText);
}
});

it("links contributors to testing, accessibility, and workflow docs", () => {
for (const requiredLink of [
"[TESTING.md](../TESTING.md)",
"[docs/accessibility.md](../docs/accessibility.md)",
"[CONTRIBUTING.md](../CONTRIBUTING.md)",
]) {
expect(template).toContain(requiredLink);
}
});
});