AI Slop Code Risk Monitor

CodeWithCJ/SparkyFitness

SlopCodeMonitor badge for CodeWithCJ/SparkyFitness Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

SparkyFitness: Built for Families. Powered by AI. Track food, fitness, water, and health — together.

1.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for CodeWithCJ/SparkyFitness, a TypeScript project with 6,631 GitHub stars. SynthScan examined 1,538,364 lines of code across 5279 source files, recording 1719 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 1.3 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.3
Adjusted Signal
1.3
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
6.6K
Stars
TypeScript
Language
1.5M
Lines of Code
5.3K
Files
1.7K
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 4.5/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 1358 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.7/100 · LOW

Are imports declared and package/API names verified? 202 finding(s).

Agent Over-Engineering Ratio 4.6/100 · LOW

Are wrappers, guards, and repeated structures necessary? 1239 finding(s).

PR Review Velocity Impact 6.3/100 · LOW

Which changes need focused human review? 1719 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 1MEDIUM 133LOW 1585

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 1719 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers1080 hits · 1081 pts
SeverityFileLineSnippetContext
LOWSparkyFitnessServer/middleware/signOutCookieCleanup.ts9export function applySignOutCookieCleanup(CODE
LOWSparkyFitnessServer/middleware/readOnlyApiKeyGuard.ts19export async function isReadOnlyApiKeyAuthMutation(CODE
LOW…rkyFitnessServer/middleware/mcpOAuthAuthInterceptor.ts96export async function interceptMcpOAuthAuthRequest(CODE
LOWSparkyFitnessServer/tests/fitActivityTransform.test.ts29function createSyntheticStrengthMessages(): FitMessages {CODE
LOW…itnessServer/tests/weeklyGoalPlans.integration.test.ts47async function waitForBlockedAdvisoryLock(db: pg.Client) {CODE
LOWSparkyFitnessServer/tests/chatbotTestHarness.script.ts193async function resolveCredentialsAndCreateKey() {CODE
LOW…penFoodFactsAutomaticSyncMigration.integration.test.ts90async function installDormantAutomaticTriggers(): Promise<void> {CODE
LOW…penFoodFactsAutomaticSyncMigration.integration.test.ts144async function removeDormantAutomaticTriggers(): Promise<void> {CODE
LOW…penFoodFactsAutomaticSyncMigration.integration.test.ts285async function resetProductReadRateLimitIfPresent(): Promise<boolean> {CODE
LOWSparkyFitnessServer/tests/openFoodFactsAuth.test.ts88function makeOffLoginRejectedResponse() {CODE
LOWSparkyFitnessServer/utils/foodUtils.ts71function applyCustomNutrientMatches(CODE
LOWSparkyFitnessServer/utils/foodUtils.ts225function scaleNutritionForConsumedAmount(CODE
LOWSparkyFitnessServer/utils/outboundUrlPolicy.ts58export function requiresUserSuppliedAiUrl(serviceType: string): boolean {CODE
LOWSparkyFitnessServer/utils/outboundUrlPolicy.ts116export function deriveFoodProviderNetworkPolicy(CODE
LOWSparkyFitnessServer/utils/outboundUrlPolicy.ts140export async function resolveFoodProviderNetworkPolicy(CODE
LOWSparkyFitnessServer/utils/outboundUrlPolicy.ts223export async function resolveHostnameForOutboundConnection(CODE
LOWSparkyFitnessServer/utils/outboundUrlPolicy.ts258export function assertOutboundUrlShapeAndLiteralAllowed(CODE
LOWSparkyFitnessServer/utils/outboundUrlPolicy.ts267function assertLiteralHostnameAllowed(CODE
LOWSparkyFitnessServer/utils/outboundUrlPolicy.ts395export function isOutboundUrlBlockedError(error: unknown): boolean {CODE
LOWSparkyFitnessServer/utils/outboundUrlPolicy.ts399export function getOutboundUrlBlockedError(CODE
LOWSparkyFitnessServer/utils/sleepStageAggregates.ts82export function scoredStageRemaindersOutsideWindow(CODE
LOWSparkyFitnessServer/utils/sleepStageAggregates.ts211function sleepStageEnvelopeSeconds(stages: any[]) {CODE
LOWSparkyFitnessServer/utils/sleepStageAggregates.ts226export function getPrimarySleepStageCluster(stages: any[]) {CODE
LOWSparkyFitnessServer/utils/sleepStageAggregates.ts252export function recomputeSleepAggregatesFromStages(stages: any[]) {CODE
LOWSparkyFitnessServer/utils/foodPortionResolver.ts68export function validateNutritionReference(CODE
LOWSparkyFitnessServer/utils/bestSplit.ts64export function samplesFromDistanceSeries(CODE
LOWSparkyFitnessServer/utils/twoFactorState.ts25async function resolveTwoFactorDisableUserUpdate(CODE
LOWSparkyFitnessServer/utils/mcpOAuth.ts76function requireConfiguredPublicUrl(): string {CODE
LOWSparkyFitnessServer/utils/mcpOAuth.ts84function canonicalizeOAuthQueryParams(params: URLSearchParams): string {CODE
LOWSparkyFitnessServer/utils/mcpOAuth.ts144export function getMcpResourceMetadataUrl(): string {CODE
LOWSparkyFitnessServer/utils/mcpOAuth.ts158export function isMcpOAuthRedirectUriAllowed(CODE
LOWSparkyFitnessServer/utils/mcpOAuth.ts184export function createMcpOAuthAuthorizationRedirectValidator(CODE
LOWSparkyFitnessServer/utils/mcpOAuth.ts199export function isMcpOAuthAuthEndpointPath(requestPath: string): boolean {CODE
LOWSparkyFitnessServer/utils/mcpOAuth.ts213export function classifyMcpOAuthMetadataPath(CODE
LOWSparkyFitnessServer/utils/mcpOAuth.ts243export function shouldReturnMcpOAuthMetadataNotFound(CODE
LOWSparkyFitnessServer/utils/shutdownHooks.ts26export function pendingBackgroundWorkCount(): number {CODE
LOWSparkyFitnessServer/utils/apiKeyScope.ts23export function isRequestAllowedForReadOnlyKey(CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts33async function replaceGarminTokensIfUnchanged(CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts149async function getExternalDataProvidersByUserId(CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts253async function createExternalDataProvider(providerData: any) {CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts338async function updateExternalDataProvider(CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts435async function getExternalDataProviderById(providerId: any) {CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts525async function getExternalDataProviderByUserIdAndProviderName(CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts630async function checkExternalDataProviderAccess(CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts653async function checkExternalDataProviderOwnership(CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts672async function deleteExternalDataProvider(id: any, userId: any) {CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts817async function getActiveProvidersByTypes(CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts857async function getActiveProviderWithKeyByType(CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts920async function getGlobalExternalDataProviders() {CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts987async function createGlobalExternalDataProvider(providerData: any) {CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts1044async function updateGlobalExternalDataProvider(id: any, updateData: any) {CODE
LOW…arkyFitnessServer/models/externalProviderRepository.ts1114async function deleteGlobalExternalDataProvider(id: any) {CODE
LOWSparkyFitnessServer/models/genericHealthRepository.ts35export async function upsertHealthMetricSamples(CODE
LOWSparkyFitnessServer/models/genericHealthRepository.ts101export async function acquireHealthMetricSampleLockWithClient(CODE
LOWSparkyFitnessServer/models/genericHealthRepository.ts120export async function getHealthMetricSampleRowForUpdateWithClient(CODE
LOWSparkyFitnessServer/models/genericHealthRepository.ts137export async function upsertHealthMetricSamplesWithClient(CODE
LOWSparkyFitnessServer/models/genericHealthRepository.ts552export async function getDeviceTotalCaloriesByDateRange(CODE
LOWSparkyFitnessServer/models/food.ts1040async function deleteFoodAndDependencies(CODE
LOWSparkyFitnessServer/models/food.ts1699async function findFoodByProviderExternalId(CODE
LOWSparkyFitnessServer/models/food.ts1729async function updateFoodVariantNutrition(CODE
1020 more matches not shown…
Decorative Section Separators118 hits · 331 pts
SeverityFileLineSnippetContext
MEDIUMSparkyFitnessServer/tests/ouraDataProcessor.test.ts89// ─── parseSleepPhases ────────────────────────────────────────────────────────COMMENT
MEDIUMSparkyFitnessServer/tests/ouraDataProcessor.test.ts129// ─── processOuraSleep ────────────────────────────────────────────────────────COMMENT
MEDIUMSparkyFitnessServer/tests/ouraDataProcessor.test.ts293// ─── processOuraDailyActivity ────────────────────────────────────────────────COMMENT
MEDIUMSparkyFitnessServer/tests/ouraDataProcessor.test.ts324// ─── processOuraHeartRate ────────────────────────────────────────────────────COMMENT
MEDIUMSparkyFitnessServer/tests/ouraDataProcessor.test.ts355// ─── processOuraWorkouts ─────────────────────────────────────────────────────COMMENT
MEDIUM…yFitnessServer/tests/googleHealthDataProcessor.test.ts86// ─── Weight ──────────────────────────────────────────────────────────────────COMMENT
MEDIUM…yFitnessServer/tests/googleHealthDataProcessor.test.ts118// ─── SpO2 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…yFitnessServer/tests/googleHealthDataProcessor.test.ts167// ─── Resting Heart Rate ───────────────────────────────────────────────────────COMMENT
MEDIUM…yFitnessServer/tests/googleHealthDataProcessor.test.ts203// ─── Active Zone Minutes ──────────────────────────────────────────────────────COMMENT
MEDIUM…yFitnessServer/tests/googleHealthDataProcessor.test.ts247// ─── Sleep anchoring ─────────────────────────────────────────────────────────COMMENT
MEDIUM…yFitnessServer/tests/googleHealthDataProcessor.test.ts350// ─── Exercise — null guard after createExercise ───────────────────────────────COMMENT
MEDIUM…yFitnessServer/tests/googleHealthDataProcessor.test.ts411// ─── Sleep recording-zone stamp (issue #2033) ───────────────────────────────COMMENT
MEDIUM…yFitnessServer/tests/googleHealthDataProcessor.test.ts411// ─── Sleep recording-zone stamp (issue #2033) ───────────────────────────────COMMENT
MEDIUM…yFitnessServer/tests/googleHealthDataProcessor.test.ts463// ─── Activity minutes ────────────────────────────────────────────────────────COMMENT
MEDIUM…yFitnessServer/tests/googleHealthDataProcessor.test.ts583// ─── Core body temperature ───────────────────────────────────────────────────COMMENT
MEDIUM…arkyFitnessServer/models/externalProviderRepository.ts918// ─── Admin global provider CRUD ───────────────────────────────────────────────COMMENT
MEDIUMSparkyFitnessServer/models/measurementRepository.ts1778// ── Water Intake Entries (granular drink-by-drink tracking) ──────────────COMMENT
MEDIUM…erver/integrations/googlehealth/googleHealthService.ts455// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…erver/integrations/googlehealth/googleHealthService.ts457// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…erver/integrations/googlehealth/googleHealthService.ts734// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…erver/integrations/googlehealth/googleHealthService.ts736// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…integrations/googlehealth/googleHealthDataProcessor.ts43// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…integrations/googlehealth/googleHealthDataProcessor.ts45// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…integrations/googlehealth/googleHealthDataProcessor.ts174// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…integrations/googlehealth/googleHealthDataProcessor.ts178// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…integrations/googlehealth/googleHealthDataProcessor.ts515// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…integrations/googlehealth/googleHealthDataProcessor.ts519// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…integrations/googlehealth/googleHealthDataProcessor.ts554// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…integrations/googlehealth/googleHealthDataProcessor.ts558// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…integrations/googlehealth/googleHealthDataProcessor.ts1015// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…integrations/googlehealth/googleHealthDataProcessor.ts1019// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts16// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts18// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts235// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts238// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts279// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts284// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts317// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts321// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts356// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts361// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts412// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts416// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts454// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts458// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts610// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts615// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts813// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts817// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts933// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts937// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts969// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts973// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts1060// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts1064// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts1103// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts1112// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts1182// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts1186// ──────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…integrations/googlehealth/googleHealthDataProcessor.ts1233// ──────────────────────────────────────────────────────────────────────────────COMMENT
58 more matches not shown…
Over-Commented Block230 hits · 230 pts
SeverityFileLineSnippetContext
LOWREADME.md141# Option C: Full reference — every supported variable, commented out with itsCOMMENT
LOWpnpm-workspace.yaml61 # published @esbuild/linux-x64 binary reports "0.27.4" to its ownCOMMENT
LOWSparkyFitnessServer/SparkyFitnessServer.ts501const UPLOADS_BASE_DIR = process.env.SPARKY_FITNESS_CUSTOM_UPLOADS_DIRECTORYCOMMENT
LOWSparkyFitnessServer/index.ts21 errorCOMMENT
LOWSparkyFitnessServer/auth.ts401 // instance enforces one shared limit per client address.COMMENT
LOWSparkyFitnessServer/auth.ts481 process.env.ALLOW_PRIVATE_NETWORK_CORS === 'true' ||COMMENT
LOWSparkyFitnessServer/auth.ts561 required: false,COMMENT
LOWSparkyFitnessServer/auth.ts581 //COMMENT
LOWSparkyFitnessServer/middleware/authMiddleware.ts141 // - Session tokens (shorter, or contain dots) → signed session cookieCOMMENT
LOWSparkyFitnessServer/constants/openFoodFacts.ts1// The first release supports explicit, single-food contributions only.COMMENT
LOW…rver/tests/measurementService.sleepResyncMerge.test.ts21vi.mock('../config/logging', () => ({COMMENT
LOW…rkyFitnessServer/tests/dailySummarySupplements.test.ts41 // the clamp appears *somewhere* in the string therefore proves almost nothing, because anyCOMMENT
LOW…ssServer/tests/rlsPermissionMatrix.integration.test.ts141 sys.release();COMMENT
LOWSparkyFitnessServer/utils/deviceTotalCalories.ts1// Several sources can store a day's total burn in daily_health_metrics, one rowCOMMENT
LOW…arkyFitnessServer/models/externalProviderRepository.ts321 return result.rows[0];COMMENT
LOWSparkyFitnessServer/models/foodMisc.ts401// entry wins over the volume fallback; sf_volume_unit_to_ml returns NULL forCOMMENT
LOWSparkyFitnessServer/models/syncedDataRepository.ts21// Wearable telemetry tables. Identical purpose to the list above, but they spellCOMMENT
LOWSparkyFitnessServer/models/syncedDataRepository.ts41COMMENT
LOWSparkyFitnessServer/models/measurementRepository.ts1961 for (const sample of samples) {COMMENT
LOWSparkyFitnessServer/ai/providerDispatch.ts101 ok: false;COMMENT
LOWSparkyFitnessServer/ai/tools/index.ts261 // placeholder junk that the per-action validation rejects.COMMENT
LOWSparkyFitnessServer/ai/tools/caffeineKineticsTools.ts21COMMENT
LOW…tnessServer/scripts/backfillWorkoutTelemetry.script.ts1// One-off backfill: re-derives the relational workout telemetry (exercise_entriesCOMMENT
LOWSparkyFitnessServer/routes/auth/apiKeyRoutes.ts61 // Better Auth's server API takes endpoint fields under `body`; theCOMMENT
LOWSparkyFitnessServer/routes/auth/apiKeyRoutes.ts121 async (req, res, next) => {COMMENT
LOWSparkyFitnessServer/routes/v2/medicationRoutes.ts61router.use(onBehalfOfMiddleware);COMMENT
LOWSparkyFitnessServer/routes/v2/medicationRoutes.ts121// open — a caregiver without diary access could log doses of a supplement the ownerCOMMENT
LOWSparkyFitnessServer/services/exerciseService.ts1401 // resolveImageFileName appends a URL hash (`0.jpg` -> `0_ab12cd34.jpg`), soCOMMENT
LOWSparkyFitnessServer/services/foodPhotoLogService.ts121 // Deliberately a normal, visible food — NOT a quick food.COMMENT
LOWSparkyFitnessServer/services/chatService.ts101COMMENT
LOWSparkyFitnessServer/services/chatService.ts461 * always act as the logged-in actor, matching the previous MCP behavior.COMMENT
LOWSparkyFitnessServer/services/chatService.ts581COMMENT
LOWSparkyFitnessServer/services/chatService.ts721// auto-cache) and Ollama's KV-cache reuse only kick in when a new request is aCOMMENT
LOWSparkyFitnessServer/services/chatService.ts841COMMENT
LOWSparkyFitnessServer/services/chatService.ts961 };COMMENT
LOWSparkyFitnessServer/services/chatService.ts1701// follow-up turn needs (a food's id, the matched name, its serving units)COMMENT
LOWSparkyFitnessServer/services/foodEntryService.ts201}COMMENT
LOWSparkyFitnessServer/services/foodEntryService.ts261// Food resolution per row (see agent-docs plan "diary-csv-import"):COMMENT
LOWSparkyFitnessServer/services/healthDataHandlers.ts801const ACCUMULATING_BMR_SOURCES = new Set(['garmin']);COMMENT
LOWSparkyFitnessServer/services/measurementService.ts741 // glass -- and only the glass knows the hydration. This used toCOMMENT
LOWSparkyFitnessServer/services/waterContainerService.ts301 // be sized differently from the catalog entry.COMMENT
LOWSparkyFitnessServer/services/DashboardService.ts41 calorieRuleHistory,COMMENT
LOWdocker/docker-compose.dev.yml121 # sparkyfitness-garmin:COMMENT
LOWdocker/docker-compose.dev.yml141 driver: bridgeCOMMENT
LOWdocker/docker-compose.db_dev.yml21 # - "8000:8000"COMMENT
LOWdocker/docker-entrypoint.sh61 esacCOMMENT
LOWdocker/docker-compose.prod.yml161 #secrets:COMMENT
LOWdocker/docker-compose.prod.yml201 # Garmin integration is still work in progress. Enable once table is ready.COMMENT
LOWdocker/docker-compose.prod.yml221COMMENT
LOWshared/src/constants/routingProviderTypes.ts1// The external provider that backs route generation and "Follow roads": aCOMMENT
LOWshared/src/constants/foodProviderTypes.ts1// Single source of truth for the external food providers the app canCOMMENT
LOWshared/src/constants/weatherProviderTypes.ts1// The external provider that backs the weather of GPS-recorded activities: anCOMMENT
LOWshared/src/constants/supplementProviderTypes.ts1// The external provider that backs the supplement barcode lookup (NIH DietaryCOMMENT
LOWshared/src/utils/csvFormat.ts1// Format-selection types and detection for the unified CSV import UI. ThisCOMMENT
LOWshared/src/utils/parseCsv.ts1// Single CSV-parsing entry point shared by every import screen (frontend)COMMENT
LOWshared/src/schemas/database/HealthMetricSamples.zod.ts1import { z } from 'zod';COMMENT
LOWshared/src/schemas/api/ExerciseEntries.api.zod.ts321// one, unlike the HealthKit/Health Connect/Garmin sync path.COMMENT
LOWSparkyFitnessFrontend/src/constants/healthDataImport.ts1import { localDateToDay, addDays } from '@workspace/shared';COMMENT
LOWSparkyFitnessFrontend/src/utils/activityReportUtil.ts581 const calories = pos(e['calories_burned']);COMMENT
LOWSparkyFitnessFrontend/src/utils/providerColor.ts1import type { DataProvider } from '@/types/settings';COMMENT
170 more matches not shown…
Fake / Example Data200 hits · 209 pts
SeverityFileLineSnippetContext
LOW⚡SparkyFitnessServer/tests/emailService.test.ts91 'user@example.com',CODE
LOW⚡SparkyFitnessServer/tests/emailService.test.ts96 const mfaResult = await sendEmailMfaCode('user@example.com', '123456');CODE
LOW⚡SparkyFitnessServer/tests/emailService.test.ts100 'user@example.com',CODE
LOWSparkyFitnessServer/tests/emailService.test.ts121 'user@example.com',CODE
LOWSparkyFitnessServer/tests/emailService.test.ts129 to: 'user@example.com',CODE
LOWSparkyFitnessServer/tests/emailService.test.ts150 const result = await sendEmailMfaCode('user@example.com', '654321');CODE
LOWSparkyFitnessServer/tests/emailService.test.ts156 to: 'user@example.com',CODE
LOWSparkyFitnessServer/tests/emailService.test.ts178 'user@example.com',CODE
LOWSparkyFitnessServer/tests/emailService.test.ts186 to: 'user@example.com',CODE
LOW⚡SparkyFitnessServer/tests/emailService.test.ts210 sendPasswordResetEmail('user@example.com', 'https://example.com/reset')CODE
LOW⚡SparkyFitnessServer/tests/emailService.test.ts216 sendEmailMfaCode('user@example.com', '123456')CODE
LOW⚡SparkyFitnessServer/tests/emailService.test.ts220 sendMagicLinkEmail('user@example.com', 'https://example.com/magic')CODE
LOW…rkyFitnessServer/tests/externalProviderService.test.ts45 username: 'user@example.com',CODE
LOW…rkyFitnessServer/tests/externalProviderService.test.ts325 app_id: 'user@example.com',CODE
LOW…rkyFitnessServer/tests/externalProviderService.test.ts418 app_id: 'user@example.com',CODE
LOW…rkyFitnessServer/tests/externalProviderService.test.ts527 app_id: 'user@example.com',CODE
LOW…rkyFitnessServer/tests/externalProviderService.test.ts547 username: 'user@example.com',CODE
LOWSparkyFitnessServer/tests/chatbotToolsProfile.test.ts103 { action: 'update_profile', email: 'admin@example.com' } as never,CODE
LOW⚡…arkyFitnessServer/tests/authServiceUpdateEmail.test.ts34 process.env.SPARKY_FITNESS_ADMIN_EMAIL = 'admin@example.com';CODE
LOW⚡…arkyFitnessServer/tests/authServiceUpdateEmail.test.ts37 authService.updateUserEmail('attacker-id', 'admin@example.com', 'pw')CODE
LOW⚡…arkyFitnessServer/tests/authServiceUpdateEmail.test.ts44 process.env.SPARKY_FITNESS_ADMIN_EMAIL = 'admin@example.com';CODE
LOWSparkyFitnessServer/tests/oidcGroupSync.test.ts91 const idToken = createIdToken({ email: 'test@test.com' }); // No groupsCODE
LOWSparkyFitnessServer/tests/oidcGroupSync.test.ts172 const idToken = createIdToken({ email: 'test@test.com' }); // No groupsCODE
LOWSparkyFitnessServer/tests/yazioService.test.ts438 username: 'user@example.com',CODE
LOWdocs/components/EnvGenerator.vue1065 placeholder="admin@example.com"CODE
LOW…arkyFitnessFrontend/public/locales/sl/translation.json1685 "placeholder": "Vnesite črtno kodo",CODE
LOW…arkyFitnessFrontend/public/locales/sk/translation.json1162 "placeholder": "Hľadať cvičenia…",CODE
LOW…arkyFitnessFrontend/public/locales/sk/translation.json2010 "placeholder": "Popis (napr. „Skratka pre zdravie na iPhone“)",CODE
LOW…itnessFrontend/public/locales/zh-Hans/translation.json1151 "placeholder": "搜索运动…",CODE
LOW…itnessFrontend/public/locales/zh-Hans/translation.json2124 "placeholder": "描述(例如“iPhone 健康快捷指令”)",CODE
LOW…itnessFrontend/public/locales/zh-Hans/translation.json5206 "placeholder": "填写条形码编号",CODE
LOW…itnessFrontend/public/locales/zh-Hans/translation.json5785 "placeholder": "敬请期待"CODE
LOW…itnessFrontend/public/locales/zh-Hant/translation.json1151 "placeholder": "搜尋運動…",CODE
LOW…itnessFrontend/public/locales/zh-Hant/translation.json2124 "placeholder": "描述(例如「iPhone 健康捷徑」)",CODE
LOW…itnessFrontend/public/locales/zh-Hant/translation.json5206 "placeholder": "輸入條碼數字",CODE
LOW…itnessFrontend/public/locales/zh-Hant/translation.json5785 "placeholder": "即將推出"CODE
LOW…arkyFitnessFrontend/public/locales/pl/translation.json427 "placeholder": "Szukaj ćwiczeń…",CODE
LOW…arkyFitnessFrontend/public/locales/pl/translation.json1995 "placeholder": "Opis (np. „Mój klucz”)",CODE
LOW…arkyFitnessFrontend/public/locales/pl/translation.json4564 "placeholder": "Wprowadź kod kreskowy",CODE
LOW…arkyFitnessFrontend/public/locales/pl/translation.json5538 "placeholder": "Wkrótce"CODE
LOW…arkyFitnessFrontend/public/locales/sv/translation.json790 "placeholder": "Ange streckkod",CODE
LOW…arkyFitnessFrontend/public/locales/lv/translation.json394 "placeholder": "Meklēt vingrinājumus…",CODE
LOW…arkyFitnessFrontend/public/locales/lv/translation.json1152 "placeholder": "Apraksts (piem., ",CODE
LOW…arkyFitnessFrontend/public/locales/lv/translation.json3531 "placeholder": "Ievadiet svītrkodu",CODE
LOW…arkyFitnessFrontend/public/locales/lv/translation.json4705 "placeholder": "Drīzumā"CODE
LOW…arkyFitnessFrontend/public/locales/it/translation.json2029 "placeholder": "Inserisci codice a barre",CODE
LOW…arkyFitnessFrontend/public/locales/cs/translation.json1178 "placeholder": "Hledat cviky…",CODE
LOW…arkyFitnessFrontend/public/locales/cs/translation.json2050 "placeholder": "Popis (např. „Zkratka Zdraví na iPhonu“)",CODE
LOW…arkyFitnessFrontend/public/locales/cs/translation.json4369 "placeholder": "Zadejte čárový kód",CODE
LOW…arkyFitnessFrontend/public/locales/cs/translation.json4667 "placeholder": "Již brzy"CODE
LOW…tnessFrontend/public/locales/yue-Hant/translation.json1151 "placeholder": "搜尋運動…",CODE
LOW…tnessFrontend/public/locales/yue-Hant/translation.json2124 "placeholder": "描述(例如 「iPhone Health Shortcut 快捷指令」 )",CODE
LOW…tnessFrontend/public/locales/yue-Hant/translation.json5206 "placeholder": "輸入條碼數字",CODE
LOW…tnessFrontend/public/locales/yue-Hant/translation.json5785 "placeholder": "開發中,遲啲先有得用"CODE
LOW…arkyFitnessFrontend/public/locales/ru/translation.json394 "placeholder": "Поиск упражнений…",CODE
LOW…arkyFitnessFrontend/public/locales/ru/translation.json1174 "placeholder": "Описание (например, «Ярлык приложения «Здоровье» на iPhone»)",CODE
LOW…arkyFitnessFrontend/public/locales/ru/translation.json3555 "placeholder": "Введите штрих-код",CODE
LOW…arkyFitnessFrontend/public/locales/ru/translation.json4547 "placeholder": "Скоро появится"CODE
LOW…arkyFitnessFrontend/public/locales/pt/translation.json1677 "placeholder": "Insira o código de barras",CODE
LOW…yFitnessFrontend/public/locales/nb-NO/translation.json475 "placeholder": "Søk etter øvelser…"CODE
140 more matches not shown…
Structural Annotation Overuse18 hits · 29 pts
SeverityFileLineSnippetContext
LOWSparkyFitnessServer/services/corosService.ts278 // Step 1: Chunk the requested date range into 90-day windowsCOMMENT
LOWSparkyFitnessServer/services/corosService.ts546 // Step 3: Raw Health Capture (Phase 1 mock capture ONLY; does not write to DB)COMMENT
LOW.agents/skills/pr-submission/SKILL.md34### Step 1: Pre-Submission ValidationCOMMENT
LOW.agents/skills/pr-submission/SKILL.md58### Step 2: Branch Check & StagingCOMMENT
LOW.agents/skills/pr-submission/SKILL.md74### Step 3: Commit MessageCOMMENT
LOW.agents/skills/pr-submission/SKILL.md85### Step 4: Prepare PR Body from TemplateCOMMENT
LOW.agents/skills/pr-submission/SKILL.md97### Step 5: Push Branch & Create PRCOMMENT
LOW.agents/skills/pr-submission/SKILL.md109### Step 6: Final VerificationCOMMENT
LOWdocs/src/install/portainer.md13## Step 1: Create a New Stack in PortainerCOMMENT
LOWdocs/src/install/portainer.md24## Step 2: Deploy the StackCOMMENT
LOWdocs/src/install/portainer.md29## Step 3: Access SparkyFitnessCOMMENT
LOWSparkyFitnessMobile/MobileApp-Dev-commands.md12### Step 1: Generate Release Key (One Time)COMMENT
LOWSparkyFitnessMobile/MobileApp-Dev-commands.md23### Step 2: Configure Secrets in GitHubCOMMENT
LOWSparkyFitnessMobile/MobileApp-Dev-commands.md45### Step 3: Trigger the BuildCOMMENT
LOW⚡SparkyFitnessMobile/MobileApp-Dev-commands.md72### Step 1: Install EAS CLICOMMENT
LOW⚡SparkyFitnessMobile/MobileApp-Dev-commands.md79### Step 2: Build for App StoreCOMMENT
LOW⚡SparkyFitnessMobile/MobileApp-Dev-commands.md89### Step 3: Upload to App StoreCOMMENT
LOWhelm/chart/values.yaml557 # WARNING: The DB owner is granted CREATEROLE so the application can automaticallyCOMMENT
Excessive Try-Catch Wrapping38 hits · 28 pts
SeverityFileLineSnippetContext
MEDIUMSparkyFitnessGarmin/routes.py1667def _safe_sub_call(fn, *args):CODE
LOWSparkyFitnessGarmin/routes.py100 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py138 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py214 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py240 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py251 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py283 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py458 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py486 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py533 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py555 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py579 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py815 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py899 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py935 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1003 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1023 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1067 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1083 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1148 except Exception as gql_e:CODE
LOWSparkyFitnessGarmin/routes.py1155 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1230 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1248 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1264 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1319 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1373 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1386 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1401 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1444 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1463 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1528 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1585 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1670 except Exception as sub_err:CODE
LOWSparkyFitnessGarmin/routes.py1744 except Exception as act_err:CODE
LOWSparkyFitnessGarmin/routes.py1766 except Exception as w_err:CODE
LOWSparkyFitnessGarmin/routes.py1814 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1876 except Exception as e:CODE
LOWSparkyFitnessGarmin/routes.py1905 except Exception as e:CODE
AI Slop Vocabulary6 hits · 16 pts
SeverityFileLineSnippetContext
MEDIUMSparkyFitnessServer/routes/withingsDataRoutes.ts61 // This is a simplified check; a more robust solution might involve tagging categories by sourceCOMMENT
MEDIUMSparkyFitnessServer/services/foodEntryService.ts3331 const dateStr = getDayString(dateInput); // robust parsingCODE
MEDIUMSparkyFitnessServer/services/sleepAnalyticsService.ts115 // A more robust solution might average or sum scores.COMMENT
MEDIUM…rkyFitnessFrontend/src/pages/Settings/ProviderCard.tsx428 // Basic hasToken check that is more robustCOMMENT
MEDIUMSparkyFitnessFrontend/src/pages/Diary/MealCard.tsx385 const isFoodEntryMeal = 'foods' in item && 'entry_date' in item; // More robust check for FoodEntryMealCODE
MEDIUM…rkyFitnessMobile/src/components/WorkoutReorderList.tsx585 // seamless (see the row gesture's onEnd/onFinalize and the reset effect below).COMMENT
Modern AI Meta-Vocabulary6 hits · 16 pts
SeverityFileLineSnippetContext
MEDIUMdocker/docker-compose.dev.yml77 GARMIN_MICROSERVICE_URL: ${GARMIN_MICROSERVICE_URL:-http://sparkyfitness-garmin:${GARMIN_SERVICE_PORT:-8000}} # GaCODE
MEDIUMdocker/docker-compose.prod.yml128 GARMIN_MICROSERVICE_URL: ${GARMIN_MICROSERVICE_URL:-http://sparkyfitness-garmin:${GARMIN_SERVICE_PORT:-8000}} # GaCODE
MEDIUMdocker/docker-compose.prod.yml199 #- sparkyfitness-garmin # Frontend depends on Garmin microservice. Enable if you are using Garmin Connect featuresCOMMENT
MEDIUMnix/README.md75### Garmin Connect microserviceCOMMENT
MEDIUMhelm/chart/values.yaml453# -- Garmin microservice (python, USER daemon UID 1)COMMENT
MEDIUMhelm/chart/templates/networking/networkpolicy.yaml110 # → Garmin microserviceCOMMENT
Redundant / Tautological Comments5 hits · 8 pts
SeverityFileLineSnippetContext
LOWdb_backup.sh5# Check if .env file existsCOMMENT
LOWstart_garmin_microservice.sh53# Check if existing venv is using Python >= 3.10COMMENT
LOWscripts/reset-dev.sh32# Check if origin remote is configuredCOMMENT
LOWSparkyFitnessGarmin/routes.py958 # Check if data is in nested structureCOMMENT
LOWSparkyFitnessGarmin/routes.py1326 # Check if we already have body battery data for this date from user_summaryCOMMENT
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHSparkyFitnessFrontend/src/pages/Foods/Foods.tsx397 // Sorting is disabled for dietary_fiber and custom nutrients as requestedCOMMENT
Slop Phrases3 hits · 5 pts
SeverityFileLineSnippetContext
LOW…arkyFitnessServer/tests/chatbotToolsEngagement.test.ts270 "Great workout! Don't forget to log your meals to track your nutrition.",CODE
LOWSparkyFitnessServer/ai/tools/engagementTools.ts176 "Great workout! Don't forget to log your meals to track your nutrition.";CODE
MEDIUMhelm/chart/values.yaml56 # For local testin and port forwarding, you can use the below commented value.COMMENT
Deep Nesting6 hits · 4 pts
SeverityFileLineSnippetContext
LOWSparkyFitnessGarmin/service.py133CODE
LOWSparkyFitnessGarmin/service.py239CODE
LOWSparkyFitnessGarmin/routes.py146CODE
LOWSparkyFitnessGarmin/routes.py1592CODE
LOWSparkyFitnessGarmin/routes.py1821CODE
LOWSparkyFitnessGarmin/routes.py1658CODE
Verbosity Indicators2 hits · 3 pts
SeverityFileLineSnippetContext
LOWSparkyFitnessServer/services/corosService.ts278 // Step 1: Chunk the requested date range into 90-day windowsCOMMENT
LOWSparkyFitnessServer/services/corosService.ts546 // Step 3: Raw Health Capture (Phase 1 mock capture ONLY; does not write to DB)COMMENT
Modern Structural Boilerplate3 hits · 3 pts
SeverityFileLineSnippetContext
LOWSparkyFitnessGarmin/service.py11logger = logging.getLogger(__name__)CODE
LOWSparkyFitnessGarmin/main.py9logger = logging.getLogger(__name__)CODE
LOWSparkyFitnessGarmin/routes.py45logger = logging.getLogger(__name__)CODE
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMSparkyFitnessGarmin/routes.py47# Create the routerCOMMENT
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOWSparkyFitnessGarmin/service.py1CODE
LOWSparkyFitnessGarmin/routes.py2CODE