Steer skills off /call to compat endpoints, add /call→compat migration#14
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
We're sunsetting `/call` (both `POST /v3/call` and the legacy v2 Python SDK's `opper.call`). Best practice for structured one-shot tasks is now a compat chat endpoint with `response_format`. This PR makes the skills reflect that everywhere and gives existing `/call` users a concrete migration path.
What changed
`opper-api/references/migration.md` — new opening section: From Opper's own `/call`, with verified before/after curls (both run against prod), a field-by-field mapping table (`name` → `X-Opper-Name` header, `instructions` → system message, `output_schema` → `response_format: json_schema`, `data` → parsed `choices[0].message.content`, `meta.cost` → `usage.opper.cost.total` / `X-Opper-Cost`), and a Python before/after using the stock OpenAI SDK's `chat.completions.parse()` with a Pydantic model. Retitled since it now covers more than external gateways.
`opper-api/SKILL.md` — "Still on /call?" bullet in Pick your endpoint, a sunset gotcha, migration section + description mention so the skill triggers on "migrate off opper.call".
`opper-sdks/SKILL.md` — no longer recommends `opper.call` for one-shot tasks. Compat + `response_format` is the recommended primitive; canonical seeds are now OpenAI-SDK-against-compat (Python + TS) with `X-Opper-Name`; `opper.call`/`opper.stream` explicitly marked legacy with a migration pointer. Agent SDK and `opper.knowledge.*` unchanged. Legacy banners added to `references/python.md` / `references/typescript.md`.
`opper/SKILL.md` (router) — first-call guidance for new users now lands on compat (CLI still fronts auth/usage/traces/launch); `opper call` removed from proposals and Phase-4 verification; follow-up no longer suggests swapping the provider SDK for `opperai`.
`opper-cli/SKILL.md` — `opper call` marked legacy in the command table + a gotcha: fine for an ad-hoc poke, never the pattern to copy into application code.
Verification
🤖 Generated with Claude Code