AI Slop Code Risk Monitor

codebymitch/TitanBot

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

A powerful, all-in-one Discord assistant built for every server.

1.7 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for codebymitch/TitanBot, a JavaScript project with 9,311 GitHub stars. SynthScan examined 56,482 lines of code across 285 source files, recording 87 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 1.7 (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.7
Adjusted Signal
1.7
Raw Pattern Score
100%
Time Factor
2026-09-03
Last Push
9.3K
Stars
JavaScript
Language
56.5K
Lines of Code
285
Files
87
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 7.4/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.0/100 · LOW

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

Agent Over-Engineering Ratio 7.2/100 · LOW

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

PR Review Velocity Impact 8.2/100 · LOW

Which changes need focused human review? 87 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 1HIGH 0MEDIUM 0LOW 86

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 87 distinct pattern matches across 4 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 Identifiers83 hits · 84 pts
SeverityFileLineSnippetContext
LOWsrc/config/bot.js612export function getApplicationStatusColor(status) {CODE
LOWsrc/config/bot.js618export function getDefaultApplicationQuestions() {CODE
LOWsrc/config/database/postgres.js76export function resolvePostgresPoolConfig() {CODE
LOWsrc/config/commands/prefixRestrictions.js129export function isPrefixRestrictedCommand(command, args, resolveSubcommandAlias) {CODE
LOWsrc/utils/database.js634function buildApplicationSettingsDefaults() {CODE
LOWsrc/utils/database.js679function getApplicationRetentionDays(settings = {}) {CODE
LOWsrc/utils/database.js740export async function cleanupExpiredApplications(client, guildId) {CODE
LOWsrc/utils/database.js800function getApplicationRoleSettingsKey(guildId, roleId) {CODE
LOWsrc/utils/database.js804export async function getApplicationRoleSettings(client, guildId, roleId) {CODE
LOWsrc/utils/database.js819export async function saveApplicationRoleSettings(client, guildId, roleId, settings) {CODE
LOWsrc/utils/database.js835export async function deleteApplicationRoleSettings(client, guildId, roleId) {CODE
LOWsrc/utils/database.js1107export async function removeJoinToCreateTrigger(client, guildId, channelId) {CODE
LOWsrc/utils/database.js1147export async function unregisterTemporaryChannel(client, guildId, channelId) {CODE
LOWsrc/utils/panelStatus.js22export function messageHasSelectMenuCustomId(message, selectCustomId) {CODE
LOWsrc/utils/panelStatus.js121export async function getVerificationPanelStatus(client, guild, config) {CODE
LOWsrc/utils/panelStatus.js129export async function getReactionRolePanelStatus(client, guild, panelData) {CODE
LOWsrc/utils/logger.js28export function createInteractionTraceContext(interaction, overrides = {}) {CODE
LOWsrc/utils/interactionHelper.js12function isInteractionUnavailableError(error) {CODE
LOWsrc/utils/abuseProtection.js196export function resetAbuseProtectionState() {CODE
LOWsrc/utils/errorHandler.js134function inferErrorTypeFromUserMessage(message = '') {CODE
LOWsrc/utils/errorHandler.js165function normalizeInteractionError(error, context = {}) {CODE
LOWsrc/utils/collectorComponents.js8export function isCollectorManagedComponent(customId = '') {CODE
LOWsrc/utils/permissionGuard.js13export function getCommandDefaultPermissions(commandData) {CODE
LOWsrc/utils/permissionGuard.js50export function memberHasConfiguredModeratorRole(member, guildConfig) {CODE
LOWsrc/utils/permissionGuard.js67export function memberHasModerationCommandAccess(member, guildConfig, requiredPermissions = null) {CODE
LOWsrc/utils/permissionGuard.js95export function memberMeetsCommandPermissions(member, permissionBitfield, options = {}) {CODE
LOWsrc/utils/permissionGuard.js121export async function checkModerationPermissions(CODE
LOWsrc/utils/permissionGuard.js151export async function enforceDefaultCommandPermissions(interaction, command, context = {}) {CODE
LOWsrc/utils/embeds.js272function containsDiscordRenderable(content = '') {CODE
LOWsrc/utils/commandInputValidation.js27export function validateChatInputPayloadOrThrow(interaction, context = {}) {CODE
LOWsrc/utils/schemas.js212export function validateGuildConfigOrThrow(rawConfig, context = {}) {CODE
LOWsrc/utils/interactionValidator.js91export function withExpiredInteractionHandler(handler) {CODE
LOWsrc/utils/sqlIdentifiers.js5export function assertAllowlistedIdentifier(identifier, allowlist, label = 'SQL identifier') {CODE
LOWsrc/utils/errorRegistry.js128export function getDefaultErrorCodeByType(errorType = 'unknown') {CODE
LOWsrc/utils/database/keys.js67export function getApplicationSettingsKey(guildId) {CODE
LOWsrc/utils/database/keys.js87export function getJoinToCreateChannelsKey(guildId) {CODE
LOWsrc/utils/database/keys.js192export function getLegacyVariantsForCanonical(canonicalKey) {CODE
LOWsrc/utils/database/tickets.js16export async function getOpenTicketCountForUser(guildId, userId) {CODE
LOWsrc/utils/ticket/ticketLogging.js79function getLogChannelForEventType(config, eventType) {CODE
LOWsrc/utils/ticket/ticketPermissions.js7export async function getTicketPermissionContext({ client, interaction }) {CODE
LOWsrc/utils/logging/loggingUi.js67function createCategoryToggleButtons(enabledEvents = {}, loggingEnabled = false) {CODE
LOWsrc/utils/logging/loggingUi.js91export function createLoggingMainMenuSelect() {CODE
LOWsrc/utils/logging/loggingUi.js138export function createLoggingMainActionRow(loggingEnabled = false) {CODE
LOWsrc/utils/logging/loggingUi.js151export function createLoggingDashboardComponents(_enabledEvents, loggingEnabled = false) {CODE
LOWsrc/utils/logging/loggingUi.js158export function createLoggingCategoryViewComponents(enabledEvents, loggingEnabled = false) {CODE
LOWsrc/utils/logging/loggingUi.js176export function createLoggingFilterComponents() {CODE
LOWsrc/commands/Core/configWizard.js555function buildSettingSuccessMessage(setting, value, guild) {CODE
LOWsrc/commands/Core/modules/commands_dashboard.js383export function createDashboardCollectorFilter(userId, guildId) {CODE
LOWsrc/commands/ServerStats/modules/serverstats_delete.js66export const performDeletionByCounterId = wrapServiceBoundary(async function performDeletionByCounterId(client, guild, cCODE
LOWsrc/commands/Community/app-admin.js22function getApplicationStatusPresentation(statusValue) {CODE
LOWsrc/commands/Community/apply.js21function getApplicationStatusPresentation(statusValue) {CODE
LOWsrc/commands/Community/modules/app_dashboard.js648function buildApplicationSelectMenu(guildId, roleId) {CODE
LOWsrc/commands/Logging/modules/logging_dashboard.js39export async function buildLoggingDashboardView(interaction, client) {CODE
LOWsrc/commands/Logging/modules/logging_dashboard.js100export async function buildLoggingCategoriesView(interaction, client) {CODE
LOWsrc/commands/Reaction_roles/reactroles.js425function buildReactionRoleDashboardPayload(panelData, discordMsg, guildId, guild, panelStatus = null) {CODE
LOWsrc/commands/Reaction_roles/reactroles.js505async function migrateReactionRoleMessageId(client, guildId, panelData, newMessageId) {CODE
LOWsrc/commands/Utility/todo.js142 async function getOrCreateSharedList(listId, creatorId = null, listName = null) {CODE
LOWsrc/handlers/warningHandlers.js78async function warningDeleteModalHandler(interaction, client) {CODE
LOWsrc/handlers/warningHandlers.js124async function warningClearConfirmModalHandler(interaction, client) {CODE
LOWsrc/handlers/todoButtons.js8function buildSharedTodoViewPayload(listData, listId, guild) {CODE
23 more matches not shown…
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALsrc/commands/Reaction_roles/reactroles.js167 if (!interaction.guild.members.me.permissions.has(PermissionFlagsBits.ManageRoles)) {CODE
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippetContext
LOWsrc/config/bot.js1import { logger } from '../utils/logger.js';COMMENT
LOWsrc/utils/errorHandler.js1// errorHandler.js — the single entry point for all error handling.COMMENT
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsrc/commands/Giveaway/gcreate.js101 messageId: "placeholder",CODE