Agent skill

Synthesize User Workload

by ai-dynamo in ai-dynamo/dynamo

Synthesizes a canonical userworkload.yaml and captures the user's immutable DynamoGraphDeployment from an optimization user's initial request, attachments, and minimal follow-up interview.

Apache-2.0Auto-check passedDevOps & Cloud

Install Synthesize User Workload

skills CLI
$ npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ai-dynamo/dynamo synthesize-user-workload --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/synthesize-user-workload .claude/skills/synthesize-user-workload && rm -rf skills-src

Use ~/.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/

Facts

Skill name
synthesize-user-workload
GitHub stars
8.3k
Token cost
~3k tokens
SKILL.md length
1,564 words
Files
2
Skills in repo
27
Repo updated
First seen
Licence
Apache-2.0

At a glance

Synthesizes a canonical userworkload.yaml and captures the user's immutable DynamoGraphDeployment from an optimization user's initial request, attachments, and minimal follow-up interview.

  • Works in 2 steps: Preserve all explicit user constraints… → Record the exact canonical DGD path and…
  • DevOps & Cloud work in your project
  • SKILL.md covers Inputs, Extract Before Asking, Interview Minimally and Establish The Experiment Root, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Synthesize User Workload is an agent skill from ai-dynamo/dynamo. Synthesizes a canonical userworkload.yaml and captures the user's immutable DynamoGraphDeployment from an optimization user's initial request, attachments, and minimal follow-up interview. Use as the first skill in a new Dynamo recipe optimization run, or to validate supplied workload and DGD inputs before deployment or benchmarking.

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in DevOps & Cloud. The repository describes itself as: A Datacenter Scale Distributed Inference Serving Framework. The licence is Apache-2.0.

When your agent uses it

  • DevOps & Cloud work in your project

Example prompts

  • “s immutable DynamoGraphDeployment from an optimization user”
  • “Use the synthesize-user-workload skill to synthesiz a canonical userworkload.yaml and captures the user's immutable DynamoGraphDeployment from an…”
  • “/synthesize-user-workload”

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Preserve all explicit user constraints without rounding or reinterpretation.
  2. Record the exact canonical DGD path and SHA256 under deployment, plus origin and origin_source

What it can do on your machine

Read from SKILL.md and the folder at commit f54f2a4. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Synthesize User Workload loads about 3k tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 1,564 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~90
When it runs · the whole SKILL.md, loaded when a task matches
~3k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from ai-dynamo/dynamo at commit f54f2a4, republished under its Apache-2.0 licence (© ai-dynamo). 1,564 words, ~2,976 tokens.

Download SKILL.mdSave it as .claude/skills/synthesize-user-workload/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
synthesize-user-workload
description
Synthesizes a canonical user_workload.yaml and captures the user's immutable DynamoGraphDeployment from an optimization user's initial request, attachments, and minimal follow-up interview. Use as the first skill in a new Dynamo recipe optimization run, or to validate supplied workload and DGD inputs before deployment or benchmarking.
license
Apache-2.0
metadata.author
NVIDIA
metadata.tags
dynamo, workload, interview, optimization

Synthesize User Workload

<!--
SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
-->

Create the durable workload contract and user-provided baseline DGD that every later optimization role receives. Do not search for or select a recipe, deploy, benchmark, or propose tuning changes.

Inputs

Require:

  • the user's initial optimization request exactly as received;
  • the user-provided DGD as an attachment, local file path, or pasted YAML, when one exists; otherwise the ladder-confirmed baseline manifest handed over by user-interviewer with its confirmation record;
  • any attached workload descriptions, traces, or other local file paths;
  • an optional caller-supplied EXP_ID or EXP_ROOT; and
  • an existing user_workload.yaml only when the user is refining the interview before downstream work begins.

Read agent-docs/rules/execution/user-workload.md, agent-docs/rules/execution/run-artifacts.md, and agent-docs/references/definitions.md before interviewing or writing the file.

Extract Before Asking

Build a fact table from the initial request and attachments. Record only facts the user supplied or that a referenced artifact proves. Keep the source of each fact while interviewing, but do not copy private conversation text into the final YAML.

