AI Slop Code RIsk Monitor

fullstackhero/dotnet-starter-kit

Production Grade Cloud-Ready .NET 10 Starter Kit (Web API + React Client) with Multitenancy Support, and Clean/Modular Architecture that saves roughly 200+ Development Hours! All Batteries Included.

9.6 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for fullstackhero/dotnet-starter-kit, a C# project with 6,813 GitHub stars. SynthScan examined 237,572 lines of code across 2209 source files, recording 888 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 9.6 (Moderate 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.

9.6
Adjusted Signal
9.6
Raw Pattern Score
100%
Time Factor
2026-10-09
Last Push
6.8K
Stars
C#
Language
237.6K
Lines of Code
2.2K
Files
888
Pattern Hits
2026-10-12
Scan Date
0.00
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 3.9/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.1/100 · LOW

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

Agent Over-Engineering Ratio 34.2/100 · MEDIUM

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

PR Review Velocity Impact 38.2/100 · MEDIUM

Which changes need focused human review? 888 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 5HIGH 0MEDIUM 676LOW 207

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 888 distinct pattern matches across 9 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.

Decorative Section Separators665 hits · 1978 pts
SeverityFileLineSnippetContext
MEDIUMclients/admin/src/components/ui/dialog.tsx152// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/ui/dialog.tsx156// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…nts/admin/src/components/auth/demo-accounts-dialog.tsx11// ────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…nts/admin/src/components/auth/demo-accounts-dialog.tsx19// ────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…nts/admin/src/components/auth/demo-accounts-dialog.tsx117// ─── AccountRow ──────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/auth/auth-shell.tsx5// ────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/auth/auth-shell.tsx18// ────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/topbar.tsx39// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/topbar.tsx41// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/topbar.tsx143// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/topbar.tsx145// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/nav-items.ts39// ─── Top-level singletons ────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/nav-items.ts49// ─── Section accordions ──────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/nav-items.ts122// ─── Helpers ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/sidebar.tsx165// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/sidebar.tsx168// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/sidebar.tsx262// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/sidebar.tsx264// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/sidebar.tsx352// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/layout/sidebar.tsx355// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ents/admin/src/components/roles/create-role-dialog.tsx23// ─── Schema (identical to the old create page) ───────────────────────────────COMMENT
MEDIUM…ents/admin/src/components/roles/create-role-dialog.tsx36// ─── Dialog ───────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/admin/src/components/tenants/tenant-branding-card.tsx187// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/admin/src/components/tenants/tenant-branding-card.tsx189// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/admin/src/components/tenants/tenant-branding-card.tsx289// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/admin/src/components/tenants/tenant-branding-card.tsx291// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/admin/src/components/tenants/tenant-branding-card.tsx382// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/admin/src/components/tenants/tenant-branding-card.tsx384// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…/admin/src/components/tenants/create-tenant-dialog.tsx35// ─── Schema (unchanged contract) ────────────────────────────────────────────COMMENT
MEDIUM…/admin/src/components/tenants/create-tenant-dialog.tsx90// ─── Small inline adornment button (eye / generate) ─────────────────────────COMMENT
MEDIUM…/admin/src/components/tenants/create-tenant-dialog.tsx119// ─── Live preview rail ───────────────────────────────────────────────────────COMMENT
MEDIUM…/admin/src/components/tenants/create-tenant-dialog.tsx198// ─── Dialog ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/list/settings-section.tsx5// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/list/settings-section.tsx16// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/list/settings-field.tsx4// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/list/settings-field.tsx15// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ients/admin/src/components/list/entity-page-header.tsx5// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ients/admin/src/components/list/entity-page-header.tsx10// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/list/tone-icon-tile.tsx4// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/list/tone-icon-tile.tsx15// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/components/list/index.ts10// ── Phase-2 unified design-system primitives ──────────────────────────COMMENT
MEDIUM…ents/admin/src/components/users/create-user-dialog.tsx23// ─── Schema (identical to the old create page) ───────────────────────────────COMMENT
MEDIUM…ents/admin/src/components/users/create-user-dialog.tsx47// ─── Section label ────────────────────────────────────────────────────────────COMMENT
MEDIUM…ents/admin/src/components/users/create-user-dialog.tsx76// ─── Dialog ───────────────────────────────────────────────────────────────────COMMENT
MEDIUM…in/src/components/impersonation/active-grants-card.tsx107// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…in/src/components/impersonation/active-grants-card.tsx109// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…in/src/components/impersonation/impersonate-dialog.tsx122// ─── Step 1: pick user ──────────────────────────────────────────────────COMMENT
MEDIUM…in/src/components/impersonation/impersonate-dialog.tsx245// ─── Step 2: configure ──────────────────────────────────────────────────COMMENT
MEDIUM…in/src/components/impersonation/impersonate-dialog.tsx436// ─── Handoff helper ─────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/hooks/use-file-upload.ts98 // ── Client-side guard rails (defense-in-depth) ─────────────COMMENT
MEDIUMclients/admin/src/hooks/use-file-upload.ts136 // ── Step 1 — mint the presigned URL ─────────────────────────COMMENT
MEDIUMclients/admin/src/hooks/use-file-upload.ts165 // ── Step 2 — PUT bytes via XHR for progress events ──────────COMMENT
MEDIUMclients/admin/src/hooks/use-file-upload.ts191 // ── Step 3 — finalize ──────────────────────────────────────COMMENT
MEDIUMclients/admin/src/lib/permissions.ts80// ─── Catalog (drives the Role editor) ───────────────────────────────────COMMENT
MEDIUMclients/admin/src/api/wallet.ts4// ─── shared enums ────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/api/wallet.ts13// ─── top-up requests ─────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/api/tenants.ts145// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/api/tenants.ts153// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/api/billing.ts6// ─── shared enums ────────────────────────────────────────────────────COMMENT
MEDIUMclients/admin/src/api/billing.ts25// ─── plans ───────────────────────────────────────────────────────────COMMENT
605 more matches not shown…
Over-Commented Block148 hits · 148 pts
SeverityFileLineSnippetContext
LOWclients/admin/tests/billing/plans.spec.ts101COMMENT
LOWclients/admin/src/components/auth/auth-shell.tsx1import type { ReactNode } from "react";COMMENT
LOWclients/admin/src/components/list/settings-section.tsx1import * as React from "react";COMMENT
LOWclients/admin/src/components/list/settings-field.tsx1import * as React from "react";COMMENT
LOWclients/admin/src/components/list/tone-icon-tile.tsx1import type { LucideIcon } from "lucide-react";COMMENT
LOWclients/admin/src/api/audits.ts81 traceId?: string;COMMENT
LOWclients/dashboard/tests/chat/chat.spec.ts1// E2E coverage for the /chat shell (src/pages/chat/chat-page.tsx): theCOMMENT
LOWclients/dashboard/tests/files/files.spec.ts1// E2E coverage for the /files page (src/pages/files/my-files.tsx): the fileCOMMENT
LOW…hboard/tests/impersonation/impersonation-ended.spec.ts1// E2E coverage for the impersonation-revoked terminal flow.COMMENT
LOWclients/dashboard/src/routes.tsx1import { lazy, Suspense, type ComponentType } from "react";COMMENT
LOW…ients/dashboard/src/components/list/tone-icon-tile.tsx1import type { LucideIcon } from "lucide-react";COMMENT
LOWclients/dashboard/src/api/tenants.ts1import { apiFetch } from "@/lib/api-client";COMMENT
LOWdeploy/terraform/modules/ecs_task/main.tf1################################################################################COMMENT
LOWdeploy/terraform/modules/static_site/main.tf1################################################################################COMMENT
LOWdeploy/terraform/apps/starter/deploy.sh1#!/usr/bin/env bashCOMMENT
LOW…ans/2026-08-06-framework-owned-transactional-outbox.md381/// <summary>COMMENT
LOWsrc/Tools/CLI/Infrastructure/VersionComparer.cs1namespace FSH.CLI.Infrastructure;COMMENT
LOWsrc/Host/FSH.Starter.DbMigrator/PostgresMigratorLock.cs21 // Parameterised SQL: the bigint key is constant, but a parameter satisfiesCOMMENT
LOWsrc/Host/FSH.Starter.DbMigrator/DemoSeed/DemoSeeder.cs181 ///COMMENT
LOWsrc/Tests/Caching.Tests/CachedTypeContractTests.cs1using System.ComponentModel;COMMENT
LOWsrc/Tests/Architecture.Tests/TenantIsolationTests.cs21/// the auto-apply in <c>BaseDbContext.OnModelCreating</c>. Opt-out is via theCOMMENT
LOW…tegration.Tests/Tests/Chat/ChatTenantIsolationTests.cs1using FSH.Modules.Chat.Contracts.v1.DTOs;COMMENT
LOW…tegration.Tests/Tests/Multitenancy/TenantThemeTests.cs1#pragma warning disable S1144 // Unused private members — populated by JSON deserializationCOMMENT
LOW…s/Tests/Multitenancy/TenantProvisioningFailureTests.cs1using System.Text.Json;COMMENT
LOW…/Multitenancy/ChangeTenantActivationValidationTests.cs1#pragma warning disable S1144 // Unused private members — populated by JSON deserializationCOMMENT
LOW…ts/Integration.Tests/Tests/Auditing/AuditTestHelper.cs1using System.Text.Json;COMMENT
LOW…ts/Integration.Tests/Tests/Auditing/AuditTestHelper.cs101 response.StatusCode.ShouldBe(HttpStatusCode.OK);COMMENT
LOW…/Tests/Integration.Tests/Infrastructure/OutboxDrain.cs1using FSH.Framework.Eventing.Outbox;COMMENT
LOW…ramework.Tests/Eventing/EventingDbContextModelTests.cs81 // Both are IGlobalEntity: the dispatcher scans across tenants within a database.COMMENT
LOWsrc/Tests/Multitenancy.Tests/TenantLifecycleTests.cs1namespace Multitenancy.Tests;COMMENT
LOWsrc/Tests/Multitenancy.Tests/TenantLifecycleTests.cs21// $"/api/v1/tenants/{tenantId}/activation",COMMENT
LOWsrc/BuildingBlocks/Core/Context/IRequestContext.cs1namespace FSH.Framework.Core.Context;COMMENT
LOW…BuildingBlocks/Core/Context/ICurrentUserInitializer.cs1using System.Security.Claims;COMMENT
LOWsrc/BuildingBlocks/Core/Context/ICurrentUser.cs21 /// <summary>COMMENT
LOWsrc/BuildingBlocks/Core/Context/ICurrentUser.cs41 /// </summary>COMMENT
LOWsrc/BuildingBlocks/Core/Exceptions/CustomException.cs21COMMENT
LOWsrc/BuildingBlocks/Core/Common/QueryStringKeys.cs1namespace FSH.Framework.Core.Common;COMMENT
LOWsrc/BuildingBlocks/Core/Abstractions/IAppUser.cs1namespace FSH.Framework.Core.Abstractions;COMMENT
LOWsrc/BuildingBlocks/Core/Abstractions/IAppUser.cs21 Uri? ImageUrl { get; }COMMENT
LOWsrc/BuildingBlocks/Core/Domain/ISoftDeletable.cs1namespace FSH.Framework.Core.Domain;COMMENT
LOWsrc/BuildingBlocks/Core/Domain/IHasDomainEvents.cs1namespace FSH.Framework.Core.Domain;COMMENT
LOWsrc/BuildingBlocks/Core/Domain/IAuditableEntity.cs1namespace FSH.Framework.Core.Domain;COMMENT
LOWsrc/BuildingBlocks/Core/Domain/BaseEntity.cs21 /// <summary>COMMENT
LOWsrc/BuildingBlocks/Core/Domain/IDomainEvent.cs21 /// <summary>COMMENT
LOWsrc/BuildingBlocks/Core/Domain/IGlobalEntity.cs1namespace FSH.Framework.Core.Domain;COMMENT
LOWsrc/BuildingBlocks/Core/Domain/DomainEvent.cs1namespace FSH.Framework.Core.Domain;COMMENT
LOWsrc/BuildingBlocks/Core/Domain/IEntity.cs1namespace FSH.Framework.Core.Domain;COMMENT
LOW…/BuildingBlocks/Core/Localization/SupportedCultures.cs1using System.Collections.Frozen;COMMENT
LOW…BuildingBlocks/Web/TrustedProxy/TrustedProxyOptions.cs1namespace FSH.Framework.Web.TrustedProxy;COMMENT
LOW…BuildingBlocks/Web/TrustedProxy/TrustedProxyOptions.cs21 public string[] KnownProxies { get; init; } = [];COMMENT
LOW…dingBlocks/Web/HttpResilience/HttpResilienceOptions.cs1namespace FSH.Framework.Web.HttpResilience;COMMENT
LOW…dingBlocks/Web/HttpResilience/HttpResilienceOptions.cs21 public TimeSpan MedianFirstRetryDelay { get; set; } = TimeSpan.FromSeconds(1);COMMENT
LOWsrc/BuildingBlocks/Web/Sse/SseEvent.cs1namespace FSH.Framework.Web.Sse;COMMENT
LOW…BuildingBlocks/Web/Frontend/IFrontendOriginResolver.cs1namespace FSH.Framework.Web.Frontend;COMMENT
LOW…BuildingBlocks/Web/Frontend/IFrontendOriginResolver.cs21 /// <summary>COMMENT
LOW…/BuildingBlocks/Web/Frontend/FrontendOriginResolver.cs21 {COMMENT
LOWsrc/BuildingBlocks/Web/Frontend/FrontendOptions.cs1namespace FSH.Framework.Web.Frontend;COMMENT
LOWsrc/BuildingBlocks/Web/Frontend/FrontendOptions.cs21 /// Front-end origin used when the request carries no usable <c>Origin</c> header (non-browserCOMMENT
LOW…/BuildingBlocks/Web/Security/SecurityHeadersOptions.cs21 /// Additional script sources to append to CSP.COMMENT
LOW…c/BuildingBlocks/Web/Idempotency/IdempotencyOptions.cs1namespace FSH.Framework.Web.Idempotency;COMMENT
88 more matches not shown…
Hallucination Indicators5 hits · 55 pts
SeverityFileLineSnippetContext
CRITICALsrc/BuildingBlocks/Caching/CacheKeys.cs6/// <see cref="Microsoft.Extensions.Caching.Hybrid.HybridCache.RemoveByTagAsync(string, System.Threading.CancellationTokCOMMENT
CRITICALsrc/Modules/Identity/Modules.Identity/IdentityModule.cs86 FSH.Framework.Shared.Constants.PermissionConstants.Register(CODE
CRITICAL…ultitenancy/Modules.Multitenancy/MultitenancyModule.cs51 FSH.Framework.Shared.Constants.PermissionConstants.Register(CODE
CRITICALsrc/Modules/Auditing/Modules.Auditing/AuditingModule.cs33 FSH.Framework.Shared.Constants.PermissionConstants.Register(CODE
CRITICALsrc/Modules/Billing/Modules.Billing/BillingModule.cs47 FSH.Framework.Shared.Constants.PermissionConstants.Register(CODE
Fake / Example Data47 hits · 48 pts
SeverityFileLineSnippetContext
LOWclients/admin/tests/tenants/tenants-list.spec.ts7 name: "Acme Corp",CODE
LOWclients/admin/tests/tenants/tenant-billing.spec.ts55 id: "acme-corp", name: "Acme Corp", adminEmail: "admin@acme.example",CODE
LOWclients/admin/tests/tenants/tenant-billing.spec.ts87 await dialog.getByLabel(/^Display name/).fill("Acme Corp");CODE
LOWclients/admin/tests/tenants/tenant-billing.spec.ts111 id: "acme-corp", name: "Acme Corp", adminEmail: "admin@acme.example",CODE
LOWclients/admin/tests/tenants/tenant-billing.spec.ts179 id: "acme-corp", name: "Acme Corp", adminEmail: "admin@acme.example",CODE
LOWclients/admin/tests/tenants/branding.spec.ts20 name: "Acme Corp",CODE
LOWclients/admin/tests/tenants/tenant-create.spec.ts93 name: "Acme Corp",CODE
LOWclients/admin/tests/tenants/tenant-create.spec.ts125 await dialog.getByLabel(/^Display name/).fill("Acme Corp");CODE
LOWclients/admin/tests/tenants/tenant-create.spec.ts142 name: "Acme Corp",CODE
LOWclients/admin/tests/tenants/tenant-create.spec.ts158 await dialog.getByLabel(/^Display name/).fill("Acme Corp");CODE
LOWclients/admin/tests/tenants/tenant-create.spec.ts214 await dialog.getByLabel(/^Display name/).fill("Acme Corp");CODE
LOWclients/admin/tests/tenants/tenant-detail.spec.ts13 name: "Acme Corp",CODE
LOWclients/admin/tests/tenants/tenant-detail.spec.ts73 page.getByRole("heading", { level: 2, name: "Acme Corp", exact: true }),CODE
LOWclients/admin/tests/tenants/tenant-detail.spec.ts120 page.getByRole("heading", { level: 2, name: "Acme Corp", exact: true }),CODE
LOWclients/admin/tests/dashboard/dashboard.spec.ts20 name: "Acme Corp",CODE
LOW…/admin/src/components/tenants/create-tenant-dialog.tsx385 placeholder="Acme Corp"CODE
LOW…ents/admin/src/components/users/create-user-dialog.tsx237 placeholder="user@example.com"CODE
LOWclients/dashboard/tests/overview/overview.spec.ts159 name: "Acme Corp",CODE
LOWclients/dashboard/tests/overview/overview.spec.ts178 name: "Acme Corp",CODE
LOWclients/dashboard/tests/helpers/shell-mocks.ts55 name: "Acme Corp",CODE
LOWclients/dashboard/tests/billing/subscription.spec.ts25 name: "Acme Corp",CODE
LOWclients/dashboard/src/pages/login.demo-accounts.ts40 tenantLabel: "Acme Corp",CODE
LOWclients/dashboard/src/pages/login.demo-accounts.ts94 tenantLabel: "Acme Corp",CODE
LOWclients/dashboard/src/pages/chat/composer.tsx155 // (avoids false positives inside emails like "foo@bar.com"). The tokenCOMMENT
LOWsrc/Host/FSH.Starter.DbMigrator/DemoSeed/DemoSeeder.cs56 Name: "Acme Corp",CODE
LOW…c/Tests/Auditing.Tests/Contracts/AuditEnvelopeTests.cs26 "John Doe",CODE
LOW…c/Tests/Auditing.Tests/Contracts/AuditEnvelopeTests.cs51 "John Doe",CODE
LOW…c/Tests/Auditing.Tests/Contracts/AuditEnvelopeTests.cs68 envelope.UserName.ShouldBe("John Doe");CODE
LOW…Tests/Tests/Health/TenantMigrationsHealthCheckTests.cs125 new AppTenantInfo("placeholder", "placeholder", string.Empty, "x@x", null));CODE
LOW…Tests/Validators/GenerateTokenCommandValidatorTests.cs19 var command = new GenerateTokenCommand("user@example.com", "password123");CODE
LOW…Tests/Validators/GenerateTokenCommandValidatorTests.cs65 [InlineData("user@example.com")]CODE
LOW…Tests/Validators/GenerateTokenCommandValidatorTests.cs89 var command = new GenerateTokenCommand("user@example.com", "password123");CODE
LOW…Tests/Validators/GenerateTokenCommandValidatorTests.cs105 var command = new GenerateTokenCommand("user@example.com", password!);CODE
LOW…Tests/Validators/GenerateTokenCommandValidatorTests.cs123 var command = new GenerateTokenCommand("user@example.com", "SecureP@ssw0rd!");CODE
LOW…/Tests/Identity.Tests/Authorization/JwtOptionsTests.cs236 r.ErrorMessage!.Contains("placeholder", StringComparison.OrdinalIgnoreCase));CODE
LOW…ity.Tests/Handlers/GenerateTokenCommandHandlerTests.cs64 var command = new GenerateTokenCommand("user@example.com", "password123");CODE
LOW…ity.Tests/Handlers/GenerateTokenCommandHandlerTests.cs103 var command = new GenerateTokenCommand("user@example.com", "password123");CODE
LOW…ity.Tests/Handlers/GenerateTokenCommandHandlerTests.cs142 var command = new GenerateTokenCommand("user@example.com", "wrongpassword");CODE
LOW…ity.Tests/Handlers/GenerateTokenCommandHandlerTests.cs161 var command = new GenerateTokenCommand("user@example.com", "wrongpassword");CODE
LOW…ity.Tests/Handlers/GenerateTokenCommandHandlerTests.cs202 var command = new GenerateTokenCommand("user@example.com", "password123");CODE
LOW…ity.Tests/Handlers/GenerateTokenCommandHandlerTests.cs237 var command = new GenerateTokenCommand("user@example.com", "password123");CODE
LOW…ity.Tests/Handlers/GenerateTokenCommandHandlerTests.cs271 var command = new GenerateTokenCommand("user@example.com", "password123");CODE
LOW…sts/Identity.Tests/Services/CurrentUserServiceTests.cs386 new(ClaimTypes.Name, "John Doe")CODE
LOW…sts/Identity.Tests/Services/CurrentUserServiceTests.cs396 result.ShouldBe("John Doe");CODE
LOWsrc/Tests/Identity.Tests/Services/TokenServiceTests.cs64 new Claim(ClaimTypes.Email, "user@example.com")CODE
LOWsrc/Tests/Identity.Tests/Services/TokenServiceTests.cs117 jwt.Claims.ShouldContain(c => c.Type == ClaimTypes.Email && c.Value == "user@example.com");CODE
LOWsrc/Tests/Identity.Tests/Services/TokenServiceTests.cs188 new(ClaimTypes.Email, "user@example.com")CODE
Modern AI Meta-Vocabulary6 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md173- [Getting started](https://fullstackhero.net/docs/getting-started/introduction/) — scaffold, run, and the default credeCODE
MEDIUM.agents/skills/testing-guide/SKILL.md88## Architecture tests (guardrails — keep green)COMMENT
MEDIUM.github/workflows/template-smoke.yml3# Guards the distribution path: scaffolding a project from the template mustCOMMENT
MEDIUMsrc/Host/FSH.Starter.AppHost/AppHost.cs161// React apps excluded: discard the unused api handle to keep the no-frontend scaffold warning-clean (S1481 under TreatWSTRING
MEDIUM…egration.Tests/Tests/Files/FileTenantIsolationTests.cs85 #region Tenant scaffolding (copied from WebhookTenantIsolationTests)COMMENT
MEDIUMsrc/Tests/Identity.Tests/Support/TestAsyncQueryable.cs9/// mocked <c>UserManager.Users</c> without a database. Standard EF unit-testing scaffold.COMMENT
Hyper-Verbose Identifiers12 hits · 12 pts
SeverityFileLineSnippetContext
LOWclients/admin/src/api/tenants.ts93export async function getTenantProvisioningStatus(id: string): Promise<TenantProvisioningStatus> {CODE
LOWclients/admin/src/api/webhooks.ts42export function createWebhookSubscription(input: CreateWebhookSubscriptionInput): Promise<string> {CODE
LOWclients/admin/src/api/webhooks.ts53export function deleteWebhookSubscription(id: string): Promise<void> {CODE
LOWclients/admin/src/api/sessions.ts51export async function adminRevokeAllUserSessions(userId: string): Promise<{ revokedCount: number }> {CODE
LOWclients/dashboard/src/auth/impersonation-handoff.ts21export function installImpersonationFromHash(): void {CODE
LOW…ents/dashboard/src/components/theme/theme-provider.tsx153function clearCustomBrandInlineStyles(root: HTMLElement) {CODE
LOW…ents/dashboard/src/components/theme/theme-provider.tsx157function applyCustomBrandInlineStyles(root: HTMLElement, spec: CustomAccentSpec) {CODE
LOWclients/dashboard/src/lib/api-client.ts61export function isImpersonationRevokedError(error: unknown): boolean {CODE
LOWclients/dashboard/src/api/identity.ts121export async function resendUserConfirmationEmail(userId: string): Promise<void> {CODE
LOWclients/dashboard/src/api/identity.ts243export async function adminRevokeAllUserSessions(CODE
LOWclients/dashboard/src/api/sessions.ts66export function adminRevokeUserSessionById(userId: string, sessionId: string) {CODE
LOWclients/dashboard/src/api/sessions.ts73export function adminRevokeAllUserSessions(userId: string) {CODE
Self-Referential Comments3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMdeploy/terraform/bootstrap/.terraform.lock.hcl1# This file is maintained automatically by "terraform init".COMMENT
MEDIUMdeploy/terraform/apps/starter/app_stack/main.tf463# Create a secret for the full connection stringCOMMENT
MEDIUM…y/terraform/apps/starter/app_stack/.terraform.lock.hcl1# This file is maintained automatically by "terraform init".COMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM…ules.Auditing/Infrastructure/Http/ContentTypeHelper.cs11 // Prefer robust parse; fallback to naive split if needed.COMMENT
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMsrc/Host/FSH.Starter.DbMigrator/DemoSeed/DemoSeeder.cs819 (uid("carol@acme.com"), "Thanks. Let me know if you need a repro account."),CODE