NVIDIA / NVIDIA/SkillSpector

Scoped npm package specs are misclassified as unresolved local references

Open
#528 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
17.9k
Forks
1.5k
Avg merge
5d 10h
Merged PRs (30d)
66

Description

Summary

SkillSpector 2.11.2 treats the xerg/cli substring inside a scoped npm package spec as an unresolved local path. The scan has zero findings and LOW risk, but analysis_completeness.is_complete becomes false and the final recommendation is downgraded to CAUTION.

Minimal reproducer

SKILL.md:

---
name: repro
description: Minimal reference-resolution reproducer.
---

Run `npx --yes @xerg/cli@0.34.0 doctor --json` after approval.

Command:

skillspector scan ./repro --format json --output report.json --no-llm

Observed with SkillSpector v2.11.2 from commit 69dcdfb74487d361ba4c811d088cfdea2ff3a9dc:

{
  "execution_successful": true,
  "risk_assessment": {
    "score": 0,
    "severity": "LOW",
    "recommendation": "CAUTION",
    "max_issue_severity": "NONE"
  },
  "issues": [],
  "analysis_completeness": {
    "is_complete": false,
    "status": "partial",
    "execution_successful": true,
    "ledger_exceptions": [
      {
        "phase": "reference_resolution",
        "reason_code": "reference_unresolved",
        "path": "SKILL.md",
        "start_line": 6,
        "end_line": 6,
        "fatal": false
      }
    ],
    "references": [
      {
        "source_path": "SKILL.md",
        "line": 6,
        "column": 17,
        "evidence": "Run `npx --yes @xerg/cli@0.34.0 doctor --json` after approval.",
        "target_path": null,
        "status": "missing",
        "disposition": "partial"
      }
    ]
  }
}

The same resolver also appears to classify ordinary slash-separated prose such as reading/analyzing as path candidates.

Expected behavior

Scoped npm specs and ordinary slash-separated prose should not be treated as local file references. A zero-finding scan should remain complete unless a genuine bundle reference cannot be inspected.

Why baselines do not help

This is completeness accounting, not a finding. A baseline can suppress issues but cannot restore analysis_completeness.is_complete.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Run the supplied skillspector scan ./repro --format json --output report.json --no-llm command against the SKILL.md reproducer, then trace the reference-resolution entry point. Done means scoped npm specs and prose such as reading/analyzing are not treated as local references, while genuine bundle references still affect completeness accounting.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, python
Domain
security, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.