# Rule Violations Report — 2026-05-23 > Generated by `scripts/check-rule-violations.sh` against canonical rules in > [`AI.dev/SKILLS/agent-behavior-guidelines.md`](../AI.dev/SKILLS/agent-behavior-guidelines.md). Severity legend: **critical** = data/security risk · **major** = rule violation · **minor** = style ## `learning_ai_common_plat` **Counts:** critical=0 · major=80 · minor=86 · total=166 - **[major]** `packages/logger/src/logger.ts:40` — console.log: console.log(`${prefix} ${message}${extras}`); - **[major]** `packages/create-app/src/scaffolder.ts:60` — console.log: console.log(` - **[major]** `packages/create-app/src/scaffolder.ts:115` — console.log: console.log('\n📦 ByteLyst Product Scaffolder\n'); - **[major]** `packages/create-app/src/scaffolder.ts:126` — console.log: console.log('\nPlatforms (comma-separated: web, mobile, ios, android)'); - **[major]** `packages/create-app/src/scaffolder.ts:135` — console.log: console.log('\nFeatures (comma-separated: auth, billing, telemetry, flags, syn - **[major]** `packages/create-app/src/scaffolder.ts:257` — console.log: console.log(`\n🚀 Scaffolding ${manifest.displayName}`); - **[major]** `packages/create-app/src/scaffolder.ts:259` — console.log: console.log(` Product ID: ${manifest.productId}`); - **[major]** `packages/create-app/src/scaffolder.ts:261` — console.log: console.log(` Output: ${outPath}`); - **[major]** `packages/create-app/src/scaffolder.ts:263` — console.log: console.log(` Platforms: ${manifest.platforms.join(', ')}`); - **[major]** `packages/create-app/src/scaffolder.ts:265` — console.log: console.log(` Features: ${manifest.features.join(', ')}`); - **[major]** `packages/create-app/src/scaffolder.ts:268` — console.log: console.log(' ⚠️ DRY RUN\n'); - **[major]** `packages/create-app/src/scaffolder.ts:275` — console.log: console.log(`📄 ${files.length} files would be generated:\n`); - **[major]** `packages/create-app/src/scaffolder.ts:278` — console.log: console.log(`── ${file.path} ──────────────────────────────────────`); - **[major]** `packages/create-app/src/scaffolder.ts:280` — console.log: console.log(file.content); - **[major]** `packages/create-app/src/scaffolder.ts:283` — console.log: console.log(`\n✨ Dry run complete. Re-run without --dry-run to write files.` - **[major]** `packages/create-app/src/scaffolder.ts:293` — console.log: console.log(` ✅ ${file.path}`); - **[major]** `packages/create-app/src/scaffolder.ts:297` — console.log: console.log(`\n✨ ${manifest.displayName} scaffolded at ${outPath}`); - **[major]** `packages/create-app/src/scaffolder.ts:299` — console.log: console.log(`\nNext steps:`); - **[major]** `packages/create-app/src/scaffolder.ts:301` — console.log: console.log(` cd ${outDir}/backend && npm install && npm run dev`); - **[major]** `packages/create-app/src/scaffolder.ts:304` — console.log: console.log(` cd ${outDir}/web && npm install && npm run dev`); - **[major]** `packages/create-app/src/generators/agents-md.ts:49` — console.log: console.log(` - **[major]** `packages/create-app/src/generators/agents-md.ts:528` — console.log: console.log(` 📝 Would create symlink: ${target} → AGENTS.md`); - **[major]** `packages/create-app/src/generators/agents-md.ts:533` — console.log: console.log(` ✅ ${target} → AGENTS.md`); - **[major]** `packages/create-app/src/generators/agents-md.ts:535` — console.log: console.log( - **[major]** `packages/create-app/src/generators/agents-md.ts:549` — console.log: console.log(`\n📄 AGENTS.md Generator`); - **[major]** `packages/create-app/src/generators/agents-md.ts:550` — console.log: console.log(` Repo: ${repoPath}`); - **[major]** `packages/create-app/src/generators/agents-md.ts:551` — console.log: if (dryRun) console.log(' ⚠️ DRY RUN — no files will be written\n'); - **[major]** `packages/create-app/src/generators/agents-md.ts:552` — console.log: if (update) console.log(' 🔄 UPDATE mode — preserving custom sections\n'); - **[major]** `packages/create-app/src/generators/agents-md.ts:556` — console.log: console.log(` Product: ${manifest.displayName} (${manifest.productId})`); - **[major]** `packages/create-app/src/generators/agents-md.ts:560` — console.log: console.log(` Backend modules: ${info.backendModules.length}`); - **[major]** `packages/create-app/src/generators/agents-md.ts:561` — console.log: console.log(` Tests: ~${info.backendTestCount + info.webTestCount + info.mob - **[major]** `packages/create-app/src/generators/agents-md.ts:562` — console.log: console.log(''); - **[major]** `packages/create-app/src/generators/agents-md.ts:574` — console.log: console.log(` 🔄 Preserving ${customSections.size} custom section(s)`); - **[major]** `packages/create-app/src/generators/agents-md.ts:578` — console.log: console.log(' ℹ️ No existing AGENTS.md to preserve custom sections from - **[major]** `packages/create-app/src/generators/agents-md.ts:583` — console.log: console.log('── AGENTS.md ──────────────────────────────────────'); - **[major]** `packages/create-app/src/generators/agents-md.ts:584` — console.log: console.log(content); - **[major]** `packages/create-app/src/generators/agents-md.ts:585` — console.log: console.log('\n── Symlinks ──────────────────────────────────────'); - **[major]** `packages/create-app/src/generators/agents-md.ts:587` — console.log: console.log('\n✨ Dry run complete.'); - **[major]** `packages/create-app/src/generators/agents-md.ts:594` — console.log: console.log(` ✅ AGENTS.md written`); - **[major]** `packages/create-app/src/generators/agents-md.ts:599` — console.log: console.log(`\n✨ AGENTS.md generated for ${manifest.displayName}.`); - **[major]** `packages/create-app/src/generators/api-routes.ts:92` — console.log: console.log(` - **[major]** `packages/create-app/src/generators/api-routes.ts:670` — console.log: console.log(`\n🚀 Generating API routes: ${name}`); - **[major]** `packages/create-app/src/generators/api-routes.ts:671` — console.log: console.log(` Mode: ${mode}`); - **[major]** `packages/create-app/src/generators/api-routes.ts:672` — console.log: console.log(` Methods: ${methods.join(', ')}`); - **[major]** `packages/create-app/src/generators/api-routes.ts:673` — console.log: console.log(` Target: ${target}`); - **[major]** `packages/create-app/src/generators/api-routes.ts:674` — console.log: if (fields) console.log(` Fields: ${fields}`); - **[major]** `packages/create-app/src/generators/api-routes.ts:675` — console.log: if (dryRun) console.log(' ⚠️ DRY RUN — no files will be written\n'); - **[major]** `packages/create-app/src/generators/api-routes.ts:725` — console.log: console.log('📄 Generated files:\n'); - **[major]** `packages/create-app/src/generators/api-routes.ts:727` — console.log: console.log(`── ${file.path} ──────────────────────────────────────`); - **[major]** `packages/create-app/src/generators/api-routes.ts:728` — console.log: console.log(file.content); - **[major]** `packages/create-app/src/generators/api-routes.ts:730` — console.log: console.log(`\n✨ Dry run complete. Re-run without --dry-run to write files.` - **[major]** `packages/create-app/src/generators/api-routes.ts:742` — console.log: console.log(` ⚠️ SKIP ${file.path} (already exists)`); - **[major]** `packages/create-app/src/generators/api-routes.ts:749` — console.log: console.log(` ✅ ${file.path}`); - **[major]** `packages/create-app/src/generators/api-routes.ts:752` — console.log: console.log(`\n✨ API routes generated for "${name}".`); - **[major]** `packages/create-app/src/generators/api-routes.ts:754` — console.log: console.log(`\nPrerequisites (if not already present):`); - **[major]** `packages/create-app/src/generators/api-routes.ts:755` — console.log: console.log(` - lib/auth-server.ts — getCurrentUser(authHeader) function`) - **[major]** `packages/create-app/src/generators/api-routes.ts:756` — console.log: console.log(` - lib/api-handler.ts — withErrorHandler HOF`); - **[major]** `packages/create-app/src/generators/api-routes.ts:757` — console.log: console.log(` - lib/datastore.ts — getCosmosContainer + PRODUCT_ID`); - **[major]** `packages/create-app/src/generators/api-routes.ts:758` — console.log: console.log(` - zod installed — npm install zod`); - **[major]** `packages/create-app/src/generators/api-routes.ts:760` — console.log: console.log(`\nPrerequisites (if not already present):`); - **[major]** `packages/create-app/src/generators/api-routes.ts:761` — console.log: console.log(` - lib/api-helpers.ts — getAccessToken(req) function`); - **[major]** `packages/create-app/src/generators/api-routes.ts:762` — console.log: console.log(` - lib/api-handler.ts — withErrorHandler HOF`); - **[major]** `packages/create-app/src/generators/api-routes.ts:763` — console.log: console.log(` - NEXT_PUBLIC_BACKEND_URL env var (or defaults to localhost: - **[major]** `packages/mcp-client/src/index.ts:51` — console.log: console.log( - **[major]** `packages/mcp-client/src/index.ts:76` — console.log: console.log('[MCP] Successfully connected to MCP server'); - **[major]** `packages/mcp-client/src/index.ts:102` — console.log: console.log('[MCP] Disconnected from MCP server'); - **[major]** `packages/mcp-client/src/index.ts:155` — console.log: console.log(`[MCP] Tool ${toolName} executed successfully`); - **[major]** `packages/mcp-client/src/index.ts:321` — console.log: console.log(`[MCP-AUDIT] Tool called: ${toolName}, Args: ${JSON.stringify(sa - **[major]** `packages/mcp-client/src/index.ts:325` — console.log: console.log(`[MCP-AUDIT] Tool succeeded: ${toolName}`); - **[major]** `services/extraction-service/src/modules/extract/product-rate-limit.ts:408` — console.log: console.log(`[product-rate-limit] Cleaned up ${cleaned} expired entries` - **[major]** `services/extraction-service/src/modules/extract/sidecar-monitor.ts:295` — console.log: console.log( - **[major]** `services/monitoring/health-check.ts:39` — console.log: console.log(`🩺 Monitoring dashboard running on http://localhost:${PORT}`); - **[major]** `services/monitoring/health-check.ts:40` — console.log: console.log(` Checking ${DEFAULT_SERVICES.length} services every request`) - **[major]** `services/monitoring/health-check.ts:46` — console.log: console.log(`\n${icon[report.overall]} Overall: ${report.overall.toUpperCase() - **[major]** `services/monitoring/health-check.ts:50` — console.log: console.log( - **[major]** `services/monitoring/health-check.ts:55` — console.log: console.log(`\nHealthy: ${report.summary.healthy}/${report.summary.total}`); - **[major]** `packages/swift-diagnostics/Sources/ByteLystDiagnostics/Core/Configuration.swift:88` — Swift print(): print("[DEBUG] \(message)") - **[major]** `packages/swift-diagnostics/Sources/ByteLystDiagnostics/Core/Configuration.swift:93` — Swift print(): print("[INFO] \(message)") - **[major]** `packages/swift-diagnostics/Sources/ByteLystDiagnostics/Core/Configuration.swift:97` — Swift print(): print("[WARN] \(message)") - **[major]** `packages/swift-diagnostics/Sources/ByteLystDiagnostics/Core/Configuration.swift:101` — Swift print(): print("[ERROR] \(message)") - **[minor]** `dashboards/admin-web/src/app/(dashboard)/ops/ab-testing/page.tsx:135` — any type: return {config.label}; - **[minor]** `packages/mcp-client/src/index.ts:16` — any type: inputSchema?: any; - **[minor]** `packages/mcp-client/src/index.ts:20` — any type: data: any; - **[minor]** `packages/mcp-client/src/index.ts:77` — any type: } catch (error: any) { - **[minor]** `packages/mcp-client/src/index.ts:103` — any type: } catch (error: any) { - **[minor]** `packages/mcp-client/src/index.ts:109` — any type: async callTool(toolName: string, args: any = {}): Promise { - **[minor]** `packages/mcp-client/src/index.ts:143` — any type: const response = result.content as any[]; - **[minor]** `packages/mcp-client/src/index.ts:160` — any type: } catch (error: any) { - **[minor]** `packages/mcp-client/src/index.ts:190` — any type: return response.tools.map((tool: any) => ({ - **[minor]** `packages/mcp-client/src/index.ts:195` — any type: } catch (error: any) { - **[minor]** `packages/mcp-client/src/index.ts:225` — any type: private getCacheKey(toolName: string, args: any): string { - **[minor]** `packages/mcp-client/src/index.ts:229` — any type: private getFromCache(key: string): any | null { - **[minor]** `packages/mcp-client/src/index.ts:244` — any type: private setCache(key: string, data: any): void { - **[minor]** `packages/mcp-client/src/index.ts:269` — any type: private isNonRetriableError(error: any): boolean { - **[minor]** `packages/mcp-client/src/index.ts:318` — any type: private auditLogToolCall(toolName: string, args: any): void { - **[minor]** `packages/mcp-client/src/index.ts:332` — any type: private sanitizeArgs(args: any): any { - **[minor]** `services/platform-service/src/server.ts:304` — any type: const auth = (request as any).auth; - **[minor]** `services/platform-service/src/server.ts:335` — any type: } catch (error: any) { - **[minor]** `services/extraction-service/src/modules/transcribe/routes.ts:5` — any type: * Product-agnostic: any product backend can call this endpoint. - **[minor]** `dashboards/admin-web/src/app/(dashboard)/surveys/[id]/page.tsx:21` — Emoji in code: 📊 - **[minor]** `dashboards/admin-web/src/app/(dashboard)/surveys/[id]/page.tsx:22` — Emoji in code: 📝 - **[minor]** `dashboards/admin-web/src/app/(dashboard)/surveys/[id]/page.tsx:23` — Emoji in code: 📄 - **[minor]** `dashboards/tracker-web/src/app/roadmap/page.tsx:513` — Emoji in code: 💬 - **[minor]** `dashboards/tracker-web/src/app/roadmap/page.tsx:569` — Emoji in code: 💬 - **[minor]** `dashboards/tracker-web/src/app/dashboard/items/[id]/page.tsx:232` — Emoji in code: 🌐 - **[minor]** `scripts/encrypt-migrate.ts:507` — Emoji in code: 📦 - **[minor]** `scripts/encrypt-migrate.ts:510` — Emoji in code: 🔐 - **[minor]** `scripts/encrypt-migrate.ts:589` — Emoji in code: 🏢 - **[minor]** `packages/dashboard-shell/src/TopBar.tsx:80` — Emoji in code: 🔔 - **[minor]** `packages/celebrations/src/index.ts:7` — Emoji in code: 👏 - **[minor]** `packages/celebrations/src/index.ts:12` — Emoji in code: 🎉 - **[minor]** `packages/celebrations/src/index.ts:14` — Emoji in code: 🔥 - **[minor]** `packages/celebrations/src/index.ts:15` — Emoji in code: 🏆 - **[minor]** `packages/swift-platform-sdk/Tests/BLFieldEncryptTests.swift:32` — Emoji in code: 🌍 - **[minor]** `packages/create-app/src/scaffolder.ts:115` — Emoji in code: 📦 - **[minor]** `packages/create-app/src/scaffolder.ts:257` — Emoji in code: 🚀 - **[minor]** `packages/create-app/src/scaffolder.ts:275` — Emoji in code: 📄 - **[minor]** `packages/create-app/src/generators/agents-md.ts:528` — Emoji in code: 📝 - **[minor]** `packages/create-app/src/generators/agents-md.ts:549` — Emoji in code: 📄 - **[minor]** `packages/create-app/src/generators/agents-md.ts:552` — Emoji in code: 🔄 - **[minor]** `packages/create-app/src/generators/agents-md.ts:574` — Emoji in code: 🔄 - **[minor]** `packages/create-app/src/generators/api-routes.ts:670` — Emoji in code: 🚀 - **[minor]** `packages/create-app/src/generators/api-routes.ts:725` — Emoji in code: 📄 - **[minor]** `packages/time-references/src/client.ts:16` — Emoji in code: 🎵 - **[minor]** `packages/time-references/src/client.ts:23` — Emoji in code: 📺 - **[minor]** `packages/time-references/src/client.ts:24` — Emoji in code: 🚶 - **[minor]** `packages/time-references/src/client.ts:31` — Emoji in code: 🧘 - **[minor]** `packages/time-references/src/client.ts:32` — Emoji in code: 📺 - **[minor]** `packages/time-references/src/client.ts:39` — Emoji in code: 🎬 - **[minor]** `packages/time-references/src/client.ts:40` — Emoji in code: 🚴 - **[minor]** `packages/time-references/src/client.ts:47` — Emoji in code: 🚗 - **[minor]** `packages/time-references/src/client.ts:48` — Emoji in code: 📺 - **[minor]** `packages/time-references/src/client.ts:55` — Emoji in code: 💼 - **[minor]** `packages/time-references/src/client.ts:56` — Emoji in code: 😴 - **[minor]** `packages/time-references/src/client.ts:64` — Emoji in code: 🌅 - **[minor]** `packages/time-references/src/client.ts:74` — Emoji in code: 🧙 - **[minor]** `packages/time-references/src/client.ts:83` — Emoji in code: 🌍 - **[minor]** `packages/time-references/src/client.ts:84` — Emoji in code: 🥾 - **[minor]** `packages/time-references/src/client.ts:91` — Emoji in code: 🏆 - **[minor]** `packages/time-references/src/client.ts:99` — Emoji in code: 🌟 - **[minor]** `packages/time-references/src/index.ts:11` — Emoji in code: 🎬 - **[minor]** `packages/time-references/src/index.ts:17` — Emoji in code: 🌙 - **[minor]** `packages/time-references/src/index.ts:20` — Emoji in code: 🏔 - **[minor]** `packages/time-references/src/index.ts:23` — Emoji in code: 🌍 - **[minor]** `packages/time-references/src/index.ts:26` — Emoji in code: 🚂 - **[minor]** `packages/time-references/src/index.ts:31` — Emoji in code: 🏕 - **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:156` — Emoji in code: 📊 - **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:164` — Emoji in code: 🚨 - **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:183` — Emoji in code: 🐛 - **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:185` — Emoji in code: 📚 - **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:186` — Emoji in code: 🧪 - **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:187` — Emoji in code: 🔧 - **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:189` — Emoji in code: 🎨 - **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:190` — Emoji in code: 🔄 - **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:191` — Emoji in code: 📝 - **[minor]** `services/platform-service/scripts/gen-module.ts:515` — Emoji in code: 📝 - **[minor]** `services/platform-service/scripts/gen-module.ts:551` — Emoji in code: 📝 - **[minor]** `services/platform-service/scripts/gen-module.ts:608` — Emoji in code: 🚀 - **[minor]** `services/platform-service/scripts/gen-module.ts:636` — Emoji in code: 📄 - **[minor]** `services/platform-service/src/modules/predictive-analytics/campaign-engine.ts:451` — Emoji in code: 🚨 - **[minor]** `services/platform-service/src/modules/diagnostics/auto-triggers.ts:393` — Emoji in code: 🚨 - **[minor]** `services/platform-service/src/modules/diagnostics/auto-triggers.ts:427` — Emoji in code: 🚨 - **[minor]** `services/platform-service/src/modules/delivery/templates.ts:203` — Emoji in code: 🚨 - **[minor]** `services/platform-service/src/modules/delivery/templates.ts:205` — Emoji in code: 🚨 - **[minor]** `services/platform-service/src/modules/delivery/templates.ts:214` — Emoji in code: 🚨 - **[minor]** `services/monitoring/health-check.ts:39` — Emoji in code: 🩺 ## Ecosystem totals by rule | Rule | Total findings | |------|----------------| | `b4-console-log` | 76 | | `b7-emoji-in-code` | 67 | | `ts-any-type` | 19 | | `b4-swift-print` | 4 | **Grand total: 166 findings across 1 repos.**