AI Slop Code Risk Monitor

benbjohnson/litestream

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

Streaming replication for SQLite.

1.9 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for benbjohnson/litestream, a Go project with 14,554 GitHub stars. SynthScan examined 120,090 lines of code across 284 source files, recording 155 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 1.9 (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.9
Adjusted Signal
1.9
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
14.6K
Stars
Go
Language
120.1K
Lines of Code
284
Files
155
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 8.8/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.4/100 · LOW

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

Agent Over-Engineering Ratio 0.2/100 · LOW

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

PR Review Velocity Impact 7.1/100 · LOW

Which changes need focused human review? 155 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 7LOW 147

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 155 distinct pattern matches across 11 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.

Over-Commented Block73 hits · 70 pts
SeverityFileLineSnippetContext
LOWcompactor_test.go121 }COMMENT
LOWcompactor.go21 client ReplicaClientCOMMENT
LOWdb.go41COMMENT
LOWdb.go121 checkpointSecondsCounterVec *prometheus.CounterVecCOMMENT
LOWdb.go141 // Time between automatic checkpoints in the WAL. This is done to allowCOMMENT
LOWdb.go161 // Minimum time to retain L0 files after they have been compacted into L1.COMMENT
LOWdb.go221 return nilCOMMENT
LOWreplica_test.go101// a higher TXID, causing new writes to not be replicated.COMMENT
LOWreplica_client.go21 Type() stringCOMMENT
LOWdb_internal_test.go2481}COMMENT
LOWdb_internal_test.go3281// Root cause: checkpoint() does a pre-checkpoint sync to capture WAL state,COMMENT
LOW.goreleaser.yml181 # signature: "${artifact}.zip"COMMENT
LOWvfs.go1821COMMENT
LOWcmd/litestream-test/scripts/reproduce-critical-bug.sh1#!/bin/bashCOMMENT
LOWs3/replica_client.go421COMMENT
LOWtests/integration/profile_test.go21 _ "modernc.org/sqlite"COMMENT
LOWtests/integration/overnight_s3_soak_test.go21// Requirements:COMMENT
LOWtests/integration/minio_soak_test.go21// Can be shortened with: go test -test.short (runs for 30 minutes)COMMENT
LOWtests/integration/shutdown_retry_test.go21 "syscall"COMMENT
LOWtests/integration/soak_replicate_restore_test.go21COMMENT
LOWetc/litestream.yml1# AWS credentialsCOMMENT
LOWetc/litestream.yml21# # sign-accept-encoding: falseCOMMENT
LOWetc/litestream.yml41# Global options (defaults shown). All values below are commented out; they takeCOMMENT
LOWetc/litestream.yml61# l0-retention: 5m # default: 5mCOMMENT
LOWinternal/resumable_reader.go21// resumableReader wraps an io.ReadCloser from a remote storage backend withCOMMENT
LOW.github/workflows/release.yml221 # - name: CheckoutCOMMENT
LOW.github/workflows/release.yml241 # security create-keychain -p actions temp.keychainCOMMENT
LOW.github/workflows/release.yml261COMMENT
LOW.github/workflows/release.yml281 # WINDOWS_CERTIFICATE_PASSWORD: ${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}COMMENT
LOWwebdav/replica_client.go221 return ctx.Err()COMMENT
LOWwebdav/replica_client.go241// Research shows HTTP chunked transfer encoding with WebDAV is unreliable:COMMENT
LOWwebdav/replica_client.go261// 3. Seek back to start of temp file (now seekable + known size)COMMENT
LOW_examples/library/s3/main.go1// Example: Litestream Library Usage with S3 and Restore-on-StartupCOMMENT
LOWsrc/sqlite3.h81# define SQLITE_APICALLCOMMENT
LOWsrc/sqlite3.h441**COMMENT
LOWsrc/sqlite3.h461#define SQLITE_CANTOPEN 14 /* Unable to open the database file */COMMENT
LOWsrc/sqlite3.h501#define SQLITE_IOERR_SHORT_READ (SQLITE_IOERR | (2<<8))COMMENT
LOWsrc/sqlite3.h521#define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8))COMMENT
LOWsrc/sqlite3.h541#define SQLITE_CANTOPEN_FULLPATH (SQLITE_CANTOPEN | (3<<8))COMMENT
LOWsrc/sqlite3.h561#define SQLITE_CONSTRAINT_TRIGGER (SQLITE_CONSTRAINT | (7<<8))COMMENT
LOWsrc/sqlite3.h601#define SQLITE_OPEN_URI 0x00000040 /* Ok for sqlite3_open_v2() */COMMENT
LOWsrc/sqlite3.h661** read of the first page to access the database header.COMMENT
LOWsrc/sqlite3.h1221** database is not a temp db, then the [SQLITE_FCNTL_RESET_CACHE] file-controlCOMMENT
LOWsrc/sqlite3.h1241#define SQLITE_FCNTL_TEMPFILENAME 16COMMENT
LOWsrc/sqlite3.h1261#define SQLITE_FCNTL_CKPT_DONE 37COMMENT
LOWsrc/sqlite3.h2181** ability is deactivated. Any other initial value for the integer leaves theCOMMENT
LOWsrc/sqlite3.h2201#define SQLITE_CONFIG_LOOKASIDE 13 /* int int */COMMENT
LOWsrc/sqlite3.h2641** the first argument.COMMENT
LOWsrc/sqlite3.h2661#define SQLITE_DBCONFIG_DQS_DML 1013 /* int int* */COMMENT
LOWsrc/sqlite3.h3461#define SQLITE_DROP_INDEX 10 /* Index Name Table Name */COMMENT
LOWsrc/sqlite3.h4321*/COMMENT
LOWsrc/sqlite3.h7741** The collating sequence to be used for comparison can be found usingCOMMENT
LOWsrc/sqlite3.h8421** prepared to accommodate additional static mutexes.COMMENT
LOWsrc/sqlite3.h8521** These constants are the valid operation code parameters usedCOMMENT
LOWsrc/sqlite3.h8541#define SQLITE_TESTCTRL_JSON_SELFCHECK 14COMMENT
LOWsrc/sqlite3.h9001#define SQLITE_DBSTATUS_LOOKASIDE_USED 0COMMENT
LOWsrc/sqlite3.h11061#ifdef SQLITE_OMIT_FLOATING_POINTCOMMENT
LOWsrc/sqlite3ext.h401#define sqlite3_bind_int sqlite3_api->bind_intCOMMENT
LOWsrc/sqlite3ext.h421#define sqlite3_column_database_name16 sqlite3_api->column_database_name16COMMENT
LOWsrc/sqlite3ext.h441#define sqlite3_create_collation16 sqlite3_api->create_collation16COMMENT
13 more matches not shown…
Verbosity Indicators31 hits · 58 pts
SeverityFileLineSnippetContext
LOWreplica_test.go123 // Step 1: Create initial data and replicateCOMMENT
LOWreplica_test.go155 // Step 2: Simulate hard recovery - remove database and .litestream directory, then restoreCOMMENT
LOWreplica_test.go179 // Step 3: Start replication and insert new dataCOMMENT
LOWreplica_test.go210 // Step 4: Simulate second hard recovery and restore againCOMMENT
LOWreplica_test.go232 // Step 5: Verify the new data (value=2) exists in restored databaseCOMMENT
LOW⚡db_internal_test.go3332 // Step 1: Initial sync — creates snapshot L0 with all current pagesCOMMENT
LOW⚡db_internal_test.go3337 // Step 2: Write data to grow the database significantlyCOMMENT
LOW⚡db_internal_test.go3345 // Step 3: Sync to capture the growth — creates incremental L0COMMENT
LOW⚡db_internal_test.go3353 // Step 4: Run checkpoint CONCURRENTLY with more writes.COMMENT
LOWdb_internal_test.go3472 // Step 6: Verify all pages are covered across L0 files.COMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh63# Step 1: Create and populate initial databaseCOMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh70# Step 2: Start Litestream replicationCOMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh84# Step 3: Start continuous writesCOMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh91# Step 4: Let it run normally for 20 secondsCOMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh100# Step 5: Kill Litestream (simulate crash)COMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh106# Step 6: Let writes continue for 15 seconds without LitestreamCOMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh111# Step 7: Execute non-PASSIVE checkpointCOMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh120# Step 8: Resume LitestreamCOMMENT
LOWcmd/litestream-test/scripts/reproduce-critical-bug.sh132# Step 9: Let Litestream catch upCOMMENT
LOWcmd/litestream-test/scripts/reproduce-critical-bug.sh151# Step 10: Attempt to restore (THIS IS WHERE THE BUG OCCURS)COMMENT
LOWtests/integration/directory_watcher_test.go39 // Step 1: Create 2 databases in separate tenant directoriesCOMMENT
LOWtests/integration/directory_watcher_test.go53 // Step 2: Add data to both databasesCOMMENT
LOWtests/integration/directory_watcher_test.go65 // Step 3: Create 3 more databases at intervalsCOMMENT
LOWtests/integration/directory_watcher_test.go87 // Step 4: Delete one database and verify cleanupCOMMENT
LOWtests/integration/directory_watcher_test.go98 // Step 5: Verify no critical errors in logCOMMENT
LOW⚡tests/integration/supabase-s3/test.sh29# Step 1: Build litestreamCOMMENT
LOW⚡tests/integration/supabase-s3/test.sh36# Step 2: Start Supabase stackCOMMENT
LOW⚡tests/integration/supabase-s3/test.sh43# Step 3: Create bucket via Supabase REST APICOMMENT
LOWtests/integration/supabase-s3/test.sh61# Step 4: Create and populate test databaseCOMMENT
LOWtests/integration/supabase-s3/test.sh75# Step 5: Replicate to Supabase S3COMMENT
LOWtests/integration/supabase-s3/test.sh101# Step 6: Restore and verifyCOMMENT
Structural Annotation Overuse31 hits · 58 pts
SeverityFileLineSnippetContext
LOWreplica_test.go123 // Step 1: Create initial data and replicateCOMMENT
LOWreplica_test.go155 // Step 2: Simulate hard recovery - remove database and .litestream directory, then restoreCOMMENT
LOWreplica_test.go179 // Step 3: Start replication and insert new dataCOMMENT
LOWreplica_test.go210 // Step 4: Simulate second hard recovery and restore againCOMMENT
LOWreplica_test.go232 // Step 5: Verify the new data (value=2) exists in restored databaseCOMMENT
LOW⚡db_internal_test.go3332 // Step 1: Initial sync — creates snapshot L0 with all current pagesCOMMENT
LOW⚡db_internal_test.go3337 // Step 2: Write data to grow the database significantlyCOMMENT
LOW⚡db_internal_test.go3345 // Step 3: Sync to capture the growth — creates incremental L0COMMENT
LOW⚡db_internal_test.go3353 // Step 4: Run checkpoint CONCURRENTLY with more writes.COMMENT
LOWdb_internal_test.go3472 // Step 6: Verify all pages are covered across L0 files.COMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh63# Step 1: Create and populate initial databaseCOMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh70# Step 2: Start Litestream replicationCOMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh84# Step 3: Start continuous writesCOMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh91# Step 4: Let it run normally for 20 secondsCOMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh100# Step 5: Kill Litestream (simulate crash)COMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh106# Step 6: Let writes continue for 15 seconds without LitestreamCOMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh111# Step 7: Execute non-PASSIVE checkpointCOMMENT
LOW⚡cmd/litestream-test/scripts/reproduce-critical-bug.sh120# Step 8: Resume LitestreamCOMMENT
LOWcmd/litestream-test/scripts/reproduce-critical-bug.sh132# Step 9: Let Litestream catch upCOMMENT
LOWcmd/litestream-test/scripts/reproduce-critical-bug.sh151# Step 10: Attempt to restore (THIS IS WHERE THE BUG OCCURS)COMMENT
LOWtests/integration/directory_watcher_test.go39 // Step 1: Create 2 databases in separate tenant directoriesCOMMENT
LOWtests/integration/directory_watcher_test.go53 // Step 2: Add data to both databasesCOMMENT
LOWtests/integration/directory_watcher_test.go65 // Step 3: Create 3 more databases at intervalsCOMMENT
LOWtests/integration/directory_watcher_test.go87 // Step 4: Delete one database and verify cleanupCOMMENT
LOWtests/integration/directory_watcher_test.go98 // Step 5: Verify no critical errors in logCOMMENT
LOW⚡tests/integration/supabase-s3/test.sh29# Step 1: Build litestreamCOMMENT
LOW⚡tests/integration/supabase-s3/test.sh36# Step 2: Start Supabase stackCOMMENT
LOW⚡tests/integration/supabase-s3/test.sh43# Step 3: Create bucket via Supabase REST APICOMMENT
LOWtests/integration/supabase-s3/test.sh61# Step 4: Create and populate test databaseCOMMENT
LOWtests/integration/supabase-s3/test.sh75# Step 5: Replicate to Supabase S3COMMENT
LOWtests/integration/supabase-s3/test.sh101# Step 6: Restore and verifyCOMMENT
Self-Referential Comments4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMcmd/litestream-test/populate.go262 # Create a 1GB database with default settingsCOMMENT
MEDIUMcmd/litestream-test/populate.go265 # Create a 2GB database with larger rowsCOMMENT
MEDIUMcmd/litestream-test/scripts/test-754-s3-scenarios.sh254 # Create a short retention test with file replication for comparisonCOMMENT
MEDIUM.github/workflows/commit.yml388 # Create the object store bucketCOMMENT
Redundant / Tautological Comments7 hits · 10 pts
SeverityFileLineSnippetContext
LOWcmd/litestream-test/scripts/test-754-s3-scenarios.sh15# Check if we have S3 environment setupCOMMENT
LOWcmd/litestream-test/scripts/test-754-s3-scenarios.sh293 # Check if old files are cleaned upCOMMENT
LOWcmd/litestream-test/scripts/test-s3-access-point.sh146# Check if Litestream is still runningCOMMENT
LOW…/litestream-test/scripts/test-s3-retention-large-db.sh389 # Check if both databases cross the lock page boundaryCOMMENT
LOW…stream-test/scripts/test-s3-retention-comprehensive.sh397 # Check if large database test crossed lock page boundaryCOMMENT
LOWcmd/litestream-test/scripts/test-upgrade-large-db.sh100# Check if replication is workingCOMMENT
LOW…itestream-test/scripts/test-simple-754-reproduction.sh39# Check if it's still runningCOMMENT
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICAL.github/workflows/pr-metrics.yml268 | Base (\`${context.payload.pull_request.base.sha.substring(0, 7)}\`) | ${fmt(baseSize)} | |CODE
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMcmd/litestream-test/scripts/test-upgrade-large-db.sh50# Use our test harness to create large database quicklyCOMMENT
MEDIUMinternal/resumable_reader.go38// of OpenLTXFile). Callers like io.ReadFull see a seamless byte stream becauseCOMMENT
Decorative Section Separators1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMetc/litestream.yml40# ------------------------------------------------------------------------------COMMENT
Hyper-Verbose Identifiers3 hits · 3 pts
SeverityFileLineSnippetContext
LOWpackages/python/scripts/test_wheel.py71 def test_empty_wheel_directory(self):CODE
LOW.github/scripts/integration-test-paths.js3function hasRelevantIntegrationTestChanges(files, totalChangedFiles) {CODE
LOW.github/scripts/integration-test-paths.js44function isRelevantIntegrationTestPath(filename) {CODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/local-soak.sh5# Usage:COMMENT
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWpackages/python/scripts/test_wheel.py25CODE