Productslamboot-tools › Appendix

Reference Appendix

Exit codes, JSON schema, versioning model, and finding IDs for lamboot-tools 0.9.1.

APPENDIX A

Exit code reference

Applies to all 10 shell CLIs and lamboot-toolkit. The two bundled Rust binaries (lamboot-capcheck, lamboot-reader) use their own 0 through 3 contract.
Code Constant Meaning summary.status Automation guidance
0EXIT_OKAll requested operations completed successfully.passContinue pipeline.
1EXIT_ERRORFatal error. Some state may have changed.errorLog and alert. Inspect output.
2EXIT_PARTIALMixed success. Some operations succeeded; some failed.fail or warnLog. Re-run idempotent commands.
3EXIT_NOOPSystem already in requested state. Nothing to do.noopIdempotent-OK. Do not log as failure.
4EXIT_UNSAFERefused by a safety check. No state changed.unsafeInspect and fix, or --force if understood.
5EXIT_ABORTUser declined interactive confirmation. No change.abortExpected when user aborts. Not a failure.
6EXIT_NOT_APPLICABLEOperation does not apply to this system.noopSkip silently. Not a failure.
7EXIT_PREREQUISITERequired tool or capability missing.errorInstall missing dependency and retry.

Bundled Rust binary exit codes

CodeMeaning
0Success
1Error
2Partial success
3Prerequisite missing
APPENDIX B

JSON envelope quick reference

The complete contract is on the CLI Contract page. This table is a portable cheat sheet.
FieldTypeNotes
schema_versionstring"v1". Pin on this to guard against breaking changes.
toolstringExecutable name.
version / toolkit_versionstringPer-tool semver / release bundle version.
timestampstringISO-8601 UTC, Z suffix, no fractional seconds.
run_idstringUnique per invocation. Correlates log lines.
exit_codeintegerThe process exit code, set at emit time.
summary.statusstringpass, warn, fail, noop, error, unsafe, abort.
findings[].idstringDotted-path stable ID, e.g. esp.free_space.
findings[].severitystringcritical, error, warning, info. "How bad if unaddressed?"
findings[].statusstringpass, warn, fail, skip. "What did this check report?"
findings[].remediation.commandstringExecutable command that fixes this finding.
actions_takenarrayEmpty for read-only tools. One object per mutation.
backup_dirstring or nullPath to backup created before mutation; null for read-only.
APPENDIX C

Versioning model

lamboot-tools uses semantic versioning with a dual-track model:

Toolkit version

The release bundle version (currently 0.9.1). Appears in lamboot-toolkit status and the toolkit_version JSON field. Major version bumps break the --json schema (and bump schema_version in lockstep).

Per-tool version

Each tool carries its own semver in --version output and the version JSON field. In 0.9.1, all tools share the same version. In future toolkit releases, individual tools may advance independently.

Stability promises

  • Additive within major version: New fields in JSON output, new subcommands, new finding IDs. These are never breaking.
  • Breaking in major version: Renamed fields, removed fields, changed exit code semantics, renamed finding IDs. These all bump the major version.
  • Bug fixes in patch: Fixes to incorrect output, wrong exit codes, crashes. Never remove features.
APPENDIX D

Finding ID catalog

Dotted-path finding IDs are stable within a toolkit major version. These are the most actionable finding categories in 0.9.1.
CategoryExample IDsTool
esp.*esp.free_space, esp.mount, esp.size, esp.filesystemlamboot-diagnose, lamboot-esp
bootloader.*bootloader.grub.pe_format, bootloader.grub.cfg, bootloader.systemd.presentlamboot-diagnose, lamboot-repair
nvram.*nvram.boot_order, nvram.stale_entries, nvram.missing_entrylamboot-diagnose, lamboot-nvram
secureboot.*secureboot.state, secureboot.pk, secureboot.signature.bootloaderlamboot-diagnose, lamboot-signing-keys
vm.*vm.lamboot_state, vm.ovmf_version, vm.boot_modelamboot-diagnose (VM subcommand)
prereq.*prereq.efibootmgr, prereq.parted, prereq.sbsignAll tools

The complete finding catalog with severity classifications and remediation commands for all IDs is available in the --json-schema output of each tool, which includes per-tool finding ID definitions as part of the JSON Schema draft 2020-12 document.

APPENDIX E

Quick reference: canonical facts

AttributeValue
Current version0.9.1
Supported architecturesx86_64, aarch64
Shell requirementbash 4.0+
Core tool count11
Bundled Rust binarieslamboot-capcheck 0.1.0 (12 domains), lamboot-reader 0.1.0
Shell exit codes0 through 7 (see Appendix A)
Rust binary exit codes0 through 3
JSON schema versionv1
GPG signing subkey405CB1E36258DA1DA406A852A236DDB84E0EC96E
LicenseMIT OR Apache-2.0
Distribution channelGitHub Releases only
Proxmox companionlamboot-toolkit-pve (5 tools: setup, fleet, migrate, monitor, ovmf-vars)