Resolve these blocking fields:

  • one concrete baseline DynamoGraphDeployment: either user-provided, or produced by the baseline-source ladder (agents/user-interviewer/AGENTS.md) and explicitly confirmed by the user;
  • workload profile name, type, and a concrete description of the serving traffic;
  • exact model source and revision when the user fixes one, plus the fallback policy when the requested revision may be unsupported by the available engine or weights (fall back to a named alternative and mark the target blocked, or halt);
  • the user's current production deployment configuration when one exists (path or paste): it anchors every later comparison and seeds topology priors; when unavailable, record that explicitly as a known comparison limitation;
  • allowed hardware type and count, including heterogeneous allocations;
  • Kubernetes context and existing namespace; and
  • either an exact trace or enough traffic-shape information to configure a defensible benchmark. A parametric description is a first-class option between presets and traces: AIPerf synthesizes static shapes (ISL/OSL mean and stddev, prefix reuse via the prefix-prompt pool and length controls) and multiturn sessions (session count, turns per session mean/stddev, per-turn delay) in a single command — offer "describe your workload" whenever the user has neither a matching preset nor a trace, and record the elicited parameters in the contract.

Objectives, SLOs, framework, precision, topology, storage class, and exact token or load values may remain unspecified when the user explicitly has no constraint or preference. Represent those values with the schema's empty value; do not invent defaults.

Interview Minimally

Ask only for blocking facts that remain unknown or contradictory after reading all supplied context.

  • Group related questions into one concise turn.
  • Prefer a bounded choice only when the available choices are supported by the repository or user context.
  • Explain why a requested fact blocks DGD handoff or reproducible measurement.
  • Accept natural-language answers; do not make the user author YAML.
  • Do not ask for secret values, kubeconfig contents, registry credentials, or Kubernetes Secret data.
  • Do not add a ceremonial confirmation round when the user's message already provides an unambiguous value.
  • When the user supplies resource limits — a ceiling on total concurrent GPU use, or knobs they forbid changing — record them in the contract's resources block. Ask about limits only when the run's scope makes them blocking (for example, when architectural changes such as replica scaling or disaggregation are in scope and the ceiling determines what may be proposed). Candidates run serially under the current iteration model; parallel candidate execution is not supported.
  • If the user has not stated budgets, ask for them in the same interview batch — GPU-hours, wall clock, and failed-deploy limit — proposing sensible defaults for this engagement's scope; record the answers verbatim in the contract's budgets block, and null for any limit the user declines to state (a null budget leaves that limit ungated).
  • When the user's production deployment shape differs from the unit under test (for example, fleet-level traffic numbers but a single-replica test deployment), derive the per-unit load explicitly and confirm it with the user before recording it.

Before writing the contract, enumerate every fact the downstream roles (deployer, benchmarker, hypothesis loop, analyzer) will require, and ask all still-missing ones in the single upfront batch: a question that first surfaces after the optimization loop has started is an interview defect. Record any fact the user defers as an explicit assumption in the contract so the loop can proceed non-blockingly.

If blocking facts remain, return the questions to the parent and stop without handing work to a downstream role.

Establish The Experiment Root

Use the exact caller-supplied EXP_ROOT when present. Otherwise create one unused directory under runs/ using a stable, filesystem-safe EXP_ID derived from the UTC creation timestamp and workload profile slug. Never reuse or overwrite an existing experiment directory.

The user interviewer owns creation of EXP_ROOT; downstream roles must receive its exact path rather than infer it from directory order or modification time. Create <EXP_ROOT>/manifest.yaml alongside it with the session metadata run-artifacts.md defines (timestamps, repo commit, cluster context name, agent versions when known).

Capture The User-Provided DGD

Create the canonical baseline input:

text
<EXP_ROOT>/inputs/user_provided_dgd.yaml
  • When the user supplies a file, copy its bytes without editing the source or canonical copy.
  • When the user pastes YAML, materialize that YAML without changing its configuration.
  • When the baseline came from the ladder (rung 2 adapted recipe or rung 3 authored draft), materialize the exact manifest the user confirmed - byte-for-byte as confirmed, including any user amendments - and record the matching origin and origin_source.
  • Parse the canonical copy as YAML and require exactly one mapping document whose kind is DynamoGraphDeployment; reject a file containing zero or multiple such documents, since a multi-DGD file leaves recipe-deployer without a deterministic baseline.
  • Reject embedded secret values or Kubernetes Secret resources; references to pre-existing Secret names are allowed.
  • Reject a recipe directory, catalog choice, generated substitute, or inferred default in place of the user's DGD. A specific manifest the user explicitly presents OR confirms as their baseline is a user-provided baseline, whatever its origin; the rejection targets substitutes the user never confirmed. Record the provenance in the contract: deployment.origin (user, recipe-confirmed, or agent-authored) and deployment.origin_source per the schema.
  • Do not patch cluster compatibility or performance settings during capture.
  • Compute the canonical copy's SHA256 before writing the workload contract.
  • If the DGD contradicts an explicit workload constraint, return the contradiction as a blocking question; do not silently choose which input wins.

Never overwrite the canonical DGD after it is captured. A changed user DGD starts a new experiment.

