بنقرة واحدة
engflow-artifacts
// Use when downloading test logs, artifacts, or outputs.zip from EngFlow build invocations. Use when investigating CockroachDB CI test failures hosted on mesolite.cluster.engflow.com.
// Use when downloading test logs, artifacts, or outputs.zip from EngFlow build invocations. Use when investigating CockroachDB CI test failures hosted on mesolite.cluster.engflow.com.
Run a single CockroachDB roachtest end-to-end: pick local vs. user's GCE worker, launch detached on worker via tmux + `roachstress.sh` with long-poll done-notification and tail. Use whenever user asks to run/stress/kick off a roachtest, or just modified one and next step is running it. Single test + single iteration only; nightly loops belong elsewhere.
Analyze DRT cluster health for a given time range. Reconstructs the operations timeline, checks CockroachDB metrics (availability, latency, storage, changefeeds, jobs, goroutines, admission control, LSM, KV prober) and logs for anomalies, correlates findings with disruptive operations to distinguish expected side-effects from real bugs. Use when asked to "analyze DRT", "check cluster health", "what happened on the DRT cluster", "DRT health report", investigate DRT issues, or review DRT operations. Also use when the user mentions a DRT cluster name (drt-scale, drt-chaos, drt-large, etc.) in the context of health or operations.
Skip a flaky or broken test with proper issue tracking. Use when asked to skip a test, disable a test, or mark a test as flaky.
Migrate React components from Redux + Saga to SWR hooks. Use when converting data fetching from Redux store (reducers, sagas, selectors, connect HOC) to SWR-based hooks in CockroachDB DB Console or cluster-ui.
Bump cluster-ui package version after a release branch cut. Creates two PRs — one to drop the prerelease suffix on the release branch and one to increment the minor version on master.
Use when filing, creating, or reporting GitHub issues for CockroachDB. Use when asked to open a bug report, feature request, investigation issue, or performance inquiry. Also use when the user mentions wanting to track a problem, report a regression, or document unexpected behavior in CockroachDB.
| name | engflow-artifacts |
| description | Use when downloading test logs, artifacts, or outputs.zip from EngFlow build invocations. Use when investigating CockroachDB CI test failures hosted on mesolite.cluster.engflow.com. |
Download test logs and artifacts from EngFlow CI invocations (mesolite.cluster.engflow.com) using engflow_artifacts.py (co-located in this skill directory).
The engflow_auth CLI must be installed and authenticated:
# One-time login (opens browser for Google SSO)
engflow_auth login mesolite.cluster.engflow.com
# Verify authentication
engflow_auth export mesolite.cluster.engflow.com
Use run.sh to invoke the script — it manages a local venv with dependencies
automatically. The script is at .claude/skills/engflow-artifacts/run.sh:
| Command | Purpose |
|---|---|
targets <ID> | List failed targets in an invocation |
list <ID> --target <LABEL> | List per-shard artifacts for a target |
download <ID> --target <LABEL> --shard N | Download artifacts for a shard |
download <ID> --target <LABEL> --shard N --run M | Download a specific run |
blob <HASH> <SIZE> | Download a specific CAS blob |
url '<FULL_URL>' | Download from a full EngFlow invocation URL |
EF=.claude/skills/engflow-artifacts/run.sh
# 1. Find what failed
./$EF targets daa807a0-3589-40a5-94b5-3440c7490d6a
# 2. List shards for the failed target
./$EF list daa807a0-3589-40a5-94b5-3440c7490d6a \
--target '//pkg/sql/ttl:ttl_test'
# 3. Download the failing shard's logs
./$EF download daa807a0-3589-40a5-94b5-3440c7490d6a \
--target '//pkg/sql/ttl:ttl_test' --shard 100 --outdir /tmp/engflow-test
# 4. Read the test log
cat /tmp/engflow-test/test.log
# 5. Inspect extracted CockroachDB server logs from outputs.zip
ls /tmp/engflow-test/
Every shard has:
Some shards also have:
engflow_auth export provides a JWT token.v1alpha ResultStore API (GetTarget, GetTargetLabelsByStatus).google.protobuf with a reverse-engineered .proto schema (resultstore.proto). Responses are properly deserialized — shard numbers and run numbers come from actual protobuf fields, not byte-pattern heuristics.outputs.zip is auto-extracted after download.Each test target has multiple shards (parallel test splits) and runs (repeated executions). Use --shard to select a shard and --run to select a run (defaults to run 1). Shard numbers are 1-based and match the testReportShard parameter in EngFlow URLs.
EngFlow's gRPC-web endpoint requires HTTP/2, so the script uses curl (which negotiates HTTP/2 via ALPN) rather than Python HTTP libraries that only speak HTTP/1.1. Dependencies are installed automatically by run.sh.
logTestName123456/
test.log # short log
test.{node-id}.roach.{timestamp}.log # full structured log
test-health.log # health channel
test-storage.log # storage channel
test-kv-distribution.log # KV distribution channel
Invocation page: https://mesolite.cluster.engflow.com/invocations/default/{INVOCATION_ID}
With filters: ?testReportRun=1&testReportShard={N}&testReportAttempt=1&treeFilterStatus=failed#targets-{BASE64_TARGET}
list to find which shard has outputs.zip (not all shards produce one).engflow_auth export fails, re-authenticate with engflow_auth login mesolite.cluster.engflow.com./tmp/engflow-artifacts.--all flag on targets shows both passed and failed targets.