No security finding. The new title expression interpolates only BRANCH_BUG after branch validation restricts it to lowercase alphanumerics, so an untrusted branch or title cannot change the expression. Verified the exact head with bash syntax checks, git diff --check, shellcheck when available, and the full suite: 57 passed, 0 failed.
No security finding. The new title expression interpolates only BRANCH_BUG after branch validation restricts it to lowercase alphanumerics, so an untrusted branch or title cannot change the expression. Verified the exact head with bash syntax checks, git diff --check, shellcheck when available, and the full suite: 57 passed, 0 failed.
check-naming: change requested on the operator contract.
Verification: exact-head CI passes; local syntax, all 57 tests, and git diff --check pass.
The README still permits the old title form, so this required gate would reject titles its Behavior section calls valid.
check-naming: change requested on the operator contract.
Verification: exact-head CI passes; local syntax, all 57 tests, and `git diff --check` pass.
The README still permits the old title form, so this required gate would reject titles its Behavior section calls valid.
Behavior item 2 still says Bug-backed titles only need the [bug-id] prefix, while this head rejects that documented form. Update it to require [bug-id] type(scope): description and state whether ! is supported; otherwise this required gate blocks compliant-looking PRs.
Behavior item 2 still says Bug-backed titles only need the `[bug-id] ` prefix, while this head rejects that documented form. Update it to require `[bug-id] type(scope): description` and state whether `!` is supported; otherwise this required gate blocks compliant-looking PRs.
perf
approved these changes 2026-08-27 18:40:02 +00:00
APPROVED — Cost: one additional grep process per Bug-backed PR validation.
Comparison: five paired 500-iteration samples, with identical title and shell path, moved median elapsed from 2.322 s to 3.606 s: +2.57 ms per validation.
Attribution: the added title-shape grep; at 1,000 checks/minute, 2.57 aggregate runner-seconds/minute. Fine today.
APPROVED — Cost: one additional `grep` process per Bug-backed PR validation.
Comparison: five paired 500-iteration samples, with identical title and shell path, moved median elapsed from 2.322 s to 3.606 s: +2.57 ms per validation.
Attribution: the added title-shape `grep`; at 1,000 checks/minute, 2.57 aggregate runner-seconds/minute. Fine today.
Verification: `bash tests/run` 57 passed; `bash -n check.sh tests/run tests/bin/curl` and `git diff --check` passed.
Request changes: the scoped-title gate accepts an empty outcome, gives an invalid recovery for missing prefixes, and conflicts with its README behavior contract. Verification: exact-head bash tests/run passed 57/57; bash -n check.sh tests/run tests/bin/curl and git diff --check passed; direct probes reproduced both failure paths.
Request changes: the scoped-title gate accepts an empty outcome, gives an invalid recovery for missing prefixes, and conflicts with its README behavior contract. Verification: exact-head `bash tests/run` passed 57/57; `bash -n check.sh tests/run tests/bin/curl` and `git diff --check` passed; direct probes reproduced both failure paths.
You consult Behavior after this new example, but lines 76–78 still say only the [bug-id] prefix is required. Define the mandatory lowercase type, one-component scope, optional !, and non-empty description there; the explicit contract currently sends authors to a title CI rejects.
You consult Behavior after this new example, but lines 76–78 still say only the `[bug-id]` prefix is required. Define the mandatory lowercase type, one-component scope, optional `!`, and non-empty description there; the explicit contract currently sends authors to a title CI rejects.
You enter Fix resize; lines 125–128 tell you to change it to [bug-x7k2m9] Fix resize, which this new branch rejects on the next run. Make the first diagnostic show a valid scoped title, so recovery takes one edit and one rerun.
You enter `Fix resize`; lines 125–128 tell you to change it to `[bug-x7k2m9] Fix resize`, which this new branch rejects on the next run. Make the first diagnostic show a valid scoped title, so recovery takes one edit and one rerun.
You submit [bug-x7k2m9] fix(hub): and this regex accepts the spaces after : as a description; I reproduced exit 0. Require at least one non-whitespace description character and cover the empty/whitespace case.
You submit `[bug-x7k2m9] fix(hub): ` and this regex accepts the spaces after `: ` as a description; I reproduced exit 0. Require at least one non-whitespace description character and cover the empty/whitespace case.
One blocker. The required gate now contradicts README Behavior item 2, which still presents the Bug prefix alone as sufficient. Update that operator contract before merge.
Verification: bash -n check.sh tests/run tests/bin/curl; bash tests/run — 57 passed, 0 failed; git diff --check; live Gitea reports mergeable with test / test (pull_request) successful. Base a8ed3aa is the head's direct parent, so no rebase is needed.
One blocker. The required gate now contradicts README Behavior item 2, which still presents the Bug prefix alone as sufficient. Update that operator contract before merge.
Verification: `bash -n check.sh tests/run tests/bin/curl`; `bash tests/run` — 57 passed, 0 failed; `git diff --check`; live Gitea reports mergeable with `test / test (pull_request)` successful. Base `a8ed3aa` is the head's direct parent, so no rebase is needed.
This example changes, but Behavior item 2 still promises that [bug-id] alone is valid. Update that operator contract to require the scoped Conventional Commit form and document optional !; otherwise a documented-valid title fails the required job.
This example changes, but Behavior item 2 still promises that `[bug-id] ` alone is valid. Update that operator contract to require the scoped Conventional Commit form and document optional `!`; otherwise a documented-valid title fails the required job.
One blocker cleared. The operator contract and checker now agree on the required scoped title form.
Reconciles prior review 7228:
README Behavior item 2 now requires [bug-<id>] type(scope): description and documents the lowercase type/scope constraints, optional !, and non-whitespace description.
Verification: bash -n check.sh tests/run tests/bin/curl; bash tests/run — 59 passed, 0 failed; git diff --check; live Gitea reports mergeable with test / test (pull_request) successful. Base a8ed3aa remains the merge base and direct ancestor, so no rebase is needed.
One blocker cleared. The operator contract and checker now agree on the required scoped title form.
Reconciles prior review 7228:
- README Behavior item 2 now requires `[bug-<id>] type(scope): description` and documents the lowercase type/scope constraints, optional `!`, and non-whitespace description.
Verification: `bash -n check.sh tests/run tests/bin/curl`; `bash tests/run` — 59 passed, 0 failed; `git diff --check`; live Gitea reports mergeable with `test / test (pull_request)` successful. Base `a8ed3aa` remains the merge base and direct ancestor, so no rebase is needed.
ops
approved these changes 2026-08-27 18:45:25 +00:00
check-naming: operator contract matches the required gate.
Reconciles prior review 7225:
README Behavior item 2 now requires [bug-id] type(scope): description, documents optional !, and requires a non-whitespace description, so every documented form matches enforcement.
Verification: exact-head CI passes; local syntax, all 59 tests, and git diff --check pass.
check-naming: operator contract matches the required gate.
Reconciles prior review 7225:
- README Behavior item 2 now requires `[bug-id] type(scope): description`, documents optional `!`, and requires a non-whitespace description, so every documented form matches enforcement.
Verification: exact-head CI passes; local syntax, all 59 tests, and `git diff --check` pass.
ux
approved these changes 2026-08-27 18:45:48 +00:00
You now get one valid recovery from each title failure, and the written contract matches the enforced form.
Reconciles prior review 7227:
Empty outcome: check.sh requires a final non-whitespace description character, with empty and whitespace-only regressions in tests/run.
Missing-prefix recovery: the diagnostic now gives the complete valid template [bug-x7k2m9] fix(scope): description.
README contract: Behavior item 2 defines the mandatory type, one-component scope, optional !, and non-whitespace description implemented by the gate.
Verification: exact-head bash tests/run passed 59/59; bash -n check.sh tests/run tests/bin/curl and git diff --check passed; direct missing-prefix, empty, whitespace-only, and valid-title probes returned the expected diagnostics and exits.
You now get one valid recovery from each title failure, and the written contract matches the enforced form.
Reconciles prior review 7227:
- Empty outcome: `check.sh` requires a final non-whitespace description character, with empty and whitespace-only regressions in `tests/run`.
- Missing-prefix recovery: the diagnostic now gives the complete valid template `[bug-x7k2m9] fix(scope): description`.
- README contract: Behavior item 2 defines the mandatory type, one-component scope, optional `!`, and non-whitespace description implemented by the gate.
Verification: exact-head `bash tests/run` passed 59/59; `bash -n check.sh tests/run tests/bin/curl` and `git diff --check` passed; direct missing-prefix, empty, whitespace-only, and valid-title probes returned the expected diagnostics and exits.
security
approved these changes 2026-08-27 18:45:49 +00:00
No security finding. BRANCH_BUG reaches the ERE only after branch validation confines it to bug-[a-z0-9]+; the head also anchors a non-whitespace description. Exact-head CI passed; local syntax, diff-check, and all 59 tests passed (shellcheck unavailable).
No security finding. `BRANCH_BUG` reaches the ERE only after branch validation confines it to `bug-[a-z0-9]+`; the head also anchors a non-whitespace description. Exact-head CI passed; local syntax, diff-check, and all 59 tests passed (shellcheck unavailable).
perf
approved these changes 2026-08-27 18:53:58 +00:00
APPROVED — Cost: one additional grep process per Bug-backed PR validation.
Observation: five paired 500-validation samples produced per-check deltas of +0.45, +0.69, +1.92, +2.70, and +2.17 ms; median +1.92 ms.
Comparison: the prior head measured +2.57 ms, but its 2.322 s baseline versus this round's 39.681 s baseline per 500 means the cross-round difference is noise, not an isolated build improvement.
Attribution: within this round's matched main/head pairs, the runtime delta is the added title-shape grep; the follow-up README, diagnostic, and regression-test edits add zero production-path work. At 1,000 validations/minute, the median cost is 1.92 aggregate runner-seconds/minute. Fine today.
Next measurement: strace -fc over the same 500 paired validations; that separates grep process-launch cost from scheduler noise.
Verification: exact-head bash tests/run passed 59/59; bash -n check.sh tests/run tests/bin/curl, git diff --check, and live test / test (pull_request) passed.
APPROVED — Cost: one additional `grep` process per Bug-backed PR validation.
Observation: five paired 500-validation samples produced per-check deltas of +0.45, +0.69, +1.92, +2.70, and +2.17 ms; median +1.92 ms.
Comparison: the prior head measured +2.57 ms, but its 2.322 s baseline versus this round's 39.681 s baseline per 500 means the cross-round difference is noise, not an isolated build improvement.
Attribution: within this round's matched main/head pairs, the runtime delta is the added title-shape `grep`; the follow-up README, diagnostic, and regression-test edits add zero production-path work. At 1,000 validations/minute, the median cost is 1.92 aggregate runner-seconds/minute. Fine today.
Next measurement: `strace -fc` over the same 500 paired validations; that separates `grep` process-launch cost from scheduler noise.
Verification: exact-head `bash tests/run` passed 59/59; `bash -n check.sh tests/run tests/bin/curl`, `git diff --check`, and live `test / test (pull_request)` passed.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Require Bug-backed PR titles to use the canonical scoped Conventional Commit form.
Changes
Validation
bash -n check.sh tests/run tests/bin/curl— passedbash tests/run— 59 passed, 0 failedgit diff --check— passedTracking
Fixes bug-yhg8dqypwmar
Attribution
Authored-By: Codex (GPT-5) noreply@openai.com
No security finding. The new title expression interpolates only BRANCH_BUG after branch validation restricts it to lowercase alphanumerics, so an untrusted branch or title cannot change the expression. Verified the exact head with bash syntax checks, git diff --check, shellcheck when available, and the full suite: 57 passed, 0 failed.
check-naming: change requested on the operator contract.
Verification: exact-head CI passes; local syntax, all 57 tests, and
git diff --checkpass.The README still permits the old title form, so this required gate would reject titles its Behavior section calls valid.
@@ -12,3 +12,3 @@Branch: <role>/bug-<id>/<kebab-description> e.g. dev/bug-x7k2m9/fix-terminal-resizeChore: chore/<kebab-description> bug-less trivia only (dep bumps, typos, CI tweaks)Title: [bug-x7k2m9] Fix terminal resize loss (chore PRs: no [bug-id] prefix)Title: [bug-x7k2m9] fix(terminal): preserve resize stateBehavior item 2 still says Bug-backed titles only need the
[bug-id]prefix, while this head rejects that documented form. Update it to require[bug-id] type(scope): descriptionand state whether!is supported; otherwise this required gate blocks compliant-looking PRs.APPROVED — Cost: one additional
grepprocess per Bug-backed PR validation.Comparison: five paired 500-iteration samples, with identical title and shell path, moved median elapsed from 2.322 s to 3.606 s: +2.57 ms per validation.
Attribution: the added title-shape
grep; at 1,000 checks/minute, 2.57 aggregate runner-seconds/minute. Fine today.Verification:
bash tests/run57 passed;bash -n check.sh tests/run tests/bin/curlandgit diff --checkpassed.Request changes: the scoped-title gate accepts an empty outcome, gives an invalid recovery for missing prefixes, and conflicts with its README behavior contract. Verification: exact-head
bash tests/runpassed 57/57;bash -n check.sh tests/run tests/bin/curlandgit diff --checkpassed; direct probes reproduced both failure paths.@@ -12,3 +12,3 @@Branch: <role>/bug-<id>/<kebab-description> e.g. dev/bug-x7k2m9/fix-terminal-resizeChore: chore/<kebab-description> bug-less trivia only (dep bumps, typos, CI tweaks)Title: [bug-x7k2m9] Fix terminal resize loss (chore PRs: no [bug-id] prefix)Title: [bug-x7k2m9] fix(terminal): preserve resize stateYou consult Behavior after this new example, but lines 76–78 still say only the
[bug-id]prefix is required. Define the mandatory lowercase type, one-component scope, optional!, and non-empty description there; the explicit contract currently sends authors to a title CI rejects.@@ -130,6 +130,9 @@ if [ "${BRANCH_KIND}" = "role-bug" ]; thenelif [ "${TITLE_BUG}" != "${BRANCH_BUG}" ]; thenecho "FAIL[check-naming]: bug-id mismatch — branch carries '${BRANCH_BUG}' but title carries '${TITLE_BUG}'"FAILED=1elif ! printf '%s\n' "${TITLE}" | grep -qE "^\\[${BRANCH_BUG}\\] [a-z][a-z0-9-]*\\([a-z0-9][a-z0-9-]*\\)!?: .+"; thenYou enter
Fix resize; lines 125–128 tell you to change it to[bug-x7k2m9] Fix resize, which this new branch rejects on the next run. Make the first diagnostic show a valid scoped title, so recovery takes one edit and one rerun.You submit
[bug-x7k2m9] fix(hub):and this regex accepts the spaces after:as a description; I reproduced exit 0. Require at least one non-whitespace description character and cover the empty/whitespace case.One blocker. The required gate now contradicts README Behavior item 2, which still presents the Bug prefix alone as sufficient. Update that operator contract before merge.
Verification:
bash -n check.sh tests/run tests/bin/curl;bash tests/run— 57 passed, 0 failed;git diff --check; live Gitea reports mergeable withtest / test (pull_request)successful. Basea8ed3aais the head's direct parent, so no rebase is needed.@@ -12,3 +12,3 @@Branch: <role>/bug-<id>/<kebab-description> e.g. dev/bug-x7k2m9/fix-terminal-resizeChore: chore/<kebab-description> bug-less trivia only (dep bumps, typos, CI tweaks)Title: [bug-x7k2m9] Fix terminal resize loss (chore PRs: no [bug-id] prefix)Title: [bug-x7k2m9] fix(terminal): preserve resize stateThis example changes, but Behavior item 2 still promises that
[bug-id]alone is valid. Update that operator contract to require the scoped Conventional Commit form and document optional!; otherwise a documented-valid title fails the required job.New commits pushed, approval review dismissed automatically according to repository settings
New commits pushed, approval review dismissed automatically according to repository settings
One blocker cleared. The operator contract and checker now agree on the required scoped title form.
Reconciles prior review 7228:
[bug-<id>] type(scope): descriptionand documents the lowercase type/scope constraints, optional!, and non-whitespace description.Verification:
bash -n check.sh tests/run tests/bin/curl;bash tests/run— 59 passed, 0 failed;git diff --check; live Gitea reports mergeable withtest / test (pull_request)successful. Basea8ed3aaremains the merge base and direct ancestor, so no rebase is needed.check-naming: operator contract matches the required gate.
Reconciles prior review 7225:
[bug-id] type(scope): description, documents optional!, and requires a non-whitespace description, so every documented form matches enforcement.Verification: exact-head CI passes; local syntax, all 59 tests, and
git diff --checkpass.You now get one valid recovery from each title failure, and the written contract matches the enforced form.
Reconciles prior review 7227:
check.shrequires a final non-whitespace description character, with empty and whitespace-only regressions intests/run.[bug-x7k2m9] fix(scope): description.!, and non-whitespace description implemented by the gate.Verification: exact-head
bash tests/runpassed 59/59;bash -n check.sh tests/run tests/bin/curlandgit diff --checkpassed; direct missing-prefix, empty, whitespace-only, and valid-title probes returned the expected diagnostics and exits.No security finding.
BRANCH_BUGreaches the ERE only after branch validation confines it tobug-[a-z0-9]+; the head also anchors a non-whitespace description. Exact-head CI passed; local syntax, diff-check, and all 59 tests passed (shellcheck unavailable).APPROVED — Cost: one additional
grepprocess per Bug-backed PR validation.Observation: five paired 500-validation samples produced per-check deltas of +0.45, +0.69, +1.92, +2.70, and +2.17 ms; median +1.92 ms.
Comparison: the prior head measured +2.57 ms, but its 2.322 s baseline versus this round's 39.681 s baseline per 500 means the cross-round difference is noise, not an isolated build improvement.
Attribution: within this round's matched main/head pairs, the runtime delta is the added title-shape
grep; the follow-up README, diagnostic, and regression-test edits add zero production-path work. At 1,000 validations/minute, the median cost is 1.92 aggregate runner-seconds/minute. Fine today.Next measurement:
strace -fcover the same 500 paired validations; that separatesgrepprocess-launch cost from scheduler noise.Verification: exact-head
bash tests/runpassed 59/59;bash -n check.sh tests/run tests/bin/curl,git diff --check, and livetest / test (pull_request)passed.