Add claude-api-integration skill - #4
Merged
Merged
Conversation
Production lessons from building and live-debugging the Keel AI proxy, distilled into a generic skill: server-side key custody; structured outputs (output_config.format) instead of forced tool calls (the malformed-payload flake); schema hardening (additionalProperties:false, strip unsupported constraints) with server-side validation + one retry; cheapest-model cost policy with max_tokens as a hard ceiling; free-checks-first / one-smoke-call testing discipline; verify deploys by version, not vibes. Registered in CLAUDE.md and the README skills index; LOG.md entry added. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Distills the production lessons from building and live-debugging Keel's Claude-powered AI proxy into a generic, reusable skill:
output_config.formatconstrains responses to schema-valid JSON; forcedtool_choiceintermittently emitted XML-ish text payloads in production.additionalProperties: false, strip constraint keywords the API rejects (minimum/maximumetc.), keep constraints in your own validator; retry once on validation failure and design a graceful client fallback.max_tokensas a hard per-call ceiling, thinking off unless measurably needed, model switches only with owner sign-off.Stacked on #3 (
add-branch-base-guidance) because this editsLOG.md/CLAUDE.md/README.md, which the open #1←#2←#3 stack also touches — the branch-base rule from #3, applied. Retargets automatically as the stack merges.🤖 Generated with Claude Code