@wbern/obscene
Advanced tools
+1
-1
@@ -19,3 +19,3 @@ #!/usr/bin/env node | ||
| `)}function Oe(e){let t=[],n=e.entries.some(s=>s.complexityDelta!==void 0),o=n?91:84;t.push("\u2550".repeat(o)),t.push(`\u2605 ${e.label.toUpperCase()} \u2014 Total score: ${e.totalScore.toLocaleString()}`),t.push(...Z(e.confidence)),t.push(...U(e.tierCounts,e.showing,e.totalEntries)),t.push("");let i=v("File",50)+w("Score",9)+w("Churn",7)+w("Dims",6);n&&(i+=w("\u0394",7)),i+=w("Tier",12),t.push(i),t.push("\u2500".repeat(o));for(let s of e.entries){let r=v(O(s.file,48),50)+w(s.score.toFixed(4),9)+w(String(s.churn),7)+w(`${s.dimensionCount}/${e.totalDimensions}`,6);n&&(r+=w(Ee(s.complexityDelta),7)),r+=w(_(s.tier),12),t.push(j(s.tier,r))}return t.join(` | ||
| `)}var H=new pt;H.name("obscene").description("Identify hotspot files \u2014 complex code that changes frequently").version("2.8.0");var ft={complexity:"Cyclomatic complexity (branch/loop count). NOT a quality judgment \u2014 a 500-line parser will naturally score high. Compare density, not raw values.",complexityDensity:"Complexity per line of code. Normalizes for file size. >0.25 suggests dense logic worth reviewing; <0.10 is typical for straightforward code.",comments:"Comment line count. Low comments in high-density files may indicate under-documented logic. High comments alone is not a problem."},Te={rankings:"Four independent ranking tables, each scoring files by a different metric \xD7 churn. A file may rank high in one dimension but not others.",complexity:`complexity \xD7 churn. Complex code that changes often poses maintenance risk. | ||
| `)}var H=new pt;H.name("obscene").description("Identify hotspot files \u2014 complex code that changes frequently").version("2.9.0");var ft={complexity:"Cyclomatic complexity (branch/loop count). NOT a quality judgment \u2014 a 500-line parser will naturally score high. Compare density, not raw values.",complexityDensity:"Complexity per line of code. Normalizes for file size. >0.25 suggests dense logic worth reviewing; <0.10 is typical for straightforward code.",comments:"Comment line count. Low comments in high-density files may indicate under-documented logic. High comments alone is not a problem."},Te={rankings:"Four independent ranking tables, each scoring files by a different metric \xD7 churn. A file may rank high in one dimension but not others.",complexity:`complexity \xD7 churn. Complex code that changes often poses maintenance risk. | ||
| Metric concept: McCabe cyclomatic complexity (1976) via scc \xB7 Strength: objective, language-agnostic \xB7 Limit: parsers and state machines score high naturally`,nesting:`maxNesting \xD7 churn. Deeply nested code that changes often is harder to reason about. | ||
@@ -22,0 +22,0 @@ Metric concept: cognitive complexity research (SonarSource, G. Ann Campbell 2018) \xB7 Strength: catches hard-to-follow control flow \xB7 Limit: some patterns (error chains, config) legitimately nest deep`,defects:`fixes \xD7 churn. Count of fix: commits touching the file \xD7 churn. High values can mean latent fragility, but they also flag features that got debugged thoroughly \u2014 read the fix-commit history before concluding which. |
+1
-1
| { | ||
| "name": "@wbern/obscene", | ||
| "version": "2.8.0", | ||
| "version": "2.9.0", | ||
| "description": "Identify hotspot files — complex code that changes frequently. Churn × complexity analysis for any git repo.", | ||
@@ -5,0 +5,0 @@ "type": "module", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
0
-100%