Skip to content

feat: scaffold CMake project + DESIGN.md (source of truth for Codex)#1

Merged
lai3d merged 1 commit into
mainfrom
claude/scaffold-mvp
May 22, 2026
Merged

feat: scaffold CMake project + DESIGN.md (source of truth for Codex)#1
lai3d merged 1 commit into
mainfrom
claude/scaffold-mvp

Conversation

@lai3d

@lai3d lai3d commented May 22, 2026

Copy link
Copy Markdown
Contributor

First substantive PR. Lays down the C++23 / LLVM-only scaffold for the C++ sibling of `merlion-node-exporter-rs`, plus the source-of-truth design document that Codex implements against.

What's in this PR

Scaffold

  • `CMakeLists.txt` — C++23, fatal-error on Apple Clang (matches the toolchain pattern from `merlion-tsdb-cpp`)
  • `cmake/ToolchainLLVM.cmake` — pins Homebrew LLVM
  • `src/main.cpp` + `src/placeholder.cpp` — entry point + structural stub
  • `include/merlion_node_exporter/version.hpp.in` — generated header
  • `tests/placeholder_test.cpp` — first GoogleTest case (will be replaced when real collectors land)
  • `.github/workflows/ci.yml` — Linux + macOS LLVM build/test matrix

`docs/DESIGN.md`

Source of truth for the C++ implementation. Covers the Metric model (hand-rolled, no client-library dep), text-0.0.4 encoder, registry, HTTP server, collector contract, CLI, and the 15-collector MVP plan. Disagreement between this doc and the code is a bug — update the doc before introducing a non-trivial design choice.

The doc mirrors `merlion-node-exporter-rs` one-to-one so a scrape diff between the two binaries reduces to numeric / label-order noise.

What's next

Per DESIGN.md §7, the MVP set is: cpu, diskstats, netdev, filesystem, stat, vmstat, netstat, sockstat, pressure, hwmon, thermal_zone, time, textfile. One PR per collector, mirroring the matching `-rs` PR.

Lays down the C++23 / LLVM-only scaffold that Codex will implement
against. The architecture mirrors merlion-node-exporter-rs one-to-one
so a scrape diff between the two binaries reduces to numeric / label-
order noise.

- CMakeLists.txt — C++23, LLVM clang fatal-errors on Apple Clang,
  matches the toolchain pattern from merlion-tsdb-cpp
- cmake/ToolchainLLVM.cmake — pins Homebrew LLVM
- src/main.cpp + src/placeholder.cpp — entry point + structural stub
- include/merlion_node_exporter/version.hpp.in — generated header
- tests/placeholder_test.cpp — first GoogleTest case (will be
  replaced when real collectors land)
- docs/DESIGN.md — source-of-truth design doc covering Metric model,
  encoder, registry, HTTP server, collector contract, CLI, and the
  15-collector MVP plan. Disagreement between this doc and code is
  a bug; update the doc before introducing a non-trivial design
  choice.
- .github/workflows/ci.yml — Linux + macOS LLVM build/test matrix

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@lai3d lai3d merged commit 9f04898 into main May 22, 2026
2 of 4 checks passed
@lai3d lai3d deleted the claude/scaffold-mvp branch May 22, 2026 13:04
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