Repository navigation
chore(deps): pin SkillSpector to v2.13.3 - #292
Conversation
The install docs, the CI recipe and the missing-scanner hint pinned
SkillSpector v2.12.0. That release can make the Tier 1 security check
INCOMPLETE, or fail it, for skills with no real issue:
- valid Python and Perl helpers (for example a `len(x) < 12` comparison
followed by more code, or a Perl `eval { require $file; 1 }` block) are
recorded as `static_parse_limit` or `obfuscated_instruction_text`
ledger exceptions, with a High AE1 at each line that names the helper
(NVIDIA/SkillSpector#777);
- the SC8 bytecode walk charges time spent waiting behind other analyzers
to its budget and can stop with a static `runtime_limit`
(NVIDIA/SkillSpector#828);
- visible text between two HTML comments raises a High P2
hidden-instruction finding (NVIDIA/SkillSpector#452).
SkillSpector v2.13.1 contains all three fixes. Move every install spec to
v2.13.1, keep the rule that docs and code name exactly one release, and
keep the Claude 5.5 caveat: v2.13.1 still lacks the newer structured-output
support, so SKILLSPECTOR_MODEL must still name a supported model when
SKILL_EVAL_LLM_MODEL is a Claude 5.5 model. The SkillSpector model
defaults are unchanged.
Add a troubleshooting entry for false incomplete helper scans on older
releases, and a captured v2.13.1 --no-llm report (from
tests/fixtures/skills/simple) to the captured-report acceptance test so the
strict completeness validator is exercised against the pinned release.
Signed-off-by: Narendran Raghavan <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The install docs and the missing-scanner hint name SkillSpector v2.13.1, but the Tier 1 CI image still installed the v2.12.0 source archive (c7958a3), so CI scans kept the false incomplete and false High findings that v2.13.1 fixes. Point ci/requirements/skillspector.in and the hash-locked skillspector.txt at the archive of the v2.13.1 tag commit (f3b25697d76256998ca9d42c198d256258d4c035) and update the THIRD_PARTY_NOTICES row. v2.13.1 declares the same dependencies as v2.12.0, so only the archive URL and its hash change; the documented uv pip compile command gives the same lock. Extend test_skillspector_install_instructions_pin_one_release so the CI lock's archive commit and the notices row must match the documented release, and mention the image in the CHANGELOG entry. Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Narendran Raghavan <[email protected]>
rng1995
left a comment
There was a problem hiding this comment.
Review summary: no findings.
Verified independently: the v2.13.1 tag resolves to f3b25697d76256998ca9d42c198d256258d4c035, the archive sha256 in ci/requirements/skillspector.txt matches a fresh download of that archive, and the pyproject diff between c7958a3 and f3b2569 changes only the version and a build exclude list, so no other lock line needs to move. No stale v2.12.0 install references remain outside historical CHANGELOG entries and unrelated test metadata. The new fixture has no absolute user paths or credentials, and the CHANGELOG entry sits under Unreleased > Changed. The pin, install-hint, boundary and captured-report tests pass locally (149 selected tests) and ruff check is clean. I did not rebuild the Tier 1 image.
Reviewed with Claude Code.
c40f8b1 to
f9bd65b
Compare
Move the install instructions, Tier 1 CI lock (commit 38a1dfe, archive sha256 recomputed), third-party notice, and captured --no-llm fixture from v2.13.1 to v2.13.3. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Signed-off-by: Narendran Raghavan <[email protected]>
Summary
SkillEvaluator's documented SkillSpector v2.12.0 pin can produce false incomplete scans for valid helper scripts and false findings around HTML comments. This PR updates the supported install pin to SkillSpector v2.13.3, including the later scan-integrity and security fixes in that release.
38a1dfe93325d2f8bfcd4f8d0241eed706334915and archive SHA-256c503337dd2e0e3a600149a6ab33a7cfa3d88e9869c2cfaff3eb1dbb77e68e29e. Update the third-party notice to the same commit.--no-llmreport for the simple skill and update the pin and report compatibility assertions.The strict completeness gate, scanner model defaults, and existing version gates retain their behavior. SkillSpector remains a separate tool install.
Validation
Validated at commit
3dbdcd1969e0eca9c1003ee0c09582624e2a4fc4:tests/test_oss_packaging.py,tests/test_oss_boundary.py,tests/utils/test_tool_runner.py, andtests/validators/test_security.py, plus the Harbor metadata contract.--no-llm; both components were inspected, coverage was 100%, and there were no findings or incomplete scans.SecurityValidator(use_llm=False)passed using the isolated scanner executable. The release wheel's SHA-256 was verified.linux/arm64with the hash-locked source archive. Runtime checks confirmed SkillSpector v2.13.3 and a working YARA import. All fiveci/smoke_image.pycases verified: all-pass, invalid-name, changed-one, no-change, and missing-llm-key. Scanned reports recorded no incomplete scans.skillspector.txtwith the documented Linux/Python 3.12 compile command produced an identical lock.git diff --check, and the OSS boundary scan with its configured allowlist passed.fern checkreported zero errors; the authenticated redirects check was skipped.A broader initial run used the pre-existing shell environment, which has Harbor 0.13.2 rather than the pinned 0.24.0 and an installed SkillSpector 2.11.2. That run was stopped; it is not claimed as a clean full-suite result. Its two failures were
test_harbor_environment_extra_mapping_matches_installed_metadataandtest_harbor_environment_kwarg_contract_matches_installed_source. Both passed when rerun in the frozen environment (2 passed).Provider-backed
--llmscanning and Claude 5.5 structured-output compatibility were not exercised.