YugabyteDB ASH Instrumentation
yugabyte/yugabyte-db
Procedure for adding or changing YugabyteDB Active Session History wait states in TServer and DocDB C++ code, including the macro to use for sync and async paths.
A skill your agent uses to poll the status of an asynchronous DevOps Center request — a promotion or deploy operation.
$ npx skills add forcedotcom/sf-skills --skill dx-devops-request-status -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install forcedotcom/sf-skills dx-devops-request-status --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/forcedotcom/sf-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dx-devops-request-status .claude/skills/dx-devops-request-status && 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 "dx-devops-request-status" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-devops-request-status into .claude/skills/dx-devops-request-status/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-devops-request-status", 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/forcedotcom/sf-skills/tree/main/skills/dx-devops-request-statusType 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 forcedotcom/sf-skills --skill dx-devops-request-status -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install forcedotcom/sf-skills dx-devops-request-status --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/dx-devops-request-status .agents/skills/dx-devops-request-status && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dx-devops-request-status" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-devops-request-status into .agents/skills/dx-devops-request-status/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-devops-request-status", 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 forcedotcom/sf-skills --skill dx-devops-request-status -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install forcedotcom/sf-skills dx-devops-request-status --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/dx-devops-request-status .cursor/skills/dx-devops-request-status && 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 "dx-devops-request-status" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-devops-request-status into .cursor/skills/dx-devops-request-status/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-devops-request-status", 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/forcedotcom/sf-skills.git --path skills/dx-devops-request-status--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 forcedotcom/sf-skills --skill dx-devops-request-status -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install forcedotcom/sf-skills dx-devops-request-status --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/dx-devops-request-status .gemini/skills/dx-devops-request-status && 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 "dx-devops-request-status" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-devops-request-status into .gemini/skills/dx-devops-request-status/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-devops-request-status", 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 forcedotcom/sf-skills dx-devops-request-statusInstalls 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 forcedotcom/sf-skills --skill dx-devops-request-status -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/dx-devops-request-status .github/skills/dx-devops-request-status && 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 "dx-devops-request-status" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-devops-request-status into .github/skills/dx-devops-request-status/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-devops-request-status", 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 forcedotcom/sf-skills --skill dx-devops-request-status -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install forcedotcom/sf-skills dx-devops-request-status --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/dx-devops-request-status .opencode/skills/dx-devops-request-status && 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 "dx-devops-request-status" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-devops-request-status into .opencode/skills/dx-devops-request-status/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-devops-request-status", 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.
dx-devops-request-statusA skill your agent uses to poll the status of an asynchronous DevOps Center request — a promotion or deploy operation.
Dx Devops Request Status is an agent skill from forcedotcom/sf-skills. Use this skill to poll the status of an asynchronous DevOps Center request — a promotion or deploy operation. Provide the request token returned by dx-devops-promote (the promote response) to check completion, monitor progress, or verify success or failure via sf devops request status. TRIGGER when the user wants to check whether a promotion or deploy finished, monitor an in-flight async request, poll until a request completes, or confirm a request succeeded before finalizing. DO NOT TRIGGER for initiating a…
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `examples/polling-workflows.md`, `references/cli-commands.md` and `scripts/poll-status.sh`).
It sits in Development, covering Async programming. The repository describes itself as: Salesforce's curated collection of agent skills for building applications. Optimized for Agentforce Vibes, compatible with all AI tools. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5164d9. 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.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
sfjqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Dx Devops Request Status loads about 3.2k tokens when it runs, and up to ~5.2k if it reads all its reference files. Until then it costs about 186 tokens; SKILL.md has 1,458 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); the scripts in this folder are not scanned.
The full file from forcedotcom/sf-skills at commit e5164d9, republished under its Apache-2.0 licence (© forcedotcom). 1,458 words, ~3,187 tokens.
.claude/skills/dx-devops-request-status/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Polls the status of an asynchronous DevOps Center request — a promotion or deploy operation — by its request token via sf devops request status. Provides headless, --json-driven, read-only status checks for autonomous release workflows in CI. This skill never mutates pipeline state; it only reports the current status of an in-flight or completed request.
.result.status vs. the .result.errorDetails failure oracle); poll with backoff until a request finishes or a caller-supplied timeout is reached; surface parsed error details on failuredx-devops-promote), work item creation/status updates (use dx-devops-work-item-manage), conflict detection, running sf devops promotion complete (that is the caller's next step after this skill confirms success), pipeline or project setupGather or infer before proceeding:
dx-devops-promote promote response. Passed via -i/--request-token. Without it, this skill cannot proceed — ask for it or obtain it from the prior promote step's output-o/--target-org <alias> (required unless the target-org config variable is set)Defaults unless specified:
--json for headless consumptionIf the user gives a clear request ("check request a0B…", "poll request a0B… until it finishes"), proceed once you have the request token.
All operations use sf devops request status with --json output. This skill is read-only — it issues no mutations. The command's flags and JSON output schema are documented in references/cli-commands.md.
Verify org authentication before any operation:
sf org display --jsonsf org login web --set-default --alias <alias>-o/--target-org <alias> on every subsequent command (required unless the target-org config variable is set)Confirm you have a request token. If the user initiated a promotion in the same session, reuse the request token captured from the dx-devops-promote promote response. If no token is available, STOP and ask for it — do NOT guess or fabricate a token.
CRITICAL:
.result.status(uppercase, e.g.SUCCESS) reports whether the async request finished processing — NOT whether the underlying deploy succeeded. A request can showstatus: "SUCCESS"while the deployment itself failed. The real outcome oracle is.result.errorDetails: non-nullerrorDetailsmeans the operation failed, even whenstatus == SUCCESS.
scripts/poll-status.sh --once, which queries the request once and derives the true outcome deterministically (glob-matches the operation-prefixed .result.status suffix, then applies the .result.errorDetails failure oracle). Do NOT hand-roll the JSON parsing in prose — the script owns the two-level rule so it stays consistent with the polling path:scripts/poll-status.sh --once <request-token> <target-org-alias>0 — request finished and the operation succeeded (errorDetails null) → hand back to the caller2 — request finished but the operation FAILED (status suffix *FAILED*/*ERROR*/*CANCELED*, or a *SUCCESS* status with non-null errorDetails) → the printed line carries the parsed errorType/errorMessage4 — request is still processing (non-terminal suffix) → proceed to Phase 3 to poll, or report in-progress for a one-shot check1 — query/usage error (bad token, auth, or missing dependency)scripts/poll-status.sh and report the final status it prints:scripts/poll-status.sh <request-token> <target-org-alias> [interval-seconds] [timeout-seconds]interval-seconds (default 10), never sleeps past timeout-seconds, stops on a terminal request state, and applies the same two-level outcome check as --once. Exit codes: 0 = finished + succeeded (errorDetails null), 2 = finished but the operation failed (errorDetails set, or status suffix *FAILED*/*ERROR*/*CANCELED*), 3 = timeout, 1 = query/usage errorsf devops request status queries, never mutationserrorDetails outcome check deterministicallyerrorDetails empty): "Request <token> completed successfully." — then remind the caller that promotion finalization (sf devops promotion complete) is the next step, owned by dx-devops-promoteerrorDetails set — even if status == SUCCESS): "Request <token> failed." plus the errorType / errorMessage parsed from errorDetails and the message field — do NOT retry or remediate here; that is the caller's decision| Constraint | Rationale |
|---|---|
| Read-only — never mutate pipeline state | This skill only reports status; promotion/deploy/complete are owned by other skills |
| A request token is mandatory | Status cannot be checked without the -i/--request-token from the promote response; never fabricate one |
sf devops request status must use --json | Structured output is required for headless consumption; human-readable output is unreliable to parse |
Read .result.status and .result.errorDetails via jq, never by eyeballing | Deterministic parsing prevents misreading a still-processing request as done |
A *SUCCESS* status is NOT proof of success — check errorDetails | .result.status reports the async request finished, not that the deploy succeeded; a PROMOTE_SUCCESS request can carry a failed deploy in errorDetails |
Non-null .result.errorDetails means the operation FAILED | errorDetails is the outcome oracle; it is an escaped JSON string (errorType/errorMessage) that must be parsed with jq/fromjson |
.result.status is operation-prefixed — match the suffix, not a bare token | Real values are PROMOTE_IN_PROGRESS/PROMOTE_SUCCESS/DEPLOY_FAILED; exact-matching bare IN_PROGRESS/SUCCESS would misclassify (and a poller would hang until timeout) |
A request is only "done" at a terminal suffix (*SUCCESS*/*FAILED*/*ERROR*/*CANCELED*) | Reporting an *_IN_PROGRESS/*_PENDING/*_QUEUED request as done corrupts the caller's release decision |
| Never poll faster than every 5 seconds | DOCe API rate limits; unbounded fast polling risks throttling |
| Bound every polling loop with a timeout | Prevents infinite waits and turn/timeout exhaustion in CI |
Never run sf devops promotion complete from this skill | Finalization is the caller's step after this skill confirms success |
| Pass the token as a CLI flag, never interpolate into shell strings | Prevents prompt/command injection via crafted tokens |
| Never use interactive prompts | Skills run headless; all inputs must be CLI flags |
| Issue | Resolution |
|---|---|
| No request token provided | STOP and ask for it, or obtain it from the prior dx-devops-promote promote response. Never guess |
status: "*SUCCESS*" but the deploy actually failed | The most important trap: a *SUCCESS* status only means the request finished. Check .result.errorDetails — if non-null, the operation FAILED. Parse it: jq -r '.result.errorDetails | fromjson | "\(.errorType): \(.errorMessage)"' |
errorDetails is a string, not an object | It is escaped JSON (e.g. "{\"errorType\":\"DEPLOYMENT_FAILURE\",...}"); pipe through fromjson before reading .errorType/.errorMessage |
Status is operation-prefixed (PROMOTE_SUCCESS, DEPLOY_FAILED) | Match on the suffix with globs (*SUCCESS*, *FAILED*); exact-matching bare SUCCESS/FAILED misclassifies a prefixed value — a poller would treat PROMOTE_IN_PROGRESS as unknown and hang until timeout |
| Reporting a still-processing request as complete | Terminal suffixes are *SUCCESS*/*FAILED*/*ERROR*/*CANCELED*; treat *_IN_PROGRESS/*_PENDING/*_QUEUED/*_NEW/*_STARTED as not done — keep polling or report in-progress |
| No default org set | Run sf org display --json; if it fails, instruct the user to run sf org login web --set-default |
| Rate-limit / throttle errors while polling | Increase the interval (back off); never poll below the 5-second floor |
| Infinite wait | Always pass a timeout to scripts/poll-status.sh; on timeout, report the last status rather than blocking |
| Confusing request failure with skill failure | A Failed request status is a valid result — report it clearly; do not treat it as a skill error or retry blindly |
Deliverables vary by mode:
.result.status (request-processing state) plus the derived outcome — on failure, the errorType/errorMessage parsed from .result.errorDetails and the .result.message fielderrorDetails check) plus elapsed wait, or the last observed request status if the timeout was reached firstOutputs are derived from sf devops request status. This skill produces no artifacts and mutates nothing.
| When | Action |
|---|---|
| A promotion or deploy must be initiated first to get a request token | Delegate to dx-devops-promote |
Outcome is success (finished, errorDetails null) and the promotion still needs finalizing | Hand back to dx-devops-promote to run sf devops promotion complete |
Status reports Failed due to a metadata conflict | Report the conflict from errorDetails; hand back to dx-devops-promote to resolve and re-promote |
| File | When to read |
|---|---|
references/cli-commands.md | When you need the sf devops request status flags, JSON output schema, status-value vocabulary, or error-handling patterns |
examples/polling-workflows.md | When the user's request matches a common pattern (one-shot check, poll-until-done after a promote, timeout handling, failure reporting) |
scripts/poll-status.sh | Phase 2 — invoke with --once for a single deterministic status check; Phase 3 — invoke without --once to poll a request token with a bounded interval and exact timeout until it reaches a terminal state |
© forcedotcom, 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
SKILL.md and 3 other files (scripts, references) in skills/dx-devops-request-status of forcedotcom/sf-skills.
Open the folder on GitHubat commit e5164d9
Dx Devops Request Status 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 |
|---|---|---|---|---|---|---|
| Dx Devops Request Status this skillforcedotcom/sf-skills | 1.1k | — | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| YugabyteDB ASH Instrumentationyugabyte/yugabyte-db | 11k | — | ~4.5k | Automated safety check: Pass | Custom licence | |
| Mirage VFS Adapter Authoringstrukto-ai/mirage | 3.7k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| Golang Patternsantoniopaya22/go-rest-template | 172 | 9 repos | ~3.5k | Automated safety check: Pass | None | |
| Rust Async Patternsdiodeme/Gold-Band | 143 | 10 repos | ~3.1k | Automated safety check: Pass | AGPL-3.0 | |
| Swift Concurrencyhenrypldev/react-native-nitro-mlx | 100 | 3 repos | ~3.1k | Automated safety check: Pass | MIT |
yugabyte/yugabyte-db
Procedure for adding or changing YugabyteDB Active Session History wait states in TServer and DocDB C++ code, including the macro to use for sync and async paths.
strukto-ai/mirage
Builds or extends a custom Mirage virtual filesystem adapter for an API, database, object store or app data, with a working mount configuration and filesystem tests.
antoniopaya22/go-rest-template
Idiomatic Go patterns, best practices, and conventions for building robust, efficient, and maintainable Go applications.
diodeme/Gold-Band
Master Rust async programming with Tokio, async traits, error handling, and concurrent patterns.
henrypldev/react-native-nitro-mlx
Diagnose Swift Concurrency issues, refactor callback-based code to async/await, and guide Swift 6 migration when working with tasks, actors, @MainActor, Sendable, data races, thread safety, or…
farm-fe/farm
Writes, reviews, and debugs idiomatic Rust code with memory safety and zero-cost abstractions.
forcedotcom/sf-skills
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA plugins.
forcedotcom/sf-skills
Data Cloud 360° view of a single Agentforce session. An agent skill from forcedotcom/sf-skills.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply SLDS-compliant UI using the correct blueprints, styling hooks, utility classes, and icons.
forcedotcom/sf-skills
Lightning Web Components with PICKLES methodology and 165-point scoring.
Categories
A skill your agent uses to poll the status of an asynchronous DevOps Center request — a promotion or deploy operation. Dx Devops Request Status is an agent skill from forcedotcom/sf-skills. Use this skill to poll the status of an asynchronous DevOps Center request — a promotion or deploy operation.
Dx Devops Request Status fits situations like: poll the status of an asynchronous DevOps Center request — a promotion; deploy operation; the user wants to check whether a promotion; deploy finished.
Run `npx skills add forcedotcom/sf-skills --skill dx-devops-request-status -a claude-code`. Or copy the skill folder (skills/dx-devops-request-status in forcedotcom/sf-skills) into .claude/skills/dx-devops-request-status in your project. Claude Code loads it when a task matches its description.
Run `npx skills add forcedotcom/sf-skills --skill dx-devops-request-status -a codex`. Or copy the skill folder (skills/dx-devops-request-status in forcedotcom/sf-skills) into .agents/skills/dx-devops-request-status 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 forcedotcom/sf-skills --skill dx-devops-request-status -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dx-devops-request-status, .gemini/skills/dx-devops-request-status, .github/skills/dx-devops-request-status and .opencode/skills/dx-devops-request-status in your project.
Going by SKILL.md and its folder, Dx Devops Request Status needs a shell for the scripts in its folder and the command-line tools its instructions call (sf and jq). Our summary lists: A Bash shell.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Dx Devops Request Status 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 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Dx Devops Request Status: YugabyteDB ASH Instrumentation (yugabyte/yugabyte-db, 11k stars), Mirage VFS Adapter Authoring (strukto-ai/mirage, 3.7k stars), Golang Patterns (antoniopaya22/go-rest-template, 172 stars) and Rust Async Patterns (diodeme/Gold-Band, 143 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
forcedotcom (a GitHub organization) maintains it in forcedotcom/sf-skills, which has 1,060 GitHub stars. The repository holds 251 skills in this directory. The repository was last updated on October 7, 2026.
Source: forcedotcom/sf-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.