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
- 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). - Bump the
hyperframesentry'scommitandreleaseinUPSTREAMS, thehyperframesversion insandbox/render/package.json, thennpm install --package-lock-onlyinsandbox/render/anduv run python scripts/sync_sandbox_recipe.py(embeds the lock insetup.sh). uv run design-agent skills sync-vendor --upstream hyperframes; reviewgit diff skills/ skills-lock.json. Check the exclusion list still catches third-party media, unlicensed fonts and bundled libraries. Upstream skills carry their own.gitignores:git add -fany locked file they hide (test_git_tracks_every_locked_filenames them).- Rebuild and prove:
uv run design-agent sandbox build,sandbox test,uv run pytest -q -m render,uv run design-agent demo. MDA deployments needsandbox publishagain, since the recipe changed.
LangSmith and Deep Agents skills
- Read what changed on
mainoflangchain-ai/langsmith-skillsorlangchain-ai/langchain-skillssince the pinned commit, then bump that entry'scommitinUPSTREAMS. uv run design-agent skills sync-vendor --upstream langsmith-skills(orlangchain-skills); reviewgit diff skills/ .agents/skills/ skills-lock.json.- If
langsmith-tracechanged, check its one-line summary inconfig/vendored-skills.tomlstill steers the deployed agent tolist_tracesandread_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 toextend-excludeinpyproject.toml(tests fail until both match the lock). New coding-agent skills need a route inAGENTS.md(test_coding_agent_skills.pychecks). - Prove:
uv run design-agent skills verify,uv run pytest -q. - Record the new pin and anything that changed in
NOTICE.md,docs/sources/andCHANGELOG.md.