Per-repo conventions for coding agents. The canonical cross-repo rules (Conventional Commits, minimal-first/YAGNI, no secrets, run checks before claiming success) live in the user's global
AGENTS.mdand are not repeated here. This file records only what is specific to this repo.
- Use the
justfile:just setup(configure),just check(fmt-check + clang-tidy),just test(build + ctest). Primary preset isci-linux-release. - The required CI status check is the
okjob; never merge red.
- clang-format / clang-tidy are pinned to 18.1.8 via the shared
setup-clang-toolsaction — do NOT use pip/apt/pre-commit/container versions. Runjust fmt(clang-format -i) before every commit. - vcpkg comes from the shared
setup-vcpkgaction. Shared.githubactions are SHA-pinned with a# <tag>comment for Renovate — keep it when bumping.
- Mock vs hardware is selected by the
mock://bus path in config, NOT a build flag — e.g.config/conformance.yamlusesbus_path: mock://.... There is one binary; the bus path decides. devices::adapter_for(EzoDeviceType)is the single device-type dispatch point: a compile-time-exhaustiveswitch. Adding a device type without a case fails the build (warnings-as-errors is ON in the CI preset).tests/.clang-tidydeliberately relaxes test-only check noise (performance-*, narrowing, optional-access idioms) — keep test-specific suppressions there.- Conformance runs via
--provider-profile config/conformance.toml(the provider-owned manifest where waivers + conformance level live). Note:conformance.toml= profile/waivers,conformance.yaml= runtime config. - Targets the Atlas Scientific EZO I2C sensor family.