-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.coderabbit.yaml
More file actions
94 lines (86 loc) · 3.21 KB
/
.coderabbit.yaml
File metadata and controls
94 lines (86 loc) · 3.21 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
# yaml-language-server: $schema=https://www.coderabbit.ai/integrations/schema.v2.json
language: en-US
early_access: true
reviews:
profile: assertive
request_changes_workflow: true
high_level_summary: false
high_level_summary_in_walkthrough: false
review_status: false
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
suggested_labels: false
suggested_reviewers: false
poem: false
in_progress_fortune: false
enable_prompt_for_ai_agents: true
auto_review:
enabled: true
auto_incremental_review: true
drafts: false
ignore_title_keywords:
- WIP
- DO NOT MERGE
finishing_touches:
docstrings:
enabled: false
unit_tests:
enabled: false
path_filters:
- '!**/dist/**'
- '!**/node_modules/**'
- '!pnpm-lock.yaml'
- '!**/*.snap'
path_instructions:
- path: 'packages/**/*.{ts,tsx}'
instructions: |
This project enforces strict functional TypeScript. Flag violations of:
- No `let` — only `const`. No reassignment, no mutation.
- No loops (`for`, `while`, `do...while`, `for...in`, `for...of`) — use `map`, `filter`, `reduce`, `flatMap`, or `es-toolkit`.
- No classes — use plain objects, closures, and factory functions.
- No `this` — never reference `this`.
- No `throw` — return errors as `Result<T, E> = readonly [E, null] | readonly [null, T]` tuples.
- No expression statements — every expression must be used (assigned, returned, or passed).
- No `any` — use `unknown`, generics, or proper types.
- No non-null assertions (`!`) — use explicit null checks.
- No optional chaining (`?.`) — use explicit `if`/`else` or pattern matching.
- No ternaries (`?:`) — use `if`/`else` or `ts-pattern` `match` expressions. `??` (nullish coalescing) IS allowed.
- Immutable data — no mutating objects or arrays after creation.
- All public properties must be `readonly`.
- Prefer `node:` protocol for Node.js builtins.
- Use `es-toolkit` over hand-rolling utility functions.
- Every exported function needs explicit return types and full JSDoc.
- path: 'packages/**/src/**/*.ts'
instructions: |
Error handling uses Result tuples, never exceptions:
- `type Result<T, E> = readonly [E, null] | readonly [null, T]`
- Success: `[null, value]`, Failure: `[error, null]`
- Always check the error element before accessing the value.
- Use `ts-pattern` `match` for exhaustive error variant handling.
- path: '**/*.md'
instructions: |
Documentation in this repo is for external consumers of the zpress documentation framework.
Ensure clarity, accuracy, and consistency with the existing docs tone.
tools:
shellcheck:
enabled: true
markdownlint:
enabled: true
languagetool:
enabled: true
level: picky
biome:
enabled: true
github-checks:
enabled: true
timeout_ms: 90000
chat:
auto_reply: true