use super::{RuleConfigurability, RuleDefaultSeverity, RuleDefinition, RuleLanguage, RuleStatus};
pub(crate) const RULE_DEFINITIONS: &[RuleDefinition] = &[
RuleDefinition {
id: "comment_style_title_case",
language: RuleLanguage::Common,
family: "comments",
default_severity: RuleDefaultSeverity::Info,
status: RuleStatus::Stable,
configurability: &[
RuleConfigurability::Disable,
RuleConfigurability::Ignore,
RuleConfigurability::SeverityOverride,
],
description: "Heading-like Title Case documentation.",
binding_location: super::bindings::COMMENTS,
},
RuleDefinition {
id: "comment_style_tutorial",
language: RuleLanguage::Common,
family: "comments",
default_severity: RuleDefaultSeverity::Info,
status: RuleStatus::Stable,
configurability: &[
RuleConfigurability::Disable,
RuleConfigurability::Ignore,
RuleConfigurability::SeverityOverride,
],
description: "Tutorial-style documentation that narrates obvious implementation steps.",
binding_location: super::bindings::COMMENTS,
},
RuleDefinition {
id: "hallucinated_import_call",
language: RuleLanguage::Common,
family: "hallucination",
default_severity: RuleDefaultSeverity::Warning,
status: RuleStatus::Stable,
configurability: &[
RuleConfigurability::Disable,
RuleConfigurability::Ignore,
RuleConfigurability::SeverityOverride,
],
description: "Package-qualified calls that do not match locally indexed symbols for the imported package.",
binding_location: super::bindings::HALLUCINATION,
},
RuleDefinition {
id: "hallucinated_local_call",
language: RuleLanguage::Common,
family: "hallucination",
default_severity: RuleDefaultSeverity::Warning,
status: RuleStatus::Stable,
configurability: &[
RuleConfigurability::Disable,
RuleConfigurability::Ignore,
RuleConfigurability::SeverityOverride,
],
description: "Same-package calls to symbols not present in the scanned local package context.",
binding_location: super::bindings::HALLUCINATION,
},
RuleDefinition {
id: "generic_name",
language: RuleLanguage::Common,
family: "naming",
default_severity: RuleDefaultSeverity::Info,
status: RuleStatus::Stable,
configurability: &[
RuleConfigurability::Disable,
RuleConfigurability::Ignore,
RuleConfigurability::SeverityOverride,
],
description: "Function names that are overly generic without stronger contextual signals.",
binding_location: super::bindings::NAMING,
},
RuleDefinition {
id: "overlong_name",
language: RuleLanguage::Common,
family: "naming",
default_severity: RuleDefaultSeverity::Info,
status: RuleStatus::Stable,
configurability: &[
RuleConfigurability::Disable,
RuleConfigurability::Ignore,
RuleConfigurability::SeverityOverride,
],
description: "Very long identifiers with too many descriptive tokens.",
binding_location: super::bindings::NAMING,
},
RuleDefinition {
id: "weak_typing",
language: RuleLanguage::Common,
family: "naming",
default_severity: RuleDefaultSeverity::Info,
status: RuleStatus::Stable,
configurability: &[
RuleConfigurability::Disable,
RuleConfigurability::Ignore,
RuleConfigurability::SeverityOverride,
],
description: "Signatures that rely on any or empty interface types.",
binding_location: super::bindings::NAMING,
},
RuleDefinition {
id: "hardcoded_secret",
language: RuleLanguage::Common,
family: "security",
default_severity: RuleDefaultSeverity::Warning,
status: RuleStatus::Stable,
configurability: &[
RuleConfigurability::Disable,
RuleConfigurability::Ignore,
RuleConfigurability::SeverityOverride,
],
description: "Secret-like identifiers assigned direct string literals instead of environment lookups.",
binding_location: super::bindings::SHARED_SECURITY,
},
RuleDefinition {
id: "happy_path_only_test",
language: RuleLanguage::Common,
family: "test_quality",
default_severity: RuleDefaultSeverity::Info,
status: RuleStatus::Stable,
configurability: &[
RuleConfigurability::Disable,
RuleConfigurability::Ignore,
RuleConfigurability::SeverityOverride,
],
description: "Tests that assert success expectations without any obvious negative-path signal.",
binding_location: super::bindings::TEST_QUALITY,
},
RuleDefinition {
id: "placeholder_test_body",
language: RuleLanguage::Common,
family: "test_quality",
default_severity: RuleDefaultSeverity::Info,
status: RuleStatus::Stable,
configurability: &[
RuleConfigurability::Disable,
RuleConfigurability::Ignore,
RuleConfigurability::SeverityOverride,
],
description: "Tests that look skipped, TODO-shaped, or otherwise placeholder-like.",
binding_location: super::bindings::TEST_QUALITY,
},
RuleDefinition {
id: "test_without_assertion_signal",
language: RuleLanguage::Common,
family: "test_quality",
default_severity: RuleDefaultSeverity::Info,
status: RuleStatus::Stable,
configurability: &[
RuleConfigurability::Disable,
RuleConfigurability::Ignore,
RuleConfigurability::SeverityOverride,
],
description: "Tests that exercise production code without an obvious assertion or failure signal.",
binding_location: super::bindings::TEST_QUALITY,
},
];