Skip to content

refactor(cli)!: coherent flag names and grouped help (v0.4.0) - #37

Merged
nmatt0 merged 1 commit into
feat/cve-mirror-promptfrom
feat/cli-flag-coherence
Oct 22, 2026
Merged

nmatt0 merged 1 commit into
feat/cve-mirror-promptfrom
feat/cli-flag-coherence

Conversation

@nmatt0

@nmatt0 nmatt0 commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Why

Two coherence problems on the command line:

  1. "all" meant two different things. -A/--all runs every pass, while
    --component-cves-all / --kernel-cves-all list every item within the CVE
    pass. Same word, unrelated scopes.
  2. Four inconsistent "show me more" idioms (-v, --license-paths,
    --component-cves-all, --kernel-cves-all), most of them human-view-only,
    with no stated rule for what JSON does.

What changed (breaking → 0.4.0)

Split the two meanings and name the detail family consistently on "full":

old new
--component-cves-all --component-cves-full
--kernel-cves-all --kernel-cves-full

"all" now means only all passes; "full" means all detail within a pass. No
aliases are kept for the old names, so this is a breaking change and the version
bumps to 0.4.0.

  • New --full: one switch for maximum human detail (--verbose +
    --license-paths + both --*-cves-full).
  • --help is regrouped into PASSES / OUTPUT / CVE MIRROR / OTHER, and states
    once that -j/--json is always complete, so the detail flags only expand the
    human view.
  • The trailing Pipeline: / Docs: footer lines are removed from --help.
  • -C/--outdir help now notes it writes sbom.cdx.json and sbom.spdx.json
    next to mithril-report.json.
  • The man page gains the previously-undocumented --verbose entry and the
    --full entry.

The renames flow through code comments, the in-output "run --X" hints, the man
page, README, docs/cve-join.md, and the test_cve / test_kernelfeed
integration tests.

Testing

  • Unit suite: 1438 checks, 0 failures.
  • All integration tests green (secrets, sbom, licenses, boot, keys, der_keys,
    kconfig, kconfig_recovery, cve, kernelfeed), including the renamed flags.

Builds on the CVE-mirror-prompt PR; merge that first (this PR's base retargets
to master automatically on merge).

"all" meant two different things on the command line: --all (every pass)
and the --*-cves-all detail flags (every item within the CVE pass). And the
"show me more" flags were four unrelated idioms (-v, --license-paths, and two
--*-cves-all), most of them human-view-only, with no stated rule.

Split the two meanings and name the detail family consistently:

  --component-cves-all  ->  --component-cves-full
  --kernel-cves-all     ->  --kernel-cves-full

"all" now means only "all passes"; "full" means "all detail within a pass."
Add --full as one switch for maximum human detail (verbose + license-paths +
both -cves-full). No aliases for the old names: this is a breaking change,
hence the major-ish bump to 0.4.0.

Regroup --help into PASSES / OUTPUT / CVE MIRROR / OTHER, and state once that
JSON (-j) is always complete so the detail flags only expand the human view.
Drop the trailing "Pipeline:"/"Docs:" footer lines. Document that -C writes
sbom.cdx.json and sbom.spdx.json alongside mithril-report.json. Add the
previously-undocumented --verbose entry to the man page.

Renames flow through the code comments, the in-output "run --X" hints
(json.cpp, human.cpp), the man page, README, docs/cve-join.md, and the
test_cve / test_kernelfeed integration tests. Full suite green.
@nmatt0
nmatt0 merged commit 490bd97 into feat/cve-mirror-prompt Oct 22, 2026
4 checks passed
@nmatt0 nmatt0 mentioned this pull request Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant