SDK's @qvac/inference Version
SkillAI & modelsPoints your SDK package at a published inference library version and regenerates the matching Python client.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the SDK's @qvac/inference Version skill
About this capability
Point @qvac/sdk at a published @qvac/inference version (shared major.minor) and regenerate tetherto-qvac-sdk, so an SDK release ships against an engine that is already on npm.
What this skill tells your AI
The instructions your AI receives, as published by tetherto/qvac in .agents/skills/qv-sdk-inference-version/SKILL.md and read by ahel’s review.
@qvac/sdk and @qvac/inference expose the same API, so the SDK's own version
and its @qvac/inference dependency range share a major and minor. Patch
numbers are free on both sides — @qvac/sdk 0.19.4 may depend on
@qvac/inference ^0.19.2.
packages/sdk-python (tetherto-qvac-sdk) is generated from @qvac/sdk and
publishes at the SDK's version.
The engine is published first
The SDK's committed range is installed from npm by publish-sdk.yml and by the
published leg of pr-checks-sdk-pod, so a range naming an unpublished version
fails both.
Moving to a new major.minor is two releases:
release-inference-<x.y.z>→publish-inference.ymlpublishes@qvac/inferenceand tagsinference-v<x.y.z>.release-sdk-<x.y.z>→ this skill points the SDK at that version, thenpublish-sdk.ymlpublishes@qvac/sdkandtetherto-qvac-sdk.
A patch on either side is one release on its own. An SDK patch leaves its range alone; an engine patch is picked up by the existing range with no SDK release at all.
When to use this skill
Applies to the SDK pod (not the agent-stack cascade: cli / ai-sdk-provider / plugins).
Use when:
- User runs
/qv-sdk-inference-versiondirectly. - Auto-invoked by
/qv-sdk-changelogwhen--package=sdk. - Auto-invoked by
/qv-sdk-pr-createwhen the PR diff touches the version ofpackages/sdkor its@qvac/inferencerange. - Manually, when an
@qvac/inferencerelease has shipped and the SDK should depend on it.
What it does NOT do
- Does not open release PRs or publish (see
publish-inference.yml,publish-sdk.yml+ gitflow). - Does not release
@qvac/inference; it only points the SDK at a version that is already published. - Does not sync agent-stack packages (
/qv-agent-stack-sync). - Does not auto-commit.
- Does not run in CI. CI checks the shared major.minor on every PR through the
SDK's
lint(enforce-inference-versions) and installs the range for real on thepublishedleg ofpr-checks-sdk-pod; this skill is the fix.
Workflow
Step 1: Confirm the engine version is published
npm view @qvac/inference@<x.y.z> version
An empty result means the engine release has not landed. STOP and release
@qvac/inference first (release-inference-<x.y.z>); everything below writes a
range that cannot resolve until it does.
Step 2: Point the SDK at that version
From the monorepo root:
node .agents/skills/qv-sdk-inference-version/scripts/set-inference-version.mjs --engine-version=<x.y.z>
Sets packages/sdk version to <x.y.0> and its @qvac/inference range to
^<x.y.z> (~ from 1.0.0 onwards, where a caret would reach into the next
minor). For an SDK patch release whose major.minor already matches, add
--sdk-version=<x.y.z>.
Other flags: --dry-run, --check (exit 1 on a mismatch). With no
--engine-version, the script only checks the current manifest.
Step 3: Sync packages/sdk-python generated client
Requires a venv with gen extras (create once if missing):
cd packages/sdk-python
python3 -m venv .venv
.venv/bin/pip install -U pip
.venv/bin/pip install -e ".[gen]"
.venv/bin/python3 scripts/generate.py
.venv/bin/python3 scripts/generate.py --check
SDK_VERSION is stamped from packages/sdk/package.json, which Step 2 already
set. Commit any updates under
packages/sdk-python/src/tetherto/qvac_sdk/_generated/.
Step 4: Verify
cd packages/sdk
bun run enforce-inference-versions
This is the same check CI runs inside lint.
Step 5: Review and commit
git status should show (as applicable):
packages/sdk/package.jsonpackages/sdk-python/src/tetherto/qvac_sdk/_generated/**
Commit alongside the release changelog. When invoked from /qv-sdk-changelog,
this is part of the release commit; when invoked from /qv-sdk-pr-create, part
of the PR's last commit.
When this skill is invoked from another skill
From /qv-sdk-changelog
/qv-sdk-changelog --package=sdk calls this skill after NOTICE generation for
sdk. Skip for any other --package value — an --package=inference release
does not touch the SDK.
From /qv-sdk-pr-create
If the PR diff touches the version of packages/sdk or its @qvac/inference
range, the parent skill prompts to run this skill first. Opt out with
--no-sync on the parent skill.
Quality Checklist
-
@qvac/inference@<x.y.z>resolves on npm before the range is written -
set-inference-version.mjsreports OK or an apply summary -
packages/sdkversion and@qvac/inferencerange share a major.minor - Range operator is
^below 1.0.0,~from 1.0.0 onwards -
packages/sdk-pythongenerate.py --checkpasses -
bun run enforce-inference-versionspasses inpackages/sdk - Staged changes are only the version edits (+ the originating edit)
- No CI auto-commits of this skill
References
- Version checks (addon ranges + shared major.minor):
packages/sdk/scripts/enforce-inference-versions.ts - Python generator:
packages/sdk-python/scripts/generate.py - Notice generator:
.agents/skills/qv-notice-generate/SKILL.md - Publish:
.github/workflows/publish-inference.yml,.github/workflows/publish-sdk.yml - Changelog / PR skills:
qv-sdk-changelog,qv-sdk-pr-create
Signals
- GitHub stars
- 612
- Forks
- 112
- Last commit
- Sep 2026
ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Catalog kind
- skill
- Gateway key
qv-sdk-inference-version- Source
- github.com/tetherto/qvac