vendor-sync

$npx mdskill add langchain-ai/design-agent/vendor-sync

Vendored skills are never edited; they are replaced from upstream at a commit and checked against `skills-lock.json` in CI. Each upstream's pin lives in `UPSTREAMS` in `src/design_agent/skills_lock.py`, with the skills it vendors into `skills/` (runtime) and `.agents/skills/` (coding agents). `uv run design-agent skills sync-vendor --check-only` compares every pin with its upstream's newest release (HyperFrames) or `main` commit (LangChain's packs).

SKILL.md

.github/skills/vendor-syncView on GitHub ↗
---
name: vendor-sync
description: Move a vendored upstream (HyperFrames, LangSmith skills, Deep Agents skills) to a newer pin, re-vendor its skills unmodified, verify them, and update everything that depends on the pin.
---

# Update vendored skills

Vendored skills are never edited; they are replaced from upstream at a commit and checked against
`skills-lock.json` in CI. Each upstream's pin lives in `UPSTREAMS` in
`src/design_agent/skills_lock.py`, with the skills it vendors into `skills/` (runtime) and
`.agents/skills/` (coding agents). `uv run design-agent skills sync-vendor --check-only` compares
every pin with its upstream's newest release (HyperFrames) or `main` commit (LangChain's packs).

## HyperFrames

1. Pick the release: the latest stable HyperFrames tag (never a prerelease) and its commit. Read its
   changelog for CLI changes (flags, renamed or deprecated commands such as `validate` → `check`).
2. Bump the `hyperframes` entry's `commit` and `release` in `UPSTREAMS`, the `hyperframes` version
   in `sandbox/render/package.json`, then `npm install --package-lock-only` in `sandbox/render/`
   and `uv run python scripts/sync_sandbox_recipe.py` (embeds the lock in `setup.sh`).
3. `uv run design-agent skills sync-vendor --upstream hyperframes`; review
   `git diff skills/ skills-lock.json`. Check the exclusion list still catches third-party media,
   unlicensed fonts and bundled libraries. Upstream skills carry their own `.gitignore`s:
   `git add -f` any locked file they hide (`test_git_tracks_every_locked_file` names them).
4. Rebuild and prove: `uv run design-agent sandbox build`, `sandbox test`,
   `uv run pytest -q -m render`, `uv run design-agent demo`. MDA deployments need
   `sandbox publish` again, since the recipe changed.

## LangSmith and Deep Agents skills

1. Read what changed on `main` of `langchain-ai/langsmith-skills` or `langchain-ai/langchain-skills`
   since the pinned commit, then bump that entry's `commit` in `UPSTREAMS`.
2. `uv run design-agent skills sync-vendor --upstream langsmith-skills` (or `langchain-skills`);
   review `git diff skills/ .agents/skills/ skills-lock.json`.
3. If `langsmith-trace` changed, check its one-line summary in `config/vendored-skills.toml` still
   steers the deployed agent to `list_traces` and `read_trace`: its sandbox has no network and no
   LangSmith key, so the CLI the skill teaches cannot run there.

## Every upstream

- New or renamed runtime skills: add a one-line summary to `config/vendored-skills.toml`, and the
  folder to `extend-exclude` in `pyproject.toml` (tests fail until both match the lock). New
  coding-agent skills need a route in `AGENTS.md` (`test_coding_agent_skills.py` checks).
- Prove: `uv run design-agent skills verify`, `uv run pytest -q`.
- Record the new pin and anything that changed in `NOTICE.md`, `docs/sources/` and `CHANGELOG.md`.

More from langchain-ai/design-agent

SkillDescription
brand-onboardingBuild the active brand pack in workspace/brand/ from a brand guide, website, files or a Paper file, validate it, and have a person review it.
data-vizCharts, stat cards, flywheels and diagrams (flows, architectures, hierarchies) rendered on brand from a JSON spec to PNG and SVG. Use for any visual whose job is numbers or relationships, including restyling an attached chart or diagram.
design-agent-customizeChange what Design Agent knows and does. Teach it a new deliverable with a runtime skill, change its instructions, design doctrine or checks, connect MCP servers and tools, or change models and cost caps. Use when someone wants it to make something new, follow a new rule, or use another tool.
design-agent-deployPut Design Agent in a team's Slack. Deploy it to Managed Deep Agents (one command, managed Slack app) or self-host it with Docker Compose, verify it with a real request, ship updates, and keep a separate test copy. Use when someone wants the agent running for their team.
design-agent-evalsFind out whether a change made Design Agent better or worse. Run the eval set or a few tasks before and after against the same model, read the reports, look at the files, and turn a real request that went wrong into a task. Use after changing instructions, skills, checks or models, or when someone asks how good it is.
design-agent-onboardingInstall and configure Design Agent, add a brand, connect Paper, choose MDA or self-hosting, and diagnose setup without exposing credentials.
design-agent-troubleshootDiagnose Design Agent when something fails. Setup, a render, a deploy, Slack or a model call. Run doctor and the connection tests, read logs and traces, match the symptom to its fix, and never print credentials. Use when a command errors, a reply never comes, or a file looks wrong.
design-agent-updateBring a fork or clone of Design Agent up to date with the upstream repository while keeping the team's brand, skills and edits, rebuild what changed, and redeploy safely. Use when someone asks to update, upgrade or pull the latest Design Agent.
design-wikiDesign doctrine to weigh on any visual. Hierarchy, typography, colour, layout, platform sizes, chart and diagram principles, and the review rubric critics score against.
embedded-captions>