* chore(review-bots): visual walkthroughs — diagrams for mechanics, ASCII sketches for UI CodeRabbit: enable sequence_diagrams explicitly and instruct the high-level summary to sketch UI changes as compact ASCII before/after and behavior changes as a small mermaid flow. Greptile: new repo-level greptile.json turning on the sequence-diagram and summary sections with matching instructions, plus the project's local-first and cross-platform hard rules so both bots review against them. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * chore(review-bots): expert-panel review rubrics, pre-merge rule audits, knowledge base Encode one senior-domain-expert lens per subsystem (ML inference for backend/services, product frontend for src, desktop systems for src-tauri, test infra for tests) as path instructions; add non-gating pre-merge checks for the project's four hard rules (cross-platform default parity, 21-locale i18n completeness, local-first guarantee, backward compatibility); feed CLAUDE.md and docs into CodeRabbit's knowledge base; mirror it all in greptile.json with customContext rules and strictness tuning. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
29 lines
2.7 KiB
JSON
29 lines
2.7 KiB
JSON
{
|
|
"$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 passionate senior domain experts (ML inference, audio DSP, desktop systems, product polish): cite exact lines, name the concrete failure mode, propose the fix — no filler praise. 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. In every review summary, make the change visual: if the PR touches UI (JSX/TSX/CSS or Tauri window config), include a compact ASCII before/after mockup of the affected layout or component; if it changes behavior or data flow, include a sequence/flow diagram of the new mechanism. Keep diagrams small and strictly faithful to the diff.",
|
|
"commentTypes": ["logic", "syntax", "info"],
|
|
"strictness": 2,
|
|
"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."
|
|
]
|
|
},
|
|
"sequenceDiagramSection": {
|
|
"included": true,
|
|
"collapsible": true,
|
|
"defaultOpen": true
|
|
},
|
|
"summarySection": {
|
|
"included": true,
|
|
"collapsible": true,
|
|
"defaultOpen": true
|
|
}
|
|
}
|