Show full SKILL.md (509 more words)Show less

Write And Validate The Workload

Write exactly:

text
<EXP_ROOT>/user_workload.yaml

Follow the schema and rules in agent-docs/rules/execution/user-workload.md.

Before finalizing:

  1. Preserve all explicit user constraints without rounding or reinterpretation.
  2. Record the exact canonical DGD path and SHA256 under deployment, plus origin and origin_source (provenance of the confirmed baseline). 2a. Record the user's stated budgets (GPU-hours, wall clock, failed-deploy limit) under budgets, verbatim; leave each null when the user declined to state one.
  3. Represent permitted unknowns as null, "", or [] according to the schema.
  4. Resolve supporting artifact paths beneath the expected filesystem and verify each existing local path.
  5. Parse the result as YAML and require exactly one mapping document.
  6. Require every local supporting path to exist, unless the user explicitly identified it as a future input.
  7. Reject secret values and sensitive kubeconfig content.
  8. Ensure no DGD body, deployment result, or optimization hypothesis appears in the file.
  9. Compute the final file's SHA256.

Do not overwrite the contract after handoff to recipe-deployer. A different performance question may use a new benchmark series within this contract; a material change to the user workload requires a new experiment root.

Contract Corrections

A correction of fact is the user fixing a misreported description of the same workload (a wrong traffic number, a fleet-level figure that should have been per-replica, a mistaken SLO value).

Before handoff to recipe-deployer: the contract is still this skill's working file; amend it, note the correction inline, and recompute its SHA256.

After handoff: the contract and its hash are frozen and historical artifacts reference them; do not mutate either. Instead:

  1. Start a new experiment root via this skill, carrying the corrected values forward and re-capturing the canonical DGD copy there.
  2. Write one append-only supersedence marker in the old root, <OLD_EXP_ROOT>/SUPERSEDED, recording the corrected field(s), the reason, the timestamp, and the new EXP_ROOT. Do not edit or delete any other artifact in the old root: its runs remain valid evidence about the conditions they actually measured.
  3. Re-establish the baseline in the new root before proposing any candidate. Prior conclusions do not carry over; they may be cited as evidence about the superseded conditions.

This makes a post-handoff correction operationally identical to a material workload change (both open a new root); the distinction is recorded by the SUPERSEDED marker, not by editing frozen files.

Return

Return:

  • exact EXP_ID and EXP_ROOT;
  • exact user_workload.yaml path and SHA256;
  • exact user_provided_dgd.yaml path and SHA256;
  • a concise summary of fixed constraints and intentionally unspecified preferences; and
  • any non-blocking limitations downstream roles must preserve.

The user interviewer hands both path-and-hash pairs directly to recipe-deployer. The workload path and hash remain supporting context for perf-analyzer, hypothesis-generator, and hypothesis-challenger.

End with an operator handoff line before any deployment starts: state that the interview is complete, give the contract path, and tell the operator that the engagement now runs a long unattended loop — without goal mode the session pauses for input at every turn end — and that this is the moment to arm it (AGENTS.md, Long-Running Runs, has the condition template; fill in the budget).

© ai-dynamo, 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

Files

SKILL.md and 1 other file in .agents/skills/synthesize-user-workload of ai-dynamo/dynamo.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit f54f2a4

Compare with similar skills

Synthesize User Workload 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.

Synthesize User Workload compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Synthesize User Workload this skillai-dynamo/dynamo8.3k—~3kAutomated safety check: PassApache-2.0
Agent Lightningmicrosoft/agent-lightning19k—~1.7kAutomated safety check: PassMIT
Megatron-LM Base Image BumpNVIDIA/Megatron-LM18k—~2.8kAutomated safety check: PassApache-2.0
Caveman Gateway SetupJuliusBrussee/caveman111k1 repos~2.6kAutomated safety check: WarnApache-2.0
SageMaker Production Defaultshuggingface/skills11k1 repos~6.9kAutomated safety check: PassApache-2.0
Opik Local Dev Environmentcomet-ml/opik22k—~734Automated safety check: PassApache-2.0

