Skip to content

chore: add PR template and required CI checks (V2-719, V2-720)#185

Open
jacderida wants to merge 1 commit into
mainfrom
chrisoneil/v2-719-add-the-standard-pr-template-across-all-six-crate-repos
Open

chore: add PR template and required CI checks (V2-719, V2-720)#185
jacderida wants to merge 1 commit into
mainfrom
chrisoneil/v2-719-add-the-standard-pr-template-across-all-six-crate-repos

Conversation

@jacderida

Copy link
Copy Markdown
Collaborator

Linear issue

Risk tier

  • T0 — docs / tooling / CI / pure UX-output. Repo CI only.
  • T1 — client-only, no network-facing behavior change. CI + prod compat smoke.
  • T2 — node/client logic with behavioral surface, no protocol/format/economics change. Dev testnet + ADR.
  • T3 — protocol / storage format / payments / routing. T2 evidence + adversarial testing.

Compatibility

  • Wire: none
  • Storage: none
  • API: none

Semver impact

  • breaking
  • feature
  • fix

Test evidence

check_pr.py was exercised locally across its cases: missing Linear reference
fails linear; a key in the title/body/branch passes; a body without the
template fails template; an rc-* base is a no-op pass; a fully-filled template
passes; and the failure modes (no/duplicate tier or semver box, empty section,
Tier 2/3 without an ADR link) each fail with a specific message. This PR's own
description is validated by the new checks.

New dependency

none

ADR

n/a

Mitigation / rollback

Revert this PR; the template and checks are additive and carry no runtime effect.

Add the standard pull request template (V2-719) and the CI enforcement that
makes a linked Linear issue and the template fields required on every PR
(V2-720). Part of the release-process extensions; identical across the six
crate repos.

- .github/PULL_REQUEST_TEMPLATE.md: eight-field template with Risk tier and
  Semver impact checkboxes, stable headings as grep anchors for the
  train-manifest verification.
- CLAUDE.md: instruct agents to fill the template on PR open.
- .github/workflows/pr-checks.yml + .github/scripts/check_pr.py: the
  linear-link (main + rc-*) and pr-template (main) required status checks.

V2-719
V2-720

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 24, 2026 19:02

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds repo-level PR hygiene enforcement for the ant-node project by introducing a standardized PR template and GitHub Actions checks that require a Linear reference and a fully completed template (with main-only enforcement for template completeness).

Changes:

  • Added .github/PULL_REQUEST_TEMPLATE.md to standardize PR descriptions.
  • Added pr-checks GitHub Actions workflow to enforce a Linear link and PR template completeness.
  • Added a Python checker script (.github/scripts/check_pr.py) and documented the requirement in CLAUDE.md.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.

File Description
CLAUDE.md Documents the new requirement to use the standard PR template and notes the CI enforcement checks.
.github/workflows/pr-checks.yml Adds CI jobs intended to enforce “linear-link” and “pr-template” status checks on PRs targeting main / rc-*.
.github/scripts/check_pr.py Implements the Linear reference and PR template validation logic executed by the workflow jobs.
.github/PULL_REQUEST_TEMPLATE.md Introduces the standardized PR template with required sections and checkboxes.
Comments suppressed due to low confidence (1)

.github/workflows/pr-checks.yml:36

  • Same tamper-resistance concern here: ensure the checkout uses the base SHA so the template check script can’t be altered in the PR to force a pass.
    steps:
      - uses: actions/checkout@v4
      - name: Require the PR template fields

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +8 to +12
pull_request:
types: [opened, edited, synchronize, reopened]
branches:
- main
- 'rc-*'
Comment on lines +21 to +23
steps:
- uses: actions/checkout@v4
- name: Require a linked Linear issue
Comment on lines +52 to +55
def has_linear_ref(*parts):
haystack = "\n".join(parts)
m = LINEAR_URL.search(haystack) or LINEAR_KEY.search(haystack)
return m.group(0) if m else None
Comment on lines +106 to +118
for heading in (
"linear issue",
"risk tier",
"compatibility",
"semver impact",
"test evidence",
"new dependency",
"adr",
"mitigation / rollback",
):
if heading not in secs:
errors.append(f"missing section: ## {heading.title()}")

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.

2 participants