SageMaker Serving Image Selection
huggingface/skills
Chooses the right serving container and current image URI for deploying a Hugging Face model to a SageMaker endpoint, preferring Hugging Face images over generic ones.
Trigger the bot-cherry-pick workflow for a batch of merged PRs onto a release branch and monitor each run to completion.
$ npx skills add sgl-project/sglang --skill sglang-cherrypick -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sgl-project/sglang sglang-cherrypick --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/sgl-project/sglang.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/sglang-cherrypick .claude/skills/sglang-cherrypick && 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 "sglang-cherrypick" agent skill from https://github.com/sgl-project/sglang/tree/main/.agents/skills/sglang-cherrypick into .claude/skills/sglang-cherrypick/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sglang-cherrypick", 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/sgl-project/sglang/tree/main/.agents/skills/sglang-cherrypickType 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 sgl-project/sglang --skill sglang-cherrypick -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sgl-project/sglang sglang-cherrypick --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sgl-project/sglang.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/sglang-cherrypick .agents/skills/sglang-cherrypick && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sglang-cherrypick" agent skill from https://github.com/sgl-project/sglang/tree/main/.agents/skills/sglang-cherrypick into .agents/skills/sglang-cherrypick/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sglang-cherrypick", 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 sgl-project/sglang --skill sglang-cherrypick -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sgl-project/sglang sglang-cherrypick --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sgl-project/sglang.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/sglang-cherrypick .cursor/skills/sglang-cherrypick && 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 "sglang-cherrypick" agent skill from https://github.com/sgl-project/sglang/tree/main/.agents/skills/sglang-cherrypick into .cursor/skills/sglang-cherrypick/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sglang-cherrypick", 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/sgl-project/sglang.git --path .agents/skills/sglang-cherrypick--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 sgl-project/sglang --skill sglang-cherrypick -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sgl-project/sglang sglang-cherrypick --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sgl-project/sglang.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/sglang-cherrypick .gemini/skills/sglang-cherrypick && 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 "sglang-cherrypick" agent skill from https://github.com/sgl-project/sglang/tree/main/.agents/skills/sglang-cherrypick into .gemini/skills/sglang-cherrypick/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sglang-cherrypick", 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 sgl-project/sglang sglang-cherrypickInstalls 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 sgl-project/sglang --skill sglang-cherrypick -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sgl-project/sglang.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/sglang-cherrypick .github/skills/sglang-cherrypick && 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 "sglang-cherrypick" agent skill from https://github.com/sgl-project/sglang/tree/main/.agents/skills/sglang-cherrypick into .github/skills/sglang-cherrypick/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sglang-cherrypick", 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 sgl-project/sglang --skill sglang-cherrypick -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sgl-project/sglang sglang-cherrypick --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sgl-project/sglang.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/sglang-cherrypick .opencode/skills/sglang-cherrypick && 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 "sglang-cherrypick" agent skill from https://github.com/sgl-project/sglang/tree/main/.agents/skills/sglang-cherrypick into .opencode/skills/sglang-cherrypick/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sglang-cherrypick", 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.
sglang-cherrypickTrigger the bot-cherry-pick workflow for a batch of merged PRs onto a release branch and monitor each run to completion.
Sglang Cherrypick is an agent skill from sgl-project/sglang. Trigger the bot-cherry-pick workflow for a batch of merged PRs onto a release branch and monitor each run to completion. Use when an SGLang release manager asks to cherry-pick a list of PRs to a release branch.
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in AI & LLM Engineering. It works with SGLang. The repository describes itself as: SGLang is a high-performance serving framework for large language models and multimodal models. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d8c5eca. 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:
ghgitjqFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom 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.
Sglang Cherrypick loads about 4k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 1,238 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 sgl-project/sglang at commit d8c5eca, republished under its Apache-2.0 licence (© sgl-project). 1,238 words, ~4,048 tokens.
.claude/skills/sglang-cherrypick/SKILL.md (or your agent's skills folder).Trigger .github/workflows/bot-cherry-pick.yml for each PR in a list, then monitor the resulting workflow runs and report per-PR success/failure with links to the created cherry-pick PRs (or the failure reason).
/sglang-cherrypick <target_branch> <pr1> [pr2 pr3 ...]
Examples:
/sglang-cherrypick release/v0.5.7 25956 25958 25987/sglang-cherrypick release/v0.5.7 25956,25958,25987 (comma-separated also accepted)target_branch (required): Release branch in the form release/vX.Y or release/vX.Y.Z. Must already exist on origin (i.e., sgl-project/sglang).pr_numbers (required, one or more): Merged PR numbers to cherry-pick. Each must be a positive integer.Always targets the upstream repo sgl-project/sglang. The workflow's job guard (if: github.repository == 'sgl-project/sglang') means triggering it on a fork is a no-op.
Fail fast before triggering anything.
# target branch shape (matches the workflow's own validator)
[[ "$TARGET_BRANCH" =~ ^release/v[0-9]+\.[0-9]+(\.[0-9]+)?$ ]] || die "Invalid target_branch"
# branch exists on upstream
gh api "repos/sgl-project/sglang/branches/$TARGET_BRANCH" --jq '.name' >/dev/null || die "Branch not found"
# each PR is numeric, exists, MERGED, and has a recorded merge commit
declare -A PR_TO_SHA=()
declare -A PR_TO_TITLE=()
for PR in "${PRS[@]}"; do
[[ "$PR" =~ ^[0-9]+$ ]] || die "PR '$PR' is not a positive integer"
PR_JSON=$(gh pr view "$PR" --repo sgl-project/sglang --json state,mergeCommit,title) \
|| die "PR #$PR not found"
STATE=$(jq -r .state <<<"$PR_JSON")
[[ "$STATE" == "MERGED" ]] || die "PR #$PR is not MERGED (state=$STATE)"
SHA=$(jq -r '.mergeCommit.oid // empty' <<<"$PR_JSON")
[[ -n "$SHA" ]] || die "PR #$PR has no merge commit recorded"
PR_TO_SHA[$PR]="$SHA"
PR_TO_TITLE[$PR]=$(jq -r .title <<<"$PR_JSON")
doneReport any failures and stop — do not trigger partial batches.
Before dispatching any workflow, simulate each cherry-pick locally with git merge-tree to (a) show the user which files would change and (b) catch conflicts before paying for a CI run. git merge-tree --write-tree is a side-effect-free 3-way merge — it touches neither the working tree nor any ref.
2a. Locate the upstream remote (sgl-project/sglang). Both the dual-remote (upstream + origin fork) and single-remote setups need to work.
UPSTREAM_REMOTE=$(git remote -v \
| awk '$2 ~ /[:\/]sgl-project\/sglang(\.git)?$/ && $3 == "(fetch)" {print $1; exit}')
[[ -n "$UPSTREAM_REMOTE" ]] || die "No remote points to sgl-project/sglang"2b. Fetch the target branch and each PR's merge commit. Fetch the commits by SHA (in case they're not on a ref the user has locally) and the target branch in one call.
git fetch "$UPSTREAM_REMOTE" "$TARGET_BRANCH" "${PR_TO_SHA[@]}" --quiet \
|| die "Failed to fetch from $UPSTREAM_REMOTE"
TARGET_REF="refs/remotes/$UPSTREAM_REMOTE/$TARGET_BRANCH"2c. Index existing cherry-pick PRs on the target branch. One gh pr list call gets every cherry-pick PR ever filed against this branch (any state). For each input PR, we cross-reference by the title suffix (#<PR>) that the bot workflow always uses.
# Fetch all cherry-pick PRs against this branch (any state), then bucket by
# source-PR number using the title pattern "(#<source_pr>)".
EXISTING_CP_JSON=$(gh pr list --repo sgl-project/sglang \
--base "$TARGET_BRANCH" \
--label cherry-pick \
--state all \
--limit 200 \
--json number,title,url,state)
declare -A PR_TO_EXISTING_CP=() # source_pr -> JSON array of existing cherry-pick PRs
for PR in "${PRS[@]}"; do
PR_TO_EXISTING_CP[$PR]=$(jq -c \
"[.[] | select(.title | contains(\"(#${PR})\"))]" <<<"$EXISTING_CP_JSON")
doneFor each input PR, classify the existing cherry-picks:
MERGED present → the cherry-pick already landed. Skip this PR in Step 3.OPEN present (and no MERGED) → a previous dispatch is still in flight. Warn, ask the user whether to skip or re-dispatch, but default to skip (re-dispatching creates a duplicate).CLOSED (no merged, no open) → previous attempts were abandoned; safe to re-dispatch.2d. For each PR, run git merge-tree and diff the result. The semantics of cherry-pick are: 3-way-merge with base = parent of source commit, ours = target tip, theirs = source commit. For merge commits the workflow uses -m 1, which means base = first parent — ${SHA}^ resolves to ${SHA}^1 for both regular and merge commits, so one form covers both.
declare -A PR_TO_CONFLICTS=()
declare -A PR_TO_FILES=()
for PR in "${PRS[@]}"; do
SHA="${PR_TO_SHA[$PR]}"
# --write-tree: print the resulting tree SHA on success
# Exit 0 = clean merge; exit 1 = conflicts
if MERGE_OUT=$(git merge-tree --write-tree \
--merge-base="${SHA}^" \
"$TARGET_REF" "$SHA" 2>&1); then
RESULT_TREE=$(head -1 <<<"$MERGE_OUT")
PR_TO_CONFLICTS[$PR]=""
# Show files that actually differ between target tip and the merged tree.
# This is more accurate than `git show --name-status $SHA` because it
# accounts for changes already present on the release branch. As a
# side-effect, an already-cherry-picked commit shows up here as "0 files".
PR_TO_FILES[$PR]=$(git diff --name-status "$TARGET_REF" "$RESULT_TREE")
else
# Conflict output format (git ≥2.40): first line is the (partial) tree,
# remaining lines list conflicted paths and informational messages.
# We just capture and surface it; user decides what to do.
PR_TO_CONFLICTS[$PR]="$MERGE_OUT"
PR_TO_FILES[$PR]=$(git show --name-status --format= "$SHA" 2>/dev/null)
fi
done2e. Print a pre-flight report. One table summarizing each PR, followed by per-PR file lists. The "Prior cherry-pick" column uses the classification from 2c.
## Cherry-Pick Pre-Flight — `release/vX.Y.Z`
| PR | Title | Merge SHA | Prior cherry-pick | Conflicts | # files |
|--------|--------------------------|-----------|----------------------|--------------|---------|
| #25733 | [Bug] Fix V4-Pro NaN ... | 79ea30d1 | ✅ merged as #26063 | clean | 0 |
| #25562 | [bugfix] Fix wrong ... | b19052c9 | none | **CONFLICT** | — |
| #25585 | [Bugfix] Fix missing ... | 86c6c77f | none | clean | 2 |
### Files (PR #25585 — clean)
M python/sglang/srt/layers/communicator.py
M python/sglang/srt/models/deepseek_v4.py
### Conflict detail (PR #25562)
<merge-tree output: conflicted paths and reasons>2f. Gate before dispatching. Stop and report if any PR is in either of these states:
git merge-tree reports a conflict — the workflow would just fail; let the user fix or remove that PR.Only PRs that are clean AND have no merged-or-open prior cherry-pick should proceed to Step 3.
As a sanity check, a clean pre-flight that shows 0 files changed is the structural signature of "this commit is already on the branch" — if you see it without an existing merged cherry-pick PR being detected (rare, e.g. the original PR was force-merged onto the release branch directly), surface that too and skip the dispatch.
gh workflow run (gh ≥2.45) prints the dispatched run's URL on stdout — parse it directly. Fall back to the snapshot/diff polling only if the URL isn't returned (older gh).
# Snapshot once up front in case we need the fallback path.
mapfile -t SEEN < <(gh run list \
--workflow=bot-cherry-pick.yml \
--repo sgl-project/sglang \
--limit 50 \
--json databaseId --jq '.[].databaseId')
declare -A PR_TO_RUN=() # pr_number -> run_id
for PR in "${PRS[@]}"; do
DISPATCH_OUT=$(gh workflow run bot-cherry-pick.yml \
--repo sgl-project/sglang \
-f pr_number="$PR" \
-f target_branch="$TARGET_BRANCH" 2>&1) || { echo "$DISPATCH_OUT"; die "dispatch failed for PR #$PR"; }
# Preferred path: gh prints the run URL like
# https://github.com/sgl-project/sglang/actions/runs/26275460359
RUN_URL=$(grep -oE 'https://github.com/[^[:space:]]+/actions/runs/[0-9]+' \
<<<"$DISPATCH_OUT" | head -1)
RUN_ID="${RUN_URL##*/}"
# Fallback for older gh that doesn't print the URL: poll the runs list,
# filter to workflow_dispatch events we haven't seen yet.
if [[ -z "$RUN_ID" ]]; then
for _ in $(seq 1 30); do
sleep 2
CANDIDATE=$(gh run list \
--workflow=bot-cherry-pick.yml \
--repo sgl-project/sglang \
--limit 10 \
--json databaseId,event \
--jq '[.[] | select(.event=="workflow_dispatch") | .databaseId] | .[0]')
if [[ -n "$CANDIDATE" ]] \
&& ! printf '%s\n' "${SEEN[@]}" | grep -qx "$CANDIDATE" \
&& ! printf '%s\n' "${PR_TO_RUN[@]}" | grep -qx "$CANDIDATE"; then
RUN_ID="$CANDIDATE"
break
fi
done
fi
if [[ -z "$RUN_ID" ]]; then
echo "::warning::No new workflow run detected for PR #$PR within 60s"
PR_TO_RUN[$PR]="UNKNOWN"
else
PR_TO_RUN[$PR]="$RUN_ID"
fi
doneNotes:
concurrency: cherry-pick-${{ target_branch }} with cancel-in-progress: false. So multiple dispatches against the same target branch queue serially, not in parallel. That's fine — we batch the triggers and the GitHub side serializes execution.gh workflow run is fire-and-forget; the dispatched run shows up in gh run list within a few seconds.Use gh run watch per run id, sequentially (since they execute serially anyway).
for PR in "${PRS[@]}"; do
RUN_ID="${PR_TO_RUN[$PR]}"
[[ "$RUN_ID" == "UNKNOWN" ]] && continue
gh run watch "$RUN_ID" \
--repo sgl-project/sglang \
--exit-status \
--interval 15 \
>/dev/null 2>&1 || true # we read conclusion below; don't abort the loop on fail
donegh run watch blocks until the run completes. Use --interval 15 to be polite on rate limits.
For each PR, fetch the run conclusion and (if successful) the URL of the created cherry-pick PR.
for PR in "${PRS[@]}"; do
RUN_ID="${PR_TO_RUN[$PR]}"
if [[ "$RUN_ID" == "UNKNOWN" ]]; then
echo "PR #$PR: UNKNOWN (no run found)"
continue
fi
CONCLUSION=$(gh run view "$RUN_ID" --repo sgl-project/sglang \
--json conclusion,status,url \
--jq '"\(.status) \(.conclusion) \(.url)"')
STATUS=$(awk '{print $1}' <<<"$CONCLUSION")
RESULT=$(awk '{print $2}' <<<"$CONCLUSION")
RUN_URL=$(awk '{print $3}' <<<"$CONCLUSION")
if [[ "$RESULT" == "success" ]]; then
# Find the cherry-pick PR created by this run. Title format from the workflow:
# "[Cherry-pick to <BRANCH>] <ORIG TITLE> (#<PR>)"
CP_PR=$(gh pr list --repo sgl-project/sglang \
--base "$TARGET_BRANCH" \
--label cherry-pick \
--state all \
--limit 30 \
--json number,title,url,createdAt \
--jq "[.[] | select(.title | contains(\"(#${PR})\"))][0]")
CP_URL=$(jq -r '.url // "N/A"' <<<"$CP_PR")
CP_NUM=$(jq -r '.number // "?"' <<<"$CP_PR")
echo "PR #$PR -> SUCCESS cherry-pick PR #$CP_NUM ($CP_URL) [run: $RUN_URL]"
else
# Failure: pull the cherry-pick step's last error line so the user sees why.
REASON=$(gh run view "$RUN_ID" --repo sgl-project/sglang --log-failed 2>/dev/null \
| grep -m1 -E "::error::" \
| sed -E 's/^[^:]*::error::?//' \
|| echo "(see run logs)")
echo "PR #$PR -> $RESULT reason: $REASON [run: $RUN_URL]"
fi
donePrint one table sorted by input order:
## Cherry-Pick Batch Summary — `release/v0.5.7`
| PR | Status | Cherry-pick PR | Run | Notes |
|-----|----------|----------------|-----|-------|
| #25956 | success | #26031 | run/12345 | — |
| #25958 | failure | — | run/12346 | Cherry-pick of <SHA> onto release/v0.5.7 failed due to conflicts |
| #25987 | success | #26032 | run/12347 | — |
**Totals:** N succeeded, M failed, K unknown.For any failure, suggest the manual fallback from the workflow's own error message:
Resolve locally:
git checkout release/v0.5.7 && git cherry-pick <SHA>, fix conflicts, push a branch, and open the PR by hand.
| Symptom | Cause | Action |
|---|---|---|
PR #X is not merged (state=OPEN) | PR not yet merged | Wait for merge or pass --commit-sha (not supported by this slash command) |
Target branch '...' does not exist | Typo or branch not cut yet | Confirm branch name; release manager may not have cut it |
Cherry-pick of <SHA> onto <BRANCH> failed due to conflicts | Code drift on release branch (should already have been caught in Step 2 pre-flight) | Do it manually as instructed above |
Pre-flight git merge-tree reports a conflict | Same as above, caught locally before any CI run | Remove that PR from the batch and resolve manually |
No remote points to sgl-project/sglang | Skill invoked from a checkout that only has a fork remote | Add the upstream remote: git remote add upstream https://github.com/sgl-project/sglang.git |
Pre-flight git merge-tree errors with unknown option | git < 2.38 | Upgrade git, or run the skill on a machine with a modern git |
Pre-flight reports Prior cherry-pick: merged as #N | The PR has already been cherry-picked and merged onto this release branch | Skip this PR — re-dispatching would create a duplicate PR. Verify #N is the right one before removing from the list. |
Pre-flight reports Prior cherry-pick: OPEN as #N | A previous dispatch is still in flight (PR not yet merged or closed) | Default: skip and ask the user to land or close #N first. Re-dispatching creates a parallel duplicate that needs to be cleaned up afterwards. |
Pre-flight is clean but # files = 0 and no prior cherry-pick PR was found | Commit landed on the release branch by direct merge (not via the bot), or via a rebase that rewrote the SHA | Skip the dispatch — the change is already there. Surface this anomaly so the user knows the bot wasn't the source. |
| Multiple runs but only one detected | Two dispatches landed in the same gh run list poll cycle | Re-run for the missing PR, or look up its run by hand: gh run list --workflow=bot-cherry-pick.yml --event workflow_dispatch -L 20 |
403 on gh workflow run | Missing actions:write on the token | Use a token that has workflow dispatch rights on sgl-project/sglang |
sgl-project/sglang); the user's fork is irrelevant here.gh auth status already passing; if not, surface the auth error and stop.© sgl-project, 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/sglang-cherrypick of sgl-project/sglang.
Open the folder on GitHubat commit d8c5eca
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in sgl-project/sglang, which our catalogue first saw on October 7, 2026.
Sglang Cherrypick 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 |
|---|---|---|---|---|---|---|
| Sglang Cherrypick this skillsgl-project/sglang | 37k | 2 repos | ~4k | Automated safety check: Pass | Apache-2.0 | |
| SageMaker Serving Image Selectionhuggingface/skills | 11k | 1 repos | ~4.6k | Automated safety check: Pass | Apache-2.0 | |
| Clean Startup Logguqiong96/Lsglang | 144 | 1 repos | ~4.5k | Automated safety check: Pass | Apache-2.0 | |
| Gptqmodel Tokenizer NormalizationModelCloud/GPTQModel | 1.3k | — | ~1.1k | Automated safety check: Pass | Custom licence | |
| slime RL Post-TrainingOrchestra-Research/AI-Research-SKILLs | 13k | 4 repos | ~2.8k | Automated safety check: Pass | MIT | |
| SGLang Structured ServingOrchestra-Research/AI-Research-SKILLs | 13k | 2 repos | ~2.9k | Automated safety check: Pass | MIT |
huggingface/skills
Chooses the right serving container and current image URI for deploying a Hugging Face model to a SageMaker endpoint, preferring Hugging Face images over generic ones.
guqiong96/Lsglang
Clean up noisy startup warnings and spurious prints in SGLang server logs.
ModelCloud/GPTQModel
Diagnose and correct GPT-QModel tokenizer initialization, tokenization normalization, special-token handling, prompt rendering, and chat-template problems.
Orchestra-Research/AI-Research-SKILLs
Guides reinforcement-learning post-training of LLMs with slime, which pairs Megatron-LM training with SGLang rollouts, including GRPO runs on GLM, Qwen3 and Llama 3 models.
Orchestra-Research/AI-Research-SKILLs
Covers serving LLMs with SGLang, whose RadixAttention reuses cached prefixes, and constraining output to JSON, regex or grammar for agent and tool-calling workloads.
Orchestra-Research/AI-Research-SKILLs
Trains LLMs with reinforcement learning using verl, from ByteDance's Seed team, with GRPO, PPO and other algorithms and swappable training and rollout backends.
sgl-project/sglang
Replay-first debug flow for SGLang serving problems. An agent skill from sgl-project/sglang.
sgl-project/sglang
Unified LLM torch-profiler triage skill for sglang, vllm, TensorRT-LLM, and TokenSpeed.
sgl-project/sglang
Start and persistently pursue a goal to babysit an SGLang pull request until selected GitHub Actions workflows pass on the latest PR head.
sgl-project/sglang
Compute the optimal --mamba-full-memory-ratio (or --max-mamba-cache-size pin) for a hybrid attention + linear-attention (Mamba / GDN / KDA) model's two serving memory pools, from the workload and…
sgl-project/sglang
Debug hanging issues in SGLang distributed inference (TP/PP/DP/EP).
sgl-project/sglang
Conventions for SGLang environment variables — where to define, how to access, how to name, and how to deprecate.
Works with
Categories
Trigger the bot-cherry-pick workflow for a batch of merged PRs onto a release branch and monitor each run to completion. Sglang Cherrypick is an agent skill from sgl-project/sglang. Trigger the bot-cherry-pick workflow for a batch of merged PRs onto a release branch and monitor each run to completion.
Sglang Cherrypick fits situations like: the bot-cherry-pick workflow for a batch of merged PRs onto a release branch and monitor each run to completion; an SGLang release manager asks to cherry-pick a list of PRs to a release branch.
Run `npx skills add sgl-project/sglang --skill sglang-cherrypick -a claude-code`. Or copy the skill folder (.agents/skills/sglang-cherrypick in sgl-project/sglang) into .claude/skills/sglang-cherrypick in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sgl-project/sglang --skill sglang-cherrypick -a codex`. Or copy the skill folder (.agents/skills/sglang-cherrypick in sgl-project/sglang) into .agents/skills/sglang-cherrypick 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 sgl-project/sglang --skill sglang-cherrypick -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sglang-cherrypick, .gemini/skills/sglang-cherrypick, .github/skills/sglang-cherrypick and .opencode/skills/sglang-cherrypick in your project.
Going by SKILL.md and its folder, Sglang Cherrypick needs the command-line tools its instructions call (gh, git and jq).
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. 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.
Sglang Cherrypick 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 4k tokens (SKILL.md is roughly 16k 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 Sglang Cherrypick: SageMaker Serving Image Selection (huggingface/skills, 11k stars), Clean Startup Log (guqiong96/Lsglang, 144 stars), Gptqmodel Tokenizer Normalization (ModelCloud/GPTQModel, 1.3k stars) and slime RL Post-Training (Orchestra-Research/AI-Research-SKILLs, 13k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sgl-project (a GitHub organization) maintains it in sgl-project/sglang, which has 36,949 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 10, 2026.
Source: sgl-project/sglang on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.