repowiserepowise
Sign in
processing/p5.js
OverviewDocsArchitectureKnowledge GraphFilesCode HealthSecurityRefactoring

People & History

CommitsContributorsDecisions
Chat
Stats
repowiserepowise
ExplorePricingDocs
Sign in
repowiseprocessing/p5.js
P5
P5

processing / p5.js

javascriptmain7ec468e133.6K linessynced 4w ago

Code health

6.5out of 10Fair

This codebase scores 6.5 out of 10 for code health, which we rate fair. It also scores maintainability 7.8 and static performance 9.8 out of 10. The three are scored separately and never blended into one number. Risk is concentrated, as it usually is: 47 of 1,299 files are git hotspots, and they average 3.8 — which is where the fixes pay off most.

Full health report →
Documentation624pages23 with model-written prose, 601 built from the indexScore validation16/2018.9× baselineTop-ranked files that did go on to need a bug fixDead code46exportsUnused exports that nothing in the graph reaches

Do next

3 things worth doing this quarter.

Worth planning

  • Break up generateExpression (CCN 34, 167 lines)

    src/webgl/strands_glslBackend.js:335

    generateExpression nests its control flow deeply, and part of it is duplicated, so splitting it also removes a copy; 2 files import it, changed 2 times in 90 days.

    gain
    up to +0.8 health on this file(inferred)
    finding
    Nested complexity
    size
    CCN 34, 167 lines, nests 6 deep
    severity
    high
    Medium effort, worth a check
  • Break up generateExpression (CCN 43, 199 lines)

    src/webgpu/strands_wgslBackend.js:635

    generateExpression nests its control flow deeply, and part of it is duplicated, so splitting it also removes a copy; 1 file imports it, changed 2 times in 90 days.

    gain
    up to +0.7 health on this file(inferred)
    finding
    Nested complexity
    size
    CCN 43, 199 lines, nests 5 deep
    severity
    high
    Medium effort, worth a check
  • Start breaking up fesCore (CCN 73, 320 lines): first lift lines 36-602 into a helper

    src/friendly_errors/fes_core.js:36

    fesCore is complex and keeps changing, and part of it is duplicated, so splitting it also removes a copy; 1 file imports it, changed 3 times in 90 days.

    gain
    +1.2 health on this file(inferred)
    health recoverable
    +1.2(inferred)
    size
    CCN 73, 320 lines, nests 7 deep
    steps
    3 (1 mechanical)
    Large effort, worth a check

Improve what Repowise can see

  • Add a test coverage report

    Without one, Repowise cannot tell tested code from untested code, so every test-related action says “unknown”.

    line coverage
    Unknown, no report
    Small effort
  • Review the 14 proposed decisions

    None is accepted yet, so nothing can drift from one and agents get no enforced guidance from them.

    proposed
    14
    accepted
    0
    Medium effort
Lines of code
133.6K
Files
1,299
Symbols
2,997
Modules
7
Languages
2

Recent activity

All commits →

Commits

  • bcb32cbdBump minimatch from 5.1.6 to 5.1.94w ago
  • 4cbe1b79fixed typescript error from putting rest parameter at start of vector lerp docs4w ago
  • 8629d171Bump vitest from 4.1.10 to 4.1.114w ago
  • 083e47e9Fix documentation indicating incorrect default value of MAX_GIF_PIXELS4w ago
  • c1602955Add maximum allowed gif dimension4w ago
  • 48db64ebfix broken emoji-key links in readme1mo ago

Decisions

  • Consolidate WebGL manual tests by removing/combining redundant coverageproposed · 4w ago
  • Add/adjust 4x4 matrix docs and transform assets (plus JSDoc fixes)proposed · 4w ago
  • Keep renderer in sync with setAttributesproposed · 4w ago
  • Refactor MediaElement rendering state namingproposed · 4w ago
  • Migrate p5.sound to ESM (ECMASCRIPT MODULES)proposed · 4w ago
  • Adjust merge behavior, change types for debug, attach API to function instead of windowproposed · 4w ago
▸

Everything we found

1,257 open

Every detector's open count by area, each with its worst example. An inventory, not a to-do list: the actions above are the part worth doing.

  • worst item is critical severity. Code health789Untested hotspot · src/core/p5.Renderer3D.js33 findings · 9.6 deducted→
  • worst item is medium severity. Refactoring169validateParams+1.5 health, S effort · src/friendly_errors/param_validator.js→
  • worst item is medium severity. Decisions61src/webgpu/p5.RendererWebGPU.js14 awaiting review · 47 hotspots ungoverned→
  • worst item is medium severity. Ownership238src/core/loading.js90% single-owner concentration, 17 commits in 90d→

Composition

Open the graph →
javascript 99%
typescript 1%

Explore this codebase

  • Docs624 pages across 7 modules→
  • ChatAsk this codebase a question and get an answer with its sources.→
  • Files1,299 files with per-file docs, health and history→
  • ArchitectureDependency graph, layers, and 152 entry points→
  • Code healthPer-file scores, 952 open findings, coverage and refactoring targets→
  • Knowledge graphEntities, communities, and the paths between them→
  • Change couplingFiles that keep changing together, mined from commit history→
  • CommitsChange-risk ranked history with agent provenance→
  • ContributorsBus factor, per-file maintainers, and the human/agent split→
  • StatsSize class, origin, lifetime churn, rhythm and records→
  • CostsWhat indexing this snapshot cost, by model and by run.→