arcade-mcp/.github/PULL_REQUEST_TEMPLATE.md
Eric Gustin d6200c9d53
chore: add PR template aligned with engineering standards (#835)
## Summary

Adds a PR template at `.github/PULL_REQUEST_TEMPLATE.md` encoding the 6
hard gates and section scaffolding from the 2026-04-24 engineering
announcement ("What a Good Pull Request Looks Like"), and lightly
updates `CONTRIBUTING.md` to point at it. The repo had no PR template;
recent PR descriptions have been inconsistent in structure and ticket
linking.

Resolves: _(driven by the 2026-04-24 engineering announcement; no Linear
ticket but happy to file one if preferred)_

## Design decisions

- Single template, not a multi-template directory.

## Scope

In scope:
- `.github/PULL_REQUEST_TEMPLATE.md` (new)
- `CONTRIBUTING.md` "Pull Request Guidelines" section (additive update;
existing 3 bullets preserved)

Not in scope:
- CI enforcement of template fields or ticket-linking

## Author checklist

- [x] `make check`/`make test` n/a — no Python touched; pre-commit hooks
pass
- [x] Reviewed my own diff top-to-bottom
- [x] I'd merge it myself

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> <sup>[Cursor Bugbot](https://cursor.com/bugbot) is generating a
summary for commit d1f15d1e6b1a7521d01ace3c1379b330767f1fb9. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2026-05-01 15:43:41 -07:00

87 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
PR title: conventional commits with optional scope, e.g.
feat(arcade-core): add support for X
fix(arcade-mcp-server): handle stdio EOF
chore(arcade-tdk): bump dep
Keep the title short and scannable. The description does the explaining.
-->
## Summary
<!-- One short paragraph in plain English: what does this change do, and why? -->
Resolves: <!-- Linear ticket link OR GitHub issue # (e.g. #123, or https://linear.app/...) -->
## Design decisions
<!--
Delete this section if the change is mechanical.
Call out non-obvious choices: why this approach, what alternatives you considered,
what's intentionally NOT done. This is the part hardest to reconstruct from the
diff and easiest to skip — write it anyway.
-->
## Scope
<!--
Delete this section if scope is obvious from the summary.
In scope:
-
Not in scope (handled separately / out of band):
-
-->
## Test plan
<!--
Concrete, verifiable steps — not "tests pass." Describe what you actually exercised.
Example shape:
- [ ] `make check` (ruff + mypy) clean
- [ ] `make test` passes
- [ ] Ran `arcade mcp stdio` against the example server and confirmed tools/list returns the expected entries
- [ ] Exercised the end-user path: `arcade login` → tool call → confirmed auth token reached the tool
- [ ] Verified the MCP stdio channel stayed clean (no stray stdout/stderr) per CLAUDE.md
- [ ] Bumped the affected library version(s) in `libs/arcade-*/pyproject.toml` if the change is breaking
-->
- [ ]
- [ ]
## Risk note
<!--
Delete this section unless the PR touches a sensitive area.
Sensitive paths in this repo include:
- `libs/arcade-serve/` — worker JWT auth and `/worker/*` endpoints
- `libs/arcade-mcp-server/arcade_mcp_server/resource_server.py` — OAuth 2.1 token validation
- MCP stdio transport — any new stdout/stderr writes can corrupt the JSON-RPC channel
- `pyproject.toml` files — version bumps, dependency changes, breaking-change semver
- Tool secrets / env-var flow — anything reachable from `context.get_secret()`
Describe the blast radius (who/what breaks if this is wrong) and your mitigations.
-->
## Coverage note
<!--
Delete this section unless patch coverage is in the yellow zone (7085%).
Aim for green (85%+); meaningful coverage matters more than artificial numbers.
Why coverage is below green:
-->
## Author checklist
Before moving this PR from Draft to Ready for Review:
- [ ] Linked to a Linear ticket or GitHub issue (above)
- [ ] I understand every change in the diff — not "an agent wrote it, I'm not sure why"
- [ ] Runs locally, exercised through the end-user path (not just unit tests)
- [ ] `make check` and `make test` are green locally; CI is expected to pass
- [ ] I've pulled the branch fresh and reviewed my own diff top-to-bottom
- [ ] I'd merge it myself if a teammate said LGTM right now