AI Slop Code Risk Monitor

apache/apisix

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

The Cloud-Native API Gateway and AI Gateway

4.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for apache/apisix, a Lua project with 17,277 GitHub stars. SynthScan examined 316,398 lines of code across 1042 source files, recording 489 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 4.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.

4.1
Adjusted Signal
4.1
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
17.3K
Stars
Lua
Language
316.4K
Lines of Code
1.0K
Files
489
Pattern Hits
2026-10-31
Scan Date
0.20
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 4.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 14.6/100 · LOW

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

Agent Over-Engineering Ratio 0.4/100 · LOW

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

PR Review Velocity Impact 21.7/100 · LOW

Which changes need focused human review? 489 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 206MEDIUM 13LOW 270

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 489 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.

Magic Placeholder Names205 hits · 990 pts
SeverityFileLineSnippetContext
HIGHdocs/zh/latest/plugins/ai-request-rewrite.md71export OPENAI_API_KEY=<your-api-key>CODE
HIGHdocs/zh/latest/plugins/ai-request-rewrite.md187 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-request-rewrite.md255 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-request-rewrite.md402 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-request-rewrite.md470 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-request-rewrite.md622 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-request-rewrite.md690 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-request-rewrite.md751 "Authorization": "Bearer <your-api-key>"CODE
HIGHdocs/zh/latest/plugins/ai-request-rewrite.md791 Authorization: "Bearer <your-api-key>"CODE
HIGHdocs/zh/latest/plugins/ai-request-rewrite.md841 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-request-rewrite.md910 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-prompt-guard.md187 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-prompt-guard.md247 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-prompt-guard.md484 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-prompt-guard.md546 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-prompt-template.md196 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-prompt-template.md261 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-prompt-template.md455 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-prompt-template.md526 Authorization: "Bearer your-api-key"CODE
HIGH⚡docs/zh/latest/plugins/ai-rag.md246 api_key: "Bearer your-api-key"CODE
HIGH⚡docs/zh/latest/plugins/ai-rag.md250 api_key: "Bearer your-api-key"CODE
HIGH⚡docs/zh/latest/plugins/ai-rag.md256 api-key: "Bearer your-api-key"CODE
HIGH⚡docs/zh/latest/plugins/ai-rag.md310 api_key: "Bearer your-api-key"CODE
HIGH⚡docs/zh/latest/plugins/ai-rag.md314 api_key: "Bearer your-api-key"CODE
HIGH⚡docs/zh/latest/plugins/ai-rag.md321 api-key: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md302 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md310 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md365 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md373 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md581 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md590 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md655 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md664 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md1168 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md1176 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md1235 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md1243 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md1585 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md1594 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md1650 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md1659 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md2014 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md2024 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md2081 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md2091 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md2305 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md2313 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md2379 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md2387 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md2576 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md2584 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md2650 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-proxy-multi.md2658 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/datadog.md110 -e DD_API_KEY=<your-api-key> \CODE
HIGHdocs/zh/latest/plugins/ai-rate-limiting.md170 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-rate-limiting.md228 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-rate-limiting.md417 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-rate-limiting.md425 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-rate-limiting.md486 Authorization: "Bearer your-api-key"CODE
HIGHdocs/zh/latest/plugins/ai-rate-limiting.md494 Authorization: "Bearer your-api-key"CODE
145 more matches not shown…
Over-Commented Block243 hits · 243 pts
SeverityFileLineSnippetContext
LOW.asf.yaml1#COMMENT
LOWCODE_OF_CONDUCT.md1<!--COMMENT
LOWpowered-by.md1---COMMENT
LOWCHANGELOG.md1---COMMENT
LOWVision-and-Milestones.md1<!--COMMENT
LOWREADME.md1<!--COMMENT
LOWCODE_STYLE.md1---COMMENT
LOWCONTRIBUTING.md1<!--COMMENT
LOW.licenserc.yaml1#COMMENT
LOWTHREAT_MODEL.md1<!--COMMENT
LOW.markdownlint.yml1#COMMENT
LOWMAINTAIN.md1<!--COMMENT
LOWbenchmark/run.sh1#! /bin/bash -xCOMMENT
LOWdocker/compose/docker-compose-master.yaml1#COMMENT
LOWdocker/compose/apisix_conf/master/config.yaml1#COMMENT
LOWdocker/debian-dev/docker-entrypoint.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/debian-dev/install-brotli.sh1#!/usr/bin/env bashCOMMENT
LOWautodocs/generate.sh1#!/usr/bin/env bashCOMMENT
LOWapisix/plugins/grpc-transcode/proto.lua181 // server that maps type URLs to message definitions as follows:COMMENT
LOWapisix/plugins/grpc-transcode/proto.lua201 // Must be a valid serialized protocol buffer of the above specified type.COMMENT
LOWapisix/cli/ngx_tpl.lua381 # `handle_trusted_x_forwarded_headers` in apisix/init.lua.COMMENT
LOWapisix/cli/ngx_tpl.lua1021 # derives from them -- the upstream headers come from `r->headers_in`COMMENT
LOWci/linux-install-etcd-client.sh1#!/usr/bin/env bashCOMMENT
LOWci/linux-install-openresty.sh1#!/usr/bin/env bashCOMMENT
LOW…ux_apisix_current_luarocks_in_customed_nginx_runner.sh1#!/usr/bin/env bashCOMMENT
LOWci/common.sh1#COMMENT
LOWci/init-common-test-service.sh1#!/usr/bin/env bashCOMMENT
LOWci/free_disk_space.sh1#!/usr/bin/env bashCOMMENT
LOWci/init-last-test-service.sh1#!/usr/bin/env bashCOMMENT
LOWci/init-plugin-test-service.sh1#!/usr/bin/env bashCOMMENT
LOWci/linux_openresty_tongsuo_runner.sh1#!/usr/bin/env bashCOMMENT
LOWci/tars-ci.sh1#!/usr/bin/env bashCOMMENT
LOWci/backup-docker-images.sh1#!/usr/bin/env bashCOMMENT
LOWci/kubernetes-ci.sh1#!/usr/bin/env bashCOMMENT
LOWci/check_changelog_prs.ts61 // fully reverted by 13449 within this release, so they net to a no-op and areCOMMENT
LOWci/linux_openresty_runner.sh1#!/usr/bin/env bashCOMMENT
LOWci/linux_apisix_current_luarocks_runner.sh1#!/usr/bin/env bashCOMMENT
LOWci/linux_openresty_common_runner.sh1#!/usr/bin/env bashCOMMENT
LOWci/redhat-ci.sh1#!/usr/bin/env bashCOMMENT
LOWci/pod/docker-compose.common.yml1#COMMENT
LOWci/pod/docker-compose.first.yml1#COMMENT
LOWci/pod/docker-compose.plugin.yml1#COMMENT
LOWci/pod/docker-compose.last.yml1#COMMENT
LOWci/pod/nacos/healthcheck/nacos-server-healthcheck.sh1#!/usr/bin/env bashCOMMENT
LOWci/pod/nacos/healthcheck/nacos-service-healthcheck.sh1#!/usr/bin/env bashCOMMENT
LOWci/pod/openfunction/build-function-image.sh1#!/usr/bin/env bashCOMMENT
LOWci/pod/otelcol-contrib/config.yaml1#COMMENT
LOWci/pod/openldap/enable-anon-bind.sh1#!/bin/bashCOMMENT
LOWci/pod/keycloak/kcadm_configure_cas.sh1#!/usr/bin/env bashCOMMENT
LOWci/pod/keycloak/kcadm_configure_saml.sh1#!/usr/bin/env bashCOMMENT
LOWci/pod/keycloak/kcadm_configure_basic.sh1#!/usr/bin/env bashCOMMENT
LOWci/pod/keycloak/kcadm_configure_university.sh1#!/usr/bin/env bashCOMMENT
LOWci/pod/vector/vector.toml1#COMMENT
LOWutils/check-test-code-style.sh1#!/usr/bin/env bashCOMMENT
LOWutils/gen-vote-contents.sh1#!/bin/shCOMMENT
LOWutils/check-version.sh1#!/bin/shCOMMENT
LOWutils/requirements-admin-api.txt1# Licensed to the Apache Software Foundation (ASF) under one or moreCOMMENT
LOWutils/validate-admin-api.py1#!/usr/bin/env python3COMMENT
LOWutils/fix-zh-doc-segment.py1#!/usr/bin/env python3COMMENT
LOWutils/check-plugins-code.sh1#!/bin/bashCOMMENT
183 more matches not shown…
Self-Referential Comments7 hits · 21 pts
SeverityFileLineSnippetContext
MEDIUMt/fuzzing/simple_http.py20# This file provides a fuzzing test with most common plugins via plain HTTP requestCOMMENT
MEDIUMt/fuzzing/http_upstream.py20# This file provides a fuzzing test with different upstreamsCOMMENT
MEDIUMt/cli/test_stream_port_range.sh417# Create a stream route targeting the inline upstreamCOMMENT
MEDIUMt/cli/test_standalone.sh148## Create a symlink to change the link count and as a result `st_ctime`COMMENT
MEDIUMt/cli/test_limit_conn_redis_ttl.sh50# Create a route with limit-conn and redis policyCOMMENT
MEDIUMt/cli/test_limit_req_redis_ttl.sh50# Create a route with limit-req and redis policyCOMMENT
MEDIUMt/cli/test_ci_only.sh20# This file is like other test_*.sh, but requires extra dependencies whichCOMMENT
Hyper-Verbose Identifiers10 hits · 12 pts
SeverityFileLineSnippetContext
LOWci/check_changelog_prs.ts88function extractVersionsFromChangelog(): Version[] {CODE
LOWci/check_changelog_prs.ts132function shouldIgnoreCommitMessage(message: string): boolean {CODE
LOWt/fuzzing/public.py79def get_linear_regression_sloped(samples):CODE
LOWt/openapi/test_validator.py40 def test_unresolved_reference(self):CODE
LOWt/openapi/test_validator.py46 def test_duplicate_operation_and_missing_path_parameter(self):CODE
LOWt/openapi/test_validator.py57 def test_invalid_default_and_response_example(self):CODE
LOWt/openapi/test_validator.py67 def test_version_and_release_schema_drift(self):CODE
LOW⚡t/openapi/test_validator.py79 def test_malformed_operation_id(self):CODE
LOW⚡t/openapi/test_validator.py84 def test_missing_collection_put(self):CODE
LOW⚡t/openapi/test_validator.py89 def test_graphql_cost_decoration_schema_drift(self):CODE
Modern AI Meta-Vocabulary3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMdocs/zh/latest/plugins/ai-rag.md140### 与 Azure 集成以获得 RAG 增强响应COMMENT
MEDIUMdocs/en/latest/plugins/ai-lakera-guard.md42The `ai-lakera-guard` Plugin integrates with the [Lakera Guard API (v2)](https://docs.lakera.ai/docs/api) to perform ML-CODE
MEDIUMdocs/en/latest/plugins/ai-rag.md140### Integrate with Azure for RAG-Enhanced ResponsesCOMMENT
Deep Nesting7 hits · 7 pts
SeverityFileLineSnippetContext
LOWutils/validate-admin-api.py43CODE
LOWutils/validate-admin-api.py92CODE
LOWutils/validate-admin-api.py223CODE
LOWutils/fix-zh-doc-segment.py39CODE
LOWutils/check-category.py31CODE
LOWt/plugin/openapi_to_mcp_harness.py97CODE
LOWt/cli/test_sse.py58CODE
Fake / Example Data7 hits · 7 pts
SeverityFileLineSnippetContext
LOWdocs/zh/latest/plugins/body-transformer.md871 "user_name": "John Doe",CODE
LOWdocs/zh/latest/plugins/body-transformer.md895 "name": "John Doe",CODE
LOWdocs/zh/latest/plugins/body-transformer.md917 "name": "John Doe",CODE
LOWdocs/en/latest/plugins/body-transformer.md873 "user_name": "John Doe",CODE
LOWdocs/en/latest/plugins/body-transformer.md897 "name": "John Doe",CODE
LOWdocs/en/latest/plugins/body-transformer.md919 "name": "John Doe",CODE
LOWt/plugin/lago.spec.ts108 email: 'test@test.com',CODE
Excessive Try-Catch Wrapping5 hits · 7 pts
SeverityFileLineSnippetContext
MEDIUMt/fuzzing/public.py48 print("Error in log: ", err)CODE
LOWt/plugin/openapi_to_mcp_harness.py60 except Exception as exc: # noqa: BLE001CODE
LOWt/plugin/openapi_to_mcp_harness.py115 except Exception as exc: # noqa: BLE001CODE
LOWt/plugin/openapi_to_mcp_harness.py177 except Exception: # noqa: BLE001CODE
MEDIUMt/plugin/openapi_to_mcp_harness.py97def _read(self):CODE
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHt/plugin/openapi_to_mcp_harness.py164except OSError:CODE
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMconf/config.yaml28# To configure via environment variables, you can use `${{VAR}}` syntax. For instance:COMMENT