-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.coderabbit.yaml
More file actions
130 lines (117 loc) · 5.71 KB
/
Copy path.coderabbit.yaml
File metadata and controls
130 lines (117 loc) · 5.71 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
# CodeRabbit configuration for sqlite-predict.
# Reference: https://docs.coderabbit.ai/reference/yaml-template
language: "en-US"
tone_instructions: >-
Be direct and specific. Cite the file and line. Skip praise and
restatements of the diff; comment only where something should change,
and say exactly what and why.
reviews:
profile: "chill"
# Request changes while comments are open, approve once they resolve:
# this is what lets CodeRabbit act as an approving reviewer.
request_changes_workflow: true
high_level_summary: true
poem: false
collapse_walkthrough: true
auto_review:
enabled: true
drafts: false
base_branches:
- main
path_filters:
- "!dist/**"
- "!vendor/**"
- "!npm/**"
- "!website/node_modules/**"
- "!bindings/rust/target/**"
- "!benchmarks/results/*.jsonl"
path_instructions:
- path: "**/*.{c,h}"
instructions: >-
This is a zero-dependency C99 SQLite extension in the sqlite-vec
mold. Hold changes to these rules: (1) fail loudly, never
silently — errors use the closed PREDICT_ERR_* set formatted
"CODE: detail", unknown option keys are rejected, and there are
no silent fallback paths; (2) memory discipline is
sqlite3_malloc/sqlite3_free with goto-cleanup, every error path
must free what it allocated — trace them; (3) all deserialization
of registry blobs is bounds-checked, and inline weights are
verified against content_hash before use; (4) serving functions
(forecast/detect_anomalies aggregates, predict) must stay pure:
no writes, no table creation, safe under PRAGMA query_only;
(5) determinism: same input, same output — no clock, randomness,
or float formatting that breaks %.17g round-tripping; (6) new
cross-TU symbols need the predict0_ prefix (the amalgamation
makes unprefixed externs collision bait); (7) no new
dependencies in the core build, ever. Flag any comment that
references internal design documents (RFC section numbers): the
public docs site is the contract.
- path: "tests/**"
instructions: >-
Tests here should try to break the code, not confirm the happy
path: flag new features that lack adversarial cases (malformed
blobs, unknown options, imbalanced or degenerate data, error
paths). Error-message assertions should match PREDICT_ERR_*
codes, not prose. Registered test model ids must not reuse
bundled ids (auto, tsb, theta-classic, stub-seasonal-naive,
sub-pca, knn5-incontext). Soak drivers must propagate statement
failures to the exit code — flag any discarded result.
- path: "benchmarks/**"
instructions: >-
Benchmark claims must be measured and reproducible: flag numbers
stated without a script or results file behind them, and any
methodology change that isn't reflected in the results doc.
Model licensing is load-bearing here: TabFM and TabPFN-2.5/2.6/3
are non-commercial teachers that must never be distilled for
anything published as more than evaluation, and no teacher
weights or teacher-derived artifacts may be committed to the
repo (caches live under ~/.cache). TabPFN-3 outputs must not be
used to train or distill any model. Permissive teachers (TabPFN-2,
TabICL, Mitra, Chronos) are the only distillation sources whose
students may be presented as shippable.
- path: "{website/src/content/**,*.md,.github/**/*.md}"
instructions: >-
Docs must read standalone for a first-time public reader. Flag:
em or en dashes (house style forbids them; use periods, colons,
commas, or parentheses), "an SQL" (house style is "a SQL", the
sequel pronunciation; "an SQLITE_" for the spelled-out C
identifier prefix is correct and exempt), references to internal
design docs or RFC section numbers, receipts-era terminology
(the feature was removed), title-case headings (use sentence
case), and any
distillation framing that suggests distilling a non-commercial
model for production use. Claims of accuracy or speed must match
the benchmarks pages.
- path: ".github/workflows/**"
instructions: >-
Every workflow must declare an explicit permissions block (the
repo default token is read-only). Release automation is
tag-driven (v* fires release/wheels/npm/crate): flag anything
that would publish outside that path or duplicate the version
source of truth (make sync-version owns version stamps).
- path: "bindings/**"
instructions: >-
Binding metadata (descriptions, READMEs, __version__) rots
independently of the docs site: flag stale references to removed
features and version strings not managed by scripts/sync-version.mjs.
pre_merge_checks:
docstrings:
mode: "off"
title:
mode: "warning"
requirements: >-
Conventional-commit style prefix (feat/fix/docs/bench/site/chore/
refactor/test/ci) with a concise, specific subject.
custom_checks:
- name: "Changelog entry for user-visible changes"
mode: "warning"
instructions: >-
If the PR changes user-visible behavior (SQL surface, option
keys, error codes, defaults, output formats, packaging), it
should add an entry under CHANGELOG.md's [Unreleased] section
in the same PR. Refactors, docs, tests, benchmarks, and CI
changes do not need one. Release-time promotion of
[Unreleased] into a dated section is owned by make
sync-version; PRs should never do that themselves.
chat:
auto_reply: true