Skip to content

CMP-1: Semantic change PR checklist #205

Description

@rororowyourboat

Summary

Every PR that changes semantics (canonical fields, role constraints, execution contracts, verification checks, cross-layer boundaries) should answer a standardized checklist. This prevents semantic drift between prose, math, code, and tests (mitigates RA-2).

Checklist template

Every semantic PR must answer:

  1. What claim changes? — which invariant, property, or semantic contract is affected
  2. Where is it formally stated? — link to check-specifications.md, design doc, or docstring
  3. What code enforces or computes it? — module + function/class
  4. What tests trace to it? — test file + @pytest.mark.requirement() marker
  5. What examples demonstrate it? — which exemplar model exercises the changed behavior
  6. What migration impact? — do existing DSLs, specs, or downstream consumers break

Implementation options

Option A: PR template.github/PULL_REQUEST_TEMPLATE/semantic.md with the checklist as a markdown checkbox list. Contributors select this template for semantic PRs.

Option B: CI label check — when a PR carries a semantic label, a CI step verifies all checklist items are addressed in the PR body (lightweight regex check).

Option C: Just document it — add the checklist to CONTRIBUTING.md and rely on review discipline.

Acceptance criteria

  • Checklist is documented somewhere contributors will see it (PR template, CONTRIBUTING.md, or both)
  • At least one merged PR has used the checklist as a dry run

Source

Cross-cutting mitigation program CMP-1 from improvement-plans/gds_core_risk_register_and_doctrines.md. Mitigates risks RA-1 (verification language outruns guarantees) and RA-2 (semantic drift).

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationtier-1Tier 1: High Priority

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions