Quick fix
# One-liner: look at the Issues detail before concluding; don't trust the score alone
skillspector scan <skill dir> --json | python3 -c "import json,sys; d=json.load(sys.stdin); [print(i['severity'], i['confidence'], i['rule'], i['location']) for i in d.get('issues',[])]"
Outputs the Severity/Confidence detail; judge from it whether it's really uninstallable.
What you will run into
Scanning a skill package, the report shows DO NOT INSTALL or a very high risk score. You think the tool is broken, or it wrongly flagged a good package — actually the scoring logic is working as designed, not malfunctioning.
Why this happens
skillspector's grading logic (confirmed by source analysis in a CSDN article): risk score >50 → DO NOT INSTALL; low/medium scores → CAUTION/recommendation.
The score is just an aggregate signal; what really matters are the concrete entries in the report's Issues list (e.g.
SC2 external script fetching, TM chain abuse).
A security scanner's output has two layers: the bottom layer is rule detections (each Issue: which rule hit, severity, confidence, location), and the top layer aggregates detections into one score.
The score is a compressed signal — it squeezes dozens of detections into a single number for fast human decisions, but compression loses information: two reports with the same 40 score can be "2 HIGH detections" vs "20 LOW detections", with completely different risk profiles.
So the correct judgement order is "detail first, score second": score >50 is a quick "don't install" hint, but what really decides "can I install" is the concrete Issues — HIGH severity + high confidence external-script fetching (curl|bash) is a hard risk;
mid/low noise can be manually verified by line number and cleared.
Also, the scanner is content-sensitive: the same skill may produce different detections across versions, so don't treat "last time's score" as "this time's conclusion" — always judge by the current report's Issues.
| Score band | Output | Meaning |
|---|---|---|
| >50 | DO NOT INSTALL | Not recommended to install (check specific Issues) |
| Low/medium | CAUTION / recommendation | Has risk points; human judgment |
| Different versions of same skill | Scores may differ | The scanner is content-sensitive |
Step by step
1. Read the report's Issues list — Diagnose
Check each Issue's Severity/Confidence — does it really hit a dangerous pattern (external script fetch, token leakage etc.)?
2. Use the baseline to suppress known items — Required
Scores are affected by the scanner; different versions of the same skill may score differently; look again after suppressing known items with the baseline.
3. Manual check when unsure — Required
grep -n "<rule name>" SKILL.md
The report gives the hit line numbers; manually verify the corresponding lines in SKILL.md.
How to confirm it works
Scan report structurally complete with readable detail (measured shape here):
Score 40/100 MEDIUM + 2 HIGH detections (SC2 90% / TM2 70%) — constructed sample (curl|bash + token leak)
Here 40 < 50 so no DO NOT INSTALL, but the HIGH detections still appear in Issues — trust the entries.
Other environments
| Environment | Notes |
|---|---|
| Score >50 | DO NOT INSTALL; read the Issues detail first |
| Low/medium | CAUTION/recommendation; human judgment |
| baseline | Score changes after suppressing known items are normal |
| Report line numbers | Manually verify the corresponding SKILL.md lines |
| Not measured | baseline command not measured here |
Symptom
Scan results show DO NOT INSTALL or high-risk scores and the user thinks the tool is broken.
Cause
This is scoring logic, not a fault: risk score >50 -> DO NOT INSTALL; mid/low scores -> CAUTION/suggestion (grading logic confirmed by CSDN source analysis). The issues the scanner finds (SC2 external script fetch, TM chain abuse, etc.) are the actual basis for judgment.
Solution
- Look at the Severity/Confidence of the Issues list in the report to judge whether it really cannot be installed.
- Scores are affected by the scorer; the same skill can score differently across versions; use baselines to suppress known items.
- When unsure, manually inspect the flagged lines in SKILL.md (the report gives line numbers).
Verification Evidence
- Web case: CSDN (risk score >50 DO NOT INSTALL, 2026-06; source analysis).
- Verified in this marketplace: constructed sample (SKILL.md with curl|bash + token leak) -> Score 40/100 MEDIUM + 2 HIGH findings (SC2 90% / TM2 70%), complete report structure.
Applicable tools (1)
This problem is linked from the tool pages below — reachable from either side.
skillspectorSource & evidence
← Security & Governance domain | Problem Catalog Experience | Facing another issue? Go to the Helpdesk