Skip to content

docs: add PR evidence checklist for contributors - #210

Merged
El-swaggerito merged 1 commit into
Axionvera:mainfrom
fredericjasmin:docs/138-anchorkit-pr-evidence-checklist
Jul 30, 2026
Merged

docs: add PR evidence checklist for contributors#210
El-swaggerito merged 1 commit into
Axionvera:mainfrom
fredericjasmin:docs/138-anchorkit-pr-evidence-checklist

Conversation

@fredericjasmin

Copy link
Copy Markdown
Contributor

Summary

Closes #138

Adds a contributor-facing PR Evidence Checklist to the Pull Request template to make required evidence explicit and easier to review. Updates the contributor documentation to reference the new checklist while reusing existing guidance and avoiding documentation duplication.

PR Evidence Checklist

Before requesting review, confirm the following evidence is present in this PR description. Each item links to detailed guidance. PRs missing evidence will be sent back for completion.

  • Issue reference: PR body links the issue with Closes #NNN.
  • Implementation summary: 1–3 sentence description of what changed and why.
  • Tests added or updated: Test file names and test descriptions listed, or a specific no-test justification (see TEST_EVIDENCE_REQUIREMENT.md for acceptable justifications).
  • Commands run: Exact commands and their output or status (e.g. pnpm verify, pnpm contract:test, pnpm check:boundaries). See TEST_EVIDENCE_REQUIREMENT.md.
  • CI status: State Passing, Pending, Failing-fixed, Failing-unrelated, or Skipped with supporting evidence. See FAILING_CI_RESPONSE_GUIDE.md.
  • Acceptance criteria coverage: Link to a completion table or traceability table mapping each criterion to implementation evidence and tests. See ACCEPTANCE_CRITERIA_COMPLETION.md.

Issue scope

Fill in a completion table mapping every Acceptance Criterion from the issue to its status,
implementation evidence, and tests.

For cross-package issues, use docs/ACCEPTANCE_CRITERIA_TRACEABILITY.md to map each criterion to affected packages, tests, docs, examples, and behavior. See
docs/ACCEPTANCE_CRITERIA_COMPLETION.md for the full
format, status legend, and a worked example.

Acceptance Criterion Status Implementation Evidence Tests Notes
PR checklist requires issue reference Added "Issue reference" item to the PR Evidence Checklist in .github/PULL_REQUEST_TEMPLATE.md. Documentation review
PR checklist requires implementation summary Added "Implementation summary" item to the PR Evidence Checklist. Documentation review
PR checklist requires tests added or justification if not applicable Added checklist item referencing TEST_EVIDENCE_REQUIREMENT.md. Documentation review
PR checklist requires commands run Added checklist item requiring commands run with links to existing guidance. Documentation review
PR checklist requires CI status Added checklist item requiring CI status with reference to FAILING_CI_RESPONSE_GUIDE.md. Documentation review
PR checklist requires acceptance criteria coverage Added checklist item requiring acceptance criteria coverage with reference to ACCEPTANCE_CRITERIA_COMPLETION.md. Documentation review

Affected packages / apps

Check every workspace this PR touches (helps reviewers scope the diff and route it to the right
maintainer):

  • apps/web
  • packages/types
  • packages/config
  • packages/fixtures
  • packages/validators
  • packages/stellar-kit
  • packages/anchor-utils
  • contracts/treasury-escrow
  • docs/
  • Other (list):

Testing performed

If any CI check is failing, summarize the failure and the fix or evidence that it is unrelated. See docs/FAILING_CI_RESPONSE_GUIDE.md.

Repository verification performed:

  • pnpm build (repository-wide): failed because the Rust contract package requires cargo, which was unavailable in the execution environment.
  • pnpm build (TypeScript packages): all TypeScript packages built successfully.
  • pnpm lint (repository-wide): blocked by the same missing Rust toolchain.
  • Package-level lint and typecheck completed successfully.
  • Package-level tests reported pre-existing unrelated failures.
  • No additional tests were required because this PR only changes documentation.

Screenshots / recordings

Required for any apps/web UI change. Mark N/A otherwise.

Before After
N/A N/A