Similar skills

  • Agent Lightning

    microsoft/agent-lightning

    Official

    Provides the action space, tradeoffs, and evaluation context for improving an editable AI agent against a benchmark while preserving its deployment contract.

    19k GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Megatron-LM Base Image Bump

    NVIDIA/Megatron-LM

    Official

    Moves Megatron-LM CI to a newer NVIDIA PyTorch base image, updating both the GitHub and GitLab pins together and handling the CI follow-up.

    18k GitHub stars~2.8k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Caveman Gateway Setup

    JuliusBrussee/caveman

    Routes every LLM call in a repository through the Caveman Cloud gateway in record mode, so requests and costs are measured without changing behavior.

    111k GitHub starsUsed in 1 repo~2.6k tokens
    DevOps & CloudAuto-check: warnings
  • Official

    Deploys SageMaker endpoints with autoscaling, CloudWatch alarms and tags on by default, using scripts for real-time, scale-to-zero and async setups.

    11k GitHub starsUsed in 1 repo~6.9k tokens
    DevOps & CloudAuto-check passed
  • Starts, rebuilds, and troubleshoots the Opik local dev stack, including an optional Comet Platform integration mode for the Opik team.

    22k GitHub stars~734 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Agent Kill Switch

    vivekchand/clawmetry

    Give the human an off switch and a cost meter for the coding agents on this machine, using ClawMetry.

    426 GitHub stars~1.1k tokensUpdated yesterday
    DevOps & CloudAuto-check passed

More from ai-dynamo/dynamo

All 27 skills in this repo
  • Visual Review

    ai-dynamo/dynamo

    Create self-contained interactive HTML code-review dashboards from GitHub or GitLab pull requests, checked-out branch diffs, or supplied unified diffs, with correctness and safe-to-merge scores…

    8.3k GitHub stars~4.5k tokensUpdated today
    Auto-check passed
  • Fern Components

    ai-dynamo/dynamo

    Knowledge of Fern's built-in MDX component library (accordions, callouts, cards, steps, tabs, code blocks, API-reference snippets, and more) for authoring docs pages.

    8.3k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Fern Navigation

    ai-dynamo/dynamo

    Knowledge of Fern's site-level navigation and structure configuration — how a docs site is organized in docs.yml (and product/version .yml files) using sections, pages, folders, tabs, tab variants…

    8.3k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Dynamo Agent Harness

    ai-dynamo/dynamo

    Drives persistent Claude Code, Codex, or OpenCode agent sessions through a Dynamo OpenAI/Anthropic-compatible endpoint over Agent Client Protocol (ACP).

    8.3k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Benchmark and profile the Dynamo frontend (dynamo.frontend HTTP + tokenizer + KV router) against mock workers (dynamo.mocker).

    8.3k GitHub stars~3.5k tokensUpdated today
    Auto-check: notes
  • Selects and freezes a question-driven AIPerf workload, objective, load policy, and Kubernetes execution manifest for a successfully deployed Dynamo candidate.

    8.3k GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Questions about Synthesize User Workload

What does Synthesize User Workload do?

Synthesizes a canonical userworkload.yaml and captures the user's immutable DynamoGraphDeployment from an optimization user's initial request, attachments, and minimal follow-up interview. Synthesize User Workload is an agent skill from ai-dynamo/dynamo.yaml and captures the user's immutable DynamoGraphDeployment from an optimization user's initial request, attachments, and minimal follow-up interview.

When should I use Synthesize User Workload?

Synthesize User Workload fits situations like: devOps & Cloud work in your project.

How do I install Synthesize User Workload in Claude Code?

Run `npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a claude-code`. Or copy the skill folder (.agents/skills/synthesize-user-workload in ai-dynamo/dynamo) into .claude/skills/synthesize-user-workload in your project. Claude Code loads it when a task matches its description.

How do I install Synthesize User Workload in Codex?

Run `npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a codex`. Or copy the skill folder (.agents/skills/synthesize-user-workload in ai-dynamo/dynamo) into .agents/skills/synthesize-user-workload in your project. Codex loads it when a task matches its description.

Can I use Synthesize User Workload in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ai-dynamo/dynamo --skill synthesize-user-workload -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/synthesize-user-workload, .gemini/skills/synthesize-user-workload, .github/skills/synthesize-user-workload and .opencode/skills/synthesize-user-workload in your project.

What does Synthesize User Workload need to run?

SKILL.md names no scripts, command-line tools or credentials: Synthesize User Workload is instructions for the agent only.

Does Synthesize User Workload access the network?

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.

Is Synthesize User Workload safe to install?

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.

What licence does Synthesize User Workload use?

Synthesize User Workload is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Synthesize User Workload use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Synthesize User Workload?

Skills that share tags, products or a category with Synthesize User Workload: Agent Lightning (microsoft/agent-lightning, 19k stars), Megatron-LM Base Image Bump (NVIDIA/Megatron-LM, 18k stars), Caveman Gateway Setup (JuliusBrussee/caveman, 111k stars) and SageMaker Production Defaults (huggingface/skills, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Synthesize User Workload?

ai-dynamo (a GitHub organization) maintains it in ai-dynamo/dynamo, which has 8,250 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 9, 2026.

Source: ai-dynamo/dynamo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.