Skip to content

chore(coderabbit): enable approval workflow pre-merge checks#50

Merged
gelbh merged 1 commit into
mainfrom
chore/coderabbit-approval-gate
Jul 13, 2026
Merged

chore(coderabbit): enable approval workflow pre-merge checks#50
gelbh merged 1 commit into
mainfrom
chore/coderabbit-approval-gate

Conversation

@gelbh

@gelbh gelbh commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Keep request_changes_workflow: true so CodeRabbit submits APPROVED or CHANGES_REQUESTED reviews (not comment-only)
  • Disable default pre_merge_checks that add status noise without review value (title/commit conventions covered by hooks)

Pairs with GitHub main branch rules requiring CodeRabbit status + approving review + resolved review threads.

Test plan

  • Comment @coderabbitai configuration on this PR and confirm request_changes_workflow: true
  • After review completes, confirm CodeRabbit submits APPROVED when threads are clear (or CHANGES_REQUESTED when not)
  • Confirm merge is blocked until CodeRabbit approves and all review threads are resolved

Summary by CodeRabbit

  • Chores
    • Updated automated review settings to disable selected pre-merge checks.
    • Added explanatory configuration comments.

@gelbh

gelbh commented Jul 13, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai configuration

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Configuration used: Path: .coderabbit.yaml

