Skip to content

PR-size check in PR CI: changed lines per PR, derived files excluded (p90 ≤200 gate) #5733

Open

Description

@noahgift

Refs #5498, #5510. Ordered by aprender-57 (operator plan step 5): every aprender PR is ≤200 changed lines, one ticket per PR; the gate is p90 PR size ≤200.

Loss

Nothing in PR CI measures PR size. Fold PRs and large PRs get past review sizing, hold seats longer and conflict more (#5732 is 12 files / 507 changed lines; the README-count fold conflicts in #5723/#5724/#5727/#5728). #5498 states the ≤200 target but has no check behind it.

Change (workflow change; owner aprender-flow implements)

Add a PR-size check to PR CI: count changed lines (additions + deletions) of the PR diff, excluding derived files (contracts/witness/*.json, contracts/contracts.nt, contracts/shapes.ttl, ci/ fragments, README counts), and report the number. Failing threshold and the p90 rollup are the flow owner's call at implementation.

Falsifiers (test first)

  • A fixture diff of 201 changed non-derived lines: the check FAILs and prints the count.
  • A fixture diff of 200 lines: PASS.
  • A diff of 5 source lines plus 500 derived-file lines: PASS (derived excluded).
  • Control: the check run against a PR labeled as a squash fold of two tickets reports the sum, not the largest part.

Process

Gate/workflow change: C324 rule 7 applies (GATE only with the operator's yes, one gate retired per gate added). Quorum + non-author "gate/workflow sign-off: YES" on the final commit, 2 seats. Milestone 0.72.0 (EPIC 20 step 1).

🤖 Generated with Claude Code

Activity

  1. added this to the 0.72.0 milestone on Oct 19, 2026
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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions