From b9a9052ae568d68a5439f9d5afb40cf89badd87b Mon Sep 17 00:00:00 2001 From: Till JS Date: Wed, 25 Mar 2026 15:12:15 +0100 Subject: [PATCH] feat(manascore): add extended codebase metrics to all app audits Add LOC, source files, size, commits, contributors, first commit date, TODO count, API endpoints, stores, and max file size metrics to all 20 ManaScore audit files with real measured data from the monorepo. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../apps/landing/src/content/config.ts | 9 ++ .../content/manascore/2026-03-19-calendar.md | 10 ++ .../src/content/manascore/2026-03-19-chat.md | 10 ++ .../src/content/manascore/2026-03-19-clock.md | 10 ++ .../content/manascore/2026-03-19-contacts.md | 10 ++ .../content/manascore/2026-03-19-context.md | 10 ++ .../content/manascore/2026-03-19-manacore.md | 10 ++ .../content/manascore/2026-03-19-manadeck.md | 10 ++ .../content/manascore/2026-03-19-matrix.md | 10 ++ .../src/content/manascore/2026-03-19-mukke.md | 10 ++ .../content/manascore/2026-03-19-nutriphi.md | 10 ++ .../content/manascore/2026-03-19-photos.md | 10 ++ .../content/manascore/2026-03-19-picture.md | 10 ++ .../content/manascore/2026-03-19-planta.md | 10 ++ .../src/content/manascore/2026-03-19-presi.md | 10 ++ .../content/manascore/2026-03-19-questions.md | 10 ++ .../content/manascore/2026-03-19-skilltree.md | 10 ++ .../content/manascore/2026-03-19-storage.md | 10 ++ .../src/content/manascore/2026-03-19-todo.md | 10 ++ .../content/manascore/2026-03-19-traces.md | 10 ++ .../content/manascore/2026-03-19-zitare.md | 10 ++ .../landing/src/pages/manascore/[slug].astro | 99 +++++++++++++++++++ .../landing/src/pages/manascore/index.astro | 22 ++++- 23 files changed, 326 insertions(+), 4 deletions(-) diff --git a/apps/manacore/apps/landing/src/content/config.ts b/apps/manacore/apps/landing/src/content/config.ts index 1c9d6ef72..a7f05503b 100644 --- a/apps/manacore/apps/landing/src/content/config.ts +++ b/apps/manacore/apps/landing/src/content/config.ts @@ -285,6 +285,15 @@ const manascoreCollection = defineCollection({ testCount: z.number().optional(), languages: z.number().optional(), linesOfCode: z.number().optional(), + sourceFiles: z.number().optional(), + sizeInMb: z.number().optional(), + commits: z.number().optional(), + contributors: z.number().optional(), + firstCommitDate: z.string().optional(), + todoCount: z.number().optional(), + apiEndpoints: z.number().optional(), + stores: z.number().optional(), + maxFileLines: z.number().optional(), }) .optional(), }), diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-calendar.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-calendar.md index 142dc8dd2..19d3ec0fa 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-calendar.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-calendar.md @@ -65,6 +65,16 @@ stats: testFiles: 24 testCount: 250 languages: 5 + linesOfCode: 43549 + sourceFiles: 269 + sizeInMb: 2.2 + commits: 310 + contributors: 3 + firstCommitDate: '2025-12-02' + todoCount: 103 + apiEndpoints: 49 + stores: 46 + maxFileLines: 1686 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-chat.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-chat.md index e6071c021..4728e94a4 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-chat.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-chat.md @@ -31,6 +31,16 @@ stats: testFiles: 2 testCount: 78 languages: 5 + linesOfCode: 28989 + sourceFiles: 203 + sizeInMb: 1.5 + commits: 178 + contributors: 4 + firstCommitDate: '2025-11-26' + todoCount: 477 + apiEndpoints: 45 + stores: 22 + maxFileLines: 959 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-clock.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-clock.md index 340965cee..d1be36f8d 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-clock.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-clock.md @@ -31,6 +31,16 @@ stats: testFiles: 0 testCount: 0 languages: 2 + linesOfCode: 7720 + sourceFiles: 97 + sizeInMb: 0.6 + commits: 131 + contributors: 3 + firstCommitDate: '2025-12-03' + todoCount: 94 + apiEndpoints: 26 + stores: 22 + maxFileLines: 478 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-contacts.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-contacts.md index 631892293..f9bc64a53 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-contacts.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-contacts.md @@ -31,6 +31,16 @@ stats: testFiles: 14 testCount: 150 languages: 5 + linesOfCode: 27840 + sourceFiles: 177 + sizeInMb: 1.5 + commits: 181 + contributors: 3 + firstCommitDate: '2025-12-02' + todoCount: 52 + apiEndpoints: 46 + stores: 28 + maxFileLines: 1696 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-context.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-context.md index f6c29a125..1c7456dab 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-context.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-context.md @@ -31,6 +31,16 @@ stats: testFiles: 4 testCount: 70 languages: 2 + linesOfCode: 31386 + sourceFiles: 220 + sizeInMb: 1.6 + commits: 26 + contributors: 3 + firstCommitDate: '2025-12-05' + todoCount: 523 + apiEndpoints: 23 + stores: 16 + maxFileLines: 1104 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-manacore.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-manacore.md index 8d4f6f85d..a6ebe63f8 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-manacore.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-manacore.md @@ -31,6 +31,16 @@ stats: testFiles: 12 testCount: 103 languages: 5 + linesOfCode: 50234 + sourceFiles: 300 + sizeInMb: 7.8 + commits: 214 + contributors: 4 + firstCommitDate: '2025-11-26' + todoCount: 111 + apiEndpoints: 0 + stores: 12 + maxFileLines: 2001 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-manadeck.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-manadeck.md index bd2224de9..38a99eff0 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-manadeck.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-manadeck.md @@ -31,6 +31,16 @@ stats: testFiles: 1 testCount: 8 languages: 5 + linesOfCode: 21118 + sourceFiles: 185 + sizeInMb: 2.5 + commits: 99 + contributors: 3 + firstCommitDate: '2025-11-26' + todoCount: 295 + apiEndpoints: 58 + stores: 23 + maxFileLines: 971 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-matrix.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-matrix.md index 647c75cda..ae934c0de 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-matrix.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-matrix.md @@ -31,6 +31,16 @@ stats: testFiles: 2 testCount: 5 languages: 2 + linesOfCode: 16076 + sourceFiles: 100 + sizeInMb: 1.4 + commits: 111 + contributors: 3 + firstCommitDate: '2026-01-28' + todoCount: 489 + apiEndpoints: 0 + stores: 8 + maxFileLines: 2019 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-mukke.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-mukke.md index 1f0a63ef6..1cc112975 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-mukke.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-mukke.md @@ -31,6 +31,16 @@ stats: testFiles: 6 testCount: 113 languages: 1 + linesOfCode: 16327 + sourceFiles: 142 + sizeInMb: 1.0 + commits: 60 + contributors: 1 + firstCommitDate: '2026-03-17' + todoCount: 61 + apiEndpoints: 59 + stores: 25 + maxFileLines: 572 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-nutriphi.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-nutriphi.md index ba6bf928c..f2e4191f6 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-nutriphi.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-nutriphi.md @@ -31,6 +31,16 @@ stats: testFiles: 8 testCount: 45 languages: 2 + linesOfCode: 6521 + sourceFiles: 83 + sizeInMb: 0.6 + commits: 78 + contributors: 3 + firstCommitDate: '2025-11-26' + todoCount: 158 + apiEndpoints: 19 + stores: 5 + maxFileLines: 298 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-photos.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-photos.md index 95f2a48e5..af1810a35 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-photos.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-photos.md @@ -31,6 +31,16 @@ stats: testFiles: 0 testCount: 0 languages: 3 + linesOfCode: 6136 + sourceFiles: 73 + sizeInMb: 0.2 + commits: 40 + contributors: 2 + firstCommitDate: '2026-02-11' + todoCount: 46 + apiEndpoints: 26 + stores: 14 + maxFileLines: 421 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-picture.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-picture.md index 7887a5999..ccd25e6b3 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-picture.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-picture.md @@ -31,6 +31,16 @@ stats: testFiles: 4 testCount: 70 languages: 5 + linesOfCode: 54828 + sourceFiles: 406 + sizeInMb: 5.0 + commits: 139 + contributors: 3 + firstCommitDate: '2025-11-26' + todoCount: 253 + apiEndpoints: 68 + stores: 40 + maxFileLines: 1064 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-planta.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-planta.md index 8b460f5d6..aa380a5dc 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-planta.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-planta.md @@ -31,6 +31,16 @@ stats: testFiles: 0 testCount: 0 languages: 3 + linesOfCode: 4228 + sourceFiles: 65 + sizeInMb: 0.6 + commits: 58 + contributors: 2 + firstCommitDate: '2026-01-18' + todoCount: 46 + apiEndpoints: 15 + stores: 8 + maxFileLines: 279 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-presi.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-presi.md index 9b7323280..5f1158239 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-presi.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-presi.md @@ -31,6 +31,16 @@ stats: testFiles: 10 testCount: 72 languages: 6 + linesOfCode: 7086 + sourceFiles: 90 + sizeInMb: 0.7 + commits: 98 + contributors: 3 + firstCommitDate: '2025-11-27' + todoCount: 48 + apiEndpoints: 18 + stores: 12 + maxFileLines: 675 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-questions.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-questions.md index a5d4ed8ce..92c092e46 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-questions.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-questions.md @@ -31,6 +31,16 @@ stats: testFiles: 0 testCount: 0 languages: 3 + linesOfCode: 6009 + sourceFiles: 89 + sizeInMb: 0.5 + commits: 48 + contributors: 3 + firstCommitDate: '2026-01-28' + todoCount: 46 + apiEndpoints: 32 + stores: 14 + maxFileLines: 320 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-skilltree.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-skilltree.md index 4e02c5844..fa34fb63d 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-skilltree.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-skilltree.md @@ -31,6 +31,16 @@ stats: testFiles: 2 testCount: 12 languages: 4 + linesOfCode: 7417 + sourceFiles: 71 + sizeInMb: 0.7 + commits: 56 + contributors: 3 + firstCommitDate: '2026-01-28' + todoCount: 48 + apiEndpoints: 13 + stores: 10 + maxFileLines: 554 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-storage.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-storage.md index d394a3c5a..7d446c486 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-storage.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-storage.md @@ -35,6 +35,16 @@ stats: testFiles: 19 testCount: 205 languages: 2 + linesOfCode: 12908 + sourceFiles: 113 + sizeInMb: 0.9 + commits: 90 + contributors: 3 + firstCommitDate: '2025-12-02' + todoCount: 48 + apiEndpoints: 35 + stores: 12 + maxFileLines: 676 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-todo.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-todo.md index 592043d05..ac7019835 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-todo.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-todo.md @@ -65,6 +65,16 @@ stats: testFiles: 16 testCount: 210 languages: 5 + linesOfCode: 26567 + sourceFiles: 187 + sizeInMb: 1.2 + commits: 223 + contributors: 3 + firstCommitDate: '2025-12-03' + todoCount: 98 + apiEndpoints: 50 + stores: 30 + maxFileLines: 1252 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-traces.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-traces.md index 5ddc3f04b..8f5165c4b 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-traces.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-traces.md @@ -31,6 +31,16 @@ stats: testFiles: 0 testCount: 0 languages: 0 + linesOfCode: 11637 + sourceFiles: 78 + sizeInMb: 0.8 + commits: 6 + contributors: 1 + firstCommitDate: '2026-03-15' + todoCount: 38 + apiEndpoints: 14 + stores: 0 + maxFileLines: 760 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-zitare.md b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-zitare.md index 662a197db..29fa9996b 100644 --- a/apps/manacore/apps/landing/src/content/manascore/2026-03-19-zitare.md +++ b/apps/manacore/apps/landing/src/content/manascore/2026-03-19-zitare.md @@ -31,6 +31,16 @@ stats: testFiles: 0 testCount: 0 languages: 2 + linesOfCode: 7807 + sourceFiles: 70 + sizeInMb: 0.6 + commits: 105 + contributors: 3 + firstCommitDate: '2025-11-28' + todoCount: 47 + apiEndpoints: 12 + stores: 20 + maxFileLines: 1425 --- ## Zusammenfassung diff --git a/apps/manacore/apps/landing/src/pages/manascore/[slug].astro b/apps/manacore/apps/landing/src/pages/manascore/[slug].astro index 8af427be0..9d4ce6fc6 100644 --- a/apps/manacore/apps/landing/src/pages/manascore/[slug].astro +++ b/apps/manacore/apps/landing/src/pages/manascore/[slug].astro @@ -488,7 +488,78 @@ function getBarColor(score: number): string { audit.data.stats && (

Metriken

+ {/* Codebase size highlight */} + {(audit.data.stats.linesOfCode || + audit.data.stats.sourceFiles || + audit.data.stats.sizeInMb) && ( +
+ {audit.data.stats.linesOfCode !== undefined && ( +
+ + {audit.data.stats.linesOfCode.toLocaleString('de-DE')} + + Lines of Code +
+ )} + {audit.data.stats.sourceFiles !== undefined && ( +
+ + {audit.data.stats.sourceFiles} + + Source Files +
+ )} + {audit.data.stats.sizeInMb !== undefined && ( +
+ + {audit.data.stats.sizeInMb} + + MB (Source) +
+ )} +
+ )} + {/* Activity & History */} + {(audit.data.stats.commits || + audit.data.stats.contributors || + audit.data.stats.firstCommitDate) && ( +
+ {audit.data.stats.commits !== undefined && ( +
+ + {audit.data.stats.commits} + + Commits +
+ )} + {audit.data.stats.contributors !== undefined && ( +
+ + {audit.data.stats.contributors} + + Contributors +
+ )} + {audit.data.stats.firstCommitDate && ( +
+ + {audit.data.stats.firstCommitDate} + + Erster Commit +
+ )} +
+ )}
+ {audit.data.stats.apiEndpoints !== undefined && + audit.data.stats.apiEndpoints > 0 && ( +
+ + {audit.data.stats.apiEndpoints} + + API Endpoints +
+ )} {audit.data.stats.backendModules !== undefined && (
@@ -505,6 +576,14 @@ function getBarColor(score: number): string { Web Routes
)} + {audit.data.stats.stores !== undefined && audit.data.stats.stores > 0 && ( +
+ + {audit.data.stats.stores} + + Stores +
+ )} {audit.data.stats.components !== undefined && (
@@ -545,6 +624,26 @@ function getBarColor(score: number): string { Sprachen
)} + {audit.data.stats.todoCount !== undefined && audit.data.stats.todoCount > 0 && ( +
+ 200 ? 'text-yellow-500' : audit.data.stats.todoCount > 400 ? 'text-red-500' : 'text-foreground'}`} + > + {audit.data.stats.todoCount} + + TODOs/FIXMEs +
+ )} + {audit.data.stats.maxFileLines !== undefined && ( +
+ 1000 ? 'text-yellow-500' : 'text-foreground'}`} + > + {audit.data.stats.maxFileLines} + + Max File (LOC) +
+ )}
) diff --git a/apps/manacore/apps/landing/src/pages/manascore/index.astro b/apps/manacore/apps/landing/src/pages/manascore/index.astro index e045ce106..c77d3ddaf 100644 --- a/apps/manacore/apps/landing/src/pages/manascore/index.astro +++ b/apps/manacore/apps/landing/src/pages/manascore/index.astro @@ -288,11 +288,25 @@ const statuses = [...new Set(sortedAudits.map((a) => a.data.status))]; {/* Stats row */} {data.stats && (
- {data.stats.backendModules ? ( - {data.stats.backendModules} Module + {data.stats.linesOfCode ? ( + + {data.stats.linesOfCode.toLocaleString('de-DE')} LOC + + ) : null} + {data.stats.sourceFiles ? ( + {data.stats.sourceFiles} Files + ) : null} + {data.stats.sizeInMb ? {data.stats.sizeInMb} MB : null} + {data.stats.commits ? {data.stats.commits} Commits : null} + {data.stats.apiEndpoints ? ( + {data.stats.apiEndpoints} Endpoints + ) : null} + {data.stats.stores ? {data.stats.stores} Stores : null} + {data.stats.todoCount ? ( + 200 ? 'text-yellow-500' : ''}> + {data.stats.todoCount} TODOs + ) : null} - {data.stats.webRoutes ? {data.stats.webRoutes} Routes : null} - {data.stats.dbTables ? {data.stats.dbTables} Tables : null} {data.stats.testCount !== undefined ? ( {data.stats.testCount} Tests ) : null}