sniff-cli 0.1.0

An exhaustive LLM-backed slop finder for codebases
Documentation
use crate::config::ResolvedConfig;
use crate::report_types::StaticFlag;
use crate::types::FileRecord;
use std::path::Path;

#[path = "signal_layers_architecture.rs"]
mod architecture;
#[path = "signal_layers_churn.rs"]
mod churn;
#[path = "signal_layers_provenance.rs"]
mod provenance;
#[path = "signal_layers_similarity_flags.rs"]
mod similarity_flags;
#[path = "signal_layers_similarity_roles.rs"]
mod similarity_roles;

mod similarity {
    pub(crate) use super::similarity_flags::{make_file_flag, supporting_similarity_flags};
    pub(crate) use super::similarity_roles::normalize_path;
}

pub fn collect_supporting_flags(
    file_records: &[FileRecord],
    config: &ResolvedConfig,
    repo_root: &Path,
) -> Vec<StaticFlag> {
    let mut flags = Vec::new();

    flags.extend(similarity::supporting_similarity_flags(file_records));
    flags.extend(architecture::architecture_flags(file_records, config));
    flags.extend(churn::churn_flags(file_records, repo_root));
    flags.extend(provenance::provenance_flags(file_records));

    flags
}