AI Slop Code RIsk Monitor

steipete/oracle

Ask the oracle when you're stuck. Invoke GPT-5 Pro with a custom context and files.

4.4 Low pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for steipete/oracle, a TypeScript project with 4,050 GitHub stars. SynthScan examined 137,730 lines of code across 490 source files, recording 575 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 4.4 (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.

4.4
Adjusted Signal
4.4
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
4.0K
Stars
TypeScript
Language
137.7K
Lines of Code
490
Files
575
Pattern Hits
2026-10-12
Scan Date
0.01
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 18.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.6/100 · LOW

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

Agent Over-Engineering Ratio 17.6/100 · LOW

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

PR Review Velocity Impact 19.8/100 · LOW

Which changes need focused human review? 575 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 4MEDIUM 2LOW 568

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 575 distinct pattern matches across 8 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 Identifiers540 hits · 534 pts
SeverityFileLineSnippetContext
LOWbin/oracle-cli.ts1050function addProjectSourcesCommonOptions(command: Command): Command {CODE
LOWbin/oracle-cli.ts1526function validateApiProviderRoutingForCli(runOptions: RunOracleOptions): void {CODE
LOWbin/oracle-cli.ts1564function resolveHeartbeatIntervalMs(seconds: number | undefined): number | undefined {CODE
LOWbin/oracle-cli.ts1639async function suggestFollowupSessionIds(input: string, limit = 3): Promise<string[]> {CODE
LOWbin/oracle-cli.ts1701function extractResponseIdFromSession(CODE
LOWbin/oracle-cli.ts1740function buildRunOptionsFromMetadata(metadata: SessionMetadata): RunOracleOptions {CODE
LOWbin/oracle-cli.ts1798function getBrowserConfigFromMetadata(metadata: SessionMetadata): BrowserSessionConfig | undefined {CODE
LOWbin/oracle-cli.ts3048function resolveRestartWaitPreference({CODE
LOWbin/oracle-cli.ts3067function resolveEffectiveModelIdForRun(model: ModelName, stored?: string): string {CODE
LOWtests/browser/pageActions.test.ts1027 function runWelcomeBackPickerForLabels(labels: string[], preferredEmail: string | null = null) {CODE
LOWtests/browser/promptComposerExpressions.test.ts6function evaluateAttachmentReadyExpression(CODE
LOWtests/browser/prompt.test.ts43function findEndOfCentralDirectory(zip: Buffer): number {CODE
LOWtests/browser/thinking.test.ts245async function runThinkingStatusExpression(document: FakeDocument) {CODE
LOWtests/browser/zipBundle.test.ts17function findEndOfCentralDirectory(zip: Buffer): number {CODE
LOWtests/browser/thinkingTime.test.ts3280 function useLocalizedSemanticTrigger(dom: ReturnType<typeof buildDirectSlider>) {CODE
LOWtests/browser/thinkingTime.test.ts4020 function addUnrelatedTooltipOnHover(dom: PickerDomStub, option: Node, text: string) {CODE
LOWtests/browser/assistantResponseStatus.test.ts218 function evaluateCompletionVisibility(args: {CODE
LOWtests/browser/assistantResponseStatus.test.ts830 function evalThinkingActivityDetails(opts: ThinkingFixtureOptions): {CODE
LOWtests/gemini-web/parse.test.ts11function makeRawResponseWithBodies(bodies: unknown[]): string {CODE
LOWtests/live/gemini-web-live.test.ts10async function assertHasGeminiChromeCookies(): Promise<boolean> {CODE
LOWtests/live/browser-fast-live.test.ts28function isMissingChatGptSessionError(error: unknown): boolean {CODE
LOWtests/live/browser-reattach-live.test.ts44function isMissingChatGptSessionError(error: unknown): boolean {CODE
LOWtests/live/browser-model-selection-live.test.ts43function isMissingChatGptSessionError(error: unknown): boolean {CODE
LOWtests/remote/server.test.ts807async function expectRemoteAttachmentStaging({CODE
LOWscripts/runner.ts149function determineEffectiveTimeoutMs(commandArgs: string[]): number {CODE
LOWscripts/runner.ts278function shouldUseLintTimeoutViaPnpm(rest: string[]): boolean {CODE
LOWscripts/runner.ts300function shouldUseLintTimeoutViaBun(rest: string[]): boolean {CODE
LOWscripts/runner.ts387function normalizeForPathComparison(token: string): string {CODE
LOWscripts/runner.ts392function tokenReferencesIntegrationTest(token: string): boolean {CODE
LOWscripts/runner.ts405function referencesIntegrationSpec(tokens: string[]): boolean {CODE
LOWscripts/runner.ts431function stripWrappersAndAssignments(args: string[]): string[] {CODE
LOWscripts/runner.ts475function isTestRunnerSuiteInvocation(tokens: string[], suite: string): boolean {CODE
LOWscripts/runner.ts790async function resolveCommandInterception(CODE
LOWscripts/runner.ts851async function maybeHandleFindInvocation(context: RunnerExecutionContext): Promise<boolean> {CODE
LOWscripts/runner.ts949async function maybeHandleSleepInvocation(context: RunnerExecutionContext): Promise<boolean> {CODE
LOWscripts/runner.ts988async function maybeHandleTmuxInvocation(context: RunnerExecutionContext): Promise<boolean> {CODE
LOWscripts/runner.ts1007function parseSleepDurationSeconds(token: string): number | null {CODE
LOWscripts/git-policy.ts132export function requiresExplicitGitConsent(subcommand: string | null): boolean {CODE
LOWscripts/git-policy.ts139export function isDestructiveGitSubcommand(CODE
LOWsrc/oracleHome.ts10export function setOracleHomeDirOverrideForTest(dir: string | null): void {CODE
LOWsrc/config.ts205async function discoverProjectConfigPaths({CODE
LOWsrc/config.ts337function isTrustedProjectChatgptUrl(rawUrl: string): boolean {CODE
LOWsrc/sessionManager.ts443async function hardenSessionStorageEntry(targetPath: string): Promise<void> {CODE
LOWsrc/sessionManager.ts560function isRetriableMetadataRenameError(error: unknown): boolean {CODE
LOWsrc/sessionManager.ts570async function renameSessionMetadataFile(temporaryPath: string, targetPath: string): Promise<void> {CODE
LOWsrc/sessionManager.ts861async function readModernSessionMetadata(CODE
LOWsrc/sessionManager.ts878async function readLegacySessionMetadata(CODE
LOWsrc/bridge/connection.ts69export function parseBridgeConnectionString(input: string): {CODE
LOWsrc/bridge/connection.ts102export function formatBridgeConnectionString(CODE
LOWsrc/bridge/connection.ts119export async function readBridgeConnectionArtifact(CODE
LOWsrc/oracle/providerRouting.ts26export function resolveProviderRoutingState({CODE
LOWsrc/oracle/providerRouting.ts97function inferNativeProviderFromModelId(model: ModelName): ModelConfig["provider"] | undefined {CODE
LOWsrc/oracle/providerRouting.ts109export function isAzureOpenAICandidateModel(model: ModelName): boolean {CODE
LOWsrc/oracle/thinkingTime.ts30export function normalizeThinkingTimeLevel(CODE
LOWsrc/oracle/background.ts27export async function executeBackgroundResponse(CODE
LOWsrc/oracle/background.ts169async function retrieveBackgroundResponseWithRetry(CODE
LOWsrc/oracle/background.ts204function asRetryableTransportError(error: unknown): OracleTransportError | null {CODE
LOWsrc/oracle/client.ts24export function buildAzureResponsesBaseUrl(endpoint: string): string {CODE
LOWsrc/oracle/client.ts28export function createDefaultClientFactory(): ClientFactory {CODE
LOWsrc/oracle/client.ts164function buildOpenRouterCompletionClient(instance: OpenAI): ClientLike {CODE
480 more matches not shown…
Magic Placeholder Names4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHtests/cli/bridgeClaudeConfig.test.ts34 ORACLE_REMOTE_TOKEN: "<YOUR_TOKEN>",CODE
HIGHdocs/bridge.md126- By default the snippets leave `ORACLE_REMOTE_TOKEN` as `<YOUR_TOKEN>` to avoid printing secrets; rerun with `--print-tCODE
HIGHsrc/cli/bridge/codexConfig.ts43 const tokenValue = includeToken ? (remoteToken ?? "<YOUR_TOKEN>") : "<YOUR_TOKEN>";CODE
HIGHsrc/cli/bridge/claudeConfig.ts73 env["ORACLE_REMOTE_TOKEN"] = includeToken ? (remoteToken ?? "<YOUR_TOKEN>") : "<YOUR_TOKEN>";CODE
Fake / Example Data13 hits · 14 pts
SeverityFileLineSnippetContext
LOWtests/gemini.test.ts50 createGeminiClient("fake-key");CODE
LOWtests/gemini.test.ts51 expect(GoogleGenAI).toHaveBeenCalledWith({ apiKey: "fake-key" });CODE
LOWtests/gemini.test.ts69 const client = createGeminiClient("fake-key");CODE
LOWtests/gemini.test.ts129 const client = createGeminiClient("fake-key");CODE
LOWtests/gemini.test.ts184 const client = createGeminiClient("fake-key");CODE
LOWtests/gemini.test.ts215 const client = createGeminiClient("fake-key", "gemini-3-pro", "custom-model-id");CODE
LOWtests/gemini.test.ts235 const client = createGeminiClient("fake-key");CODE
LOWtests/gemini.test.ts271 const client = createGeminiClient("fake-key");CODE
LOWtests/gemini.test.ts317 apiKey: "fake-key",CODE
LOWtests/gemini.test.ts318 client: createGeminiClient("fake-key", "gemini-3.1-pro"),CODE
LOWtests/browser/thinkingTime.test.ts1874 expect(serialized).not.toContain("user@example.com");CODE
LOW⚡src/browser/actions/attachmentContext.ts71 prompt?.getAttribute?.('placeholder') ||CODE
LOW⚡src/browser/actions/attachmentContext.ts72 fallbackPrompt?.getAttribute?.('placeholder'),CODE
Verbosity Indicators6 hits · 12 pts
SeverityFileLineSnippetContext
LOW⚡src/browser/actions/deepResearch.ts1458 // Step 0: Check if already activeCOMMENT
LOW⚡src/browser/actions/deepResearch.ts1463 // Step 1: Open the composer tools menu. Avoid slash commands because theyCOMMENT
LOW⚡src/browser/actions/deepResearch.ts1507 // Step 4: Click itCOMMENT
LOW⚡src/browser/actions/deepResearch.ts1516 // Step 5: Verify pill appearedCOMMENT
LOWsrc/browser/actions/deepResearch.ts1474 // Step 2: Wait for dropdownCOMMENT
LOWsrc/browser/actions/deepResearch.ts1492 // Step 3: Find "Deep research" item. Some ChatGPT variants only reveal itCOMMENT
Structural Annotation Overuse6 hits · 12 pts
SeverityFileLineSnippetContext
LOW⚡src/browser/actions/deepResearch.ts1458 // Step 0: Check if already activeCOMMENT
LOW⚡src/browser/actions/deepResearch.ts1463 // Step 1: Open the composer tools menu. Avoid slash commands because theyCOMMENT
LOW⚡src/browser/actions/deepResearch.ts1507 // Step 4: Click itCOMMENT
LOW⚡src/browser/actions/deepResearch.ts1516 // Step 5: Verify pill appearedCOMMENT
LOWsrc/browser/actions/deepResearch.ts1474 // Step 2: Wait for dropdownCOMMENT
LOWsrc/browser/actions/deepResearch.ts1492 // Step 3: Find "Deep research" item. Some ChatGPT variants only reveal itCOMMENT
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALtests/browser/attachmentEvidence.test.ts125 const expressions = f.runtime.evaluate.mock.calls.map(([call]) => call.expression);CODE
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtests/cli/runOracle/setup.ts6// Ensure prompt-length guardrails are deterministic in testsCOMMENT
MEDIUMdocs/manual-tests.md98### CLI guardrails and perf tracesCOMMENT
Over-Commented Block3 hits · 2 pts
SeverityFileLineSnippetContext
LOWsrc/browser/actions/assistantResponse.ts181//COMMENT
LOWsrc/browser/actions/thinkingTime.ts821 // literal, where a backtick would terminate the string.COMMENT
LOWsrc/remote/server.ts441 const clientRequestedKeepBrowser = payload.browserConfig?.keepBrowser === true;COMMENT