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 = false
4. 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
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.rs2. Extend
Configinsrc/config.rsAdd
#[serde(default)] pub suggest: SuggestConfigto the existingConfigstruct.3. Config file format
In
semfora.tomlor.semfora/config.toml:4. Config merge logic
Priority: CLI flag
--suggest> configenabledfield. Per-rule config filters the engine output. TheSuggestEngineaccepts&SuggestConfigand filters results before returning.5. MCP parameter support
Add optional
suggest_configJSON parameter to MCP tools so AI clients can pass rule overrides per-call.Testing