-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Expand file tree
/
Copy pathgreptile.json
More file actions
37 lines (37 loc) · 3.57 KB
/
Copy pathgreptile.json
File metadata and controls
37 lines (37 loc) · 3.57 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
{
"$comment": "Greptile per-repo config — https://www.greptile.com/docs/code-review-bot/greptile-json. The Greptile GitHub App is installed; this file tunes its reviews. Dashboard settings are the org-wide fallback. Greptile also learns from 👍/👎 reactions on its comments — react to train it.",
"instructions": "Review as a panel of senior domain experts (ML inference, audio DSP, desktop systems). Comment ONLY on findings that would change what gets merged: a concrete bug, a violated house rule from CLAUDE.md, a real security/data risk. Per finding: at most three sentences — failure mode, line, fix. No praise, no restating the diff, no diagrams or mockups, no style commentary (CI linters gate style), no info-level observations. If nothing meets the bar, leave no comments. OmniVoice is a fully-local desktop app (no cloud, no API keys, no telemetry): flag any new outbound network call that is not GitHub Issues or a HuggingFace model download.",
"commentTypes": ["logic"],
"strictness": 3,
"customContext": {
"files": ["CLAUDE.md"],
"rules": [
"Default features must behave identically on macOS, Windows and Linux; a platform-divergent default is a P0 — platform-only behavior must sit behind explicit opt-in (Settings toggle, env var, or CLI flag).",
"Every new user-facing string must be an i18n t('...') key present in all 21 frontend/src/i18n/locales/*.json files; hardcoded CJK outside the allowlist in tests/test_no_hardcoded_cjk.py fails CI.",
"Existing omnivoice_data/ and already-installed engine model state must keep working without manual migration; DB schema changes go through alembic with an upgrade path.",
"Never propose version bumps, release candidates, or deferrals to a future version — everything ships on the current line.",
"The backend serves loopback HTTP: treat every query/path/form parameter as hostile (path traversal, log injection, CSRF from a browser tab); user-chosen filesystem destinations are authorized in the Tauri process, never via HTTP params.",
"Every #[tauri::command] is callable from the webview: validate inputs and scope filesystem/process access; no unwrap/expect on user-controlled input.",
"Model/engine code must be thread-safe across the GPU worker pool and correct on all of CUDA, MPS, ROCm and CPU; check VRAM lifecycle on error paths and offline behavior of model downloads.",
"CHANGELOG.md Unreleased entries (owner-restyled 2026-07-17) are single-line bullets ending with the (#NNN) ref — plus a '— thanks @user!' credit for community PRs — under a short **Highlights** list; flag multi-line or bold-lead paragraph entries.",
"No silent multi-GB downloads: any Hugging Face fetch in backend/services or backend/engines must be preceded by an installed-ness check (is_cached/cache_is_complete) or an explicit user install action; tests run under HF_HUB_OFFLINE=1.",
"All synthetic-audio producers must route through the mark_synthetic watermark chokepoint — no audio route may ship unmarked.",
"A frontend/package.json dependency change requires regenerating the repo-root bun.lock in the same PR (deploy/Dockerfile runs bun install --frozen-lockfile)."
]
},
"triggerOnUpdates": true,
"triggerOnDrafts": false,
"statusCheck": true,
"ignorePatterns": "bun.lock\nuv.lock\nfrontend/src-tauri/target/**\ntests/fixtures/**\n*.svg\n*.png\n*.wav\n*.onnx",
"sequenceDiagramSection": {
"included": false
},
"confidenceScoreSection": {
"included": false
},
"summarySection": {
"included": true,
"collapsible": true,
"defaultOpen": false
}
}