Evaluate a plugin or skill directory and report its quality score.
(
path: Path = typer.Argument(..., help="Plugin or skill directory to evaluate"), # noqa: B008
depth: Depth = typer.Option(Depth.STANDARD, help="Evaluation depth"), # noqa: B008
output: str = typer.Option("markdown", help="Output format: json|markdown|html"), # noqa: B008
verbose: bool = typer.Option(False, "--verbose", "-v", help="Verbose output"), # noqa: B008
concurrency: int = typer.Option(4, help="Max concurrent LLM calls"), # noqa: B008
threshold: float | None = typer.Option( # noqa: B008
None, help="Minimum score threshold; exit code 1 if below"
),
)
| 100 | |
| 101 | @app.command() |
| 102 | def score( |
| 103 | path: Path = typer.Argument(..., help="Plugin or skill directory to evaluate"), # noqa: B008 |
| 104 | depth: Depth = typer.Option(Depth.STANDARD, help="Evaluation depth"), # noqa: B008 |
| 105 | output: str = typer.Option("markdown", help="Output format: json|markdown|html"), # noqa: B008 |
| 106 | verbose: bool = typer.Option(False, "--verbose", "-v", help="Verbose output"), # noqa: B008 |
| 107 | concurrency: int = typer.Option(4, help="Max concurrent LLM calls"), # noqa: B008 |
| 108 | threshold: float | None = typer.Option( # noqa: B008 |
| 109 | None, help="Minimum score threshold; exit code 1 if below" |
| 110 | ), |
| 111 | ) -> None: |
| 112 | """Evaluate a plugin or skill directory and report its quality score.""" |
| 113 | exit_code = _run_score(path, depth, output, verbose, concurrency, threshold) |
| 114 | if exit_code != 0: |
| 115 | raise typer.Exit(code=exit_code) |
| 116 | |
| 117 | |
| 118 | @app.command() |
nothing calls this directly
no test coverage detected