AI Slop Code Risk Monitor

alibaba/DataX

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

DataX是阿里云DataWorks数据集成的开源版本。

4.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for alibaba/DataX, a Java project with 17,372 GitHub stars. SynthScan examined 144,218 lines of code across 1319 source files, recording 75 pattern matches distributed across 8 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-07-07
Last Push
17.4K
Stars
Java
Language
144.2K
Lines of Code
1.3K
Files
75
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 0.9/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 17.7/100 · LOW

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

Agent Over-Engineering Ratio 0.4/100 · LOW

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

PR Review Velocity Impact 15.2/100 · LOW

Which changes need focused human review? 75 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 43HIGH 2MEDIUM 2LOW 28

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

Hallucination Indicators43 hits · 555 pts
SeverityFileLineSnippetContext
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md262 at com.alibaba.datax.plugin.writer.oceanbasev10writer.task.MultiTableWriterTask.write(MultiTableWriterTask.java:357) [oCODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md263 at com.alibaba.datax.plugin.writer.oceanbasev10writer.task.MultiTableWriterTask.calcRuleAndDoBatchInsert(MultiTableWritCODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md264 at com.alibaba.datax.plugin.writer.oceanbasev10writer.task.MultiTableWriterTask.startWrite(MultiTableWriterTask.java:22CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md266 at com.alibaba.datax.core.taskgroup.runner.WriterRunner.run(WriterRunner.java:62) [datax-core-0.0.1-SNAPSHOT.jar:na]CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md321 at com.alipay.oceanbase.obproxy.connection.ObGroupConnection.checkAndThrowException(ObGroupConnection.java:431) ~[oceanCODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md322 at com.alipay.oceanbase.obproxy.statement.ObStatement.doExecute(ObStatement.java:598) ~[oceanbase-connector-java-2.0.8.CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md323 at com.alipay.oceanbase.obproxy.statement.ObStatement.execute(ObStatement.java:456) ~[oceanbase-connector-java-2.0.8.20CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md324 at com.alipay.oceanbase.obproxy.statement.ObPreparedStatement.execute(ObPreparedStatement.java:148) ~[oceanbase-connectCODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md326 at com.alibaba.datax.plugin.writer.oceanbasev10writer.task.InsertTask.doMultiInsert(InsertTask.java:196) [oceanbasev10wCODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md327 at com.alibaba.datax.plugin.writer.oceanbasev10writer.task.InsertTask.run(InsertTask.java:85) [oceanbasev10writer-0.0.1CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md336 at com.alipay.oceanbase.obproxy.mysql.jdbc.Util.handleNewInstance(Util.java:409) ~[oceanbase-connector-java-2.0.8.20180CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md337 at com.alipay.oceanbase.obproxy.mysql.jdbc.Util.getInstance(Util.java:384) ~[oceanbase-connector-java-2.0.8.20180730.jaCODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md338 at com.alipay.oceanbase.obproxy.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052) ~[oceanbase-connector-java-2CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md339 at com.alipay.oceanbase.obproxy.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4403) ~[oceanbase-connector-java-2.0.8CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md340 at com.alipay.oceanbase.obproxy.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4275) ~[oceanbase-connector-java-2.0.8CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md341 at com.alipay.oceanbase.obproxy.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2706) ~[oceanbase-connector-java-2.0.8.2018CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md342 at com.alipay.oceanbase.obproxy.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2867) ~[oceanbase-connector-java-2.0.8.2CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md343 at com.alipay.oceanbase.obproxy.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2843) ~[oceanbase-connector-java-CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md344 at com.alipay.oceanbase.obproxy.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2085) ~[oceanbase-cCODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md345 at com.alipay.oceanbase.obproxy.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1310) ~[oceanbase-connectorCODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md346 at com.alipay.oceanbase.obproxy.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:493) CODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md347 at com.alipay.oceanbase.obproxy.statement.ObPreparedStatement.executeOnConnection(ObPreparedStatement.java:121) ~[oceanCODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md348 at com.alipay.oceanbase.obproxy.statement.ObStatement.doExecuteOnConnection(ObStatement.java:677) ~[oceanbase-connectorCODE
CRITICAL⚡oceanbasev10writer/doc/oceanbasev10writer.md349 at com.alipay.oceanbase.obproxy.statement.ObStatement.doExecute(ObStatement.java:558) ~[oceanbase-connector-java-2.0.8.CODE
CRITICAL…om/alibaba/datax/plugin/reader/hdfsreader/DFSUtil.java890 org.apache.commons.io.IOUtils.closeQuietly(reader);CODE
CRITICAL…om/alibaba/datax/plugin/reader/hdfsreader/DFSUtil.java915 try (org.apache.parquet.hadoop.ParquetFileReader reader = org.apache.parquet.hadoop.ParquetFileReader.open(HadooCODE
CRITICAL…om/alibaba/datax/plugin/reader/hdfsreader/DFSUtil.java939 org.apache.commons.io.IOUtils.closeQuietly(reader);CODE
CRITICAL…om/alibaba/datax/plugin/reader/hdfsreader/DFSUtil.java1028 org.apache.hadoop.hive.serde2.io.HiveDecimalWritable decimalWritable = new org.apache.hadoop.hive.serde2CODE
CRITICAL…ba/datax/plugin/writer/obhbasewriter/task/PutTask.java190 Put put = new org.apache.hadoop.hbase.client.Put(rowkey); // row keyCODE
CRITICAL…ax/plugin/reader/hbase11xsqlreader/HbaseSQLHelper.java110 String splitBase64Str = org.apache.commons.codec.binary.Base64.encodeBase64String(splitSer);CODE
CRITICAL…lugin/reader/hbase11xsqlreader/HbaseSQLReaderTask.java69 byte[] splitBytes = org.apache.commons.codec.binary.Base64.decodeBase64(splitBase64Str);CODE
CRITICAL…alibaba/datax/plugin/writer/hdfswriter/HdfsHelper.java542 recordList.add(org.apache.hadoop.hive.common.type.Timestamp.ofEpochMilli(ts.getTime(CODE
CRITICAL⚡…tax/plugin/writer/otswriter/utils/CalculateHelper.java163 totalSize += com.alicloud.openservices.tablestore.core.utils.CalculateHelper.calcStringSizeInBytes(timeseriesKeyCODE
CRITICAL⚡…tax/plugin/writer/otswriter/utils/CalculateHelper.java164 totalSize += com.alicloud.openservices.tablestore.core.utils.CalculateHelper.calcStringSizeInBytes(timeseriesKeyCODE
CRITICAL⚡…tax/plugin/writer/otswriter/utils/CalculateHelper.java165 totalSize += com.alicloud.openservices.tablestore.core.utils.CalculateHelper.calcStringSizeInBytes(timeseriesKeyCODE
CRITICAL⚡…tax/plugin/writer/otswriter/utils/CalculateHelper.java167 totalSize += entry.getValue().getDataSize() + com.alicloud.openservices.tablestore.core.utils.CalculateHelpeCODE
CRITICAL…a/datax/plugin/writer/otswriter/utils/ParseRecord.java28 return new com.alicloud.openservices.tablestore.model.Column(CODE
CRITICAL…a/datax/plugin/writer/otswriter/utils/ParseRecord.java34 return new com.alicloud.openservices.tablestore.model.Column(CODE
CRITICAL…a/datax/plugin/writer/otswriter/utils/ParseRecord.java274 com.alicloud.openservices.tablestore.model.Column c = new com.alicloud.openservices.tablestore.model.Column(CODE
CRITICAL⚡oceanbasev10reader/doc/oceanbasev10reader.md236 at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:110)CODE
CRITICAL⚡oceanbasev10reader/doc/oceanbasev10reader.md237 at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:211)CODE
CRITICAL⚡oceanbasev10reader/doc/oceanbasev10reader.md239 at com.alibaba.datax.plugin.reader.oceanbasev10reader.ext.ReaderTask.doRead(ReaderTask.java:270)CODE
CRITICAL…a/datax/plugin/reader/obhbasereader/ObHbaseReader.java115 Set<String> keywords = Arrays.stream(com.alibaba.datax.plugin.reader.obhbasereader.Constant.OBMYSQL_KEYWORDSCODE
Over-Commented Block14 hits · 14 pts
SeverityFileLineSnippetContext
LOW…ibaba/datax/plugin/writer/doriswriter/DorisWriter.java1// Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWotsstreamreader/tools/tabulate.py61COMMENT
LOWotsstreamreader/tools/tabulate.py81#COMMENT
LOWotsreader/doc/otsreader.md61 COMMENT
LOWotsreader/doc/otsreader.md81 // 二进制,必须使用(Java)Base64.encodeBase64String方法,将二进制转换为一个可视化的字符串,然后将这个字符串填入value中COMMENT
LOWotsreader/doc/otsreader.md181 // begin和end不能相等COMMENT
LOWotsreader/doc/otsreader.md201 // 上面的代码执行之后,可以获得inputValue为"aGVsbG8="COMMENT
LOWotsreader/doc/otsreader.md221 // 普通列格式:{"name":"{your column name}"}COMMENT
LOWotsreader/doc/otsreader.md281 "instanceName": "",COMMENT
LOW…datax/plugin/reader/opentsdbreader/OpenTSDBReader.java21//This file is part of OpenTSDB.COMMENT
LOWotswriter/doc/otswriter.md301 // 多版本模式,插件会按照多版本模式去解析所有配置COMMENT
LOW…x/plugin/reader/oceanbasev10reader/ext/ReaderTask.java161 // setup the user defined save pointCOMMENT
LOW…tax/plugin/writer/hbase11xwriter/MultiVersionTask.java21 String.format(COMMENT
LOW…tax/plugin/writer/hbase11xwriter/MultiVersionTask.java41// String promptInfo = "Hbasewriter 中,column 的列配置格式应该是:列族:列名. 您配置的列错误:" + columnName;COMMENT
Hyper-Verbose Identifiers6 hits · 6 pts
SeverityFileLineSnippetContext
LOWotsstreamreader/tools/tabulate.py99def _pipe_segment_with_colons(align, colwidth):CODE
LOWotsstreamreader/tools/tabulate.py120def _mediawiki_row_with_attrs(separator, cell_values, colwidths, colaligns):CODE
LOWotsstreamreader/tools/tabulate.py140def _html_begin_table_without_header(colwidths_ignore, colaligns_ignore):CODE
LOWotsstreamreader/tools/tabulate.py172def _latex_line_begin_tabular(colwidths, colaligns, booktabs=False):CODE
LOW…x/plugin/writer/tdenginewriter/DefaultDataHandler.java22public class DefaultDataHandler implements DataHandler {CODE
LOW…/plugin/writer/tdenginewriter/OpentsdbDataHandler.java19public class OpentsdbDataHandler implements DataHandler {CODE
Cross-Language Confusion2 hits · 5 pts
SeverityFileLineSnippetContext
HIGHotsstreamreader/tools/tabulate.py997 | spam || align="right"| 41.9999STRING
HIGHotsstreamreader/tools/tabulate.py999 | eggs || align="right"| 451STRING
Deep Nesting5 hits · 5 pts
SeverityFileLineSnippetContext
LOWotsstreamreader/tools/tabulate.py373CODE
LOWotsstreamreader/tools/tabulate.py495CODE
LOWotsstreamreader/tools/tabulate.py579CODE
LOWotsstreamreader/tools/tabulate.py646CODE
LOWotsstreamreader/tools/tabulate.py1159CODE
Excessive Try-Catch Wrapping2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUM…sstreamreader/tools/tablestore_streamreader_console.py150def parse_time(value):CODE
MEDIUMcore/src/main/bin/perftrace.py303def parseJson(strConfig, context):CODE
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOWotsstreamreader/tools/tabulate.py5CODE
LOWotsstreamreader/tools/tabulate.py6CODE
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWotsstreamreader/tools/tabulate.py45__all__ = ["tabulate", "tabulate_formats", "simple_separated_format"]CODE