AI Slop Code Risk Monitor

harfbuzz/harfbuzz

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

HarfBuzz text shaping engine

2.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for harfbuzz/harfbuzz, a C++ project with 6,187 GitHub stars. SynthScan examined 165,531 lines of code across 366 source files, recording 146 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 2.1 (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.1
Adjusted Signal
2.1
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
6.2K
Stars
C++
Language
165.5K
Lines of Code
366
Files
146
Pattern Hits
2026-10-31
Scan Date
0.03
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 1.8/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.4/100 · LOW

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

Agent Over-Engineering Ratio 7.3/100 · LOW

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

PR Review Velocity Impact 9.0/100 · LOW

Which changes need focused human review? 146 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 11MEDIUM 56LOW 79

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 146 distinct pattern matches across 10 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.

Decorative Section Separators55 hits · 207 pts
SeverityFileLineSnippetContext
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt14# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt16# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt24# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt30# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt35# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt40# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt45# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt50# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt56# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt62# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt69# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt70# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt72# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt73# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt131# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt136# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt141# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt147# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt187# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt192# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt202# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt208# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt213# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt214# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt216# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt217# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt225# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt231# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt241# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt251# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt256# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt261# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt266# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicSyllabicCategory-Additional.txt271# ================================================COMMENT
MEDIUMsrc/ms-use/IndicSyllabicCategory-Additional.txt160# ================================================COMMENT
MEDIUMsrc/ms-use/IndicSyllabicCategory-Additional.txt172# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt16# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt17# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt19# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt20# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt37# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt42# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt50# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt61# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt67# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt68# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt70# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt71# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt116# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt121# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt122# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt124# ================================================COMMENT
MEDIUM⚡src/ms-use/IndicPositionalCategory-Additional.txt125# ================================================COMMENT
MEDIUMsrc/ms-use/IndicPositionalCategory-Additional.txt94# ================================================COMMENT
MEDIUMsrc/ms-use/IndicPositionalCategory-Additional.txt99# ================================================COMMENT
Cross-Language Confusion6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHsrc/gen-tag-table.py1048 print (' tags.push(%s); // %s' % (hb_tag_rust (tags[0]), sanitize_comment (ot.names[tags[0]])))CODE
HIGHsrc/gen-tag-table.py1089 print (' tags.push(%s); // %s' % (hb_tag_rust (tags[0]), sanitize_comment (ot.names[tags[0]])))CODE
HIGHsrc/gen-tag-table.py1309print (" if (!p || p >= limit || limit - p < %i) goto out;" % min_subtag_len)CODE
HIGHsrc/gen-tag-table.py1337 print (' for (i = 0; i < %s && i < *count; i++)' % len (tags))CODE
HIGHsrc/gen-tag-table.py1389 print (' for (i = 0; i < %s && i < *count; i++)' % len (tags))CODE
HIGHsrc/gen-vowel-constraints.py308 print (' for (buffer->idx = 0; buffer->idx + 1 < count && buffer->successful;)')CODE
Empty Error Handlers5 hits · 25 pts
SeverityFileLineSnippetContext
HIGHtest/fuzzing/decode-seed.py56except UnicodeDecodeError:CODE
HIGHsrc/gen-hb-version.py23except IOError:CODE
HIGHsrc/gen-harfbuzz-world.py61except FileNotFoundError:CODE
HIGHsrc/gen-tag-table.py501except ValueError:CODE
HIGHsrc/gen-emoji-table.py133except OSError:CODE
Over-Commented Block26 hits · 25 pts
SeverityFileLineSnippetContext
LOWtest/api/test-c.c41#include <hb-coretext.h>COMMENT
LOWtest/api/test-c.c61#include <hb-graphite2.h>COMMENT
LOWtest/api/test-ot-layout.c21 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TOCOMMENT
LOWutil/hb-fc-list.c21 * PERFORMANCE OF THIS SOFTWARE.COMMENT
LOWutil/hb-fc-list.c41#define HAVE_GETOPT 1COMMENT
LOWutil/gpu/demo-common.h21#include <algorithm>COMMENT
LOWutil/gpu/web/config-override.h1/* Re-enable features that HB_LEAN disables but the GPU demo needs. */COMMENT
LOWutil/gpu/web/gl-stub.h21/* Constants */COMMENT
LOWutil/gpu/web/gl-stub.h61#define GLFW_REPEAT 2COMMENT
LOWutil/gpu/web/gl-stub.h81#define GLFW_KEY_F 70COMMENT
LOWsrc/hb-common.h41# ifdef __cplusplusCOMMENT
LOWsrc/hb-common.h61typedef unsigned __int64 uint64_t;COMMENT
LOWsrc/hb-ot.h21 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TOCOMMENT
LOWsrc/hb-wasm-api.h41# define HB_WASM_END_DECLS }COMMENT
LOWsrc/hb-wasm-api.h61#define HB_WASM_EXEC_ENVCOMMENT
LOWsrc/hb.h21 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TOCOMMENT
LOWsrc/hb.h41#include "hb-shape.h"COMMENT
LOWsrc/gen-ucd-table.py41# General_Category (gc), Canonical_Combining_Class (ccc),COMMENT
LOWsrc/ms-use/IndicSyllabicCategory-Additional.txt1# Override values For Indic_Syllabic_CategoryCOMMENT
LOWsrc/ms-use/IndicPositionalCategory-Additional.txt1# Override values For Indic_Positional_CategoryCOMMENT
LOWsrc/ms-use/IndicPositionalCategory-Additional.txt121# ================================================COMMENT
LOWsrc/rust/hb.rs1#![allow(non_camel_case_types)]COMMENT
LOWsrc/wasm/rust/harfbuzz-wasm/src/lib.rs1#![warn(missing_docs)]COMMENT
LOWsrc/wasm/rust/harfbuzz-wasm/src/lib.rs61/// variation. It is equivalent to the `hb_font_t` pointerCOMMENT
LOWsrc/wasm/rust/harfbuzz-wasm/src/lib.rs241COMMENT
LOWsrc/wasm/rust/harfbuzz-wasm/src/lib.rs401#[derive(Debug, Clone, Copy)]COMMENT
Deep Nesting17 hits · 17 pts
SeverityFileLineSnippetContext
LOWtest/subset/subset_test_suite.py123CODE
LOWtest/shape/hb_test_tools.py79CODE
LOWtest/shape/hb_test_tools.py135CODE
LOWtest/shape/hb_test_tools.py225CODE
LOWtest/shape/hb_test_tools.py347CODE
LOWtest/shape/hb_test_tools.py444CODE
LOWtest/fuzzing/decode-seed.py115CODE
LOWtest/fuzzing/record-subset-test.py173CODE
LOWsrc/justify.py164CODE
LOWsrc/gen-arabic-table.py150CODE
LOWsrc/gen-tag-table.py1419CODE
LOWsrc/gen-tag-table.py414CODE
LOWsrc/gen-tag-table.py478CODE
LOWsrc/gen-tag-table.py527CODE
LOWsrc/gen-tag-table.py625CODE
LOWsrc/gen-vowel-constraints.py92CODE
LOWsrc/gen-vowel-constraints.py134CODE
Hyper-Verbose Identifiers17 hits · 16 pts
SeverityFileLineSnippetContext
LOWtest/subset/run-tests.py191def open_subset_batch_process():CODE
LOWtest/shape/hb_test_tools.py293 def filter_printer_function_no_newline (filter_callback):CODE
LOWtest/shape/hb_test_tools.py347 def filter_multiple_strings_or_stdin (callback, mnemonic, \CODE
LOWtest/fuzzing/hb_fuzzing_tools.py102def emit_pin_all_axes_to_default(ops: bytearray) -> None:CODE
LOWtest/fuzzing/record-subset-test.py163def handle_file_backed_set_option(ops: bytearray, name: str, path: str) -> None:STRING
LOWtest/vector/run-tests.py36def open_vector_batch_process():CODE
LOWtest/vector/run-tests.py52def close_vector_batch_process(vector_process):CODE
LOWsrc/gen-tag-table.py527 def inherit_from_macrolanguages (self):CODE
LOWsrc/gen-tag-table.py708 def remove_extra_macrolanguages (self):CODE
LOWsrc/gen-tag-table.py957 def language_name_intersection_rust (a, b):CODE
LOWsrc/gen-tag-table.py960 def get_matching_language_name_rust (intersection, candidates):CODE
LOWsrc/gen-tag-table.py1017 def print_subtag_matches_rust (subtag, new_line):CODE
LOWsrc/gen-tag-table.py1153def language_name_intersection (a, b):CODE
LOWsrc/gen-tag-table.py1167def get_matching_language_name (intersection, candidates):CODE
LOWsrc/gen-tag-table.py1419def verify_disambiguation_dict ():CODE
LOWsrc/hb-unicode.h354typedef hb_unicode_combining_class_t (*hb_unicode_combining_class_func_t) (hb_unicode_funcs_t *ufuncs,CODE
LOWsrc/hb-unicode.h372typedef hb_unicode_general_category_t (*hb_unicode_general_category_func_t) (hb_unicode_funcs_t *ufuncs,CODE
Unused Imports10 hits · 10 pts
SeverityFileLineSnippetContext
LOWtest/subset/run-repack-tests.py6CODE
LOWtest/subset/run-repack-tests.py8CODE
LOWtest/subset/run-repack-tests.py13CODE
LOWtest/subset/run-tests.py8CODE
LOWtest/shape/hb_test_tools.py4CODE
LOWtest/shape/data/text-rendering-tests/update.py3CODE
LOWtest/shape/data/text-rendering-tests/update.py3CODE
LOWtest/fuzzing/decode-seed.py8CODE
LOWutil/gpu/gen-default-texts.py5CODE
LOWsrc/gen-arabic-joining-list.py10CODE
Fake / Example Data6 hits · 6 pts
SeverityFileLineSnippetContext
LOWutil/gpu/default-text.txt1Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt nibh quis semper malesuada. Mauris sit amet meCODE
LOWutil/gpu/default-text.txt1Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt nibh quis semper malesuada. Mauris sit amet meCODE
LOWutil/gpu/web/dom.html26scene.textContent = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt nibh quis semper malesuadCODE
LOWutil/gpu/web/dom.html26scene.textContent = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt nibh quis semper malesuadCODE
LOWperf/texts/en-paragraph.txt1Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt nibh quis semper malesuada. Mauris sit amet meCODE
LOWperf/texts/en-paragraph.txt1Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tincidunt nibh quis semper malesuada. Mauris sit amet meCODE
Excessive Try-Catch Wrapping3 hits · 3 pts
SeverityFileLineSnippetContext
LOWtest/subset/run-repack-tests.py80 except Exception as e:CODE
LOWtest/subset/run-tests.py130 except Exception as e:CODE
LOWtest/subset/run-tests.py139 except Exception as e:CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMdocs/usermanual-clusters.xml262 As mentioned earlier, client programs using HarfBuzz oftenCODE