Repository navigation
Expand file tree
/
Copy path.coderabbit.yaml
More file actions
260 lines (235 loc) · 8.5 KB
/
Copy path.coderabbit.yaml
File metadata and controls
260 lines (235 loc) · 8.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
language: en-US
reviews:
profile: chill
request_changes_workflow: false
# Walkthrough: clean and minimal
high_level_summary: true
high_level_summary_in_walkthrough: true
high_level_summary_placeholder: "@coderabbitai summary"
review_status: true
review_details: false
commit_status: true
fail_commit_status: false
collapse_walkthrough: true
changed_files_summary: false
sequence_diagrams: false
estimate_code_review_effort: false
assess_linked_issues: false
related_issues: false
related_prs: false
poem: false
in_progress_fortune: false
# Labels & reviewers: handled by existing CI workflows
suggested_labels: false
suggested_reviewers: false
auto_apply_labels: false
auto_assign_reviewers: false
# AI agent prompt in inline comments
enable_prompt_for_ai_agents: true
# Exclude generated/vendored/lock files from review
path_filters:
- "!**/.sqlx/**"
- "!**/bun.lock"
- "!**/pnpm-lock.yaml"
- "!**/Cargo.lock"
- "!**/target/**"
- "!**/node_modules/**"
- "!**/dist/**"
- "!packages/loro-mirror/**"
- "!apps/web/src/lib/service-clients/**/generated/**"
- "!**/*.gen.ts"
# Path-specific review instructions
path_instructions:
- path: "**/*.rs"
instructions: |
Rust review guidelines (from project conventions):
- New crates must have `#![deny(missing_docs)]` in `lib.rs`.
- Only look for and report semantic bugs that the typesystem will not catch. This includes incomplete integration, incorrect environment variables, or any other logic error that will compile as valid rust.
- Cross-check database usage changes against migrations in the same PR. Migrations deploy BEFORE services: flag any migration that breaks pre-PR service code, even if the new Rust code compiles. In particular, dropping a column/table in the same PR that removes its usage is unsafe; usage removal must be fully deployed first (see docs/development/database.md, "Safe database schema changes").
- path: "crates/**/*_db_client/**"
instructions: |
Database client review guidelines:
- Verify that any new/changed SQL queries have corresponding `.sqlx` cache updates (`just prepare_db`).
- Some table/column names are camelCased — ensure `SELECT "camelCase" as "snake_case"` aliasing is correct.
- Confirm migrations are reversible or have a clear rollback strategy.
- Check that tests are updated when table structures change.
- path: "apps/web/**/*.{ts,tsx}"
instructions: |
Frontend review guidelines (from project conventions):
- Never use `any` — use proper types or `unknown` with type guards.
- All network calls to service clients MUST go through TanStack Query in the `queries` package. Do NOT call service clients directly from components or other packages.
- Use `match` from `ts-pattern` for exhaustive switch/case logic.
- Use semantic color tokens instead of raw Tailwind color classes.
- Check `solid-primitives` before writing custom reactive utilities.
- Avoid deprecated SolidJS APIs: `blockSignals`, `blockMemos`, `blockResources`, etc.
- Primitive UI components should be pure and prefer composition over complex global state/context.
- If a Lexical Node is created or modified with breaking changes, the lexical version counter must be incremented (`apps/web/src/lib/core/component/LexicalMarkdown/version.ts`).
- New or moved query call sites must have a deliberate Suspense boundary — walk up the tree from the call site and check which boundary would catch it (see FE-29 in .agents/rules/web/data.md).
- path: "infra/**/*.ts"
instructions: |
Infrastructure review guidelines:
- This is Pulumi IaC code. Verify that resource names follow existing naming conventions.
- Check that secrets are not hardcoded — they should come from Pulumi config or AWS Secrets Manager.
- Ensure stack outputs are documented and referenced correctly across stacks.
- path: "**/*.sql"
instructions: |
SQL review guidelines:
- Explicitly check migration/service compatibility across the entire PR. Database migrations deploy BEFORE service changes, so migrations must work with currently deployed (pre-PR) code, not just the updated code.
- Flag as a deployment-safety bug any column/table drop in the same PR that removes its service usage. Require usage removal first, confirmation that it is fully deployed to all consumers, then a separate cleanup PR; merging the usage-removal PR is not sufficient.
- Also flag column/table renames, incompatible type changes, and new constraints or required columns that break existing reads/writes. Require staged, backward-compatible changes as described in docs/development/database.md ("Safe database schema changes"). Do not flag combined schema/service PRs solely for combining changes when the migration remains compatible with deployed code.
- Verify migrations are idempotent where possible (use IF NOT EXISTS, etc.).
- Check index strategy — composite indexes should match common query patterns.
- Confirm camelCased column names are handled correctly in Rust SQLx queries.
- path: ".github/workflows/**"
instructions: |
CI/CD review guidelines:
- Verify that secrets are referenced correctly and not exposed in logs.
- Check for pinned action versions (use SHA, not tags).
- Ensure workflow triggers are appropriate (push vs PR vs manual).
auto_review:
enabled: true
auto_incremental_review: false
auto_pause_after_reviewed_commits: 5
drafts: false
ignore_title_keywords:
- "WIP"
- "DO NOT MERGE"
- "wip"
labels: []
base_branches: []
ignore_usernames:
- "dependabot[bot]"
- "renovate[bot]"
finishing_touches:
docstrings:
enabled: false
unit_tests:
enabled: false
simplify:
enabled: false
pre_merge_checks:
docstrings:
mode: off
title:
mode: warning
requirements: "Title should follow conventional commits format (feat:, fix:, chore:, etc.) and be under 72 characters."
description:
mode: warning
issue_assessment:
mode: warning
# Only enable tools relevant to this repo's tech stack
tools:
# JS/TS: Biome runs in CI already
biome:
enabled: false
eslint:
enabled: false
oxc:
enabled: false
# Rust: clippy runs in CI already
clippy:
enabled: false
# Shell & CI: these run in CI already
shellcheck:
enabled: false
actionlint:
enabled: false
# Config files
yamllint:
enabled: true
hadolint:
enabled: true
# Security
gitleaks:
enabled: true
trufflehog:
enabled: true
osvScanner:
enabled: true
# GitHub integration
github-checks:
enabled: true
timeout_ms: 90000
# AST analysis. rule_dirs points at the same custom rules that CI runs
# (sgconfig.yml at the repo root), so bot comments match CI failures.
ast-grep:
essential_rules: true
rule_dirs:
- "rules/ast-grep"
# Disabled: not used in this repo
ruff:
enabled: false
markdownlint:
enabled: false
languagetool:
enabled: false
swiftlint:
enabled: false
phpstan:
enabled: false
phpmd:
enabled: false
phpcs:
enabled: false
golangci-lint:
enabled: false
checkov:
enabled: false
detekt:
enabled: false
flake8:
enabled: false
rubocop:
enabled: false
buf:
enabled: false
regal:
enabled: false
pmd:
enabled: false
clang:
enabled: false
cppcheck:
enabled: false
semgrep:
enabled: false
opengrep:
enabled: false
circleci:
enabled: false
sqlfluff:
enabled: false
prismaLint:
enabled: false
pylint:
enabled: false
shopifyThemeCheck:
enabled: false
luacheck:
enabled: false
brakeman:
enabled: false
dotenvLint:
enabled: false
htmlhint:
enabled: false
checkmake:
enabled: false
chat:
auto_reply: true
knowledge_base:
opt_out: false
web_search:
enabled: true
code_guidelines:
enabled: true
filePatterns:
- "**/CLAUDE.md"
- "**/AGENTS.md"
- ".agents/rules/**/*.md"
- "docs/development/database.md"
- "**/.cursor/rules/*.mdc"
- "**/.cursor/commands/*.md"
issue_enrichment:
auto_enrich:
enabled: false