Shared report model
include/core/report.hpp
This header is the data contract for every native command. Driver, GPU, CUDA, platform, configuration, and repo probes all produce the same `Probe` shape, and the CLI prints or serializes the aggregate `Report` structure.
Reference
enum class Status { kOk, kIssue, kMissing, kUnsupported };
struct Probe { std::string name; Status status; std::string message; };
struct Report { std::string os; std::string arch; Status overall; std::vector<Probe> probes; std::vector<std::string> next_steps; };Why it matters
Because every command flows through the same report model, the text renderer and JSON renderer in `src/main.cpp` can stay generic. This header is also the reason `check` and `doctor` can share the same status summarization shape.
Related files
Native entrypoint
src/main.cpp
Owns native argument validation, text and JSON rendering, exit codes, and the interactive handoff from `doctor` to `doctor auto`.
Command implementation
src/commands/check.cpp
Runs the platform, driver, CUDA, and GPU probes and summarizes them into a report.
Command implementation
src/commands/doctor.cpp
Extends `check` with repo scanning, optional auto-configuration, auto-fix behavior, and next-step generation.