// Security checking functions - extracted from quality_checks_part1.rs (CB-040)
async fn check_security(project_path: &Path) -> Result<Vec<QualityViolation>> {
    let mut violations = Vec::new();
    let patterns = get_security_patterns();

    use tokio::fs;

    if let Ok(mut entries) = fs::read_dir(project_path).await {
        while let Some(entry) = entries.next_entry().await? {
            let path = entry.path();
            if path.is_file() && is_source_file(&path) {
                check_file_security(&path, &patterns, &mut violations).await?;
            }
        }
    }

    Ok(violations)
}