CodeRabbit configuration
# Source: Repository YAML (base)
language: en-US
# Source: defaults
tone_instructions: ''
# Source: defaults
early_access: false
# Source: defaults
enable_free_tier: true
# Source: defaults
inheritance: false
reviews:
  # Source: Repository YAML (base)
  profile: assertive
  # Source: Repository YAML (base)
  request_changes_workflow: true
  # Source: Repository YAML (base)
  high_level_summary: true
  # Source: defaults
  high_level_summary_instructions: ''
  # Source: Repository YAML (base)
  high_level_summary_placeholder: '`@coderabbitai` summary'
  # Source: defaults
  high_level_summary_in_walkthrough: false
  # Source: Repository YAML (base)
  auto_title_placeholder: '`@coderabbitai`'
  # Source: defaults
  auto_title_instructions: ''
  # Source: Repository YAML (base)
  review_status: true
  # Source: defaults
  review_details: false
  # Source: defaults
  review_progress: true
  # Source: defaults
  commit_status: true
  # Source: defaults
  fail_commit_status: false
  # Source: Repository YAML (base)
  collapse_walkthrough: false
  # Source: Repository YAML (base)
  changed_files_summary: true
  # Source: Repository YAML (base)
  sequence_diagrams: true
  # Source: defaults
  estimate_code_review_effort: true
  # Source: defaults
  assess_linked_issues: true
  # Source: defaults
  related_issues: true
  # Source: defaults
  related_prs: true
  # Source: defaults
  suggested_labels: true
  # Source: defaults
  labeling_instructions: []
  # Source: defaults
  mutually_exclusive_groups: {}
  # Source: defaults
  auto_apply_labels: false
  # Source: defaults
  suggested_reviewers: true
  # Source: defaults
  auto_assign_reviewers: false
  # Source: defaults
  suggested_reviewers_instructions: []
  # Source: defaults
  in_progress_fortune: true
  # Source: Repository YAML (base)
  poem: false
  # Source: defaults
  enable_prompt_for_ai_agents: true
  # Source: Repository YAML (base)
  path_filters:
    - '!**/*.lock'
    - '!**/*.generated.*'
    - '!**/dist/**'
    - '!**/node_modules/**'
    - '!**/*.min.js'
    - '!**/coverage/**'
    - '!**/__snapshots__/**'
    - '!**/playwright-report/**'
    - '!**/*.sourcemap'
    - '!**/worker/dist/**'
    - '!/.cursor/**'
  # Source: Repository YAML (base)
  path_instructions:
    - path: src/domain/geometry/**
      instructions: |
        Review geometry code for:
        - Numerical stability and floating-point edge cases
        - Performance (CI runs test:perf when geometry paths change)
        - Worker offload correctness and mask union edge cases
        - Consistency with combined elimination mask logic
    - path: src/domain/**
      instructions: |
        Review domain code for:
        - Game-rule fidelity (src/domain/ is source of truth for app behavior)
        - ruleSummary strings are canonical user-facing rule text
        - Catalog sync with reference docs when catalogs change
        - Read .cursor/skills/game/SKILL.md conventions when mechanics change
    - path: src/services/firestore/**
      instructions: |
        Review Firestore services for:
        - Serialization round-trips and schema validation
        - Offline write queuing and idempotency
        - Parity with firestore.rules validation helpers
    - path: firestore.rules
      instructions: |
        Review security rules for:
        - Parity with TypeScript validation (validDisabledTools, validGameSize,
          validPlayerRole, admin email in isAdmin())
        - Auth checks on all writes
        - Keep in sync with src/domain/admin/adminAccess.ts and Functions
    - path: src/hooks/sync/**
      instructions: |
        Review sync hooks for:
        - Offline/online transition handling
        - Retry and flush ordering
        - Race conditions on reconnect
    - path: src/services/session/offlineQueue.ts
      instructions: |
        Review offline queue for:
        - Operation ordering and deduplication
        - Schema migration compatibility
        - Flush failure recovery
    - path: functions/**
      instructions: |
        Review Firebase Functions for:
        - Authentication and authorization on callable/HTTP endpoints
        - Firestore write safety and error handling
        - Sentry error reporting
        - Schema parity with client firestoreDocuments
    - path: src/components/**
      instructions: |
        Review UI components for:
        - Broadcast HUD design system (DESIGN.md): dark navy surfaces, Barlow
          Semi Condensed headings, Source Sans 3 body
        - Reuse existing components before new markup
        - Accessibility on interactive controls
    - path: src/routes/**
      instructions: |
        Review routes for:
        - Session lifecycle and role-based access
        - Error boundaries and loading states
        - Design system consistency with DESIGN.md
    - path: src/styles/**
      instructions: |
        Review styles for:
        - Token usage from DESIGN.md (colors, typography, spacing)
        - Motion and reduced-motion preferences
        - Avoid hardcoded colors outside design tokens
    - path: e2e/**
      instructions: |
        Review e2e tests for:
        - Smoke vs full split (E2E_SMOKE=1 for PR CI)
        - Firebase emulator requirement
        - Stable waitFor patterns instead of fixed timeouts
        - Visual snapshot updates only when intentional
    - path: CHANGELOG.md
      instructions: |
        Review changelog for:
        - Player-facing, present-tense bullet copy
        - Sync with src/domain/device/changelog.ts via npm run release:sync
        - Never hand-edit changelog.ts (generated from CHANGELOG.md)
    - path: .changeset/**
      instructions: |
        Review changesets for:
        - Player-visible impact described accurately
        - Wording matches eventual CHANGELOG.md bullets
    - path: '**/*.test.{ts,tsx}'
      instructions: |
        Review tests for:
        - Behavior-focused assertions on changed code paths
        - Edge cases for new logic
        - Prefer vitest related scope over full suite locally
    - path: .github/workflows/**
      instructions: |
        Review CI workflows for:
        - PR smoke e2e vs push full e2e conditions
        - Geometry path filter triggering test:perf
        - Node 24 and emulator cache keys
  # Source: defaults
  abort_on_close: true
  # Source: defaults
  disable_cache: false
  slop_detection:
    # Source: defaults
    enabled: true
  auto_review:
    # Source: defaults
    enabled: true
    # Source: defaults
    description_keyword: ''
    # Source: defaults
    auto_incremental_review: true
    # Source: defaults
    auto_pause_after_reviewed_commits: 5
    # Source: defaults
    ignore_title_keywords: []
    # Source: defaults
    labels: []
    # Source: defaults
    drafts: false
    # Source: defaults
    base_branches: []
    # Source: defaults
    ignore_usernames: []
  finishing_touches:
    docstrings:
      # Source: defaults
      enabled: true
    unit_tests:
      # Source: defaults
      enabled: true
    simplify:
      # Source: defaults
      enabled: false
    autofix:
      # Source: defaults
      enabled: true
    # Source: defaults
    custom: []
  pre_merge_checks:
    # Source: defaults
    override_requested_reviewers_only: false
    docstrings:
      # Source: Repository YAML (base)
      mode: 'off'
      # Source: defaults
      threshold: 80
    title:
      # Source: Repository YAML (base)
      mode: 'off'
      # Source: defaults
      requirements: ''
    description:
      # Source: Repository YAML (base)
      mode: 'off'
    issue_assessment:
      # Source: Repository YAML (base)
      mode: 'off'
    # Source: defaults
    custom_checks: []
  # Source: defaults
  post_merge_actions: []
  tools:
    ast-grep:
      # Source: defaults
      rule_dirs: []
      # Source: defaults
      util_dirs: []
      # Source: defaults
      essential_rules: true
      # Source: defaults
      packages: []
    shellcheck:
      # Source: defaults
      enabled: true
    ruff:
      # Source: defaults
      enabled: true
    markdownlint:
      # Source: defaults
      enabled: true
    github-checks:
      # Source: defaults
      enabled: true
      # Source: defaults
      timeout_ms: 90000
    languagetool:
      # Source: defaults
      enabled: true
      # Source: defaults
      enabled_rules: []
      # Source: defaults
      disabled_rules: []
      # Source: defaults
      enabled_categories: []
      # Source: defaults
      disabled_categories: []
      # Source: defaults
      enabled_only: false
      # Source: defaults
      level: default
    biome:
      # Source: defaults
      enabled: true
    hadolint:
      # Source: defaults
      enabled: true
    swiftlint:
      # Source: defaults
      enabled: true
    phpstan:
      # Source: defaults
      enabled: true
      # Source: defaults
      level: default
    phpmd:
      # Source: defaults
      enabled: true
    phpcs:
      # Source: defaults
      enabled: true
    golangci-lint:
      # Source: defaults
      enabled: true
    yamllint:
      # Source: defaults
      enabled: true
    gitleaks:
      # Source: defaults
      enabled: true
    trufflehog:
      # Source: defaults
      enabled: true
    checkov:
      # Source: defaults
      enabled: true
    tflint:
      # Source: defaults
      enabled: true
    detekt:
      # Source: defaults
      enabled: true
    eslint:
      # Source: defaults
      enabled: true
      e18e:
        # Source: defaults
        enabled: true
    flake8:
      # Source: defaults
      enabled: true
    fbinfer:
      # Source: defaults
      enabled: true
      # Source: defaults
      enable_java: false
    fortitudeLint:
      # Source: defaults
      enabled: true
    rubocop:
      # Source: defaults
      enabled: true
    buf:
      # Source: defaults
      enabled: true
    regal:
      # Source: defaults
      enabled: true
    actionlint:
      # Source: defaults
      enabled: true
    zizmor:
      # Source: defaults
      enabled: true
    pmd:
      # Source: defaults
      enabled: true
    clang:
      # Source: defaults
      enabled: true
    cppcheck:
      # Source: defaults
      enabled: true
    opengrep:
      # Source: defaults
      enabled: true
    semgrep:
      # Source: defaults
      enabled: true
    circleci:
      # Source: defaults
      enabled: true
    clippy:
      # Source: defaults
      enabled: true
    sqlfluff:
      # Source: defaults
      enabled: true
    squawk:
      # Source: defaults
      enabled: true
    trivy:
      # Source: defaults
      enabled: true
    prismaLint:
      # Source: defaults
      enabled: true
    pylint:
      # Source: defaults
      enabled: true
    oxc:
      # Source: defaults
      enabled: true
    shopifyThemeCheck:
      # Source: defaults
      enabled: true
    luacheck:
      # Source: defaults
      enabled: true
    brakeman:
      # Source: defaults
      enabled: true
    dotenvLint:
      # Source: defaults
      enabled: true
    htmlhint:
      # Source: defaults
      enabled: true
    stylelint:
      # Source: defaults
      enabled: true
    checkmake:
      # Source: defaults
      enabled: true
    osvScanner:
      # Source: defaults
      enabled: true
    oasdiff:
      # Source: defaults
      enabled: true
    reactDoctor:
      # Source: defaults
      enabled: true
    presidio:
      # Source: defaults
      enabled: true
    blinter:
      # Source: defaults
      enabled: true
    smartyLint:
      # Source: defaults
      enabled: true
    emberTemplateLint:
      # Source: defaults
      enabled: true
    skillspector:
      # Source: defaults
      enabled: true
    psscriptanalyzer:
      # Source: defaults
      enabled: true
chat:
  # Source: defaults
  art: true
  # Source: defaults
  allow_non_org_members: true
  # Source: Repository YAML (base)
  auto_reply: true
  integrations:
    jira:
      # Source: defaults
      usage: auto
    linear:
      # Source: defaults
      usage: auto
knowledge_base:
  # Source: Repository YAML (base)
  opt_out: false
  web_search:
    # Source: defaults
    enabled: true
  code_guidelines:
    # Source: defaults
    enabled: true
    # Source: defaults
    filePatterns: []
  learnings:
    # Source: Repository YAML (base)
    scope: auto
    # Source: defaults
    approval_delay: 0
  issues:
    # Source: defaults
    scope: auto
  jira:
    # Source: defaults
    usage: auto
    # Source: defaults
    project_keys: []
  linear:
    # Source: defaults
    usage: auto
    # Source: defaults
    team_keys: []
  pull_requests:
    # Source: defaults
    scope: auto
  mcp:
    # Source: defaults
    usage: auto
    # Source: defaults
    disabled_servers: []
  # Source: defaults
  automatic_repository_linking: false
  # Source: defaults
  linked_repositories: []
code_generation:
  docstrings:
    # Source: defaults
    path_instructions: []
  unit_tests:
    # Source: defaults
    path_instructions: []
issue_enrichment:
  auto_enrich:
    # Source: defaults
    enabled: false
  planning:
    # Source: defaults
    enabled: true
    auto_planning:
      # Source: defaults
      enabled: true
      # Source: defaults
      labels: []
  labeling:
    # Source: defaults
    labeling_instructions: []
    # Source: defaults
    auto_apply_labels: false

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 26bb91bc-748e-493e-99a1-f88ba399591c

📥 Commits

Reviewing files that changed from the base of the PR and between 7213d8a and e31c5b0.

📒 Files selected for processing (1)
  • .coderabbit.yaml

Walkthrough

The CodeRabbit configuration retains the assertive review profile and request-change workflow while explicitly disabling docstring, title, description, and issue assessment pre-merge checks.

Changes

Review workflow configuration

Layer / File(s) Summary
Pre-merge check settings
.coderabbit.yaml
Adds explicit pre_merge_checks modes set to "off" for docstrings, title, description, and issue assessment checks while preserving existing review settings.

Estimated code review effort: 1 (Trivial) | ~5 minutes

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/coderabbit-approval-gate

Comment @coderabbitai help to get the list of available commands.

@gelbh gelbh merged commit 9472df5 into main Jul 13, 2026
7 checks passed
@gelbh gelbh deleted the chore/coderabbit-approval-gate branch July 13, 2026 11:51
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