-
Notifications
You must be signed in to change notification settings - Fork 60
Expand file tree
/
Copy path.coderabbit.yaml
More file actions
261 lines (232 loc) ยท 12.9 KB
/
Copy path.coderabbit.yaml
File metadata and controls
261 lines (232 loc) ยท 12.9 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
261
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
# fount โ CodeRabbit๏ผๅฎก็พๆๅ + ้็นๅฎกๆฅ๏ผไธๅซๅผๅๅทฅๅ
ท็จๆณ๏ผ
language: 'zh-CN'
tone_instructions: >-
็ดๆฅใ็ฎๆดใ็ๅฉใไผๅ
ๆๅบ่ฟ่ๅฎก็พไธๆถๆ็้ฎ้ข๏ผไธๅฎขๅฅใไธๅค่ฟฐ diffใ
ไธ็ปๅๅๅ
ผๅฎนๆ้ฒๅพกๆง่กฅไธๅปบ่ฎฎใๆๅไปฅ็ฎๆด้ซๆไธบๅ๏ผๅคง่ๆน็ปๆๆถๆ้ปๆกใ
early_access: true
reviews:
profile: assertive
request_changes_workflow: true
high_level_summary: true
high_level_summary_instructions: >-
็จไธญๆๅ็ฎ็ญๆ่ฆ๏ผๆนไบไปไนใไธบไฝใๆๆ ๆถๆ/ๅฎก็พ้ฃ้ฉใไธ่ฆๅๆไปถๆธ
ๅใ
poem: false
review_status: true
collapse_walkthrough: true
sequence_diagrams: false
estimate_code_review_effort: true
enable_prompt_for_ai_agents: true
in_progress_fortune: false
path_filters:
- '!**/*.svg'
- '!**/desktop.ini'
path_instructions:
# โโ ๅ
จๅฑๅฎก็พไธๆถๆ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- path: '**'
instructions: |
่ฟๅไธๅไปปไธๆก้ฝ่ฆๆๅบ๏ผๅนถ็ปๅบๆด็ฎๆด็ๆนๆณใ
ไธ่ฆๅปบ่ฎฎใๅ
ๅ
ผๅฎนๆง่กไธบๅๆ
ขๆ
ขๅ ใๆๅ ้ฒๅพกๆงๆ ก้ชใไปฅ้ฒไธไธใใ
## ๅฝๅ
- ๅฏ่ฏปๅ
จ่ฏ๏ผ`index` / `userMessage` / `context` / `button`๏ผ็ฆๆญข `i`/`msg`/`ctx`/`btn`/`S`/`aj.json` ็ญ็ๅใ
## ็ฒพ็ฎๅๅ
- ๆๆไธ่ดๅณๅฏ๏ผๅคง่ๅ ๅไฝ๏ผไธ่ฟฝๆฑๆๅฐ diff๏ผ่ฟฝๆฑๆ็ปไบง็ฉ็ฎๆดไผ้
้ซๆใ
## ้ฒๅพกๆงไธไฟกไปป่พน็
- ไธไธบ่ฐ็จ่
็่ ขๅ้ฒๆค๏ผๅๅพๆฐๆฎ็ดๆฅ็ธใ
- ๅๅ็ซฏไบไฟก๏ผๅ็ซฏไฟกไปปๆฌๆบๅ ่ฝฝ็ๆไปถใ
- ๅฏไธ่ฆๆธ
ๆซ็ๆฏ**้ๆฌๆบ็ฝ็ปๅ
ฅ็ซ**๏ผP2P / federation / ่ฟ็ซฏ่็น๏ผใ
## ๆถๆ
- ็ฒพ็ฎใDRYใSRPใไธๅๅๅ
ผๅฎน๏ผไธๅ `@deprecated` / ้ๅฏผๅบ๏ผๅ ๅฐฑๅ ๅนฒๅใ
- ๅ
ผๅฎนๆงๆฐๆฎๆฏ็จๆทๆๅ็ฌๅฏผๅ
ฅๆจกๅ็ไบ๏ผไธๅฝๅไธๅกๆจกๅๆ ๅ
ณใ
- ไธไธบ้กถๅฑๆจกๅๅจๅบๅฑ็นๅค๏ผๆฏไธชๆจกๅๅชๅ่ชๅทฑ่ฏฅๅ็ไบใ
- ไปฃ็ ๆพๅฏนๆไปถ/่ทฏๅพ๏ผ่ฏฅๅปบ็ฎๅฝๅฐฑๅปบ๏ผ`xxx/index.mjs` + ๅญๆจกๅ๏ผ๏ผ็ฆๆญข `xxx_aae.mjs` ๅผๆๅนณๆๅฑใ
- ไธไธบๅ
ฌๅ
ฑๅบๅ ๅชๆๅกไธไธคไธชๆจกๅ็็ๅฑ้ป่พใ
- ็ฆๆญขๅจๆบ็ /ๆต่ฏ/ๅคนๅ
ท/ๆณจ้ไธญๅ่งๅ้็จ็ขๅท๏ผ`M1`/`G4` ็ญ๏ผ๏ผๅชๆ้ขๅ่ฏญไนๅฝๅใ
- ๆจกๅๅ๏ผ่ฝๅไผๅ
ๅๆ่ชๅ
ๅซ part๏ผ`main.mjs`๏ผ๏ผๅฏน็
ง `@src/decl/` APIใ
- part / shell / plugin ไปฃ็ ็ฆๆญข `node:child_process`๏ผOS ๅฏๅจๅช่ตฐๆขๆๅบๅฃใ
่ช้ฎ๏ผ่ฟ่ถณๅคไผ้
ๅ๏ผๆๆฒกๆๅพๅ
ฌๅ
ฑๅฑๅกๅฑ้จ็นไพ๏ผ
# โโ ้ป่พไปฃ็ ๏ผ้ html/xml/svg/css๏ผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- path: '!**/*.{html,htm,xml,svg,css}'
instructions: |
## ๅฝๅไธไฝ็จๅ
- ไธ็จ `_` ๅฝ็งๆๅ็ผ๏ผ็ฑป็งๆ็จ่ฏญ่จ่ชๅธฆๆบๅถ๏ผJS ็จ `#`๏ผ๏ผๅฆๅๅซๅฏผๅบใ
- ่ฝ็จๆจกๅ/ๅ
็บง็ปๅฎ่งฃๅณๆถ๏ผ็ฆๆญขๅพๅ
จๅฑๅฏน่ฑกไธๆไธ่ฅฟใ
## ไปฃ็ ็ฎๅ
- ็ฆๆญขๅช็จไธๆฌก็ไธดๆถ็ปๅฎ๏ผๅ
่ๅฐไฝฟ็จๅคใ
- ไผๅ
็ญๅ้ใๆๅๆฃๆตใ็ดๆฅ่ฟๅ๏ผ
- `if (!member || member.status !== 'active')` โ `if (member?.status !== 'active')`
- `event.content && typeof event.content === 'object' ? event.content : {}` โ `event?.content || {}`
- `type !== 'send' && type !== 'delete'` โ `!['send', 'delete'].includes(type)`
- `const result = xxx; return result` โ `return xxx`
- `typeof content === 'string' ? content : content && typeof content.text === 'string' ? content.text : ''` โ `content?.text || content || ''`
- `typeof channelId === 'string' && /^[\w.-]+$/.test(channelId) && channelId.length <= 128` โ `/^[\w.-]{1,127}$/.test(String(channelId))`
- `if (xxx) { console.log(xxx); return }` โ `if (xxx) return console.log(xxx)`
- ็ฑปๅ็้ฎไธ้ฒๅพกๆง็ผ็จๆฏๅๅณ้ใ
- ๆ ๆไน็่ฐ่ฏ่พๅบไธ่ฆ๏ผไป
error/warning๏ผCI/workflow ่ฟๅบฆไธ่ฏๆญ่พๅบ้คๅค๏ผใ
- ๆช้ๅค้ป่พใๆ ๆไนๅๆฏใๅบๅฑๅฏน้กถๅฑ็็นๅคใ
# โโ CI / GitHub Actions๏ผ่ฏๆญๆฅๅฟๅๆณ๏ผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- path: '.github/workflows/**,.github/workflows/scripts/**'
instructions: |
- ๆบๅจๅฏ่ฏป็ปๆ่กใ้่ฏฏใ่ญฆๅใ่ถ
ๆถ่ฏๆญ้ฝๅบไฟ็๏ผๅคไฝๅชๅฃฐไธ็ๆญฃๆ็จ็่ฏๆญไธ่ฆๆททไธบไธ่ฐใ
# โโ ๅ็ซฏ JS๏ผpages + part public/๏ผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- path: 'src/public/pages/**/*.mjs,src/public/pages/**/*.js,src/public/parts/**/public/**/*.mjs,src/public/parts/**/public/**/*.js'
instructions: |
- ็ฆๆญขๅคงๆฎตๆผๆฅ HTML๏ผ็จ `renderTemplate` / `mountTemplate` / `withTemplates`ใ่ทจ shell ๅ
ฑไบซๆจกๅ็ฆๆญข่ฃธ่ฐ `usingTemplates`ใ
- ้ๅฟ
่ฆไธ็จ `geti18n`๏ผ้ๆ UI ็จ `data-i18n` / `setElementI18n`ใ`promptDialog` ็ญไผ i18n key๏ผไธ่ฆๅ
`geti18n` ๅไผ ๅ
ฅใ
- ๅค็จ `@src/public/pages/scripts/`๏ผ็ฆๆญข shell ๅ
ๅๆไธไปฝใ
- ไธป้ข่ตฐ `applyTheme()`๏ผๅฏน่ฏๆกไผๅ
`promptDialog` / `openDialogFromTemplate`ใ
- ็จๆท/ๅจๆๅ
ๅฎนๆ `user-content`๏ผไธๅฏไฟก SVG ๅคดๅๅ `svg-inliner-ignore`ใ
- ๆชๅฑ็คบๅฎๆด็ UI ็จ `aria-hidden` / `inert` / `hidden`๏ผไธ่ฆๅช็จ `opacity: 0`ใ
# โโ Markup โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- path: '**/*.html,**/*.htm,**/*.xml,**/*.svg'
instructions: |
- ่ฝๅฐไธๅฑๅฐฑๅฐไธๅฑ๏ผๆ ่ฏญไนใๆ ๆ ทๅผใๆ ่กไธบ็ๅ
่ฃ
่็นๅ ๆใ
- HTML ไผๅ
DaisyUI ็ฑปๅ๏ผไธ่ฆๅๅฅ่ชๅฎไนๅฃณใ
- ๆจกๆๆจกๆฟๅชๆไพ `modal-box`๏ผ+ ๅฏ้ `modal-backdrop`๏ผ๏ผไธ่ฆๅๅฅ `<dialog>`ใ
- ๅไธๆๅพๅช็ไธๅฅ็ปๆ๏ผ็ฆๆญข่ฟไน็ธๅ็ๅคงๅ markup ๅคๅถใ
- ้ๆๅฏ่งๆๆก็จ `data-i18n`๏ผไธๅฏ่งๆงไปถไธ่ฆ็กฌๅก่งฃ้ๆงๆๆกใ
- ็ปๆๅฝๆจกๆฟใ่กไธบๅฝ JS๏ผ็ฆๆญขๅจ JS ้ๆผๆฌ่ฏฅ่ฟๆจกๆฟ็ๅคงๆฎต HTMLใ
# โโ CSS โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- path: '**/*.css'
instructions: |
- ่ถๅฐ่ถๅฅฝ๏ผ่ฝๅ ๅๅ ใไผๅ
DaisyUI / ็ฐๆไธป้ขๅ้๏ผ่ฝ็จ็ปไปถ็ฑปๅฐฑไธ่ฆๆๅๅนณ่กๆ ทๅผใ
- ่ชๅฎไน่งๅๅช่กฅ DaisyUI / ไธป้ข่ฆ็ไธไบ็็นใ
- ้ฟๅ
ๆ ็จๅตๅฅใ้ๅค้ๆฉๅจใๆญป่งๅใ้ฒๅพกๆง่ฆ็ใ
- ไธ่ฆ้ๅฃฐๆ `.hidden`๏ผๅฑ้จ `display: flex|grid` ไธๅพๆๅทฒ้่ UI ้กถๅบๆฅใ
- ๅไธ่ง่งๆๅพๅๅนถ่งๅ๏ผไธๅๆไธ DaisyUI ๅฒ็ช็ๅทฅๅ
ท็ฑป่ฏญไนใ
# โโ ๅ็ซฏ้ๆไบคๅ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- path: 'src/public/**/*.html,src/public/**/*.css'
instructions: |
- ่ฝ้ DaisyUI / ็ฐๆ็ฑป่งฃๅณ็ไธ่ฆๆฐๅข CSS๏ผ่ฝ้ ๆดๆ DOM ่งฃๅณ็ไธ่ฆๅ ้ๆฉๅจใ
- ไธป้ขๅช่ตฐๆขๆ DaisyUI ้้๏ผไธ่ฆๅนณ่ก็ปดๆค้ข่ฒ่กจใ
# โโ i18n โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- path: 'src/public/locales/**'
instructions: |
- ้ฎๆ ๏ผshell ๆๆกๆ shell id ไธ๏ผๅฆ `chat.profile`๏ผ๏ผๅ
ฑไบซๆ `util.*`๏ผ้กถๅฑไป
`tips` / `404` / `directoryListing` / `fountConsole`ใ
- emoji ้ค้ไธๅพๅทฒๅฆๅไธๅบๅบ็ฐๆๅญ๏ผ่ๆฏไฝฟ็จemoji่ฟ่กๆ่ฏใ
# โโ ๅ็ซฏ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- path: 'src/server/**/*.mjs,src/server/**/*.js,src/server/**/*.ts,src/scripts/**/*.mjs,src/scripts/**/*.js,src/public/parts/**/src/**/*.mjs,src/public/parts/**/src/**/*.js,src/public/parts/**/main.mjs'
instructions: |
- ๆฐ่ฝๅไผๅ
ๅๆ part๏ผๅฏน็
ง `@src/decl/`๏ผ็ๅฝๅจๆ่ตฐ `parts_loader`ใ
- ๆณจๅ่กจ่ตฐ `fount.json` registries ไธ `/api/registries/:name`ใ
- ไฟกไปปๆฌๆบๆไปถไธๅๅ็ซฏ็บฆๅฎ๏ผๆ ก้ช้ไธญๅจ็ฝ็ป่พน็ใ
- ๆๆก็จๆขๆ locale helper๏ผๅฆ `localesForUser`๏ผ๏ผไธ่ฆๅผๅ
ฅๆต่งๅจ i18n APIใ
- path: 'src/server/p2p_server/**'
instructions: |
- ๅ
ฅ็ซ๏ผdiscovery / link / WS federation / remoteIngest / part_query ็ญ๏ผๅฟ
้กปๅจ่พน็ๆ ก้ชใ
- ่ฝ็ๅ็ๆฌๅฐๆฐๆฎไธ่ฆ้ๅค่ฟๅบฆๆธ
ๆด๏ผ่พน็ๆ ก้ชๅซๆธ่ฟ็บฏๆฌๅฐ่ทฏๅพใ
- path: 'src/public/parts/**'
instructions: |
- Part ่ชๅ
ๅซ๏ผๆ `main.mjs`๏ผไปฟ็ฐๆ็ปๆใ
- ้ขๅ้ป่พ็ๅจ part ๅ
๏ผไธ่ฆๆ part ็นไพๅก่ฟๅ
ฌๅ
ฑ `pages/scripts`ใ
- Emoji UI/ๆๅบๅจๆ ธๅฟ `features/emoji/` + `emojiPicker`๏ผchat/social ๅชไพ็ป providerใ
- ๅซๆ DOM ไปฃ็ ๅก่ฟ part ็ `src/`ใ
# โโ ๆต่ฏ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- path: '**/test/**,**/tests/**,**/*.test.mjs,**/*.spec.mjs,**/*.test.js,**/*.spec.js'
instructions: |
- ็ฆๆญขไธบ่ฎฉๆต่ฏ้่ฟ่ๅๅผฑไบงๅ้ป่พๆ watcherใ
- ๆญ่จไธๆพๅฎฝ๏ผๅคนๅ
ทๆ้ขๅ่ฏญไนๅฝๅ๏ผ็ฆๆญข้็จ็ขๅทใ
# โโ Shell ๅ
ฅๅฃ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- path: 'path/**/*.ps1,path/**/*.sh'
instructions: |
- `fount.ps1` / `fount.sh` ่กไธบๅฏน้ฝใ
- ้ฟๅ
ๆ ๆไน้ฒๅพกๅๆฏไธไธๆฌกๆงไธดๆถๅ้ใ
# โโ ๆๆกฃ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- path: '**/AGENTS.md,docs/**/*.md'
instructions: |
- AGENTS.md ไฟๆ็ญใๅฏๆง่กใไธไปฃ็ ไธ่ดใ
- ่ฎพ่ฎก/่ฏๅฎกๆๆกฃๅฏๅซ้็จ็ขๅท๏ผไธ่ฆๅปบ่ฎฎๅ่ฟๆบ็ ใ
auto_review:
enabled: true
auto_incremental_review: true
ignore_title_keywords:
- 'draft'
- 'WIP'
- 'DO NOT MERGE'
drafts: false
base_branches:
- 'master'
finishing_touches:
docstrings:
enabled: false
unit_tests:
enabled: false
simplify:
enabled: true
autofix:
enabled: true
pre_merge_checks:
docstrings:
mode: 'off'
title:
mode: 'warning'
requirements: >-
็ฎๆด่ฏดๆๅๆด็ฎ็๏ผwhy๏ผ๏ผ้ฟๅ
็บฏๆไปถๅ่กจๆ็ฉบ่ฏๆ ้ขใ
description:
mode: 'warning'
issue_assessment:
mode: 'off'
custom_checks:
- name: 'ๅฎก็พไธ็ฎๆด'
mode: 'warning'
instructions: >-
ไธๆฌกๆงไธดๆถ็ปๅฎใ็็ผฉๅใๅคไฝ็ฑปๅ็้ฎ/้ฒๅพกใ@deprecated/้ๅฏผๅบใๅ
ผๅฎนๆงๆฐๆฎๅๆฏใ
markup ๆ ๆไนๅ
่ฃ
ๆ็ผบ data-i18nใCSS ่ฝๅ ๆชๅ ๆๅนณ่ก้ ๅทฒๆๆ ทๅผโโๆช้่ฟ๏ผ็นๆไฝ็ฝฎไธๆด็ฎๆนๆณใ
tools:
eslint:
enabled: true
shellcheck:
enabled: true
psscriptanalyzer:
enabled: true
gitleaks:
enabled: true
trufflehog:
enabled: true
actionlint:
enabled: true
yamllint:
enabled: true
markdownlint:
enabled: true
htmlhint:
enabled: true
stylelint:
enabled: true
github-checks:
enabled: true
reactDoctor:
enabled: false
biome:
enabled: false
chat:
auto_reply: true
art: false
knowledge_base:
opt_out: false
web_search:
enabled: true
code_guidelines:
enabled: true
filePatterns:
- '**/AGENTS.md'
- '**/llms.txt'
learnings:
scope: local
issues:
scope: local
pull_requests:
scope: local
linked_repositories:
- repository: steve02081504/fount-p2p
instructions: >-
fount-p2p ๆ ธๅฟๅ
๏ผnpm:@steve02081504/fount-p2p๏ผใๆ ธๅฏนๅ
ฅ็ซ่พน็ไธ API ๅฅ็บฆๆฏๅฆไธ่ด๏ผๅฟๅจๆฌไป้ๅคๅฎ็ฐๅ
ๅ
ๅทฒๆ้ป่พใ
code_generation:
docstrings:
language: 'zh-CN'
unit_tests:
path_instructions:
- path: '**/*'
instructions: |
็จ้กน็ฎ `fount test` ไธ็ฐๆ `test/` ๅธๅฑ๏ผไธ่ฆ็ๆ Jest/Vitest/Mocha ่ๆๆถใ
ๆญ่จไธๆพๅฎฝ๏ผๆต่ฏไปฃ็ ๅๆ ท้ตๅฎๅฝๅไธ็ฎๆดๅฎก็พใ