Public example and consumer checks

The independent Home Manager starter uses stable 26.05 Nixpkgs and Home Manager pins. The Apple silicon example uses its own stable 26.05 Nixpkgs and nix-darwin pins. The graphical demo and reusable-module consumers use the workstation's current unstable inputs. These checks do not promise compatibility with arbitrary release combinations.

Exercise the candidate's public interfaces

From a checkout with initialized submodules and new source files added to Git:

bash tests/public-guide/check-consumers.sh

On the desktop host, prefix that command with workstation-task. The script needs Nix, Git, jq, and ordinary shell utilities. It captures the candidate source in the Nix store, initializes templates.starter and templates.darwin through nix flake init, and compares the extracted contents with the exported source. The starter then builds with its own unchanged lockfile. Darwin builds only on Apple silicon; other platforms evaluate its system derivation and assertions.

Two separate temporary consumer flakes exercise the Git, file-search, and prompt recipes. The first uses an actual flake = false source input, as documented in the Git recipe. The second imports these typed exports:

inputs.nix-conf.modules.homeManager.dev-git
inputs.nix-conf.modules.homeManager.shells-fzf
inputs.nix-conf.modules.homeManager.shells-integration
inputs.nix-conf.modules.homeManager.shells-starship

For typed imports, use git+https://github.com/nix-forge/nix-conf?submodules=1 as the input URL. They load the root flake and its inputs. Source-file imports need neither submodules nor evaluation of the complete root flake. The source consumer's Nixpkgs and Home Manager inputs are overridden to the captured candidate's exact versions, so an unrelated upstream update cannot decide the result.

Both consumers parse the actual generated Git and prompt configuration and exercise Git status and file search. They force Home Manager assertions. The typed contract covers these four names, not every discovered module or a promise that any arbitrary module works without its declared dependencies.

Pass an explicit candidate flake and system to reproduce another source:

bash tests/public-guide/check-consumers.sh \
  'git+https://github.com/nix-forge/nix-conf?submodules=1&rev=<REVISION>' \
  x86_64-linux

The candidate supplies its own fixtures and exported templates. Untracked files are excluded by Nix's Git source filtering. Keep the candidate revision or dirty source identity with the result. The script also runs the starter's VM test on native x86 Linux. Run the graphical demo test separately. Consumer package checks do not establish graphical VM boot, physical workstation behavior, Darwin activation, or an independent reader's ability to follow the guide.