Public scan — anyone with this URL can view this analysis. Sign up to track your own repos privately, run scheduled re-scans, and get AI fix prompts via your dashboard.
55 of your 55 findings came from Repobility's proprietary detections. ✓ Repobility tags below mark them.

Scan timing: clone 2.07s · analysis 1.6s · 1.3 MB · GitHub API rate-limit (preflight)

AstrBotDevs/AstrBot_Plugins_Collection

https://github.com/AstrBotDevs/AstrBot_Plugins_Collection · scanned 2026-06-05 17:58 UTC (1 week, 2 days ago) · 10 languages

99 raw signals (55 security + 44 graph) 44th percentile · Python · small (2-20K LoC) System graph score 91 (lower by 18)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 1 week, 2 days ago · v2 · 30 actionable findings from 2 signal sources. 22 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.

JSON
Score breakdown â 2026-05-18-v5
Component Sub-score Weight Contribution
structure_score 55.0 0.15 8.25
security_score 100.0 0.25 25.00
testing_score 87.0 0.20 17.40
documentation_score 40.0 0.15 6.00
practices_score 65.0 0.15 9.75
code_quality 66.0 0.10 6.60
Overall 1.00 73.0
Severity distribution — click a segment to filter
Active filters: severity: low × excluding tests × Reset all
Scan summary Quality grade B (73/100). Dimensions: security 100, maintainability 55. 55 findings (6 security). 3,089 lines analyzed.

Showing 12 of 30 actionable findings. 52 raw detector signals were grouped into reader-sized issues. Click TP / FP to vote on a finding's accuracy — votes adjust the confidence weighting and improve detection across the platform.

low Security checks cicd CI/CD security conf 0.90 ✓ Repobility 12 occurrences GitHub Action is tag-pinned rather than SHA-pinned
Action `actions/checkout` pinned to mutable ref `@v4.2.2` uses a mutable tag or branch. Pin external actions to a reviewed full commit SHA when the workflow is security-sensitive.
4 files, 12 locations
.github/workflows/validate-plugin-smoke.yml:36, 74, 114 (6 hits)
.github/workflows/clean-unreachable-plugins.yml:23 (2 hits)
.github/workflows/transform-plugin-data.yml:19 (2 hits)
.github/workflows/validate_json.yml:18 (2 hits)
CI/CD securitySupply chainGitHub Actions
low Security checks quality Error handling conf 0.55 ✓ Repobility 11 occurrences Broad exception handler needs review
This handler catches Exception/BaseException. It is actionable when it swallows errors without logging, re-raising, or returning a structured error. Handlers that intentionally convert exceptions into typed error results should not be treated as high risk.
2 files, 11 locations
scripts/transform_plugin_data/run.py:40, 77, 79, 99, 304, 711 (6 hits)
scripts/validate_plugins/run.py:592, 702, 743, 760, 820 (5 hits)
Error handlingquality
low System graph quality Integrity conf 1.00 2 occurrences Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: scripts/validate_plugins/run.py:validate_plugin_dir_name, scripts/validate_plugins/run.py:validate_plugin This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why t…
2 occurrences
repo-level (2 hits)
duplicatesduplication
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `yaml_backup` in tests/test_validate_plugins.py:310
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
old markerDead code
low System graph software Dead code conf 1.00 Possibly dead Python function: activate_llm_tool
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
scripts/validate_plugins/run.py:711
low System graph software Dead code conf 1.00 Possibly dead Python function: deactivate_llm_tool
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
scripts/validate_plugins/run.py:715
low System graph software Dead code conf 1.00 Possibly dead Python function: extract_version
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
scripts/transform_plugin_data/run.py:312
low System graph software Dead code conf 1.00 Possibly dead Python function: positive_int
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
scripts/validate_plugins/run.py:41
low System graph software Dead code conf 1.00 Possibly dead Python function: process_repo
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
scripts/transform_plugin_data/run.py:325
low System graph software Dead code conf 1.00 Possibly dead Python function: register_llm_tool
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
scripts/validate_plugins/run.py:719
low System graph software Dead code conf 1.00 Possibly dead Python function: task
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
scripts/validate_plugins/run.py:566
low System graph software Dead code conf 1.00 Possibly dead Python function: unregister_llm_tool
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
scripts/validate_plugins/run.py:722
For AI agents: Voting guide (TP/FP) MCP manifest Stdio wrapper SARIF Integrate Findings queue Vote TP/FP on findings to calibrate the engine.
For AI agents + API integrations
Email me when this repo regresses
Free. We re-scan periodically; new criticals → your inbox. No signup required for the scan itself.
API access

This page is publicly accessible at: https://repobility.com/scan/8c517160-6c1b-4594-9716-7418b4359bd6/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/8c517160-6c1b-4594-9716-7418b4359bd6/

Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.