-
Notifications
You must be signed in to change notification settings - Fork 309
Expand file tree
/
Copy path.coderabbit.yaml
More file actions
184 lines (156 loc) · 6.69 KB
/
.coderabbit.yaml
File metadata and controls
184 lines (156 loc) · 6.69 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
# yaml-language-server: $schema=https://schema.coderabbit.ai/schema.v2.json
language: en-US
knowledge_base:
code_guidelines:
enabled: true
file_patterns:
- ".github/copilot-instructions.md"
- "v1-release/plan.md"
- "v1-release/04-components-audit.md"
- "v1-release/08-selection-and-menu-api-spec.md"
- "v1-release/changelog.md"
learnings:
scope: local
linked_repositories:
- repository: "frappe/gameplan"
- repository: "frappe/crm"
- repository: "frappe/lms"
- repository: "frappe/builder"
- repository: "frappe/drive"
- repository: "frappe/insights"
reviews:
profile: chill
high_level_summary: true
review_status: false
review_details: 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
suggested_labels: false
suggested_reviewers: false
poem: false
enable_prompt_for_ai_agents: false
auto_review:
enabled: true
drafts: false
auto_incremental_review: false
ignore_title_keywords:
- "WIP"
- "[skip review]"
ignore_usernames:
- "dependabot[bot]"
- "renovate[bot]"
- "github-actions[bot]"
path_filters:
- "!/node_modules/"
- "!/dist/"
- "!/yarn.lock"
- "!/docs/.vitepress/cache/"
- "!/docs/meta/"
- "!/docs/content/auto-imports.d.ts"
- "!/docs/content/components.d.ts"
- "!/cypress/screenshots/"
path_instructions:
- path: "/**/*.{vue,ts,js}"
instructions: |
This repository is frappe-ui, a reusable Vue 3 component library and utility package, not an app codebase.
Focus review comments on:
- real bugs and regressions
- public API stability and backwards compatibility
- Vue 3 Composition API correctness
- TypeScript safety
- accessibility, focus management, and keyboard interactions
- consistency with existing frappe-ui patterns
Avoid noise:
- do not comment on formatting, Tailwind class ordering, or subjective style unless it hides a bug
- do not suggest app-level patterns like state management, route architecture, or page composition
- do not suggest backend changes unless the file is under /frappe/
- path: "/src/components/**/*.{vue,ts}"
instructions: |
Review as a component-library maintainer.
Prioritize:
- props, emits, slots, and exposed API consistency
- correct v-model patterns where applicable
- accessibility semantics, focus handling, and keyboard support
- preserving existing public APIs unless the PR clearly intends a breaking change
- accurate public types because docs are generated from component types and JSDoc
Prefer high-signal comments over speculative refactors.
- path: "/src/data-fetching/**/*.{ts,js}"
instructions: |
Focus on reactive correctness, API contracts, caching behavior, loading and error states, and side effects.
Flag:
- stale reactive dependencies
- cache invalidation mistakes
- race conditions
- API shape or type regressions
Avoid suggesting generic fetch or axios patterns when existing frappe-ui composable patterns are intentional.
- path: "/src/resources/**/*.{ts,js}"
instructions: |
This is legacy resource-layer code kept for compatibility.
Be conservative with suggestions.
Prefer comments only for real bugs, compatibility risks, or unsafe side effects.
Do not push large rewrites just to modernize style.
- path: "/frappe/**/*.{vue,ts,js}"
instructions: |
This folder contains higher-level Frappe-specific components and helpers built on top of the library.
Focus on:
- integration correctness
- backwards compatibility for consuming apps
- API boundary clarity between generic library code and Frappe-specific code
Be conservative with suggestions that would force wide downstream app changes unless the PR is clearly doing that intentionally.
- path: "/docs/**"
instructions: |
Only comment when docs are wrong, outdated, misleading, or missing important usage or accessibility guidance.
Ignore wording-only, tone-only, or formatting-only suggestions.
- path: "/v1-release/**"
instructions: |
These files are planning and release-support docs, not implementation code.
Focus on:
- contradictions between planning docs
- outdated status, blockers, or migration notes
- missing consumer-facing deprecation or migration guidance
- accepted-direction docs drifting into speculation without making status clear
Ignore editorial wording tweaks unless they change meaning.
- path: "/src/components/**/stories/**"
instructions: |
Review stories for misleading examples, missing important states, or missing accessibility-relevant coverage.
Ignore presentation-only nits.
pre_merge_checks:
docstrings:
mode: off
issue_assessment:
mode: off
custom_checks:
- name: changelog
mode: error
instructions: |
The PR description must include a `## Changelog` section.
The section must contain one of:
- A short (one or two sentences) description of the user-facing change,
written so it could be pasted into v1-release/changelog.md under the
Unreleased heading. Phrase it for consumers of the library, not
contributors. Mention the component or API surface affected.
- The literal text `None — <reason>` where `<reason>` briefly states
why the PR has no user-facing impact (examples: "internal refactor",
"test only", "docs only", "build config only").
Fail the check when:
- The `## Changelog` heading is missing entirely.
- The section is empty or contains only placeholder text
(e.g. "TBD", "TODO", "n/a", the HTML comment from the PR template).
- The section says "None" but lacks a reason.
Pass the check when the section contains either a real consumer-facing
entry or an explicit `None — <reason>` declaration.
Reference v1-release/changelog.md for the existing entry style. The
changelog's own guidance says NOT to log internal refactors, tests, or
planning/doc maintenance unless they affect consumers — so `None — ...`
is the correct choice for those PRs, not a fabricated entry.
tools:
semgrep:
enabled: true
config_file: ".semgrep.yml"
languagetool:
enabled: false