AI Slop Code Risk Monitor

linera-io/linera-protocol

SlopCodeMonitor badge for linera-io/linera-protocol Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Main repository for the Linera protocol

2.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for linera-io/linera-protocol, a Rust project with 32,044 GitHub stars. SynthScan examined 419,053 lines of code across 1279 source files, recording 982 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 2.5 (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.

2.5
Adjusted Signal
2.5
Raw Pattern Score
100%
Time Factor
2026-09-18
Last Push
32.0K
Stars
Rust
Language
419.1K
Lines of Code
1.3K
Files
982
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 11.2/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.2/100 · LOW

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

Agent Over-Engineering Ratio 0.5/100 · LOW

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

PR Review Velocity Impact 11.6/100 · LOW

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

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 982 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 Block879 hits · 839 pts
SeverityFileLineSnippetContext
LOWspellcheck-cfg.toml1# cargo-spellcheck configCOMMENT
LOWspellcheck-cfg.toml21# This must be in a directory in which hunspell looks for dictionaries.COMMENT
LOWspellcheck-cfg.toml41# Transforms words that are provided by the tokenizerCOMMENT
LOWspellcheck-cfg.toml61[NlpRules]COMMENT
LOW…2e/tests/burn_completion_requires_on_chain_evidence.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOWlinera-bridge/tests/e2e/tests/multi_tx_burn_chunking.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOW…e/tests/multiple_burns_same_recipient_across_blocks.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOWlinera-bridge/tests/e2e/tests/burns_per_evm_tx.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOWlinera-bridge/tests/e2e/tests/burns_per_evm_tx.rs41/// constraint.COMMENT
LOWlinera-bridge/tests/e2e/tests/auto_deposit_scan.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOW…ra-bridge/tests/e2e/tests/multiple_burns_same_block.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOWlinera-bridge/src/block_proof.rs21/// signatures. The header's hash is the value the validators signed and commits to the whole bodyCOMMENT
LOWlinera-bridge/src/lib.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOWlinera-bridge/src/lib.rs41COMMENT
LOWlinera-bridge/src/main.rs21#[derive(Parser, Debug)]COMMENT
LOWlinera-bridge/src/main.rs161 /// Maximum number of retry attempts for pending deposits and burns.COMMENT
LOWlinera-bridge/src/abi.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOWlinera-bridge/src/abi.rs21#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]COMMENT
LOWlinera-bridge/src/abi.rs61 /// Replace the bridge's RPC endpoint. Chain-owner-only.COMMENT
LOWlinera-bridge/src/abi.rs81 },COMMENT
LOWlinera-bridge/src/contracts.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOWlinera-bridge/src/proof/gen.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOWlinera-bridge/src/proof/gen.rs41/// All data needed to submit a `ProcessDeposit` operation to the evm-bridge app.COMMENT
LOWlinera-bridge/src/proof/mod.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOWlinera-bridge/src/proof/mod.rs21//! 3. **`decode_receipt_logs`** — Decode the receipt's RLP to extract its event logs.COMMENT
LOWlinera-bridge/src/proof/mod.rs41//! // 1. Decode the block header to get the receipts root.COMMENT
LOWlinera-bridge/src/proof/mod.rs81COMMENT
LOWlinera-bridge/src/monitor/linera.rs181/// Iterative LIFO binary search: keep halving slices that don't fit untilCOMMENT
LOWlinera-bridge/src/monitor/linera.rs241/// keeps a single RPC hiccup from permanently failing a relayable burn — isCOMMENT
LOWlinera-bridge/src/monitor/db.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOWlinera-bridge/src/monitor/mod.rs81 /// Replay-protection key identifying this deposit `(source_chain_id, block_hash, tx_index, log_index)`.COMMENT
LOWlinera-bridge/src/monitor/mod.rs101 /// Height of the Linera block that produced this burn.COMMENT
LOWlinera-bridge/src/monitor/mod.rs121 /// Amount of tokens to release on the EVM side.COMMENT
LOWlinera-bridge/src/monitor/mod.rs161/// (`event_indices` and `by_tx`) describe the same set of burns under oneCOMMENT
LOWlinera-bridge/src/relay/settlement.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOWlinera-bridge/src/relay/settlement.rs21}COMMENT
LOWlinera-bridge/src/relay/mod.rs1// Copyright (c) Zefchain Labs, Inc.COMMENT
LOWdocker/docker-compose.bridge-mainnet.yml1# Long-running linera-bridge relayer.COMMENT
LOWdocker/docker-compose.bridge-mainnet.yml21# 4. Ensure the tmpfs cache dir exists, owned root and mode 0700:COMMENT
LOWdocker/docker-compose.alloy.yml1# Docker Compose override file to enable Grafana Alloy for central observabilityCOMMENT
LOWlinera-base/src/data_types.rs41 vm::VmRuntime,COMMENT
LOWlinera-base/src/data_types.rs161}COMMENT
LOWlinera-base/src/data_types.rs181pub type CanonicalBTreeMap<K, V> = BTreeMap<K, V>;COMMENT
LOWlinera-base/src/data_types.rs661/// A request to send a message.COMMENT
LOWlinera-base/src/data_types.rs1321 #[graphql(default)]COMMENT
LOWlinera-base/src/data_types.rs1421 /// A checkpoint of the chain's execution state was published. The execution-stateCOMMENT
LOWlinera-base/src/data_types.rs1561 }COMMENT
LOWlinera-base/src/identifiers.rs261 /// A generic data blob.COMMENT
LOWlinera-base/src/identifiers.rs521COMMENT
LOWlinera-base/src/identifiers.rs1481 // -> Hashable::write into a Keccak256 hasherCOMMENT
LOWlinera-base/src/lib.rs61/// # ExamplesCOMMENT
LOWlinera-base/src/lib.rs81COMMENT
LOWlinera-base/src/lib.rs101/// bytes: vec![0x12, 0x34, 0x56, 0x78],COMMENT
LOWlinera-base/src/lib.rs141/// #[debug(with = "hex_vec_debug")]COMMENT
LOWlinera-base/src/task.rs21///COMMENT
LOWlinera-base/src/task.rs41/// Spawns `future` on the runtime and awaits its completion.COMMENT
LOWlinera-base/src/unit_tests.rs21#[test_case(&AccountPublicKey::test_key(255); "of_public_key")]COMMENT
LOWlinera-base/src/task_processor.rs1// Copyright (c) Facebook, Inc. and its affiliates.COMMENT
LOWlinera-base/src/task_processor.rs21/// processTaskOutcome(outcome: TaskOutcome!)COMMENT
LOWlinera-base/src/task_processor.rs41COMMENT
819 more matches not shown…
Verbosity Indicators25 hits · 44 pts
SeverityFileLineSnippetContext
LOW⚡linera-faucet/server/src/tests.rs685 // Step 1: Daily claim should fail before initial claim.COMMENT
LOW⚡linera-faucet/server/src/tests.rs695 // Step 2: Do the initial claim to create a chain.COMMENT
LOW⚡linera-faucet/server/src/tests.rs703 // Step 3: Daily claim should fail in period 0 (same period as initial claim).COMMENT
LOW⚡linera-faucet/server/src/tests.rs713 // Step 4: Advance clock by 25 hours to enter period 1.COMMENT
LOW⚡linera-faucet/server/src/tests.rs717 // Step 5: Daily claim should now succeed.COMMENT
LOW⚡linera-faucet/server/src/tests.rs734 // Step 6: Second daily claim in the same period should fail.COMMENT
LOW⚡linera-faucet/server/src/tests.rs744 // Step 7: Advance clock by another 24 hours to enter period 2.COMMENT
LOWexamples/bridge-demo/index.html558 // Step 1: Approve + Deposit on EVMCOMMENT
LOWexamples/bridge-demo/index.html570 // Step 3: Wait for relay to auto-detect and process the depositCOMMENT
LOWexamples/bridge-demo/index.html599 // Step 1: Submit a Burn to the evm-bridge app. The bridge moves theCOMMENT
LOW⚡examples/bridge-demo/index.html614 // Step 2: Wait for relay to forward the burn to EVMCOMMENT
LOW⚡examples/bridge-demo/index.html617 // Step 3: Poll EVM balanceCOMMENT
LOW⚡linera-core/src/unit_tests/worker_tests.rs4749 // Step 2: Process both certs on chain_1 (adds heights 0, 1 to outbox for chain_2).COMMENT
LOW⚡linera-core/src/unit_tests/worker_tests.rs4757 // Step 3: Deliver height 0 to chain_2 and confirm it on chain_1.COMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4727 // Step 1: Create two transfer certificates from chain_1 to chain_2.COMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4768 // Step 4: Send a spurious ConfirmUpdatedRecipient that claims chain_2 alreadyCOMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4789 // Step 5: Create cert_2 from chain_1 (height 2), process it on chain_1, andCOMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4834 // Step 7: Verify recovery — chain_2 received all three heights.COMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4885 // Step 1: Create and fully process block 0 (transfer from chain to target).COMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4909 // Step 2: Plant a confirmed vote in the chain manager. After the reset, it mustCOMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4920 // Step 3: Corrupt `previous_message_blocks` in storage. This directly affectsCOMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4935 // Step 3: Create block 1 certificate.COMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4947 // Step 4: Verify that WITHOUT recovery, processing fails with CorruptedChainState.COMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs5007 // Step 5: Now create a worker WITH recovery enabled and a whitelist thatCOMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs5051 // Step 6: Verify recovery — chain should be at height 2 with correct state.COMMENT
Structural Annotation Overuse25 hits · 44 pts
SeverityFileLineSnippetContext
LOW⚡linera-faucet/server/src/tests.rs685 // Step 1: Daily claim should fail before initial claim.COMMENT
LOW⚡linera-faucet/server/src/tests.rs695 // Step 2: Do the initial claim to create a chain.COMMENT
LOW⚡linera-faucet/server/src/tests.rs703 // Step 3: Daily claim should fail in period 0 (same period as initial claim).COMMENT
LOW⚡linera-faucet/server/src/tests.rs713 // Step 4: Advance clock by 25 hours to enter period 1.COMMENT
LOW⚡linera-faucet/server/src/tests.rs717 // Step 5: Daily claim should now succeed.COMMENT
LOW⚡linera-faucet/server/src/tests.rs734 // Step 6: Second daily claim in the same period should fail.COMMENT
LOW⚡linera-faucet/server/src/tests.rs744 // Step 7: Advance clock by another 24 hours to enter period 2.COMMENT
LOWexamples/bridge-demo/index.html558 // Step 1: Approve + Deposit on EVMCOMMENT
LOWexamples/bridge-demo/index.html570 // Step 3: Wait for relay to auto-detect and process the depositCOMMENT
LOWexamples/bridge-demo/index.html599 // Step 1: Submit a Burn to the evm-bridge app. The bridge moves theCOMMENT
LOW⚡examples/bridge-demo/index.html614 // Step 2: Wait for relay to forward the burn to EVMCOMMENT
LOW⚡examples/bridge-demo/index.html617 // Step 3: Poll EVM balanceCOMMENT
LOW⚡linera-core/src/unit_tests/worker_tests.rs4749 // Step 2: Process both certs on chain_1 (adds heights 0, 1 to outbox for chain_2).COMMENT
LOW⚡linera-core/src/unit_tests/worker_tests.rs4757 // Step 3: Deliver height 0 to chain_2 and confirm it on chain_1.COMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4727 // Step 1: Create two transfer certificates from chain_1 to chain_2.COMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4768 // Step 4: Send a spurious ConfirmUpdatedRecipient that claims chain_2 alreadyCOMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4789 // Step 5: Create cert_2 from chain_1 (height 2), process it on chain_1, andCOMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4834 // Step 7: Verify recovery — chain_2 received all three heights.COMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4885 // Step 1: Create and fully process block 0 (transfer from chain to target).COMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4909 // Step 2: Plant a confirmed vote in the chain manager. After the reset, it mustCOMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4920 // Step 3: Corrupt `previous_message_blocks` in storage. This directly affectsCOMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4935 // Step 3: Create block 1 certificate.COMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs4947 // Step 4: Verify that WITHOUT recovery, processing fails with CorruptedChainState.COMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs5007 // Step 5: Now create a worker WITH recovery enabled and a whitelist thatCOMMENT
LOWlinera-core/src/unit_tests/worker_tests.rs5051 // Step 6: Verify recovery — chain should be at height 2 with correct state.COMMENT
Decorative Section Separators13 hits · 39 pts
SeverityFileLineSnippetContext
MEDIUMlinera-bridge/tests/e2e/tests/auto_deposit_scan.rs341 // ══════════════════════════════════════════════════════════════════COMMENT
MEDIUMlinera-bridge/tests/e2e/tests/auto_deposit_scan.rs343 // ══════════════════════════════════════════════════════════════════COMMENT
MEDIUMlinera-bridge/tests/e2e/tests/auto_deposit_scan.rs432 // ══════════════════════════════════════════════════════════════════COMMENT
MEDIUMlinera-bridge/tests/e2e/tests/auto_deposit_scan.rs434 // ══════════════════════════════════════════════════════════════════COMMENT
MEDIUMscripts/deploy-validator.sh52# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/deploy-validator.sh54# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/deploy-validator.sh80# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/deploy-validator.sh82# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/deploy-validator.sh746# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/deploy-validator.sh748# -----------------------------------------------------------------------------COMMENT
MEDIUM.github/scripts/format-bench-results.sh28# ── Formatting helpers ───────────────────────────────────────────────────────COMMENT
MEDIUM.github/scripts/format-bench-results.sh86# ── Read benchmark data from JSON files ──────────────────────────────────────COMMENT
MEDIUM.github/scripts/format-bench-results.sh159# ── Markdown output ──────────────────────────────────────────────────────────COMMENT
AI Slop Vocabulary7 hits · 21 pts
SeverityFileLineSnippetContext
MEDIUMdocker/compose-scylla-setup.sh69# Based on ScyllaDB documentation and best practicesCOMMENT
MEDIUMlinera-service/src/cli/validator_benchmark/tip_lag.rs52 // chain, so this is the robust source. NOTE: it is the genesis committee;COMMENT
MEDIUM.github/workflows/instruction-count-benchmarks.yml7# (author-date vs artifact-creation-date mismatch), the bench harness spawns aCOMMENT
MEDIUM.github/workflows/docker_image.yml138 # tool used by the test harness and does not need a DB backend,COMMENT
MEDIUM.github/workflows/docker_image.yml140 # does not require --metrics-port, which the test harness does not pass.COMMENT
MEDIUMlinera-core/src/chain_worker/state.rs785 // Verify the certificate. Returns a catch-all error to make client code more robust.COMMENT
MEDIUMlinera-core/src/chain_worker/state.rs879 // Verify the certificate. Returns a catch-all error to make client code more robust.COMMENT
Redundant / Tautological Comments13 hits · 20 pts
SeverityFileLineSnippetContext
LOWdocker/compose-scylla-setup.sh25# Check if running with sufficient privilegesCOMMENT
LOWdocker/compose-scylla-setup.sh243 # Check if config already existsCOMMENT
LOWscripts/deploy-validator.sh217# Check if a command existsCOMMENT
LOWscripts/deploy-validator.sh222# Check if Docker Compose plugin is installedCOMMENT
LOWscripts/deploy-validator.sh395 # Check if we should skip genesis downloadCOMMENT
LOWscripts/deploy-validator.sh432 # Check if wget is availableCOMMENT
LOWscripts/deploy-validator.sh460 # Check if genesis configuration already existsCOMMENT
LOWscripts/deploy-validator.sh638 # Check if path existsCOMMENT
LOWscripts/deploy-validator.sh645 # Check if path is mountedCOMMENT
LOWscripts/deploy-validator.sh913 # Check if XFS is configured (optional - just for information)COMMENT
LOWscripts/check_chain_loads.sh3# Check if there aren't any unexpected chain load operationsCOMMENT
LOWscripts/backup-validator-keys.sh29 # Check if container exists and is runningCOMMENT
LOWscripts/backup-validator-keys.sh40 # Check if path exists in containerCOMMENT
Fake / Example Data9 hits · 14 pts
SeverityFileLineSnippetContext
LOW⚡linera-views/src/test_utils/test_views.rs62 let dummy_value = 82;CODE
LOW⚡linera-views/src/test_utils/test_views.rs63 self.byte.set(dummy_value);CODE
LOW⚡linera-views/src/test_utils/test_views.rs64 Ok(dummy_value)CODE
LOW⚡linera-views/src/test_utils/test_views.rs68 let dummy_value = 209;CODE
LOW⚡linera-views/src/test_utils/test_views.rs69 self.byte.set(dummy_value);CODE
LOW⚡linera-views/src/test_utils/test_views.rs70 Ok(dummy_value)CODE
LOW⚡linera-views/src/test_utils/test_views.rs74 let dummy_value = 15;CODE
LOW⚡linera-views/src/test_utils/test_views.rs75 self.byte.set(dummy_value);CODE
LOW⚡linera-views/src/test_utils/test_views.rs76 Ok(dummy_value)CODE
Self-Referential Comments3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMdocker/compose-scylla-setup.sh304# Create a flag file to indicate setup is completeCOMMENT
MEDIUMscripts/deploy-validator.sh1066# This file is the source of truth for Docker Compose configurationCOMMENT
MEDIUMscripts/fix-validator-env.sh61# This file is now the source of truth for Docker Compose configurationCOMMENT
Example Usage Blocks5 hits · 8 pts
SeverityFileLineSnippetContext
LOWdocker/docker-compose.alloy.yml3# Usage:COMMENT
LOWexamples/bridge-demo/setup.sh8# Usage:COMMENT
LOWexamples/bridge-demo/spawn-relayer.sh9# Usage:COMMENT
LOWscripts/test_publish.sh10# Usage:COMMENT
LOWscripts/memleak_translate.sh9# Usage:COMMENT
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHlinera-views/src/batch.rs37/// A write operation as requested by a view when it needs to persist staged changes.COMMENT
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
LOWlinera-execution/build.rs17 // If you change this, don't forget to update `WasmRuntime` andCOMMENT
MEDIUMexamples/counter-no-graphql/src/service.rs44 // Check that they are equal (for demonstration purposes)COMMENT