Skip to content

docs(github): expand the pull request template into review gates - #135

Merged
udid-aws merged 1 commit into
mainfrom
chore/expand-pr-template
Oct 13, 2026
Merged

udid-aws merged 1 commit into
mainfrom
chore/expand-pr-template

Conversation

@ams-thakkar

Copy link
Copy Markdown
Contributor

Description

The current template asks for a description, a type and testing notes, but states no bar a contribution has to clear. The result is that incomplete PRs reach review and the same gaps get raised by hand every time. This expands it into explicit pre-review gates, adds per-entry-type checklists for skills, MCP servers and custom agents, and adds a security section. Everything in the previous template is kept.

Type of change

  • New skill
  • New custom agent
  • New MCP server
  • Update to an existing skill, agent, or MCP server
  • Documentation or infrastructure change

Required before review

Most of these gates describe tool contributions and do not apply to a change that only edits the template. Marking them honestly rather than checking them:

  • No internal-only or proprietary content — checked: no account IDs, no internal hostnames or URLs, no ticket references. The one occurrence of the word "internal" is the new checklist item telling contributors not to include internal content.
  • Repository layout — n/a, no tool added or moved.
  • Eval evidence — n/a, no skill changed.
  • README — n/a.
  • CHANGELOG and version bump — n/a, skill versioning does not apply to a repository-level template.
  • Domain SME sign-off — not applicable in the usual sense, and deliberately left unchecked. This is a process change, so the people who need to agree to it are the maintainers, not a domain expert. See the note below.

Testing

No eval types apply — this change adds no skill, agent or MCP server.

What I did verify:

  • The diff touches exactly one file, .github/PULL_REQUEST_TEMPLATE.md.
  • Everything in the previous template survives: the opening contributor note, the five type-of-change entries, the reviewer note on exemptions.json and the enforce-evals label (verbatim), and the Apache 2.0 confirmation.
  • Scanned the new content for account IDs and internal references; none.
  • Rendered the checklist to confirm the Markdown task lists parse as checkboxes.

Security and safety

  • n/a as a change in itself. The template now adds a security section requiring read-only defaults, customer data staying in the customer's account, and an explicit confirmation step for destructive operations — so the effect is to make these questions mandatory rather than incidental.

License confirmation

  • By submitting this pull request, I confirm that my contribution is made under the terms of the Apache License 2.0.

Note for maintainers — one real decision here

This is not purely editorial. The gate that changes behaviour is:

A domain SME has reviewed and signed off. A named subject-matter expert for this domain — someone other than the author — has reviewed the tool for technical correctness and approved it in this PR. Required, not optional.

That codifies something currently applied inconsistently, and two PRs from this week show why it is worth writing down:

The hold language at the top is also new — a PR with unchecked required items is placed on hold rather than reviewed. That is a real change in how contributors will experience this repo, and it is worth agreeing to explicitly rather than inheriting it from a template edit.

Two smaller things to sanity-check before merging:

  1. The skills checklist says "body within the length budget". The eval tool warns above 500 lines (STRUCT-12), but CONTRIBUTING.md does not state a budget. Either cite the number or soften the wording.
  2. "Non-executable content only — no scripts or code in the skill directory" matches skills/.gitignore and the documented zip command, so it is accurate today. Worth keeping aligned if feat(ci): validate skill frontmatter on pull requests (1/4) #126–feat(ci): re-run the skill check on main, build the docs on PRs, and add code owners (4/4) #129 land, since that stack enforces the same rule in CI.

The current template asks for a description, a type, and testing notes, but
states no bar a contribution has to clear, so incomplete PRs reach review and
the same gaps are raised by hand every time.

Add the gates that were already being applied in review, and make them
explicit: correct repository layout, a named domain SME sign-off from someone
other than the author, eval evidence, no internal-only content, a complete
README, a CHANGELOG entry with a version bump, and a named owner. Break the
testing section out into the three eval types and require both positive and
negative eval cases. Add per-entry-type checklists for skills, MCP servers and
custom agents, and a security section covering read-only defaults, customer
data residency and confirmation on destructive operations.

Everything in the previous template is kept, including the reviewer note on
exemptions.json and the enforce-evals label, and the Apache 2.0 confirmation.
@ams-thakkar
ams-thakkar requested a review from udid-aws October 13, 2026 02:29

@udid-aws udid-aws left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Important additions to the PR template, thanks. Approved, with a few non-blocking notes to consider for a future change:

best-practices run across multiple iterations, with consistent results.

I suggest to mention that the minimum iterations is 3 (that's the default with the skill eval tool)

functional run with and without the change, so the difference in the agent's behavior is visible.

I suggest to mention that it needs to run across multiple iterations, 3 at minimum (that's the default with the skill eval tool)

evals/evals.json includes positive cases (should trigger) and at least one negative case (should not trigger on unrelated input).

I suggest to rephrase to something like this: "evals/evals.json includes positive cases (should trigger) and at least one negative case (should not trigger on unrelated input). Each positive case evaluates real functional scenario that involves interaction with real AWS APIs and resources, and not instructional question."
Note the additional requirement - I think it's important to make sure that the functional evals test scenarios with real AWS resources, as sometimes they tend to be instructional, which isn't sufficient

@udid-aws
udid-aws merged commit 4e60e81 into main Oct 13, 2026
6 checks passed
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