Megatron-LM CI Failure Triage
NVIDIA/Megatron-LM
Investigates a failing GitHub Actions run or job for Megatron-LM, finds the root cause plus the PR and test author involved, and files a structured bug issue.
Diagnoses a failed GreptimeDB fuzz CI job by pulling its GitHub Actions logs and fuzz artifacts, then matching the evidence to the local source code.
$ npx skills add GreptimeTeam/greptimedb --skill greptimedb-fuzz-ci-failure-investigation -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install GreptimeTeam/greptimedb greptimedb-fuzz-ci-failure-investigation --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/GreptimeTeam/greptimedb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/greptimedb-fuzz-ci-failure-investigation .claude/skills/greptimedb-fuzz-ci-failure-investigation && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "greptimedb-fuzz-ci-failure-investigation" agent skill from https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-fuzz-ci-failure-investigation into .claude/skills/greptimedb-fuzz-ci-failure-investigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greptimedb-fuzz-ci-failure-investigation", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-fuzz-ci-failure-investigationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add GreptimeTeam/greptimedb --skill greptimedb-fuzz-ci-failure-investigation -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install GreptimeTeam/greptimedb greptimedb-fuzz-ci-failure-investigation --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GreptimeTeam/greptimedb.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/greptimedb-fuzz-ci-failure-investigation .agents/skills/greptimedb-fuzz-ci-failure-investigation && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "greptimedb-fuzz-ci-failure-investigation" agent skill from https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-fuzz-ci-failure-investigation into .agents/skills/greptimedb-fuzz-ci-failure-investigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greptimedb-fuzz-ci-failure-investigation", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GreptimeTeam/greptimedb --skill greptimedb-fuzz-ci-failure-investigation -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install GreptimeTeam/greptimedb greptimedb-fuzz-ci-failure-investigation --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GreptimeTeam/greptimedb.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/greptimedb-fuzz-ci-failure-investigation .cursor/skills/greptimedb-fuzz-ci-failure-investigation && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "greptimedb-fuzz-ci-failure-investigation" agent skill from https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-fuzz-ci-failure-investigation into .cursor/skills/greptimedb-fuzz-ci-failure-investigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greptimedb-fuzz-ci-failure-investigation", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/GreptimeTeam/greptimedb.git --path .agents/skills/greptimedb-fuzz-ci-failure-investigation--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add GreptimeTeam/greptimedb --skill greptimedb-fuzz-ci-failure-investigation -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install GreptimeTeam/greptimedb greptimedb-fuzz-ci-failure-investigation --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GreptimeTeam/greptimedb.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/greptimedb-fuzz-ci-failure-investigation .gemini/skills/greptimedb-fuzz-ci-failure-investigation && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "greptimedb-fuzz-ci-failure-investigation" agent skill from https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-fuzz-ci-failure-investigation into .gemini/skills/greptimedb-fuzz-ci-failure-investigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greptimedb-fuzz-ci-failure-investigation", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install GreptimeTeam/greptimedb greptimedb-fuzz-ci-failure-investigationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add GreptimeTeam/greptimedb --skill greptimedb-fuzz-ci-failure-investigation -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/GreptimeTeam/greptimedb.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/greptimedb-fuzz-ci-failure-investigation .github/skills/greptimedb-fuzz-ci-failure-investigation && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "greptimedb-fuzz-ci-failure-investigation" agent skill from https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-fuzz-ci-failure-investigation into .github/skills/greptimedb-fuzz-ci-failure-investigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greptimedb-fuzz-ci-failure-investigation", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GreptimeTeam/greptimedb --skill greptimedb-fuzz-ci-failure-investigation -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install GreptimeTeam/greptimedb greptimedb-fuzz-ci-failure-investigation --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GreptimeTeam/greptimedb.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/greptimedb-fuzz-ci-failure-investigation .opencode/skills/greptimedb-fuzz-ci-failure-investigation && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "greptimedb-fuzz-ci-failure-investigation" agent skill from https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-fuzz-ci-failure-investigation into .opencode/skills/greptimedb-fuzz-ci-failure-investigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greptimedb-fuzz-ci-failure-investigation", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
greptimedb-fuzz-ci-failure-investigationDiagnoses a failed GreptimeDB fuzz CI job by pulling its GitHub Actions logs and fuzz artifacts, then matching the evidence to the local source code.
Given the link to one failed fuzz job in GreptimeDB's integration workflow, the skill downloads the job output and the uploaded group artifact, which holds a manifest, a summary and one folder per target. A failed distributed target can include the fuzz log, libFuzzer reproducers, CSV and SQL traces, Kind logs, monitor dumps and Kubernetes state. The agent then explains the likely cause by tying that evidence to the source in your checkout.
It stays read-only: `gh` is always pointed at the GreptimeTeam/greptimedb repository because local remotes may be forks, and it does not rerun jobs, cancel workflows, push, comment on pull requests or delete artifacts unless you ask. Scope is limited to the fuzz jobs `fuzztest`, `unstable-fuzztest`, `distributed-fuzztest` and `distributed-fuzztest-with-chaos`, which run groups of targets through a shared action and script. Local reproduction falls back to `cargo fuzz run` when no prebuilt binary directory is set.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 28ec3ff. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghjqgitcargoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
GreptimeDB Fuzz CI Failure Investigation loads about 4.4k tokens when it runs. Until then it costs about 93 tokens; SKILL.md has 1,739 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from GreptimeTeam/greptimedb at commit 28ec3ff, republished under its Apache-2.0 licence (© GreptimeTeam). 1,739 words, ~4,430 tokens.
.claude/skills/greptimedb-fuzz-ci-failure-investigation/SKILL.md (or your agent's skills folder).Investigate failed fuzz-test jobs for GreptimeTeam/greptimedb from a local
checkout. The purpose is to download the failed job's CI output and fuzz artifacts,
then explain the likely cause by correlating the evidence with GreptimeDB source.
Always pass --repo GreptimeTeam/greptimedb to gh; local remotes may point to
forks. Keep the workflow read-only: do not rerun jobs, cancel workflows, push,
comment on PRs, or delete artifacts unless the user explicitly asks.
Use this skill for fuzz CI only. In .github/workflows/integration.yml, fuzz failures
are the CI jobs that use .github/actions/fuzz-test:
fuzztest — standalone fuzz targets.unstable-fuzztest — unstable standalone fuzz target.distributed-fuzztest — distributed cluster fuzz targets.distributed-fuzztest-with-chaos — distributed fuzz targets with Chaos Mesh.Each matrix job runs a semantic group of targets on one prepared environment.
The group defaults to fail-fast: after the first target failure it captures that
target's diagnostics and marks the remaining targets as skipped. The workflow
strategy still uses fail-fast: false, so failures do not cancel other groups.
The reusable action .github/actions/fuzz-test/action.yaml delegates each target
to .github/scripts/run-fuzz-targets.sh. CI passes FUZZ_BIN_DIR, so the script
runs the prebuilt target executable:
<prebuilt-fuzz-binary> -max_total_time=<seconds> \
-artifact_prefix=<target-dir>/libfuzzer/Without FUZZ_BIN_DIR, such as during local reproduction, the script falls back
to cargo fuzz run <target> --fuzz-dir tests-fuzz -D -s none with the same
libFuzzer arguments.
Failed jobs upload one group artifact. Its stable name identifies the job kind, mode, and group, for example:
fuzz-distributed-remote-wal-database-and-regular-tableThe artifact contains manifest.json, summary.md, and one directory per target
under targets/<target>/. A failed distributed target can include fuzz.log,
libFuzzer reproducers, CSV/SQL traces, Kind logs, monitor dumps, and Kubernetes
state. Setup failures use targets/setup/.
The normal user input is a CI target link: a GitHub Actions job URL for one failed matrix target. Treat that URL as the primary source of truth. Example:
https://github.com/GreptimeTeam/greptimedb/actions/runs/29000666156/job/86062894741Also accept these fallback inputs:
https://github.com/GreptimeTeam/greptimedb/actions/runs/29000666156.Parse ids from URLs:
REPO=GreptimeTeam/greptimedb
RUN_ID=29000666156
JOB_ID=86062894741When the input is a job URL, do not ask for the target name first. Use the job id to fetch metadata, then derive the group and mode from the job name. A distributed fuzz job name usually contains the CI group tuple:
Fuzz Test (Distributed, <mode>, <group>)
Fuzz Test with Chaos (Distributed, <mode>, <group>)If only a run URL is provided, list failed jobs and choose the fuzz job matching the group/mode. Ask only when multiple fuzz jobs are plausible and there is no group, mode, artifact, or job-url clue.
gh must be installed and authenticated (gh auth status). Actions logs and
artifacts commonly require authentication even for a public repo.jq, unzip, and standard shell tools are useful for reducing logs./tmp/greptimedb-fuzz-ci.Create a scratch directory:
mkdir -p /tmp/greptimedb-fuzz-ci/$RUN_ID
cd /tmp/greptimedb-fuzz-ci/$RUN_IDFetch run metadata:
gh run view "$RUN_ID" --repo "$REPO" \
--json databaseId,name,displayTitle,event,headBranch,headSha,status,conclusion,createdAt,updatedAt,url,workflowName \
> run.jsonFetch all jobs through the REST API:
gh api "repos/$REPO/actions/runs/$RUN_ID/jobs?per_page=100" \
--paginate --jq '.jobs[]' \
| jq -s '{jobs: .}' > jobs.jsonList failed fuzz-like jobs:
jq -r '
.jobs[]
| select(.conclusion != null and .conclusion != "success")
| select(.name | test("Fuzz Test|fuzz"; "i"))
| [.id, .name, .status, .conclusion, .html_url] | @tsv
' jobs.jsonFor a known JOB_ID, capture job name and step outcomes:
jq -r --arg id "$JOB_ID" '
.jobs[] | select((.id | tostring) == $id) |
"job=\(.name) conclusion=\(.conclusion) url=\(.html_url)",
(.steps[]? | [.number, .name, .status, .conclusion, .started_at, .completed_at] | @tsv)
' jobs.json > job-summary.txtRecord the fuzz job kind, matrix mode, group, failed step, event type, branch, and
head SHA. Do not assume main for PR or merge-queue runs. The failed target is
authoritative in the downloaded artifact's manifest.json; do not guess it from
the group name.
Download the selected job's log; this is the authoritative target CI output for the
cargo fuzz run command:
gh run view "$RUN_ID" --repo "$REPO" --job "$JOB_ID" --log > job-$JOB_ID.logDownload the full workflow log only when setup/build context matters:
gh run view "$RUN_ID" --repo "$REPO" --log > run-$RUN_ID.logFallback if gh run view --log is incomplete. The job logs endpoint returns a
plain text stream, while the full run logs endpoint returns a zip archive:
gh api "repos/$REPO/actions/jobs/$JOB_ID/logs" > job-$JOB_ID.log
gh api "repos/$REPO/actions/runs/$RUN_ID/logs" > run-$RUN_ID-logs.zip
unzip -oq run-$RUN_ID-logs.zip -d run-logsIn the job log, inspect the Run Fuzz Test step first. Capture:
max_total_time;List artifacts:
gh api "repos/$REPO/actions/runs/$RUN_ID/artifacts?per_page=100" \
--paginate --jq '.artifacts[]' \
| jq -s '{artifacts: .}' > artifacts.json
jq -r '.artifacts[] | [.id, .name, .expired, .size_in_bytes] | @tsv' artifacts.jsonMatch the one group artifact by job kind, mode slug, and group slug. If the display
name does not make the slug obvious, list the run artifacts and choose the unique
fuzz-* artifact whose suffix matches the group. Do not search for separate Kind,
monitor, or CSV artifacts; these are target subdirectories in the group artifact.
Download exact artifacts when possible:
ARTIFACT='fuzz-distributed-remote-wal-database-and-regular-table'
gh run download "$RUN_ID" --repo "$REPO" --name "$ARTIFACT" --dir artifacts/"$ARTIFACT"Fallback by artifact id:
ARTIFACT_ID=$(jq -r --arg name "$ARTIFACT" '.artifacts[] | select(.name == $name and (.expired | not)) | .id' artifacts.json | head -n 1)
if [ -z "$ARTIFACT_ID" ]; then
echo "Artifact not found or expired: $ARTIFACT"
exit 1
fi
gh api "repos/$REPO/actions/artifacts/$ARTIFACT_ID/zip" > artifact-$ARTIFACT_ID.zip
mkdir -p artifacts/"$ARTIFACT"
unzip -oq artifact-$ARTIFACT_ID.zip -d artifacts/"$ARTIFACT"After download, read the manifest before the bulk logs:
jq -r '.[] | [.target, .status, .exit_code, .after_prior_failure, .artifact_collection] | @tsv' \
artifacts/"$ARTIFACT"/manifest.jsonSelect the first failure entry as the primary target. Entries with
skipped_after_failure did not run; entries with after_prior_failure=true ran
against a potentially contaminated shared environment. Note expired or missing
artifacts explicitly; retention is currently short (retention-days: 3).
Evidence for target <target> is rooted at
artifacts/$ARTIFACT/targets/<target>/. result.json records timestamps, status,
exit code, fuzz budget, prior-failure provenance, and artifact collection status.
fuzz.log is the complete libFuzzer output from the prebuilt target executable in
CI; local fallback runs it through cargo fuzz run.
Kind logs under targets/<target>/kind/ come from an immediate failure snapshot
and usually include Kubernetes state plus container logs. Prioritize:
Monitor dumps under targets/<target>/monitor/ are collected by
.github/scripts/collect-fuzz-monitor-artifacts.sh. They may include:
state.log, sql.log, copy.log, port-forward.log;*.show_create_table.sql for _gt_logs and OpenTelemetry trace tables;_gt_logs, opentelemetry_traces,
opentelemetry_traces_operations, and opentelemetry_traces_services.CSV and SQL traces are under targets/<target>/csv/. LibFuzzer crash or timeout
reproducers are under targets/<target>/libfuzzer/. Kubernetes descriptions and
events are under targets/<target>/kubernetes/. Standalone service logs are under
targets/<target>/service/ when available.
Before drilling into a specific error string, build a small macro-level model of
the failure. This prevents overfitting on the loudest symptom, such as
libFuzzer: deadly signal, Internal error, or a cleanup warning.
Record the key timestamps in order:
Use the timeline to classify the failure phase: setup, workload execution, storage/WAL/write path, query path, cleanup, or runner infrastructure.
For distributed fuzz failures, identify the chain from outer symptom to inner cause candidate. Prefer this shape:
fuzz panic/assertion
-> client-visible SQL/gRPC/HTTP error
-> frontend or monitor error
-> meta/datanode/flownode component error
-> storage/WAL/object-store/Kafka/etcd/k8s dependency errorAt each boundary, decide whether that layer produced the error or merely wrapped and forwarded a downstream error. Do not stop at wrapper errors unless there is no deeper evidence.
For distributed targets, scan evidence in this order unless the timeline points elsewhere:
For each layer, answer two questions: "is this the first causal error?" and "is this layer producing or propagating the failure?"
When a failure appears configuration-related, compare all three levels before claiming a config did or did not take effect:
If a logged value differs from the expected config, explicitly state whether the config was not applied, was overridden by another layer, or refers to a different kind of timeout/retry/deadline.
Before final classification, list at least two plausible causes and the evidence that supports or weakens each, for example:
Then choose the most likely cause and keep the confidence scoped. It is often valid to have high confidence in the observed error chain but only medium confidence in the ultimate cause category.
Include one or two falsifiable checks, such as a same-SHA rerun, a fixed reproducer, a cross-target pattern in the same dependency mode, or one missing artifact/log that would change the conclusion.
Extract high-signal lines from job logs and artifacts:
grep -RInE '(^|[^[:alpha:]])(ERROR|Error|WARN|panic|panicked|FAILED|failure|timeout|Timeout|assert|backtrace|SIG[A-Z]+|OOMKilled|CrashLoopBackOff|ImagePullBackOff|libFuzzer|AddressSanitizer|UndefinedBehaviorSanitizer)' \
job-$JOB_ID.log run-$RUN_ID.log job-logs run-logs artifacts 2>/dev/null > signals.txtThen identify the first causal failure, not the last cleanup error. A typical order:
cargo fuzz run output in job-$JOB_ID.log.Avoid common mistakes:
fuzz; match mode
and target.main if the run used a different SHA.Read the tested SHA:
HEAD_SHA=$(jq -r '.headSha // empty' run.json)
if [ -z "$HEAD_SHA" ]; then
echo "Error: HEAD_SHA is empty or null"
exit 1
fi
UPSTREAM_REMOTE=$(git remote -v \
| awk '/GreptimeTeam\/greptimedb(\.git)?\/?([[:space:]])/ { print $1; exit }')
UPSTREAM_REMOTE=${UPSTREAM_REMOTE:-origin}
git rev-parse --verify "$HEAD_SHA^{commit}" >/dev/null 2>&1 \
|| git fetch "$UPSTREAM_REMOTE" "$HEAD_SHA"If local HEAD differs, inspect files at that SHA or create a temporary worktree:
git worktree add --detach /tmp/greptimedb-fuzz-ci/$RUN_ID/source "$HEAD_SHA"Remove temporary worktrees after investigation with git worktree remove <path>.
Never overwrite the user's current branch.
Start from concrete strings: fuzz target name, panic text, assertion message, error variant, SQL statement, or log message. Search/read the matching source at the run SHA.
Useful entry points:
tests-fuzz/ — fuzz targets, operation generators, checkers, dump paths..github/actions/fuzz-test/action.yaml — exact CI fuzz runner configuration..github/workflows/integration.yml — fuzz matrix and artifact upload names..github/scripts/collect-fuzz-monitor-artifacts.sh — monitor dump contents.src/mito2/AGENTS.md — storage/WAL/region failures.src/metric-engine/AGENTS.md — metric/logical table failures.src/frontend/AGENTS.md — SQL/protocol/query orchestration failures.src/meta-srv/AGENTS.md — metadata/procedure/routing failures.src/flow/AGENTS.md — flow failures.When reporting code evidence, cite the file/function/line and quote the log line that reaches it. Separate confirmed facts from hypotheses.
Use this taxonomy:
Use this structure:
## Summary
- Likely cause: <one sentence>
- Confidence: high|medium|low
- Classification: product bug|fuzz/test bug|flake/race|environment/infra|unknown
- Confidence basis: <which parts are confirmed vs inferred>
## Evidence
- `<job log or artifact path>`: quoted line(s)
- `<source-file:line>`: relevant code path
## Reasoning
<short chain from fuzz target -> CI output -> artifact logs -> source code>
## Alternative hypotheses
- <hypothesis>: <supporting and weakening evidence>
- <hypothesis>: <supporting and weakening evidence>
## Next steps
1. <minimal fix, reproduction command, or verification command>
2. <rerun command or extra log needed, if any>
## What would disprove this
- <specific rerun, artifact, log line, or reproducer result that would change the diagnosis>If logs or artifacts cannot be downloaded because gh is not authenticated or the
artifacts expired, say so directly and include the exact command/error.
© GreptimeTeam, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/greptimedb-fuzz-ci-failure-investigation of GreptimeTeam/greptimedb.
Open the folder on GitHubat commit 28ec3ff
GreptimeDB Fuzz CI Failure Investigation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| GreptimeDB Fuzz CI Failure Investigation this skillGreptimeTeam/greptimedb | 6.7k | — | ~4.4k | Automated safety check: Pass | Apache-2.0 | |
| Megatron-LM CI Failure TriageNVIDIA/Megatron-LM | 18k | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| MAUI CI Investigatordotnet/maui | 23k | — | ~2k | Automated safety check: Pass | MIT | |
| CI Triagecanton-network/splice | 117 | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Reviewapollographql/apollo-mcp-server | 314 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Babysit PRZenUml/web-sequence | 150 | — | ~871 | Automated safety check: Pass | MIT |
NVIDIA/Megatron-LM
Investigates a failing GitHub Actions run or job for Megatron-LM, finds the root cause plus the PR and test author involved, and files a structured bug issue.
dotnet/maui
Adds dotnet/maui-specific context for investigating failing PR checks and broken nightly builds: pipelines, Helix logs, binlogs and merge-readiness verdicts.
canton-network/splice
Triage a failed splice GitHub Actions job (cn-test-failures ref) into a reproducible evidence packet - fetch job log and artifact, isolate the flagged lines, check the known flake families for…
apollographql/apollo-mcp-server
Review a GitHub pull request for a Rust codebase. An agent skill from apollographql/apollo-mcp-server.
ZenUml/web-sequence
Monitor and diagnose GitHub Actions checks on ZenUML web-sequence PRs, fixing code-caused CI failures when appropriate.
golemcloud/golem
Analysing GitHub Actions CI failures from a run URL. An agent skill from golemcloud/golem.
GreptimeTeam/greptimedb
Packages a locally built GreptimeDB debug binary into a development-only Docker image for local-cluster testing, with an optional push to a dev registry.
GreptimeTeam/greptimedb
Runbook for publishing a GreptimeDB version: pick the release branch, verify the Cargo version, then tag, create the GitHub release and open the docs note PR.
GreptimeTeam/greptimedb
Generates a GreptimeDB release changelog with git cliff, subtracts patch PRs already shipped, rebuilds contributors and prepares the docs-repo blog PR.
Works with
Categories
Diagnoses a failed GreptimeDB fuzz CI job by pulling its GitHub Actions logs and fuzz artifacts, then matching the evidence to the local source code. Given the link to one failed fuzz job in GreptimeDB's integration workflow, the skill downloads the job output and the uploaded group artifact, which holds a manifest, a summary and one folder per target. A failed distributed target can include the fuzz log, libFuzzer reproducers, CSV and SQL traces, Kind logs, monitor dumps and Kubernetes state.
GreptimeDB Fuzz CI Failure Investigation fits situations like: diagnosing a failed fuzz job from a GitHub Actions URL; reading Kind logs and monitor dumps from a distributed fuzz run; deciding whether a fuzz failure comes from setup or from a target; reproducing a libFuzzer failure locally with cargo fuzz.
Run `npx skills add GreptimeTeam/greptimedb --skill greptimedb-fuzz-ci-failure-investigation -a claude-code`. Or copy the skill folder (.agents/skills/greptimedb-fuzz-ci-failure-investigation in GreptimeTeam/greptimedb) into .claude/skills/greptimedb-fuzz-ci-failure-investigation in your project. Claude Code loads it when a task matches its description.
Run `npx skills add GreptimeTeam/greptimedb --skill greptimedb-fuzz-ci-failure-investigation -a codex`. Or copy the skill folder (.agents/skills/greptimedb-fuzz-ci-failure-investigation in GreptimeTeam/greptimedb) into .agents/skills/greptimedb-fuzz-ci-failure-investigation in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GreptimeTeam/greptimedb --skill greptimedb-fuzz-ci-failure-investigation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/greptimedb-fuzz-ci-failure-investigation, .gemini/skills/greptimedb-fuzz-ci-failure-investigation, .github/skills/greptimedb-fuzz-ci-failure-investigation and .opencode/skills/greptimedb-fuzz-ci-failure-investigation in your project.
Going by SKILL.md and its folder, GreptimeDB Fuzz CI Failure Investigation needs the command-line tools its instructions call (gh, jq, git and cargo). Our summary lists: GitHub CLI (`gh`) with access to GreptimeTeam/greptimedb; A local checkout of the GreptimeDB source.
SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
GreptimeDB Fuzz CI Failure Investigation is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with GreptimeDB Fuzz CI Failure Investigation: Megatron-LM CI Failure Triage (NVIDIA/Megatron-LM, 18k stars), MAUI CI Investigator (dotnet/maui, 23k stars), CI Triage (canton-network/splice, 117 stars) and Review (apollographql/apollo-mcp-server, 314 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
GreptimeTeam (a GitHub organization) maintains it in GreptimeTeam/greptimedb, which has 6,729 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 10, 2026.
Source: GreptimeTeam/greptimedb on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.