Skip to content

Fix sv --help rendering wrong CLI help and hiding ScoreVision subcommands #45

Description

@it-education-md

Summary

sv --help can show help output from a different CLI shape than ScoreVision expects, and the ScoreVision CLI help path is brittle because top-level imports can fail before help renders. This makes the CLI look broken and obscures the available subcommands and options.

Problem

The expected ScoreVision CLI should expose:

  • top-level option: -v, --verbosity
  • subcommands:
    • runner
    • push
    • signer
    • validate
    • central-validator
    • audit-validator
    • manifest
    • elements

Instead, users may see unrelated help output such as:

  • --logging.debug
  • --logging.trace
  • --config
  • --strict
  • --no_version_checking

This is misleading and makes local source builds hard to use.

Steps To Reproduce

  1. Create or activate a local environment in this repo.
  2. Run:
uv run sv --help
Image

Expected Behavior

  • sv --help should render ScoreVision-specific help.
  • Help should clearly list available subcommands and their purpose.
  • sv <group> --help should work without requiring heavy optional runtime dependencies like OpenCV.
  • Help output should be useful for local development and first-run setup.

Root Cause

Two issues are involved:

  • sv is a collision-prone executable name, so users may hit a different installed binary.
  • The ScoreVision CLI currently imports too much at module import time, which makes help rendering fragile.

Proposed Fix

  • Use a structured custom Click help renderer for the root CLI and grouped subcommands.
  • Add clear command/group docstrings so help output is informative.
  • Defer heavy imports in CLI modules until command execution.
  • Ensure sv --help, sv manifest --help, and sv elements --help render successfully in a fresh source environment.
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions