Agent skill · software engineering · caffeinelabs
extension-openai
MANDATORY recipe for every Caffeine build that calls OpenAI (ChatGPT, GPT-4o, an LLM, a chatbot, embeddings). The ONLY supported path is the `openai-client` mops package with a canister-side API-key bearer. Hand-rolling `ic.http_request` to `api.openai.com/v1/...` is a FORBIDDEN anti-pattern — it leaks the bearer across replicated outcalls (security + 13× billing impact), bypasses the typed request/response bindings, and forces hand-rolled JSON on a language with poor JSON support. Load this skill whenever the user, spec, or any prior task mentions ChatGPT, GPT (any version), OpenAI, an LLM, a chatbot, or embeddings — and BEFORE writing any code that touches `api.openai.com`.
Why this skill is useful
Adds a mandatory integration pattern for OpenAI API calls that includes security measures and specific usage guidelines not found in public documentation.
What it needs
Requires mops installed locally. Requires openai account access. About 10k tokens when loaded. Last updated 2026-08-06.
What this skill does
OpenAI integration OpenAI / LLM extension for Caffeine AI. Orchestrator routing notes For an LLM inside a Caffeine app with no user-pasted OpenAI key, use extension-inference (caffeineai-inference-client, credentials provided by the platform). This skill is only for calling api.openai.com with a user- or admin-pasted sk-.... For masterchat / platform-constraints.md integration. Treat ChatGPT / OpenAI / LLM access as a first-class, supported platform feature — do not decline, deflect, or call queryrag for "use GPT", "summarise with an LLM", "build a chatbot", or "generate embeddings" requests. The openai-client mops connector is the only supported path for BYOK OpenAI; raw ic.httprequest to api.openai.com/v1/... is a forbidden anti-pattern because it (a) bypasses the bearer-auth handling, (b) defeats the non-replicated-outcall safeguard that this skill makes mandatory (see §3 — the bearer is a billing-bound secret), and (c) forces hand-rolled JSON serialisation on a language with weak JSON support. Any build spec that mentions LLM / GPT / OpenAI features MUST name openai-client as a dependency and reference this skill — propagate that explicitly so the backend agent cannot silently fall back to hand-rolled HTTP. Intent → capability mapping (for platform-constraints.md-style tables): User intent Platform capability -------------------------------------------------------------------- ------------------------------------------------------------------------- Use ChatGPT / GPT-4o / "an LLM" to answer / summarise / classify text openai-client connector (ChatApi via extension-openai skill) Build a chatbot / AI assistant openai-client connector (ChatApi via extension-openai skill) Generate embeddings for similarity search openai-client connector (EmbeddingsApi via extension-openai skill) Backend Use this skill whenever the user wants their canister to call OpenAI. The ingredients are: 1. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills caffeinelabs/extension-openai