forked from supabase/supabase
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.coderabbit.yaml
More file actions
92 lines (87 loc) · 5.26 KB
/
Copy path.coderabbit.yaml
File metadata and controls
92 lines (87 loc) · 5.26 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
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
# Don't inherit organization-level settings (they're tuned for other repos);
# this config is self-contained and unset values use CodeRabbit defaults.
inheritance: false
# Enrich linked issues with related code and potential solutions during review.
issue_enrichment:
auto_enrich:
enabled: true
reviews:
# Skip machine-generated / vendored files (mirrors .prettierignore). Keeps
# reviews focused on hand-written code and preserves rate-limit budget on
# large codegen diffs.
path_filters:
- '!pnpm-lock.yaml'
- '!packages/api-types/types/**' # generated API types (api.d.ts, platform.d.ts)
- '!supabase/functions/common/database-types.ts' # generated by `pnpm generate:types`
- '!**/routeTree.gen.ts' # TanStack Router generated
- '!**/__generated__/**'
- '!apps/docs/features/docs/generated/**'
- '!apps/www/.generated/**'
- '!apps/design-system/__registry__/**'
- '!apps/ui-library/__registry__/**'
- '!apps/ui-library/public/r/**' # registry output
- '!packages/icons/__registry__/**'
- '!packages/icons/src/icons/**' # generated icon components
# Targeted, path-scoped review guidance, version-controlled alongside the code.
path_instructions:
- path: 'packages/common/telemetry-constants.ts'
instructions: |
Strictly enforce event naming: [object]_[verb] in snake_case. Only approved
verbs: opened, clicked, submitted, created, removed, updated, retrieved,
intended, evaluated, added, enabled, disabled, copied, exposed, failed,
converted. Properties must be camelCase for new events (match existing
convention when adding to existing events). Flag any usage of
useSendEventMutation. Verify @group Events and @source JSDoc tags are
accurate. Check that new interfaces are added to the TelemetryEvent union type.
- path: 'apps/studio/components/**/!(*.test).tsx' # production components only, not tests
instructions: |
Only suggest adding PostHog event tracking (via useTrack from
lib/telemetry/track, [object]_[verb] snake_case) when a new user-facing
interaction is growth-relevant: e.g. first-use of a feature, onboarding steps,
project/org creation, upgrade/billing actions, enabling or disabling a product
feature, or any action that signals activation or retention. Do not suggest
tracking for: passive views, page loads, UI-only state changes (e.g. expanding
a panel, switching tabs in a settings page), developer/internal tooling
interactions, or interactions clearly unrelated to product adoption.
- path: 'apps/studio/pages/**'
instructions: |
Studio is mid-migration from the Next.js pages router (apps/studio/pages/**)
to TanStack Start (apps/studio/routes/**). Both runtimes ship side-by-side, so
every URL served from pages/** has a mirror in routes/**. See
apps/studio/TANSTACK_MIGRATION.md for the full route map and strategy.
Leave a comment reminding the author to check whether this change needs to be
mirrored into the corresponding apps/studio/routes/** file so the two builds
don't silently drift:
- Most route files re-export the page's default export (Path A), so pure
page-body edits propagate automatically — no mirror needed.
- A mirror IS needed when the change touches something the route file
duplicates rather than imports: getLayout / layout wrapping, page title or
other props the route encodes as staticData, withAuth / auth gating, or the
route/redirect path itself.
- A brand-new page under pages/** needs a matching new route under routes/**
(and a checklist entry in apps/studio/TANSTACK_MIGRATION.md).
- Do NOT suggest deleting the pages/** file — the Next file stays load-bearing
for both runtimes until the final cleanup pass (tracked in FE-3106).
Keep this a reminder to verify, not a hard blocker: if no mirror is required,
say so briefly rather than forcing a change.
# Applies our internal engineering skills (.claude/skills/) as CodeRabbit review
# guidelines. The skills are the single source of truth — they are consumed
# directly, with no copy of their content elsewhere.
#
# `applyTo` decouples where a guideline file lives from the code it governs.
# Without it, CodeRabbit scopes a guideline file to its own directory and below;
# our skills live in .claude/skills/, which contains no code, so they would never
# reach apps/studio. `applyTo` points them at the right paths instead.
knowledge_base:
code_guidelines:
filePatterns:
# Studio code conventions — React/TS, UI patterns, composition, data fetching, errors
- files: '.claude/skills/{studio-best-practices,studio-ui-patterns,vercel-composition-patterns,studio-queries,studio-error-handling}/SKILL.md'
applyTo: 'apps/studio/**/*.{ts,tsx}'
# Studio unit / component test conventions
- files: '.claude/skills/{studio-testing,studio-mock-api-tests}/SKILL.md'
applyTo: 'apps/studio/**/*.test.{ts,tsx}'
# Studio end-to-end (Playwright) test conventions
- files: '.claude/skills/studio-e2e-tests/SKILL.md'
applyTo: 'e2e/studio/**/*.spec.ts'