Curated governance rules across delivery
Search Warestack’s public rule catalog for pull requests, issues, workflows, deployment reviews, and deployments, then configure the rules for your workspace.
Catalog rules
24 rules
Require concise pull requests
pull_request.size_limitFlag pull requests that exceed the configured maximum lines of code, excluding changes to lock files. e.g. 400, 800
pr.diff.lines_changed > $maxLines
Require atomic commits
pull_request.commit_size_limitFlag commits that exceed the configured lines of code per commit, regardless of the pull request size. e.g. 400, 800
commit.diff.lines_changed > $maxCommitLines AND commit.type != "chore"
Route review requests based on branch prefixes
pull_request.branch_reviewer_routingRoute review requests to specific team members based on configurable pull request branch prefixes. e.g. feat/, fix/, chore/
pr.branch.prefix MATCHES $branchPrefixes THEN pr.reviewer = $reviewerUsername
Route review requests based on file paths
pull_request.path_reviewer_routingRoute review requests to specific team members based on configurable file paths. e.g. src/components/*, .github/workflows/*, src/pages/**
ANY(pr.diff.files_changed) MATCHES $filePathPatterns THEN pr.reviewer = $reviewerUsername
Detect review fatigue
pull_request.reviewer_capacityFlag reviewers who receive more review requests than the configured threshold. e.g. 4, 5
reviewer.pending_review_requests > $maxOpenReviewRequests
Require a linked ticket
pull_request.linked_ticketFlag pull requests that are not linked to a Linear or GitHub issue.
pr.linked_ticket IS NULL
Require linked ticket to be assigned
pull_request.linked_ticket_assigneeFlag pull requests with a linked Linear or GitHub issue without an assignee.
pr.linked_ticket IS NOT NULL AND pr.linked_ticket.assignee IS NULL
Require active linked ticket
pull_request.linked_ticket_stateFlag pull requests with a linked Linear or GitHub issue that is inactive or not in progress. e.g. In Progress, In Review
pr.linked_ticket IS NOT NULL AND pr.linked_ticket.status NOT IN $activeTicketStatuses
Require timely acknowledgment of review requests
pull_request.review_acknowledgment_slaFlag pull requests that do not receive reviews or acknowledgments within the configured time limit. e.g. 24h, 48h
pr.review_ack_hours > $reviewAckHours
Require timely updates for draft pull requests
pull_request.draft_stalenessFlag draft pull requests as stale when they have no updates within the configured time limit. e.g. 96h, 192h
pr.status = "draft" AND DATEDIFF(hour, pr.updated_at, NOW()) > $draftStaleHours
Require timely acknowledgment of high-priority linked tickets
pull_request.urgent_ticket_review_slaFlag pull requests that do not receive reviews or acknowledgments within the configured time limit when the linked Linear task is marked as "Urgent" or the linked GitHub issue is tagged as "Critical"/"Urgent". e.g. 12h, 24h
pr.linked_ticket.priority IN ("Critical", "Urgent") AND pr.review_ack_hours > $highPriorityReviewAckHours
Detect pull request scope drift
pull_request.scope_alignmentFlag pull requests that introduce changes unrelated to the linked Linear or GitHub issue.
pr.scope_similarity = "LOW"
Require approvals by branch prefix
pull_request.branch_approval_policyMark pull requests that reach merge with fewer human approvals than their branch prefix requires. Bot approvals never count. e.g. feat/: 2, fix/: 1
pr.human_approvals < $requiredApprovals for branch prefix
Resolve automated review findings
pull_request.review_findings_resolvedFlag pull requests with current actionable review-bot findings that have not been resolved or addressed.
Require owner approval for sensitive changes
pull_request.sensitive_change_approvalFlag sensitive-path changes without an independent approval from an observed code owner.
Require failure evidence for urgent fixes
pull_request.urgent_fix_failure_evidenceFlag corrective pull requests linked to an urgent Linear issue when the issue does not document observable evidence of the broken behavior.
Close implementation issues after delivery
issue.implementation_evidenceFlag closed GitHub implementation issues that have no linked merged pull request.
Require acceptance criteria before assignment
issue.acceptance_criteriaFlag assigned GitHub issues whose description does not define verifiable acceptance criteria.
Require successful release jobs
workflow_run.release_jobs_successfulFlag release workflows when an observed required job does not complete successfully.
Keep workflow runs within budget
workflow_run.duration_budgetFlag workflow runs whose observed elapsed time exceeds the configured duration budget.
Require independent production approval
deployment_review.independent_approvalFlag production deployment reviews without an observed approval from someone other than the requestor.
Require production verification evidence
deployment.production_verificationFlag successful production deployments without observed health, smoke, or verification evidence.
Require production deployment traceability
deployment.production_change_traceabilityFlag production deployments that cannot be traced to an observed pull request.
Require diagnostics for failed production deployments
deployment.production_failure_diagnosticsFlag failed production deployments whose status history does not expose actionable diagnostic evidence.
Configuration workflow
From catalog rule to workspace configuration
Pick a curated rule, provide its required inputs, and apply that configuration to the repositories where it should run.
Choose a rule
Start with the governance behavior your team wants to validate.
Set its configuration
Provide the rule-specific threshold, state list, or reviewer routes.
Select the scope
Apply the configuration to the relevant team and repositories.
Monitor the result
Review violations and decide whether the GitHub check should gate merge.
Rules evaluate pull requests, GitHub issues, workflow runs, deployment reviews, and deployments. Pull-request violations block merging only when merge blocking is enabled and branch protection requires the Warestack Rules check. An incomplete blocking evaluation fails closed instead of being reported as a pass.
Configure governance for your repositories
Sign in to choose a rule, set its inputs, and apply it to the appropriate workspace scope.
Learn how merge checks work →