diff --git a/.claude/shared/engineering-rules.md b/.claude/shared/engineering-rules.md index 716faabda..4dd01984a 100644 --- a/.claude/shared/engineering-rules.md +++ b/.claude/shared/engineering-rules.md @@ -35,7 +35,7 @@ The two rules that hold everything else together: **When your issue turns out wrong, correct it in-thread:** what was wrong, what's true, and who downstream inherited it — name the affected PRs. Retitle when scope narrows. One home per work item. -**Priority lives in labels** — `priority:critical|high|medium|low` — not board fields. `priority:critical` = money correctness, security, or user-visible wrong data. Don't inflate it. The same label set exists in every repo (created by `pm-kit/protection/create-labels.sh`; never invent labels or alternative schemes like `P0`/bare `high`). The issue forms make Priority a required dropdown, and the `issue-priority-label` workflow converts the selection into the label automatically — so a filed issue carries its priority from minute one; if you file an issue without the form, add the label yourself. **Every issue lands on the team project board automatically** (the board's auto-add workflow watches these repos) — never file-and-forget an issue off the board; if you see one without a board entry or priority label, that's a defect in the process, fix it and say so. +**Priority lives in labels** — `priority:critical|high|medium|low` — not board fields. `priority:critical` = money correctness, security, or user-visible wrong data. Don't inflate it. The same label set exists in every repo (created by `pm-kit/protection/create-labels.sh`; never invent labels or alternative schemes like `P0`/bare `high`). The issue forms make Priority a required dropdown, and the `issue-priority-label` workflow converts the selection into the label automatically — so a filed issue carries its priority from minute one; if you file an issue without the form, add the label yourself. **Size the work at filing** — `size:S` (hours) / `size:M` (a day-ish) / `size:L` (multi-day) via the form's Size dropdown, auto-labeled the same way; before picking L, ask whether it splits (same-diff / different-schedule tests above). **Assign an owner at filing** — default to the person most recently active in the code the issue touches; an unassigned issue is a queue nobody reads. **Every issue lands on the team project board automatically** (the board's auto-add workflow watches these repos) — never file-and-forget an issue off the board; if you see one without a board entry, priority, size, or owner, that's a defect in the process, fix it and say so. --- diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 6a65ee5b3..8eeb50fd4 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -77,3 +77,11 @@ body: description: Console output, error messages, screenshots, tx hashes. validations: required: false + - type: dropdown + id: size + attributes: + label: Size + description: "T-shirt estimate of the fix. If you'd pick L, first ask whether it splits." + options: ["S — hours", "M — a day-ish", "L — multi-day (split it if you can)"] + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/task.yml b/.github/ISSUE_TEMPLATE/task.yml index f17880c8c..8f16a84be 100644 --- a/.github/ISSUE_TEMPLATE/task.yml +++ b/.github/ISSUE_TEMPLATE/task.yml @@ -26,3 +26,11 @@ body: options: ["critical — money correctness, security, or user-visible wrong data", "high", "medium", "low"] validations: required: true + - type: dropdown + id: size + attributes: + label: Size + description: "T-shirt estimate of the fix. If you'd pick L, first ask whether it splits." + options: ["S — hours", "M — a day-ish", "L — multi-day (split it if you can)"] + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/user_story.yml b/.github/ISSUE_TEMPLATE/user_story.yml index ba72f90ab..34d522927 100644 --- a/.github/ISSUE_TEMPLATE/user_story.yml +++ b/.github/ISSUE_TEMPLATE/user_story.yml @@ -58,3 +58,11 @@ body: description: Links to designs, affected files or modules, API changes, migration needs. validations: required: false + - type: dropdown + id: size + attributes: + label: Size + description: "T-shirt estimate of the fix. If you'd pick L, first ask whether it splits." + options: ["S — hours", "M — a day-ish", "L — multi-day (split it if you can)"] + validations: + required: true