repotoire 0.5.3

Graph-powered code analysis CLI. 106 detectors for security, architecture, and code quality.
Documentation
{
  "total_samples": 10435,
  "train_samples": 8348,
  "test_samples": 2087,
  "tp_count": 9630,
  "fp_count": 805,
  "num_features": 28,
  "feature_names": [
    "detector_bucket",
    "severity_ordinal",
    "confidence",
    "detector_category",
    "has_cwe",
    "entity_type",
    "function_loc",
    "file_loc",
    "function_count_in_file",
    "finding_line_span_norm",
    "cyclomatic_complexity",
    "max_nesting_depth",
    "fan_in",
    "fan_out",
    "scc_membership",
    "file_age_log",
    "recent_churn",
    "developer_count",
    "unique_change_count",
    "is_recently_created",
    "major_contributor_pct",
    "minor_contributor_count",
    "file_depth",
    "fp_path_indicator_count",
    "tp_path_indicator_count",
    "finding_density",
    "same_detector_findings",
    "historical_fp_rate"
  ],
  "num_trees": 100,
  "max_depth": 6,
  "learning_rate": 0.1,
  "test_auc": 0.9982924092026084,
  "test_accuracy": 0.9889793962625779,
  "test_precision": 0.9937727036844837,
  "test_recall": 0.994288681204569,
  "unique_detectors": 132,
  "detector_distribution": {
    "DebugCodeDetector": 199,
    "DeadCodeDetector": 1110,
    "UnreachableCodeDetector": 1466,
    "DeadStoreDetector": 1096,
    "DuplicateCodeDetector": 800,
    "UnhandledPromiseDetector": 143,
    "NPlusOneDetector": 46,
    "SingleCharNamesDetector": 114,
    "Consensus[UnhandledPromiseDetector+DebugCodeDetector]": 1,
    "DeepNestingDetector": 283,
    "MagicNumbersDetector": 326,
    "CircularDependencyDetector": 3,
    "Consensus[UnreachableCodeDetector+AIMissingTestsDetector]": 20,
    "AIComplexitySpikeDetector": 373,
    "AIMissingTestsDetector": 564,
    "Consensus[LongMethodsDetector+UnreachableCodeDetector]": 31,
    "LongMethodsDetector": 396,
    "SurprisalDetector": 151,
    "InsecureTlsDetector": 16,
    "Consensus[LogInjectionDetector+DebugCodeDetector]": 2,
    "CoreUtilityDetector": 603,
    "LargeFilesDetector": 78,
    "MissingAwaitDetector": 29,
    "BroadExceptionDetector": 47,
    "DepAuditDetector": 31,
    "Consensus[AIMissingTestsDetector+LongMethodsDetector]": 65,
    "GlobalVariablesDetector": 25,
    "InsecureCookieDetector": 11,
    "Consensus[AIMissingTestsDetector+UnreachableCodeDetector]": 15,
    "ModuleCohesionDetector": 130,
    "ShotgunSurgeryDetector": 112,
    "HardcodedTimeoutDetector": 4,
    "DataClumpsDetector": 314,
    "CommentedCodeDetector": 209,
    "Consensus[AIMissingTestsDetector+LongParameterListDetector]": 5,
    "Consensus[UnreachableCodeDetector+LongMethodsDetector]": 30,
    "Consensus[LongMethodsDetector+AIMissingTestsDetector]": 45,
    "AIBoilerplateDetector": 31,
    "GHActionsInjectionDetector": 2,
    "CallbackHellDetector": 4,
    "TestInProductionDetector": 12,
    "Consensus[BroadExceptionDetector+EmptyCatchDetector]": 4,
    "ImplicitCoercionDetector": 9,
    "Consensus[CoreUtilityDetector+AIMissingTestsDetector]": 13,
    "LongParameterListDetector": 77,
    "LazyClassDetector": 505,
    "Consensus[LongParameterListDetector+LongMethodsDetector]": 12,
    "Consensus[AIMissingTestsDetector+CoreUtilityDetector]": 7,
    "Consensus[LongMethodsDetector+ArchitecturalBottleneckDetector+InfluentialCodeDetector]": 4,
    "TodoScanner": 97,
    "Consensus[LongMethodsDetector+LongParameterListDetector]": 11,
    "AIDuplicateBlockDetector": 181,
    "Consensus[LongMethodsDetector+FeatureEnvyDetector+AIMissingTestsDetector]": 1,
    "StringConcatLoopDetector": 9,
    "ExpressSecurityDetector": 14,
    "PathTraversalDetector": 1,
    "UnsafeTemplateDetector": 15,
    "Consensus[UnreachableCodeDetector+AIMissingTestsDetector+LongMethodsDetector]": 2,
    "GeneratorMisuseDetector": 3,
    "AINamingPatternDetector": 7,
    "Consensus[LongMethodsDetector+CoreUtilityDetector]": 2,
    "InsecureCryptoDetector": 2,
    "Consensus[LongMethodsDetector+AIMissingTestsDetector+InfluentialCodeDetector]": 1,
    "GodClassDetector": 25,
    "UnusedImportsDetector": 6,
    "MiddleManDetector": 5,
    "InappropriateIntimacyDetector": 3,
    "Consensus[ArchitecturalBottleneckDetector+AIMissingTestsDetector+LongMethodsDetector+1more]": 1,
    "Consensus[InfluentialCodeDetector+AIMissingTestsDetector+LongMethodsDetector]": 2,
    "Consensus[LongMethodsDetector+AIMissingTestsDetector+CoreUtilityDetector]": 1,
    "Consensus[ArchitecturalBottleneckDetector+InfluentialCodeDetector+AIMissingTestsDetector]": 1,
    "SsrfDetector": 1,
    "XssDetector": 12,
    "Consensus[DebugCodeDetector+MissingAwaitDetector]": 2,
    "ReactHooksDetector": 9,
    "BooleanTrapDetector": 14,
    "Consensus[UnhandledPromiseDetector+MissingAwaitDetector]": 1,
    "Consensus[InfluentialCodeDetector+LongMethodsDetector]": 4,
    "RegexInLoopDetector": 5,
    "LogInjectionDetector": 3,
    "EmptyCatchDetector": 30,
    "Consensus[InfluentialCodeDetector+ArchitecturalBottleneckDetector+LongMethodsDetector]": 3,
    "RegexDosDetector": 15,
    "PrototypePollutionDetector": 7,
    "Consensus[SsrfDetector+UnhandledPromiseDetector]": 1,
    "JwtWeakDetector": 3,
    "Consensus[LongParameterListDetector+UnreachableCodeDetector]": 7,
    "Consensus[UnreachableCodeDetector+LongParameterListDetector]": 6,
    "Consensus[LongParameterListDetector+LongMethodsDetector+AIMissingTestsDetector]": 1,
    "Consensus[CoreUtilityDetector+LongParameterListDetector]": 1,
    "Consensus[LongParameterListDetector+LongMethodsDetector+CoreUtilityDetector]": 1,
    "Consensus[LongParameterListDetector+CoreUtilityDetector]": 1,
    "Consensus[UnreachableCodeDetector+LongMethodsDetector+LongParameterListDetector]": 1,
    "WildcardImportsDetector": 80,
    "Consensus[LongMethodsDetector+InfluentialCodeDetector]": 5,
    "ArchitecturalBottleneckDetector": 2,
    "InfluentialCodeDetector": 4,
    "Consensus[LongMethodsDetector+FeatureEnvyDetector]": 4,
    "InsecureDeserializeDetector": 1,
    "FeatureEnvyDetector": 11,
    "Consensus[LongMethodsDetector+FeatureEnvyDetector+DegreeCentralityDetector]": 1,
    "Consensus[InfluentialCodeDetector+FeatureEnvyDetector+LongMethodsDetector]": 1,
    "Consensus[FeatureEnvyDetector+LongMethodsDetector]": 1,
    "Consensus[LongParameterListDetector+FeatureEnvyDetector]": 1,
    "InfiniteLoopDetector": 10,
    "BoxDynTraitDetector": 9,
    "CloneInHotPathDetector": 88,
    "UnwrapWithoutContextDetector": 78,
    "MessageChainDetector": 3,
    "PanicDensityDetector": 6,
    "MutexPoisoningRiskDetector": 2,
    "UnsafeWithoutSafetyCommentDetector": 5,
    "Consensus[UnreachableCodeDetector+CoreUtilityDetector]": 2,
    "MissingMustUseDetector": 6,
    "EvalDetector": 2,
    "Consensus[InfluentialCodeDetector+ArchitecturalBottleneckDetector]": 1,
    "Consensus[ArchitecturalBottleneckDetector+InfluentialCodeDetector]": 1,
    "Consensus[ArchitecturalBottleneckDetector+LongMethodsDetector]": 1,
    "Consensus[ArchitecturalBottleneckDetector+InfluentialCodeDetector+LongMethodsDetector]": 1,
    "Consensus[ArchitecturalBottleneckDetector+LongMethodsDetector+InfluentialCodeDetector]": 1,
    "Consensus[LongParameterListDetector+AIMissingTestsDetector+LongMethodsDetector]": 2,
    "Consensus[EmptyCatchDetector+BroadExceptionDetector]": 1,
    "Consensus[DebugCodeDetector+LogInjectionDetector]": 2,
    "InsecureRandomDetector": 3,
    "Consensus[LongMethodsDetector+InfluentialCodeDetector+ArchitecturalBottleneckDetector]": 1,
    "Consensus[RegexDosDetector+ImplicitCoercionDetector]": 2,
    "Consensus[InsecureRandomDetector+NPlusOneDetector]": 1,
    "Consensus[AIMissingTestsDetector+InfluentialCodeDetector+LongMethodsDetector+1more]": 1,
    "Consensus[AIMissingTestsDetector+UnreachableCodeDetector+LongMethodsDetector]": 1,
    "Consensus[LongMethodsDetector+DegreeCentralityDetector]": 1,
    "Consensus[CallbackHellDetector+UnhandledPromiseDetector]": 1,
    "Consensus[UnhandledPromiseDetector+CallbackHellDetector]": 1
  },
  "label_source_distribution": {
    "supervised:debug code in production": 132,
    "supervised:dead code finding": 1091,
    "supervised:unreachable code": 1451,
    "supervised:dead store": 1066,
    "supervised:duplicate code": 751,
    "supervised:unknown detector: UnhandledPromiseDetector": 100,
    "supervised:potential N+1 query": 46,
    "supervised:unknown detector, high severity": 78,
    "supervised:unknown detector: SingleCharNamesDetector": 108,
    "supervised:multi-detector consensus": 338,
    "supervised:deep nesting is structural": 281,
    "supervised:common constant, likely FP": 237,
    "supervised:unknown detector: CircularDependencyDetector": 3,
    "supervised:complexity spike": 373,
    "supervised:missing tests": 562,
    "supervised:long method is structural": 396,
    "supervised:unknown detector: SurprisalDetector": 145,
    "supervised:core utility is informational": 600,
    "supervised:large file is structural": 78,
    "supervised:missing await": 29,
    "supervised:broad exception catch": 46,
    "supervised:unknown detector: DepAuditDetector": 31,
    "supervised:unknown detector: GlobalVariablesDetector": 19,
    "supervised:unknown detector: InsecureCookieDetector": 9,
    "supervised:module cohesion issue": 130,
    "supervised:shotgun surgery risk": 112,
    "supervised:unknown detector: HardcodedTimeoutDetector": 1,
    "supervised:data clumps are structural": 314,
    "supervised:commented out code": 209,
    "supervised:unknown detector in test file": 35,
    "supervised:duplicate code in tests is normal": 49,
    "supervised:unknown detector, critical severity": 19,
    "supervised:unknown detector: AIBoilerplateDetector": 28,
    "supervised:unknown detector: CallbackHellDetector": 4,
    "supervised:unknown detector: TestInProductionDetector": 11,
    "supervised:unknown detector: ImplicitCoercionDetector": 9,
    "supervised:long parameter list is structural": 77,
    "supervised:dead code in test file": 19,
    "supervised:lazy class": 217,
    "supervised:magic number": 63,
    "supervised:unknown detector: TodoScanner": 96,
    "supervised:unreachable code in test": 15,
    "supervised:very high structural similarity": 159,
    "supervised:lazy class in Go/Rust (trait/interface impl)": 285,
    "supervised:structural duplicate": 20,
    "supervised:unknown detector: StringConcatLoopDetector": 9,
    "supervised:magic numbers in tests are normal": 26,
    "supervised:framework security in test": 13,
    "supervised:framework security finding": 1,
    "supervised:path traversal finding": 1,
    "supervised:unknown detector: GeneratorMisuseDetector": 3,
    "supervised:unknown detector: AINamingPatternDetector": 7,
    "supervised:unknown detector: UnsafeTemplateDetector": 2,
    "supervised:weak crypto algorithm": 2,
    "supervised:god class is structural": 25,
    "supervised:unknown detector: UnusedImportsDetector": 5,
    "supervised:inappropriate intimacy": 3,
    "supervised:vendor/generated file": 15,
    "supervised:dead store in test": 30,
    "supervised:XSS finding": 6,
    "supervised:React hooks violation": 9,
    "supervised:unknown detector: BooleanTrapDetector": 14,
    "supervised:regex compilation in loop": 5,
    "supervised:missing tests finding IN test file": 2,
    "supervised:XSS in test file": 6,
    "supervised:unknown detector: LogInjectionDetector": 2,
    "supervised:empty catch blocks are almost always bad": 30,
    "supervised:unknown detector: RegexDosDetector": 14,
    "supervised:broad exception in test": 1,
    "supervised:unknown detector: JwtWeakDetector": 1,
    "supervised:unknown detector: WildcardImportsDetector": 80,
    "supervised:architectural metric": 2,
    "supervised:unknown detector: InfluentialCodeDetector": 4,
    "supervised:unknown detector: InsecureDeserializeDetector": 1,
    "supervised:feature envy": 11,
    "supervised:unknown detector: BoxDynTraitDetector": 9,
    "supervised:unknown detector: CloneInHotPathDetector": 88,
    "supervised:unwrap without context": 78,
    "supervised:unknown detector: MessageChainDetector": 3,
    "supervised:unknown detector: PanicDensityDetector": 5,
    "supervised:unknown detector: MutexPoisoningRiskDetector": 2,
    "supervised:unknown detector: MissingMustUseDetector": 6,
    "supervised:debug code in test is normal": 67,
    "supervised:AI duplicate in test": 2,
    "supervised:lazy class in test is normal": 3
  }
}