-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Overview
Add configuration support for the recommendations engine. Users can control which rules run, set confidence thresholds, and scope suggestions to specific directories.
Depends on: #139 (Phase 1)
Parent research: #135
Implementation
1. Create src/suggest/config.rs
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct SuggestConfig {
pub enabled: bool, // default: false
pub min_confidence: f64, // default: 0.5
pub scope: Vec<String>, // glob patterns, default: all
pub rules: HashMap<String, bool>, // per-rule on/off
pub categories: HashMap<String, bool>, // per-category on/off
}2. Extend Config in src/config.rs
Add #[serde(default)] pub suggest: SuggestConfig to the existing Config struct.
3. Config file format
In semfora.toml or .semfora/config.toml:
[suggest]
enabled = false
min_confidence = 0.5
scope = ["src/"]
[suggest.rules]
combine-functions = true
dead-code = true
naming = false
[suggest.categories]
naming = false4. Config merge logic
Priority: CLI flag --suggest > config enabled field. Per-rule config filters the engine output. The SuggestEngine accepts &SuggestConfig and filters results before returning.
5. MCP parameter support
Add optional suggest_config JSON parameter to MCP tools so AI clients can pass rule overrides per-call.
Testing
- Test config loading from semfora.toml
- Test rule filtering (disabled rules produce no output)
- Test confidence threshold filtering
- Test scope filtering (only files matching globs)
- Test CLI flag override of config
Reactions are currently unavailable