diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index be77436..11b65ad 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -48,6 +48,12 @@ - [ ] Criterion 2: - [ ] Criterion 3: +## Contributor Self-Review + + +- [ ] Self-review form completed and attached + ## Reviewer Notes +- **Title:** +- **Contributor:** + +--- + +## 1. Requirements Review + +Verify you have addressed every requirement from the issue. + +- [ ] All acceptance criteria from the issue are satisfied +- [ ] No requirements were silently dropped or deferred +- [ ] Edge cases mentioned in the issue are handled +- [ ] Scope creep is avoided — changes are limited to what was requested + +**Notes:** + + +--- + +## 2. Implementation Completeness + +Confirm the implementation is production-ready. + +- [ ] Code compiles without errors (`npm run build`) +- [ ] No `TODO` or `FIXME` comments left in the changes +- [ ] Error handling follows the SDK's [error standard](../../docs/error-standard.md) +- [ ] Public APIs have JSDoc comments +- [ ] No secret keys, seed phrases, or `.env` values are committed +- [ ] Dependencies were not added without discussion (see [Dependency Review](../../docs/dependency-review.md)) + +**Modules changed:** + + +**Notes:** + + +--- + +## 3. Testing Evidence + +Provide concrete evidence that your changes work correctly. + +- [ ] Unit tests added or updated for all behaviour changes +- [ ] Bug fix includes a regression test +- [ ] Tests pass locally (`npm test`) +- [ ] Tests are isolated — no live network calls required +- [ ] Edge cases and error paths are covered + +**Test files added/modified:** + + +**Test output summary:** +``` + +``` + +--- + +## 4. CI Status + +Confirm automated checks will pass. + +- [ ] `npm run lint` passes with no errors +- [ ] `npm test` passes with no failures +- [ ] `npm run verify:pr` passes (recommended) +- [ ] No circular dependency issues introduced + +**Local verification output:** +``` + +``` + +--- + +## 5. Documentation + +Verify documentation is updated where needed. + +- [ ] Public API changes are reflected in docs +- [ ] README updated if usage patterns changed +- [ ] Chelog entry added for user-facing changes (see [Changelog Policy](../../docs/changelog-policy.md)) +- [ ] Any new error codes added to the [error taxonomy](../../docs/public_error_taxonomy.md) + +**Docs updated:** + + +--- + +## 6. Known Limitations + +Be honest about what your implementation does not cover. + +- [ ] I have documented any known limitations in the PR description +- [ ] I have identified follow-up work that may be needed +- [ ] I have noted any performance considerations +- [ ] I have flagged any areas where I am uncertain about the approach + +**Limitations:** + + +--- + +## 7. Final Confirmation + +- [ ] I have reviewed my own PR diff objectively, as if I were the reviewer +- [ ] I have verified no secrets or sensitive data are committed +- [ ] I have confirmed the PR description explains **what** changed and **why** +- [ ] I understand that a merged PR is **not** automatically payment-approved + +--- + +## Submitting + +1. Complete this form and attach it to your PR description or include it as a comment +2. Run `npm run verify:pr` one final time before requesting review +3. Request review from a maintainer + +> **Remember:** This self-review is for your benefit. Taking 10 minutes to complete it +> can save days of back-and-forth during review. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index d7225e8..31adf94 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -16,6 +16,7 @@ Closes # - [ ] If the issue has a checklist file, I ran `npm run verify:pr -- --checklist .github/checklists/issue-.md` - [ ] All automated checks passed (lint, circular deps, unit tests, build) - [ ] I confirmed each acceptance criterion above is satisfied +- [ ] I completed the [Contributor Self-Review Form](../.github/checklists/contributor-self-review.template.md) ## Test plan diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 698d4d2..df0f14c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -182,6 +182,21 @@ Before opening a PR, run through this list: - [ ] The PR references the related issue (e.g. `Closes #6`) - [ ] No `.env` or secret values are committed - [ ] **I have reviewed the [Contributor Security Checklist](#contributor-security-checklist) and verified my code introduces no secret leakage or insecure dependencies.** +- [ ] **I have completed the [Contributor Self-Review Form](.github/checklists/contributor-self-review.template.md)** + +## Contributor Self-Review + +Before requesting review or expecting payment approval, complete the [Contributor Self-Review Form](.github/checklists/contributor-self-review.template.md). This helps you evaluate your work objectively and ensures nothing is missed. + +The self-review covers: +- Requirements review +- Implementation completeness +- Testing evidence +- CI status +- Documentation +- Known limitations + +> **Tip:** Copy the template to `.github/checklists/contributor-self-review-.md` and fill it in as you work on your contribution. ---