.agents/docs/PR_SIZE_EXTRACTION.md
Shared logic for the code-review Slack commands (send-code-review-slack,
generate-code-review-slack-command) to derive the PR-size field. Kept in one
place so the two commands can't drift.
📏 Auto Label PR Size workflow (.github/workflows/pr-size-labeler.yml)
applies exactly one size label to every PR. Read the PR labels and look for a
size/* label: 🔵 size/XS, 🟢 size/S, 🟡 size/M, 🟠 size/L, or
🔴 size/XL.{emoji} {BUCKET} (e.g. 🟠 L) — just the bucket, no
line counts.size/* label is present yet — the workflow may not
have run): derive the bucket from the PR's changed lines
(additions + deletions), applying the same ignore list and thresholds as
the workflow so the fallback can't land in a different bucket than the
labeler. The workflow (.github/workflows/pr-size-labeler.yml) is the single
source of truth for both:
IGNORE_GLOBS in the workflow (lockfiles, generated
REST clients under sdks/*/src/opik/rest_api/**, and snapshot/image files).
Do not re-list the globs here; they would drift.BUCKETS in the workflow: XS < 20, S 20–100,
M 101–300, L 301–600, XL > 600.
Store the result as {emoji} {BUCKET}.Include a size line in the message template, bucket only (no +/- counts):
:straight_ruler: pr size: {{pr_size}}