

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1# ml-cpp AI Context23This file provides domain knowledge for AI coding assistants working on the ml-cpp repository. It consolidates the detailed rules in `.cursor/rules/` into a single reference.45For full details, see the individual files in `.cursor/rules/`:6- `ml-cpp-build-system.mdc` — CMake, Gradle, Docker, build acceleration7- `ml-cpp-buildkite-ci.mdc` — CI pipelines, API access, known failures8- `ml-cpp-coding-conventions.mdc` — Naming, cross-platform, testing patterns9- `ml-cpp-ci-analytics.mdc` — Elasticsearch, anomaly detection, AI analysis1011---1213## Build System1415- **CMake** is the primary build system. Toolchain files in `cmake/` per platform.16- **Gradle** (`build.gradle`) orchestrates macOS and Windows CI builds, invoking CMake.17- **Docker** is used for Linux builds (`dev-tools/docker/docker_entrypoint.sh`).18- `include(CTest)` reserves the `test` target name — our monolithic test target is `ml_test`.19- `test_individually` runs tests via CTest with parallel execution.2021### Build Acceleration Options22- `-DCMAKE_UNITY_BUILD=ON` — combines source files (not effective on all libraries)23- `-DML_PCH=ON` — precompiled headers for STL/Boost24- sccache with GCS backend for persistent compiler caching25- MSVC uses `/Z7` (not `/Zi`) to avoid PDB serialisation bottleneck2627### Test Parallelism28- Formula: `numCpus <= 4 ? 2 : ceil(numCpus / 2)`29- Never use wall-clock time for performance assertions — use `std::clock()` (CPU time)30- Use process ID for unique temp file names in tests, not random numbers3132## Coding Conventions3334- Classes: `CUpperCamelCase`, Methods: `lowerCamelCase`, Members: `m_Name`35- Types: `TUpperCamelCase`, Test files: `CClassNameTest.cc`36- Commit messages: `[ML] Short description`37- Use `peek() == std::char_traits<char>::eof()` for portable end-of-stream detection38- Avoid anonymous-namespace constants with common names in libraries using unity builds3940## CI (Buildkite)4142- PR pipeline: `ml-cpp-pr-builds` (`.buildkite/pipeline.json.py`)43- Nightly: `ml-cpp-snapshot-builds` (`.buildkite/branch.json.py`)44- Debug: `ml-cpp-debug-build` (`.buildkite/job-build-test-all-debug.json.py`)45- Platforms: Linux x86_64 (6 vCPU), Linux aarch64 (8 vCPU), macOS aarch64 (4 core), Windows x86_64 (16 vCPU)46- Vault secrets via `.buildkite/hooks/post-checkout`47- Diagnostic steps use: `if: "build.state == 'failed'"` + `soft_fail: true` + `allow_dependency_failure: true`4849## CI Analytics5051- Build timings indexed into Elasticsearch Serverless (`buildkite-build-timings`)52- ML anomaly detection job: `build-timing-regressions` (high_mean by step_key)53- PR regression check: compares against 30-day baseline (mean + 2σ)54- AI failure analysis: Claude diagnoses failures, posts Buildkite annotations55- Kibana dashboard: "ML-CPP Build Timing Overview"56
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| elastic/ml-cpp.cursor/rules/ml-cpp-build-system.mdc · 157 | Cursor rules | buildtestarch | 76/100 | today | |
| elastic/ml-cpp.cursor/rules/ml-cpp-buildkite-ci.mdc · 157 | Cursor rules | buildstylearchsecurity+2 | 56/100 | today | |
| elastic/ml-cpp.cursor/rules/ml-cpp-ci-analytics.mdc · 157 | Cursor rules | buildgit | 54/100 | today | |
| elastic/ml-cpp.cursor/rules/ml-cpp-coding-conventions.mdc · 157 | Cursor rules | buildteststylegit+1 | 63/100 | today | |
| elastic/ml-cppAGENTS.md · 157 | AGENTS.md | buildtestlint-formatstyle+4 | 96/100 | today |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| Adit-Jain-srm/NightmareNetCLAUDE.md · 46 | CLAUDE.md | buildtestlint-formatstyle+6 | 100/100 | 14 days ago | |
| electron/electronCLAUDE.md · 123k | CLAUDE.md | setupbuildteststyle+6 | 96/100 | today | |
| ClickHouse/ClickHouse.claude/CLAUDE.md · 49k | CLAUDE.md | buildteststylearch+6 | 96/100 | today | |
| RizzoHou/amazing-amazonsCLAUDE.md · 0 | CLAUDE.md | setuptestlint-formatstyle+4 | 96/100 | 14 days ago | |
| hiyouga/LlamaFactory.ai/CLAUDE.md · 74k | CLAUDE.md | buildtestlint-formatstyle+2 | 92/100 | 13 days ago | |
| ruvnet/RuViewCLAUDE.md · 90k | CLAUDE.md | teststylegitsecurity+5 | 89/100 | 14 days ago | |
| pytorch/pytorchCLAUDE.md · 102k | CLAUDE.md | setupbuildtestlint-format+5 | 88/100 | today | |
| pytorch/pytorchtorch/_dynamo/CLAUDE.md · 102k | CLAUDE.md | buildteststylearch | 84/100 | today |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/elastic-ml-cpp-claude)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.