Skip to content

Define the pull request template and documentation-impact contract #2669

Open

Description

@codeforester

Problem

The accepted Base governance design and implementation plan identify package 5a as a required deliverable. This issue translates that package into a reviewed, bounded issue/PR train; it does not authorize implementation before the issue reaches Ready.

Expected behavior

Replace the current PR template with one issue/slice link, plan and acceptance trace, validation evidence, the same ten impact categories used by issues, reviewer/round provenance fields required by the accepted design, and a release-note line or reasoned none. Include risk, rollback and notes. Distinguish Fixes #N for a single-PR issue from Part of #N for a named multi-PR slice. Do not mirror issue Project fields onto PRs.

Scope and non-goals

Scope: Replace the current PR template with one issue/slice link, plan and acceptance trace, validation evidence, the same ten impact categories used by issues, reviewer/round provenance fields required by the accepted design, and a release-note line or reasoned none. Include risk, rollback and notes. Distinguish Fixes #N for a single-PR issue from Part of #N for a named multi-PR slice. Do not mirror issue Project fields onto PRs.

Non-goals: Do not silently expand scope, activate unreviewed policy, mirror issue fields onto PRs, grant agents merge/release authority, or make changes outside the named affected areas. Any new product decision or materially new work gets a separate issue and decision record.

Affected areas

Impact and evidence

  1. Product intent: Implements only the accepted governance design and plan; any product-requirement change must be filed separately.
  2. Architecture and contracts: Destination is the package-specific section of the merged governance design/implementation plan plus the affected canonical contract named above.
  3. User guidance: The issue identifies likely guidance paths; the implementation PR must name updated user/FAQ/README paths or give a change-specific reason why none is affected.
  4. CLI/API and reference: The affected-area list determines whether CLI/API/reference docs change; the implementation PR must cite the exact reference path or justify no impact.
  5. Operations and safety: No privileged automation or merge authority is implied; the PR must list operational/security effects and any rollback.
  6. Validation and testing: The issue lists the planned tests; the PR must report executed validation and explain any unavailable test.
  7. Examples and downstream use: The implementation PR must identify affected examples/consumers or give evidence that this change has no downstream surface.
  8. Governance and contributor process: This package changes or preserves the contributor/governance contract as described in Scope; links must point to the canonical rules.
  9. Decision records: No new decision is accepted by this issue; any durable deviation requires a proposed decision record and explicit maintainer acceptance.
  10. Release notes: The PR must include a user-facing release-note line or a reasoned none; this issue does not pre-decide that disposition.

These are issue-stage dispositions to refine during Triage. Before Ready, every category must have its exact destination or evidence-based no-impact reason; the PR repeats the ten-category evidence for actual changes.

Open questions

  • None known. If implementation exposes an unresolved contract, return this issue to Triage and record the decision before implementation continues.

Plan

  • S1: One focused PR for this issue. Use Fixes #N only if no additional slice is needed; if the maintainer approves multiple PRs, name each S1…Sn here before the first is opened and use Part of #N.
  • Dependencies: the P1 issue
  • Acceptance criteria:
  • The template covers all ten impact categories, each requiring a destination or evidence-based no-impact reason.
  • A PR names its issue and exactly one planned slice; instructions distinguish Fixes from Part of.
  • Validation, plan adherence, acceptance criteria, demo impact, risk/rollback/notes and release-note disposition are explicit.
  • No duplicated Status/Priority/Size/Area/Initiative/Risk fields or stale Agent Assignment fields remain.
  • Legacy AI-context impact is described as an impact disposition, not as a separate tracked-file maintenance assertion.
  • Validation:
  • Render/check template Markdown and validate required headings/checkboxes with contract fixtures.
  • Exercise single-PR and multi-slice examples, including a no-release-note rationale.
  • Run docs checks and git diff --check.
  • Risks and rollback: Overly rigid checkboxes can encourage empty evidence; keep semantic review manual and make the no-impact rationale concrete. Revert the template if it conflicts with accepted issue contracts.
  • Decision impact: No decision is accepted merely by implementing the issue. Record the relevant accepted decision/ADR and file a superseding record if the maintainer approves a change.

Activity

  1. self-assigned this
    on Nov 10, 2026
  2. moved this from Backlog to Triage in baseon Nov 10, 2026
  3. added this to the v1.11.0 milestone on Nov 11, 2026
  4. moved this from Triage to Backlog in baseon Nov 11, 2026
  5. codeforester commented on Nov 11, 2026

    @codeforester
    CollaboratorAuthor

    Pre-Triage review against the accepted plan (#2664, tracker #2665)

    1. Second PR-body source. basectl gh pr create doesn't use .github/pull_request_template.md. It renders the PR body from github.pr.required_sections in base_manifest.yaml (gh.sh:977 → cli/python/base_pr_policy/engine.py). That covers Summary, Issue and Validation, plus sections triggered by labels and paths, such as Docs Impact and AI Context Impact. Change both sources, or make one of them derive from the other. Otherwise PRs created through the CLI keep the old layout. Add both to Affected areas.
    2. Fixes versus Part of. basectl gh pr create auto-injects Fixes #<issue> (gh.sh:967, gh.sh:973) unless --no-fixes is passed. A slice of a multi-PR issue must use Part of #N, so the CLI default has to follow the slice rule.
    3. Provenance fields. The design's template list (§8, L314) doesn't include reviewer or round provenance; provenance lives in the reviewer's verdict comment (L322). Drop these fields from the template, or justify them. If they stay, authors would fill in the reviewer's fields.
    4. No CI breakage. No workflow reads PR bodies today (only downstream-version-bumps.yml, and only for its own PRs), so changing the template doesn't break checks. Enforcement arrives with Validate pull request impact, acceptance and release-note evidence #2572. Record that under category 6.
    5. Scope across repos. Eight other repos have their own PR template, and homebrew-base uses the org default PULL_REQUEST_TEMPLATE.md in .github. Say that this issue changes Base only and that the adoption issues carry the change to the rest.

    Dependencies text. Replace the P1 issue with #2666. The native blocked-by links are already correct; the body is what a reviewer reads.

    Contract text. The Impact, Scope and Open questions sections are still the shared template text. The Impact section is identical in 24 of #2666–#2690, and Scope repeats Expected behavior. That's fine in Backlog. Before Ready, replace each with this issue's own dispositions.

    Claude Code (Opus 5.5), reviewing from Ramesh's account at his request. This review comes before Triage, so it is not an issue-loop round.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

documentationDocumentation improvements

Type

Projects

  • Status
    Backlog

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions