@@ -5,9 +5,14 @@ tone_instructions: >-
55 Prioritize correctness, security, data loss, lifecycle, and regressions; avoid speculative style
66 comments and unrelated refactors.
77
8+ chat :
9+ allow_non_org_members : false
10+
811knowledge_base :
912 web_search :
1013 enabled : true
14+ learnings :
15+ scope : local
1116
1217reviews :
1318 profile : assertive
@@ -24,6 +29,7 @@ reviews:
2429 enabled : false
2530 drafts : false
2631 auto_incremental_review : true
32+ auto_pause_after_reviewed_commits : 0
2733 labels :
2834 - " coderabbit-review-active"
2935
@@ -49,14 +55,19 @@ reviews:
4955 or upstream repositories. Report only concrete, actionable conflicts or failure modes, citing
5056 the relevant repository location or external source. Prioritize correctness, security, data loss,
5157 lifecycle, and test gaps. Do not report generic best practices, unsupported concerns, speculative
52- style comments, or unrelated refactors. Search for existing helpers before suggesting abstractions.
58+ style comments, or unrelated refactors. When changed code introduces a local implementation of a
59+ cross-cutting concern, check whether it bypasses or duplicates an established repository abstraction
60+ or nearby convention. Report only a concrete inconsistency with behavioral or maintenance impact,
61+ and allow intentional deviations.
5362
5463 - path : " **/*.{ts,tsx,js,jsx,mts,mjs,cts,cjs}"
5564 instructions : >-
5665 Check strict typing and exhaustive behavior across normal, boundary, error,
5766 cancellation, retry, and compatibility paths. Verify promises and errors are handled,
5867 existing helpers are reused, and new code introduces no `any`, unjustified double
5968 assertions, floating promises, duplicated helpers, or increased lint suppressions.
69+ When a refactor adds early-return guards that redirect a subset of inputs to a new
70+ code path, confirm the old branches for those inputs are removed or unreachable.
6071
6172 - path : " {**/*.{test,spec}.{ts,tsx,js,jsx},**/__tests__/**}"
6273 instructions : >-
@@ -72,6 +83,11 @@ reviews:
7283 Flag tests that assert in-flight behavior only after the call completes — these cannot
7384 prove the behavior fires during execution. Check that describe block names match the
7485 actual subjects of the tests they contain.
86+ For tests that assert only mock call counts, confirm a corresponding return-value
87+ assertion exists; a regression that silently returns stale fallback data can satisfy
88+ a call-count check. For code with fallback behavior, verify both the cold-start case
89+ (no prior state) and the warm case (prior state exists) are covered, as they exercise
90+ different branches.
7591
7692 - path : " apps/vscode-e2e/**"
7793 instructions : >-
@@ -111,6 +127,9 @@ reviews:
111127 Check persistence and lifecycle invariants: awaited atomic writes, rollback or explicit
112128 partial-failure behavior, cross-window state consistency, stale listeners/watchers,
113129 cancellation, idempotency, and safe restart/resume without lost or duplicated state.
130+ For async functions that read shared mutable state before an `await` and write it back
131+ after, verify the captured reference is still valid when the write executes; a concurrent
132+ mutation during the await can cause a stale snapshot to overwrite a newer state.
114133
115134 - path : " .github/**"
116135 instructions : >-
@@ -124,7 +143,20 @@ reviews:
124143 during release preparation. Verify documentation describes real behavior and contracts,
125144 and deprioritize prose-only nits that do not affect correctness or usability.
126145
146+ finishing_touches :
147+ docstrings :
148+ enabled : false
149+
127150 pre_merge_checks :
151+ override_requested_reviewers_only : true
152+ docstrings :
153+ mode : off
154+ title :
155+ mode : warning
156+ description :
157+ mode : warning
158+ issue_assessment :
159+ mode : error
128160 custom_checks :
129161 - name : Regression evidence
130162 mode : warning
@@ -135,18 +167,32 @@ reviews:
135167 snapshot. Do not demand tests for unchanged behavior, mechanical configuration, or every
136168 branch without a plausible regression scenario. Cite the changed behavior and missing
137169 evidence.
138- - name : Trust and persistence invariants
170+ - name : Security boundaries
171+ mode : error
172+ instructions : >-
173+ Fail only when a concrete changed path leaks secrets or PII, trusts or executes
174+ unvalidated input, or bypasses approval or allowlist controls. Cite the changed path
175+ and a plausible triggering scenario; pass when no such changed path exists.
176+ - name : Persistence integrity
139177 mode : error
140178 instructions : >-
141- Fail only for a concrete changed path that leaks secrets or PII, trusts or executes
142- unvalidated input, bypasses approval or allowlist controls, can lose persisted state due
143- to a missing await, non-atomic write, or omitted default propagation, or leaks lifecycle
144- resources. Cite the path and a plausible triggering scenario; pass when no such changed
145- path exists.
179+ Fail only when a concrete changed persistence path can lose or corrupt state because an
180+ operation is not awaited, a write is non-atomic, rollback or explicit partial-failure
181+ behavior is missing, or a persisted default is not propagated to a consumer. Cite the
182+ changed path and a plausible triggering scenario; pass when no such changed path exists.
183+ - name : Lifecycle resource cleanup
184+ mode : warning
185+ instructions : >-
186+ Fail only when a concrete changed lifecycle path can leak a listener, watcher, provider,
187+ timer, task, or other resource, or can duplicate work after cancellation, disposal, or
188+ restart. Cite the changed path and a plausible triggering scenario; pass when no such
189+ changed path exists.
146190
147191 tools :
148192 eslint :
149193 enabled : true
194+ github-checks :
195+ enabled : true
150196 actionlint :
151197 enabled : true
152198 shellcheck :
0 commit comments