-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgreptile.json
More file actions
91 lines (91 loc) · 4.44 KB
/
Copy pathgreptile.json
File metadata and controls
91 lines (91 loc) · 4.44 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
{
"comment": "AI review by Greptile — focus: correctness, safety, API stability",
"strictness": 2,
"triggerOnUpdates": true,
"triggerOnDrafts": false,
"statusCheck": true,
"fixWithAI": false,
"commentTypes": ["logic", "syntax"],
"instructions": "Rust workspace (11 crates). Focus on: memory safety, async correctness (Tokio), public API semver stability, and panic paths (unwrap/expect outside tests). Do not flag formatting — rustfmt + clippy handle it. This is a push-based AI memory kernel; correctness of embedding math, LSH bucket hashing, Hebbian decay, and FSRS scheduling is high priority.\n\nREVIEW COMMENT FORMAT: An AI coding agent (Claude Code) will read your comments to fix issues. Make each comment self-contained so the agent does not need to re-fetch the PR diff. Always include: (1) the exact file path and line number(s), (2) the problematic code snippet, (3) what is wrong and why, (4) a concrete fix with corrected code. Use fenced Rust code blocks for suggested fixes. Keep each comment actionable in one shot — no vague guidance like 'consider refactoring'.",
"ignorePatterns": "target/**\n*.lock\n**/.cargo/**\n.github/**\ndist/**\n*.tar.gz\n*.zip\nSHA256SUMS\n*.profraw\n*.profdata\nbenches/criterion/**",
"directoryRules": {
"crates/shrimpk-core/**": {
"strictness": 2,
"commentTypes": ["logic", "syntax"],
"instructions": "Shared type definitions. Any public API change risks breaking semver. Flag without mercy."
},
"crates/shrimpk-memory/**": {
"strictness": 2,
"commentTypes": ["logic", "syntax"],
"instructions": "Main engine. Flag: RwLock held across await, incorrect float comparisons, off-by-one in LSH/FSRS math, panics."
},
"crates/shrimpk-daemon/**": {
"strictness": 2,
"commentTypes": ["logic", "syntax"],
"instructions": "axum server. Check: error handler coverage, response shape consistency, missing auth."
},
"crates/shrimpk-mcp/**": {
"strictness": 2,
"commentTypes": ["logic"],
"instructions": "MCP stdio server. Flag JSON-RPC protocol violations and panics."
},
"crates/shrimpk-context/**": {
"strictness": 2,
"commentTypes": ["logic", "syntax"],
"instructions": "Token-budgeted context assembly. Flag off-by-one token counts and budget overflow."
},
"crates/shrimpk-python/**": {
"strictness": 2,
"commentTypes": ["logic", "syntax"],
"instructions": "PyO3 bindings. All Results must map to PyErr — flag any unwrap() or panic path."
},
"tests/**": {
"strictness": 3,
"commentTypes": ["logic"],
"instructions": "Test files only. Flag logic bugs causing false results; ignore style."
},
"crates/shrimpk-ros2/**": {
"strictness": 3,
"commentTypes": ["logic"],
"instructions": "Stub crate. Flag only panics or compilation errors."
},
"crates/shrimpk-security/**": {
"strictness": 3,
"commentTypes": ["logic"],
"instructions": "PII stub. Flag only incorrect regex patterns that miss PII."
}
},
"customContext": {
"rules": [
{
"rule": "Do not use unwrap() or expect() outside of #[cfg(test)] blocks",
"scope": ["crates/**/*.rs"]
},
{
"rule": "Do not hold RwLock or Mutex guards across an .await point",
"scope": ["crates/shrimpk-daemon/**", "crates/shrimpk-mcp/**", "crates/shrimpk-memory/**"]
},
{
"rule": "Public types in shrimpk-core must derive Serialize and Deserialize consistently — flag missing impls",
"scope": ["crates/shrimpk-core/**"]
},
{
"rule": "New public APIs require a corresponding integration test",
"scope": ["crates/shrimpk-memory/**", "crates/shrimpk-core/**"]
}
],
"files": [
{"path": "CLAUDE.md", "scope": ["**"]}
],
"other": [
{
"context": "Apache 2.0 Rust workspace. shrimpk-core=shared types, shrimpk-memory=EchoEngine+embedder+LSH+Hebbian+FSRS, shrimpk-daemon=axum HTTP, shrimpk-mcp=MCP stdio, shrimpk-context=token-budgeted prompts, shrimpk-router=cascade routing, shrimpk-python=PyO3, shrimpk-ros2=stub, shrimpk-kernel=facade re-export.",
"scope": ["**"]
},
{
"context": "Benchmarks use criterion. Benchmark harness boilerplate (black_box, criterion_group!, criterion_main!) is intentional — do not flag as dead code or unused imports.",
"scope": ["benches/**", "tests/echo_micro_benchmark.rs"]
}
]
}
}