Security impact

  • This PR touches secret handling, callback URLs, network selection, or contract
    admin/authorization logic (see Secret leakage / Mainnet safety checklist below).
  • No security-relevant surface touched.

If checked, summarise the impact and mitigation here.

Documentation-only change. No security-relevant behavior was modified.

Documentation impact

  • Docs under /docs updated for this change.
  • README updated (new package, script, or workflow).
  • No user-facing behaviour changed — no docs update needed.

Maintainer Review Checklist (self-check)

Paste the MAINTAINER_REVIEW_CHECKLIST.md Phase 1 into
your PR description and mark each item. Do not fill out Phase 2 (GrantFox reward-readiness) —
that is completed by the campaign reviewer after merge.

GrantFox reviewers can use docs/GRANTFOX_REVIEWER_CHECKLIST.md for scope, tests, CI, docs/examples, and acceptance-criteria review.

PR self-check

  • References the original issue with Closes #NNN in the PR body.
  • Acceptance criteria on the issue are checked off individually in the PR description.
  • pnpm verify passes locally (format, lint, typecheck, test, build).
  • pnpm check:boundaries passes locally (if any packages/*/src import changed).
  • pnpm contract:test passes locally (if anything under contracts/ changed).
    Optionally use pnpm verify:full to cover verify + examples + boundaries + contract tests.

Stellar network correctness

  • New key parsing matches branded types.
  • Amounts remain 7-decimal strings.
  • Memo rules enforced if touched.
  • Horizon error handling maps to typed codes correctly.
  • assertNetworkAllowed called before any Horizon/RPC call that could reach mainnet.

Anchor and SEP flow correctness

  • Deposit/withdrawal metadata uses correct Zod schemas.
  • validateCallbackUrl rejects non-HTTPS if callbacks touched.
  • Lifecycle transitions not bypassed — isTransitionValid / transition used.
  • Exhaustive never checks in status-to-message/badge switches.

Payment intent and readiness correctness

  • Payment intents validated through PaymentIntentSchema.
  • Readiness stages produce correct warnings for each scenario.
  • Spendable balance model correctly integrated when provided.

Soroban contract correctness (if contracts/ changed)

  • Admin-only functions call require_admin().
  • Status transitions remain in the allowed DAG.
  • Evidence is write-once (EvidenceAlreadySubmitted enforced).
  • DuplicateRelease, ReleaseBeforeApproval, ApprovalAfterDispute enforced.
  • Events published with correct tuple topic for each state change.
  • Summary aggregations use saturating_add / saturating_sub.

Secret leakage (R0–R6)

  • R0: No raw secret in logs/errors.
  • R1: No secret echoed in UI/copy/URL.
  • R2: No localStorage/cookie persistence.
  • R3: No secret in URLs/headers.
  • R4: Validation before SDK calls.
  • R5: Branded types for secret-accepting APIs.
  • R6: No real secrets in fixtures.
  • Diff search for /S[A-Z2-7]{50,}/ is clean.

Mainnet safety

  • Defaults remain testnet-first.
  • New mainnet paths behind assertNetworkAllowed.
  • No hardcoded mainnet production URLs.

Tests

  • New public functions have positive + negative Vitest cases.
  • New branches in error mapping / status transitions have tests.
  • Contract changes: happy path + error path tests in src/test.rs.
  • Tests do not print or assert on raw secrets.

Documentation

  • Topic docs updated for new user-facing exports.
  • README docs index updated if new doc added.
  • Security docs updated if new threat areas introduced.

Risk / follow-ups

None.

Acceptance Criteria Audit

Not applicable. The acceptance criteria mapping above covers all issue requirements.

GrantFox payment expectations

Acknowledged. Merge does not guarantee payment. CI is intentionally left unchecked until GitHub Actions complete.

Contributor self-review

Completed. This PR updates only contributor-facing documentation, introduces no code changes, reuses existing guidance, avoids documentation duplication, and satisfies all acceptance criteria.

@El-swaggerito
El-swaggerito merged commit b09179d into Axionvera:main Jul 30, 2026
1 check passed
@grantfox-oss grantfox-oss Bot mentioned this pull request Jul 30, 2026
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add AnchorKit PR evidence checklist

2 participants