chore(#20): upgrade validate-branch-name + validate-pr-create from warning to blocker#28
Merged
Merged
Conversation
…rning to blocker The rule-mechanization audit (#13, AgDR-0001) found that warning-only hooks are "prose in disguise" — the harness runs them but their output is silently ignorable. The first real test run of ApexStack confirmed this: warnings were dropped under pressure, which is the incident that started the entire #11/#14/#13 enforcement session. Both hooks now exit 2 (block) instead of exit 0 (warn) when validation fails. This is a behavior-visible breaking change: - validate-branch-name.sh: non-conforming branch names are rejected at push time with a rename suggestion instead of a warning. - validate-pr-create.sh: malformed PR titles, missing glossary sections, and missing branch ticket IDs are rejected at PR creation time instead of warned. The issue-existence check (added in #14) was already a blocker and is unchanged. Supporting changes: - CLAUDE.md adds a migration note in Quality Rules section - hooks/README.md updates the Pre-existing Hooks table from "Warns" to "Blocks" for both hooks - AgDR-0002 records the decision with three options considered (upgrade, keep warnings, configurable severity) and rationale Closes #20 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
me2resh
approved these changes
Apr 12, 2026
atlas-apex
commented
Apr 12, 2026
atlas-apex
left a comment
Collaborator
Author
There was a problem hiding this comment.
Code Review: PR #28
Commit: 4dbb0031a2f87ca87f5a912d833fcbe29219a7f8
Summary
Upgrades two validation hooks from warning (exit 0) to blocker (exit 2). Straightforward behavioral change with AgDR, migration note, and actionable error messages.
Checklist Results
- N/A Architecture & DDD: not applicable (shell scripts)
- ✅ Code Quality: exit codes correct, error messages helpful, rename suggestion included
- N/A Testing: smoke tests documented in PR; no unit test framework for shell hooks
- ✅ Security: no secrets, no new attack surface
- ✅ Performance: no impact
- ✅ PR Description & Glossary: present and clear
- ✅ Technical Decisions (AgDR): AgDR-0002 linked and covers the decision
Issues Found
None.
Suggestions
None.
Verdict
APPROVED (via comment — same-org repo)
🤖 Reviewed by Rex (Code Reviewer Agent)
📌 Reviewed commit: 4dbb0031a2f87ca87f5a912d833fcbe29219a7f8
Dr-kersho
added a commit
to Dr-kersho/apexyard
that referenced
this pull request
May 20, 2026
…roadmap Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrades
validate-branch-name.shandvalidate-pr-create.shfrom warning (exit 0) to blocker (exit 2) when validation fails. Breaking change — users who got used to pushing with non-conforming branch names or creating PRs with malformed titles will now be blocked.This is the final step in the rule-mechanization audit: the warnings were "prose in disguise" — the harness ran them but their output was silently ignorable. The first real test run of ApexStack confirmed this: warnings were dropped under pressure.
Closes #20
Changes
validate-branch-name.sh— non-conforming branch names rejected at push time with a rename suggestion (exit 2 instead of exit 0). Allowlist for main/master/develop unchanged.validate-pr-create.sh— malformed PR titles, missing glossary sections, and missing branch ticket IDs rejected at PR creation time (exit 2 instead of exit 0). The issue-existence check from [Feat] anti-hallucination hooks — verify ticket existence at PR and commit time #14 was already a blocker and is unchanged.CLAUDE.md— migration note in Quality Rules: "Branch names and PR titles are enforced, not warned — as of 2026-04-12.".claude/hooks/README.md— Pre-existing Hooks table updated from "Warns" to "Blocks" for both hooks.docs/agdr/AgDR-0002-warning-to-blocker-upgrade.md— decision record comparing 3 options (upgrade both, keep warnings, configurable severity), chosen: upgrade both.Smoke tests
Glossary
Test plan
🤖 Generated with Claude Code