

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
123456# ml-cpp CI Analytics & Observability78## Elasticsearch Serverless Cluster910- Project: Elastic Cloud Serverless (Sydney region)11- Index: `buildkite-build-timings`12- Credentials in Vault: `secret/ci/elastic-ml-cpp/elasticsearch/ci_analytics` (fields: `endpoint`, `api_key`)13- Local credential files: `~/.elastic/serverless-endpoint`, `~/.elastic/serverless-api-key`1415## Build Timing Ingestion1617`dev-tools/ingest_build_timings.py`:18- Fetches step-level timings from Buildkite API19- Computes `duration_seconds` and `agent_wait_seconds` per step20- Infers `platform` and `step_type` from step keys21- Indexes into `buildkite-build-timings` via bulk API22- Runs as a post-build step in nightly pipelines2324## PR Regression Check2526`dev-tools/check_build_regression.py`:27- Queries ES for 30-day rolling mean + stddev of step durations28- Compares current PR build against `mean + 2*stddev` threshold29- Posts Buildkite annotation with `--annotate` flag30- Runs as soft-fail step in PR pipelines3132## AI Failure Analysis3334`dev-tools/analyze_build_failure.py`:35- Fetches failed step logs from Buildkite API36- Sends to Claude (Sonnet) with repo context and known failure patterns37- Posts structured annotation: root cause, classification, suggested fix, confidence38- Optionally posts to Slack via `SLACK_WEBHOOK_URL`39- Only runs when build is failing (`if: "build.state == 'failed'"`)40- Claude API key in Vault: `secret/ci/elastic-ml-cpp/anthropic/claude`4142## ML Anomaly Detection4344- Job: `build-timing-regressions` on the serverless cluster45- Detector: `high_mean(duration_seconds)` partitioned by `step_key`46- Bucket span: 12h47- Processes nightly build data to detect step-level duration anomalies4849## Kibana Dashboard5051- Data view: `Buildkite Build Timings`52- Dashboard: `ML-CPP Build Timing Overview` (6 panels)53- Accessible via the Elastic Cloud Serverless Kibana UI5455## Credential Flow5657```58Vault → post-checkout hook → env vars → Python scripts → ES/Buildkite/Claude APIs59```60
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-coding-conventions.mdc · 157 | Cursor rules | buildteststylegit+1 | 63/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 | |
| elastic/ml-cpp.cursor/rules/ml-cpp-coding-conventions.mdc · 157 | Cursor rules | buildteststylegit+1 | 63/100 | today | |
| wshobson/agents.cursor/rules/000-project-conventions.mdc · 39k | Cursor rules | lint-formatstylesecuritydo-not+1 | 62/100 | 14 days ago |
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-ci-analytics)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.