Every catalog rule can flag. Each has a merge-blocking toggle. The recommended first set uses a subset; keep the rest in the draft as later.
IDs below are the API-stable numbers. They are what /catalog.json and a future MCP return.
| ID | Rule | Propose when | Do not |
|---|---|---|---|
| 1 | Require concise pull requests | PRs are routinely huge and reviews stall | Treat lockfile-only diffs as the same cap without excluding them |
| 2 | Require atomic commits | Commits mix unrelated work; tune a lines-per-commit limit | Treat one large generated commit like hand-written source without agreeing exclusions |
| 3 | Route review requests based on branch prefixes | feat/ should always request a named pool | |
| 4 | Route review requests based on file paths | CODEOWNERS or a stable directory map exists | |
| 5 | Detect review fatigue | A few people hold most open review requests | |
| 6 | Require a linked ticket | Any ticket in Warestack’s store is enough | Treat this as Linear-only — the recommended Linear-first set uses custom.linear_issue_required instead |
| 7 | Require linked ticket to be assigned | Tickets exist but nobody owns the work | |
| 8 | Require active linked ticket | PRs link Done/Backlog issues | Guess active states — confirm which workflow names count as active |
| 9 | Require timely acknowledgment of review requests | Reviews sit unacked | Treat this as Slack DMs. DMs are chain pull_request_review_sla |
| 10 | Require timely updates for draft pull requests | Drafts sit idle for days | |
| 11 | Require timely acknowledgment of high-priority linked tickets | Urgent Linear / Critical GitHub ignored | |
| 12 | Detect pull request scope drift | Diffs do not match the linked issue | |
| 13 | Require approvals by branch prefix | feat/ / refactor/ need two humans | Count bots or the author |
Custom IDs (not in 1–13)
| ID | Rule | Propose when |
|---|---|---|
custom.linear_issue_required | Linear issue in Warestack’s store | Tightens 6 so a GitHub issue alone does not pass |
custom.conventions | Branch / PR / commit conventions | Branch + Conventional Commit + summary/bullets/Testing/Refs: + matching commit trail |
custom.feature_test_evidence | Feature test evidence | feat/ without tests or a concrete Testing reason; generic “N/A” fails |
custom.evidence_in_approval_body | Evidence in the approval body | LGTM / “tested” with no named result |
A saved repository configuration for the same catalog rule suppresses the team-scoped version, even when the repository configuration is disabled. For an inherited team rule that would apply to a repo that should stay isolated, add an explicit disabled repository configuration; do not change the team rule.
Recommended first-enablement list: Change-management pack.
Last updated on