

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
123456# ml-cpp Coding Conventions78## Naming910- Classes: `CUpperCamelCase` (C prefix)11- Methods: `lowerCamelCase`12- Member variables: `m_UpperCamelCase`13- Static member variables: `ms_UpperCamelCase`14- Types: `TUpperCamelCase` (T prefix for typedefs)15- Test files: `CClassNameTest.cc`16- Namespaces: `ml::module::submodule`1718## Commit Messages1920Format: `[ML] Short description` — 1-2 sentences explaining the "why".2122## Boost Test Framework2324- Tests use `BOOST_AUTO_TEST_SUITE` / `BOOST_AUTO_TEST_CASE`25- `BOOST_TEST_DONT_PRINT_LOG_VALUE` for types without operator<<26- JUnit output: `boost_test_results.junit` per test suite27- Seeded RNG: `maths::common::CSampling::seed()` at test start2829## Cross-Platform Considerations3031### Stream/IO32- `std::istream::eof()` behaves differently across platforms33- Use `peek() == std::char_traits<char>::eof()` for portable end-of-stream detection34- `CJsonStateRestoreTraverser::isEof()` uses both checks for portability3536### Timing in Tests37- **Never use wall-clock time** (`CStopWatch`, `CLOCK_MONOTONIC`) for performance assertions in unit tests — flaky under parallel execution38- Use `std::clock()` (CPU time) for scaling/benchmark assertions39- `std::clock()` measures process CPU time on all platforms (POSIX + Windows)4041### Temporary Files in Tests42- Use process ID (`ml::core::CProcess::instance().id()`) for unique temp names43- Do NOT use small random ranges (e.g. `1-100`) — causes collisions under parallel CTest4445### Unity Build Conflicts46- Anonymous-namespace constants (`EMPTY_STRING`, `*_TAG`) cause redefinition errors47- Fix: rename to be unique, or add file to `SKIP_UNITY_BUILD_INCLUSION`48- `BOOST_TEST_DONT_PRINT_LOG_VALUE` macros also conflict in unity builds4950## RAII Patterns5152- `std::unique_ptr` with custom deleters for resource cleanup53- Use `reset()` not `release()` + manual cleanup — avoids leaks on exception paths54- `CStateFileRemover` is the RAII helper for state file deletion55
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-cppAGENTS.md · 157 | AGENTS.md | buildtestlint-formatstyle+4 | 96/100 | today | |
| elastic/ml-cppCLAUDE.md · 157 | CLAUDE.md | buildteststylegit+1 | 71/100 | today |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 14 days ago | |
| elastic/ml-cpp.cursor/rules/ml-cpp-build-system.mdc · 157 | Cursor rules | buildtestarch | 76/100 | today | |
| Adit-Jain-srm/NightmareNet.cursor/rules/agent-core.mdc · 46 | Cursor rules | gitsecuritydo-notagent-behaviour | 76/100 | today | |
| fledge-iot/fledge.cursor/rules/docs.mdc · 185 | Cursor rules | setupbuildteststyle+8 | 76/100 | 14 days ago | |
| Vrooli/Vrooli.cursor/rules/doc.mdc · 55 | Cursor rules | setuplint-formatstylearch+2 | 74/100 | 14 days ago | |
| Vrooli/Vrooli.cursor/rules/memory.mdc · 55 | Cursor rules | stylearchdo-notdocs | 67/100 | 14 days ago | |
| wshobson/agents.cursor/rules/000-project-conventions.mdc · 39k | Cursor rules | lint-formatstylesecuritydo-not+1 | 62/100 | 14 days ago | |
| elastic/ml-cpp.cursor/rules/ml-cpp-buildkite-ci.mdc · 157 | Cursor rules | buildstylearchsecurity+2 | 56/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-cursor-rules-ml-cpp-coding-conventions)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.