Skip to content

ux: add consolidated Tier 1 scanner preflight and guided bootstrap #42

Description

@chrisknvidia

Context

OpenClaw onboarding feedback found the Tier 1 scanner installation experience difficult to understand. Bandit and pip-audit are available through the security extra, while Semgrep, Gitleaks, and SkillSpector are installed separately.

SkillEvaluator already detects each missing scanner during validation, emits an installation hint, marks the scan INCOMPLETE, and keeps the default external profile non-green. The remaining gap is that this information appears piecemeal during validation rather than as one upfront readiness check.

SkillSpector and Semgrep are currently kept in isolated tool environments so their dependency stacks do not constrain the SkillEvaluator distribution. Directly adding SkillSpector as a package dependency therefore needs an explicit compatibility and distribution decision rather than being assumed.

Goal

Provide a consolidated Tier 1 scanner preflight and guided, consent-based bootstrap experience without silently installing system tools.

Requirements

  • Report availability, resolved executable path, version, and configuration errors for Bandit, Semgrep, Gitleaks, and SkillSpector in one place.
  • Distinguish bundled Python scanners from independently installed executables.
  • Show exact platform-appropriate installation commands for missing tools.
  • Support a non-interactive CI mode that fails clearly when required scanners are unavailable.
  • Never install or modify system tools without explicit user consent.
  • Preserve executable override support and isolated-tool-environment compatibility.
  • Evaluate and document whether SkillSpector can be bundled safely or should remain an independently bootstrapped tool.

Acceptance criteria

  • One preflight command reports the complete Tier 1 scanner readiness state.
  • Missing tools receive actionable macOS, Linux, and supported Python-tool installation guidance.
  • CI can require a complete scanner set without interactive prompts.
  • Any guided installation requires explicit confirmation and reports exactly what will change.
  • Existing INCOMPLETE and non-green semantics remain intact.
  • A documented decision records whether SkillSpector is bundled or intentionally remains isolated.
  • Tests cover missing, malformed override, incompatible version, and fully ready states.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    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