Skip to content

Reject ignored shipped-baseline opt-in in recursive multi-skill scans #822

Closed

Description

@chrisknvidia

When a directory contains child skills, scan --recursive --use-shipped-baseline enters multi-skill dispatch without applying or rejecting the shipped-baseline option. The same child scanned directly applies its shipped baseline. This also changes --strict outcomes unexpectedly.

Reproduced on main b07f181d9138878c3827de0947a9fd2c6a84a66c with synthetic local fixtures and --no-llm:

skillspector scan collection/one --no-llm --format json --use-shipped-baseline
skillspector scan collection --recursive --no-llm --format json --use-shipped-baseline

With a reviewed rule baseline in each child's .skillspector-baseline.yaml, the first command suppresses the matching finding; the second leaves it active and reports no suppressed findings. A malformed shipped baseline likewise fails the direct opted-in scan but is ignored by recursive multi-skill dispatch.

Proposed fix: reject --use-shipped-baseline with exit 2 when dispatching recursive multi-skill scans and tell the caller to scan each child separately. This follows the existing explicit --baseline behavior discussed in #201 and #310. Keep single-root skill scans with --recursive supported, and keep default recursive scans without the opt-in unchanged. Per-child baseline application is outside this fix.

Regression coverage should include one or more detected children, single-root skills, explicit-baseline precedence, machine-readable output, and preservation of an existing --output file on the argument error.

Activity

  1. self-assigned this
    on Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions