Prompt engineering,
on the server.
Ship a Skill ZIP with a Jinja2 template + tool schemas. Pin by version (fact-check@v3).
The proxy injects everything server-side — your client never sees the prompt.
Prompt hell in client code
- System prompts embedded in React/Vue components
- No version control — "works on my machine"
- Tool schemas duplicated across services
- Can't A/B test without redeploying frontend
- Security: prompts exposed in client bundles
Server-side Skill engine
- Prompts live on the proxy, rendered server-side
- Version pinning:
skills=["fact-check@v3"] - Atomic publish — immutable after release
- Tool schemas bundled in the ZIP
- A/B by pointing to different skill versions
Anatomy of a Skill
A Skill is a ZIP bundle. Upload it once, version it, then reference it by name + version in any completion call.
fact-check/
├── manifest.yaml # display_title, category, tags
├── SKILL.md # Jinja2 system prompt template
├── tools.json # OpenAI-shape tool array
└── README.md # description fallback display_title: "Fact Check"
description: "Verify claims with citations."
version: "3"
is_public: false
category: research
tags: [verification, science]
xct:
difficulty: hard
model_recommendations: [gpt-4o, claude-3-7-sonnet] One line to inject
Pass skills and skill_inputs to any chat completion call. The proxy handles rendering, injection, and dedup.
reply = xct.chat.completions.create(
model="deepseek-v3.2",
messages=[{"role": "user", "content": "Is the moon a planet?"}],
skills=["fact-check@v3"],
skill_inputs={"strictness": "high"},
)
# Proxy behavior:
# 1. Resolve "fact-check@v3" → 404 if missing
# 2. Render SKILL.md with skill_inputs (Jinja2 or format-string)
# 3. Prepend as role:"system" message
# 4. Concat tools.json into request tools array
# 5. Strip skills / skill_inputs before provider sees them Immutable after publish
Published skills are frozen on system_prompt_template, tool_schema, and instructions.
Subsequent PATCH on a content field returns 409. The template never drifts.
Try Skills today
Free tier includes 10 uploaded skills and unlimited injections across all models.
Start free