Syncing CWS BTFHub constants

SkillMonitoring & ops

Lets your agent regenerate checked-in kernel offset constant files by running a GitHub workflow and merging its PR.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Syncing CWS BTFHub constants skill

About this capability

Sync CWS BTFHub constants after adding a new constantfetch offset, so pre-BTF kernels can resolve it. Use when KMT secagent jobs log "failed to fetch constant for <name>".

What this skill tells your AI

The instructions your AI receives, as published by datadog/datadog-agent in .agents/skills/cws-btfhub-sync/SKILL.md and read by ahel’s review.

A new appendOffsetofRequest in probe_ebpf.go resolves via BTF on modern kernels, but pre-BTF kernels read the offset from the checked-in, arch-split constants:

  • pkg/security/probe/constantfetch/constants_amd64.json
  • pkg/security/probe/constantfetch/constants_arm64.json

These predate your change and so lack the new entry. Regenerating them is the fix.

Run it

gh workflow run cws-btfhub-sync.yml --ref main -f base_branch=<your-feature-branch>

The trap: --ref selects the workflow definition — keep it main. base_branch is the ref the generate and combine jobs check out, and the base of the PR it opens. Leave base_branch at its main default and the generator never sees your new offset requests: the sync yields an empty diff and it looks like btfhub simply lacks the offsets.

Before running, confirm the failing distros are covered by the cone matrix in .github/workflows/cws-btfhub-sync.yml.

Wait for it

It is a ~15-job matrix and takes tens of minutes. Poll it from a background shell so the wait costs nothing and you get re-invoked on exit:

until [ "$(gh run view <run-id> --json status -q .status)" = completed ]; do sleep 60; done
gh run view <run-id> --json conclusion -q .conclusion

Do not run gh run watch in the foreground (it outlives the tool timeout) and do not chain short sleeps in the main loop. When the notification arrives, carry straight on to Land it in the same turn — this is one task, not a hand-off.

Land it

On success the workflow opens a PR titled CWS: sync BTFHub constants from a cws/constants-sync-* branch, targeting your branch:

gh pr list --search "CWS: sync BTFHub constants" --state open --json number,baseRefName,url

From the list, select the that has the baseRefName equal to this feature branch and merge it directly (gh pr merge <number> --merge); feature branches carry no protection rule, so this needs no approval.

Confirm the merged commit touches btfhub/constants.json and that your new offset names appear in the diff.

Signals

GitHub stars
4k
Forks
1k
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
cws-btfhub-sync
Source
github.com/datadog/datadog-agent