The code, measured
182,246 lines in 1,226 modules and 15,255 functions across 11 public repos, measured after each push. CRAP weighs a function's complexity against how much of it the tests run (over 30 is critical); a mutation score is the share of deliberate bugs the tests catch (under 60% is critical).
- public repos
- 11
- modules
- 1,226
- functions
- 15,255
- lines
- 182,246
Every repo
| Repo | Lines | Modules | Functions | Covered | Critical | Cycles | Mutation |
|---|---|---|---|---|---|---|---|
| capsid | 41,903 | 219 | 2656 | 86% | 95 | 5 | No data: mutation testing has not run on this repo yet |
| d1-dump | 1,251 | 12 | 142 | 94% | 1 | 0 | Watch73.3% |
| devkit | 1,964 | 16 | 203 | 72% | 6 | 0 | No data: mutation testing has not run on this repo yet |
| site-runtime | 6,323 | 32 | 358 | 82% | 16 | 0 | No data: mutation testing has not run on this repo yet |
| prelum | 2,563 | 20 | 183 | 97% | 0 | 0 | No data: mutation testing has not run on this repo yet |
| capsomer | 35,407 | 185 | 4146 | 65% | 76 | 3 | No data: mutation testing has not run on this repo yet |
| site-api | 3,989 | 24 | 372 | 94% | 5 | 1 | Watch71.4% |
| dustinedwards-info | 62,897 | 533 | 4949 | 90% | 32 | 1 | Critical59.2% |
| carrel | 17,019 | 125 | 1496 | 59% | 66 | 2 | No data: mutation testing has not run on this repo yet |
| enarratio | 7,961 | 51 | 658 | 87% | 14 | 0 | Watch79.8% |
| claude-skills | 969 | 9 | 92 | 82% | 1 | 0 | No data: mutation testing has not run on this repo yet |
The 25 riskiest functions
| Function | Repo | Module | Complexity | Covered | CRAP |
|---|---|---|---|---|---|
MediaLibrary | carrel | app/routes/media.tsx | 83 | 0% | CriticalCRAP 6972 |
performAction | capsid | src/controls-perform.ts | 155 | 35% | CriticalCRAP 6722.5 |
Editor | carrel | app/routes/editor.tsx | 75 | 0% | CriticalCRAP 5700 |
MediaDetailPanel | carrel | app/components/media/detail-panel.tsx | 45 | 0% | CriticalCRAP 2070 |
Project | carrel | app/routes/project.tsx | 33 | 0% | CriticalCRAP 1122 |
fireRoutine | capsid | src/routine-fire.ts | 33 | 1% | CriticalCRAP 1092.9 |
BookFile | carrel | app/routes/book.file.tsx | 32 | 0% | CriticalCRAP 1056 |
findIgnoreMarkers | site-runtime | prose-engine.mjs | 32 | 1% | CriticalCRAP 1025.6 |
createListbox | capsomer | components/listbox/listbox.ts | 30 | 1% | CriticalCRAP 892.7 |
featuresIsNoun | site-runtime | prose-engine.mjs | 29 | 1% | CriticalCRAP 842.6 |
filter | capsomer | components/listbox/listbox.ts | 28 | 0% | CriticalCRAP 812 |
handleKey | capsomer | components/listbox/listbox.ts | 28 | 0% | CriticalCRAP 812 |
Book | carrel | app/routes/book.tsx | 28 | 0% | CriticalCRAP 812 |
primerMarkdown | dustinedwards-info | app/kb/registry/catalog.mjs | 28 | 2% | CriticalCRAP 756.9 |
onClick | capsomer | components/system-map/system-map.ts | 27 | 0% | CriticalCRAP 756 |
onKey | capsomer | components/system-map/system-map.ts | 27 | 0% | CriticalCRAP 756 |
onKey | capsomer | components/tree/tree.ts | 27 | 0% | CriticalCRAP 756 |
main | devkit | bin/conformance.mjs | 26 | 0% | CriticalCRAP 702 |
handleBenchStart | capsid | src/bench.ts | 24 | 1% | CriticalCRAP 579.5 |
recordOutcomeReverts | capsid | src/merge-safety.ts | 24 | 2% | CriticalCRAP 572.8 |
watchSite | capsid | src/site-watch.ts | 23 | 0% | CriticalCRAP 552 |
RichEditor | carrel | app/components/editor/rich-editor.tsx | 23 | 0% | CriticalCRAP 552 |
ProgressPanel | carrel | app/components/writing/progress-panel.tsx | 22 | 0% | CriticalCRAP 506 |
showStep | capsomer | components/system-map/system-map.ts | 21 | 0% | CriticalCRAP 462 |
analyzeText | site-runtime | prose-engine.mjs | 118 | 72% | CriticalCRAP 430.3 |
The weakest-tested modules
Mutation runs weekly on the repos that have it; these modules' tests caught the smallest share of deliberate bugs.
| Module | Repo | Functions | Mutation |
|---|---|---|---|
| src/cli.ts | d1-dump | 4 | Critical0% |
| app/lib/publications/parse.mjs | dustinedwards-info | 2 | Critical0% |
| src/enhance/index.ts | enarratio | 2 | Critical0% |
| src/render/document.browser.ts | enarratio | 1 | Critical0% |
| app/lib/content/pipeline.mjs | dustinedwards-info | 13 | Critical2.4% |
| app/lib/webmention/urls.mjs | dustinedwards-info | 8 | Critical10.4% |
| app/kb/procedures/render.mjs | dustinedwards-info | 75 | Critical17.5% |
| app/kb/procedures/compile.mjs | dustinedwards-info | 12 | Critical22% |
| app/kb/libraries.mjs | dustinedwards-info | 37 | Critical22.4% |
| src/theme/stylesheet.ts | enarratio | 12 | Critical27.3% |
| src/contract.ts | site-api | 8 | Critical33.4% |
| src/frontmatter.ts | site-api | 31 | Critical42.9% |
| app/lib/editor/publish-policy.mjs | dustinedwards-info | 10 | Critical43.5% |
| app/lib/cv/pdf-html.mjs | dustinedwards-info | 7 | Critical44.2% |
| app/lib/content/chunks.mjs | dustinedwards-info | 1 | Critical45.2% |