Xray、Tuic、hysteria2、sing-box 八合一一键脚本
This report summarizes scanner evidence for mack-a/v2ray-agent, a Shell project with 22,258 GitHub stars. SynthScan examined 32,338 lines of code across 26 source files, recording 135 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 8.3 (Moderate 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.
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.
Can maintainers explain intent, assumptions, and trade-offs? 59 finding(s).
Are imports declared and package/API names verified? 8 finding(s).
Are wrappers, guards, and repeated structures necessary? 99 finding(s).
Which changes need focused human review? 135 finding(s).
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.
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.
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.
The scanner identified 135 distinct pattern matches across 9 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | install.sh | 3 | # ------------------------------------------------------------- | COMMENT |
| MEDIUM | install.sh | 1317 | # ------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | shell/docker_reality.sh | 51 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | shell/docker_reality.sh | 53 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | shell/docker_reality.sh | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | shell/docker_reality.sh | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 6 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 8 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 32 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 34 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 128 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 130 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 578 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 580 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 644 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 646 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 759 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 761 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 827 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 829 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 913 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 916 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 948 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 950 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 1989 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 1993 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 2053 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 2057 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 2100 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 2103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 2432 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality.sh | 2434 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/install_en.sh | 2 | # ------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/install_en.sh | 1318 | # ------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | shell/docker_reality_en.sh | 51 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | shell/docker_reality_en.sh | 53 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | shell/docker_reality_en.sh | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | shell/docker_reality_en.sh | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | shell/docker_reality_en.sh | 2082 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | shell/docker_reality_en.sh | 2085 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 6 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 8 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 32 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 34 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 128 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 130 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 576 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 578 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 643 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 645 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 758 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 760 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 826 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 828 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 912 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 915 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 947 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 949 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 1971 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | shell/docker_reality_en.sh | 1975 | # --------------------------------------------------------------------------- | COMMENT |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | checks/socks5_standalone_test.py | 228 | kill -0 "$pid" 2>/dev/null || return 1 | CODE |
| HIGH | checks/socks5_standalone_test.py | 309 | commitSocks5Inbound install {port} changed '["192.0.2.1/32"]' ipv4_only '*' 127.0.0.1 && exit 70 | CODE |
| HIGH | checks/socks5_standalone_test.py | 310 | socks5SingBoxService status && socks5SingBoxService enabled | CODE |
| HIGH⚡ | checks/socks5_standalone_test.py | 285 | generateSocks5InboundConfig "$fixture/sing-box/conf/config" {free_port()} pass '["127.0.0.1/32"]' ipv4_only {shlex.quote | STRING |
| HIGH⚡ | checks/socks5_standalone_test.py | 286 | singBoxMergeConfig || exit 2 | STRING |
| HIGH⚡ | checks/socks5_standalone_test.py | 287 | singBoxMergeConfig || exit 3 | STRING |
| HIGH⚡ | checks/socks5_standalone_test.py | 326 | self.invoke(code, f'''commitSocks5Inbound install {free_port()} pass '["127.0.0.1/32"]' ipv4_only '*' 12 | STRING |
| HIGH | checks/socks5_standalone_test.py | 347 | self.invoke(code, f'''commitSocks5Inbound install {free_port()} pass '["127.0.0.1/32"]' ipv4_only '* | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | checks/test_socks5_outbound.py | 185 | def test_dynamic_tags_use_contents_and_separate_cores(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 196 | def test_compilers_expand_or_and_keep_tags_and_credentials(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 211 | def test_shadowing_and_dangling_references_rejected(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 222 | def test_english_engine_has_same_logic(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 229 | def test_rule_set_inputs_and_legacy_singbox_syntax(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 247 | def test_real_core_stage_and_default_order(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 263 | def test_global_default_is_explicit_and_can_be_cleared(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 279 | def test_core_validation_failure_does_not_publish(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 292 | def test_uninstall_preserves_foreign_config(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 305 | def test_pure_core_transactions_and_referenced_node_toggle(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 318 | def test_xray_custom_blackhole_tag_precedes_selected_all(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 395 | def test_transaction_rollback_after_second_core_reload_failure(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 406 | def test_guard_preserved_with_injected_intersection(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 423 | def test_inbound_edit_normalizes_with_candidate_guard(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 441 | def test_migration_preserves_raw_rules_and_tags(self): | CODE |
| LOW | checks/test_socks5_outbound.py | 455 | def test_real_traffic_all_match_target_only_and_default(self): | CODE |
| LOW | checks/socks5_standalone_test.py | 49 | def test_sources_reject_bad_addresses(self): | CODE |
| LOW | checks/socks5_standalone_test.py | 61 | def test_existing_binary_never_queries_or_downloads(self): | CODE |
| LOW | checks/socks5_standalone_test.py | 76 | def test_empty_and_mixed_detection_and_readers(self): | CODE |
| LOW | checks/socks5_standalone_test.py | 104 | def test_fresh_menu_reaches_inbound_without_touching_outbound(self): | CODE |
| LOW | checks/socks5_standalone_test.py | 110 | def test_service_registration_defers_enabling_on_both_managers(self): | CODE |
| LOW | checks/socks5_standalone_test.py | 392 | def test_tcp_auth_source_domain_guard_and_other_inbound(self): | CODE |
| LOW⚡ | checks/socks5_standalone_test.py | 294 | def test_transactions_restore_exact_config_and_service_state(self): | STRING |
| LOW⚡ | checks/socks5_standalone_test.py | 321 | def test_first_install_failure_leaves_no_service_or_configuration(self): | STRING |
| LOW⚡ | checks/socks5_standalone_test.py | 333 | def test_invalid_candidate_does_not_stop_running_service(self): | STRING |
| LOW | checks/socks5_standalone_test.py | 136 | def test_service_start_only_calls_the_selected_service_manager(self): | STRING |
| LOW | checks/socks5_standalone_test.py | 151 | def test_uninstall_all_does_not_restart_an_empty_core(self): | STRING |
| LOW | checks/socks5_standalone_test.py | 174 | def test_firewall_ownership_and_failure(self): | STRING |
| LOW | checks/socks5_standalone_test.py | 192 | def test_cancel_and_invalid_input_do_not_publish_or_open_ports(self): | STRING |
| LOW | checks/socks5_standalone_test.py | 270 | def test_standalone_regular_merge_reuses_dns_and_http_client(self): | STRING |
| LOW | checks/socks5_standalone_test.py | 354 | def test_remote_rule_set_configuration_with_real_core(self): | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | install.sh | 141 | COMMENT | |
| LOW | install.sh | 1501 | fi | COMMENT |
| LOW | install.sh | 3961 | COMMENT | |
| LOW | install.sh | 4481 | # echoContent red " ---> Trojan暂不支持 xtls-rprx-vision" | COMMENT |
| LOW | install.sh | 4501 | # echoContent yellow "如果前置是Trojan,查看账号时则会出现两个Trojan协议的节点,有一个不可用xtls" | COMMENT |
| LOW | install.sh | 4521 | # elif [[ "${xtlsType}" == "VLESS" ]]; then | COMMENT |
| LOW | install.sh | 4841 | # "protocol": "vless", | COMMENT |
| LOW | install.sh | 5001 | # "tag": "VLESSRealityGRPC", | COMMENT |
| LOW | shell/install_en.sh | 141 | totalProgress=1 | COMMENT |
| LOW | shell/install_en.sh | 1501 | exit 0 | COMMENT |
| LOW | shell/install_en.sh | 3941 | COMMENT | |
| LOW | shell/install_en.sh | 4461 | # menu | COMMENT |
| LOW | shell/install_en.sh | 4481 | # VLESSConfig=$(cat ${configPath}${frontingType}.json) | COMMENT |
| LOW | shell/install_en.sh | 4501 | # rm ${configPath}02_trojan_TCP_inbounds.json | COMMENT |
| LOW | shell/install_en.sh | 4821 | # "listen": "127.0.0.1", | COMMENT |
| LOW | shell/install_en.sh | 4981 | # "listen": "127.0.0.1", | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | checks/test_socks5_outbound.py | 45 | CODE | |
| LOW | checks/test_socks5_outbound.py | 329 | CODE | |
| LOW | checks/test_socks5_outbound.py | 455 | CODE | |
| LOW | checks/socks5_standalone_test.py | 110 | CODE | |
| LOW | checks/socks5_standalone_test.py | 294 | CODE | |
| LOW | checks/socks5_standalone_test.py | 372 | CODE | |
| LOW | checks/socks5_standalone_test.py | 392 | CODE | |
| LOW | checks/socks5_standalone_test.py | 431 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | shell/install_en.sh | 125 | #Initialize global variables | COMMENT |
| MEDIUM⚡ | shell/docker_reality_en.sh | 2093 | # Create the data directory; exit cleanly if the path cannot be created | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | shell/docker_reality.sh | 1228 | except Exception: | CODE |
| LOW | shell/docker_reality.sh | 1408 | except Exception: | CODE |
| LOW | shell/docker_reality_en.sh | 1230 | except Exception: | CODE |
| LOW | shell/docker_reality_en.sh | 1399 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | shell/install_en.sh | 6470 | # Check if 302 is successful | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | shell/install_en.sh | 11309 | echoContent red "# You need to manually enter the md5 encrypted salt value. If you don't know, just use random" | CODE |