Skip to content

feat(ci): relax the branch check to a type shape - #601

Merged
ss-o merged 1 commit into
mainfrom
feature-595-step5
Sep 2, 2026
Merged

feat(ci): relax the branch check to a type shape#601
ss-o merged 1 commit into
mainfrom
feature-595-step5

Conversation

@ss-o

@ss-o ss-o commented Sep 2, 2026

Copy link
Copy Markdown
Member

Steps 4 to 6 of #595, completing
decisions/0022-issue-traceability-on-pull-requests.md in this repository.

Step 4 is already done, outside this pull request. Validate Issue Link
was observed passing on #600, so it is now registered in the main ruleset
beside the other three contexts. The other six rules and all four bypass actors
were verified byte-identical before and after.

Step 5: the branch check becomes a shape check

^((feature|bug|hotfix)-[1-9][0-9]*(-[a-z0-9]+)*
 |(feat|fix|perf|refactor|docs|test|build|ci|style|chore|revert|feature|bug|hotfix)/[a-z0-9]+(-[a-z0-9]+)*)$

feature-<id> stays valid and recommended. next keeps its
persistent-integration exemption, and the automation prefixes are unchanged.

Step 6: the amendment is recorded where people read it

ADR-0019 now carries a blockquote beside the clause ADR-0022 changes, and
AGENTS.md states the traceability rule directly. ADR-0022's migration put
this with the enforcement rather than with the record, so the pointer and the
behaviour it describes land together.

Read this before merging

code/ branches are still rejected. code is not in the
decisions/0003-conventional-commits.md type set, and ADR-0022 scoped the
<type>/<slug> form to that set plus feature, bug, hotfix. code/* was
17 of the 46 non-conforming branches in the sample that started this, so the
single most common shape in recent history still fails.

I implemented the accepted decision rather than widening it here. If code
should be an accepted type, that is a one-line change to ADR-0022 and this
pattern, and it should be decided rather than slipped in.

What does now pass that did not: fix/, docs/, chore/, ci/, feat/,
and the other Conventional Commits types, with no identifier.

Verification

The policy suite grows to 56 checks, with the branch table rewritten for the
new shape:

Now allowed Still rejected
fix/labeler-audit-reject-malformed code/promotion-precondition-ancestry
docs/adr-0022-rollout ss-o-govern-plugin-standard
chore/tidy-workflows fix/Bad-Caps
feature/no-identifier fix/

All six steps of Validate Agent Instructions pass locally, plus
decision-records.py --check, actionlint, shellcheck and trunk check.

Refs #595

Validate Issue Link is registered in the main ruleset now that it has been
observed on a real pull request, so ADR-0022's ordering is satisfied and the
branch check can stop standing in for traceability.

The pattern becomes a shape check: <type>-<id> with an optional slug, which
stays valid and recommended, or <type>/<slug> over the decisions/0003
Conventional Commits types plus feature, bug and hotfix. next keeps its
persistent-integration exemption.

Record the amendment in ADR-0019 beside the clause it changes, and state the
traceability rule in AGENTS.md, so the pointer and the enforcement it describes
arrive together.

Note that 'code' is not in the decisions/0003 type set, so code/ branches are
still rejected. That was the accepted scope; widening the type set is a
separate decision.

Steps 4 to 6 of #595. z-shell/zi carries the same job and follows separately.

Refs #595
@ss-o
ss-o requested a review from a team as a code owner September 2, 2026 21:29
@ss-o
ss-o merged commit ba6ff0b into main Sep 2, 2026
13 checks passed
@ss-o
ss-o deleted the feature-595-step5 branch September 2, 2026 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant