Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/abdelstark/worldforge/provider-adapter-developmentnpx skills add AbdelStark/worldforge --skill provider-adapter-developmentgit clone --depth 1 https://github.com/AbdelStark/worldforgeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/abdelstark/worldforge/provider-adapter-development)<a href="https://agentmods.dev/skills/abdelstark/worldforge/provider-adapter-development"><img src="https://agentmods.dev/badge/skills/abdelstark/worldforge/provider-adapter-development.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00073 | $0.00864 |
| Opus 5 | $0.00036 | $0.00432 |
| Sonnet 5 | $0.00015 | $0.00173 |
| Haiku 4.5 | $0.00007 | $0.00086 |
Grade A, and why
provider-adapter-development scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 58 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Provider Adapter Development
Non-Negotiables
- Valid capabilities are
predict,embed,plan,score, andpolicy. ProviderCapabilities()is fail-closed. Advertise only callable, tested operations.planis a WorldForge facade workflow. Do not benchmark or advertise it as a provider operation unless a real provider-owned planner exists.- Optional runtimes, checkpoints, datasets, CUDA, robot packages, credentials, and robot controllers stay out of base dependencies and repo artifacts.
- Provider events are a log boundary. Never emit bearer tokens, API keys, signed URL query strings, or secret-like metadata.
- Treat upstream marketing names as untrusted. Capability labels come from observed callable behavior and contract tests, not from model family branding.
Capability Map
| Provider | Truthful surface | Registration |
|---|---|---|
mock |
predict, embed |
always |
cosmos-policy |
policy |
COSMOS_POLICY_BASE_URL |
leworldmodel |
score |
LEWORLDMODEL_POLICY or LEWM_POLICY |
gr00t |
policy |
GROOT_POLICY_HOST |
lerobot |
policy |
LEROBOT_POLICY_PATH or LEROBOT_POLICY |
jepa |
score |
JEPA_MODEL_NAME |
genie |
scaffold only | env-gated reservation |
jepa-wms |
direct-construction score candidate | not exported or auto-registered |
Workflow
- Read the closest existing adapter, then
src/worldforge/providers/base.py,src/worldforge/providers/catalog.py, anddocs/src/provider-authoring-guide.md. - Classify the upstream runtime by what it actually does, not by model marketing language.
- For a new scaffold, start with
uv run python scripts/scaffold_provider.py ...; keep capabilities unadvertised until real methods return validated WorldForge models. - Validate public inputs before network calls, filesystem reads, or optional runtime calls.
- Return the correct public model:
PredictionPayload,EmbeddingResult,ActionScoreResult, orActionPolicyResult. - Add success and malformed/error fixtures under
tests/fixtures/providers/. - Add
worldforge.testing.assert_provider_contract()coverage for every advertised capability. - Update
.env.example, provider docs, generated catalog surfaces, README, changelog,AGENTS.md, orCLAUDE.mdonly when public behavior or env vars change. - Validate with focused provider tests, ruff, generated provider-doc check, and the coverage/package gates when the public surface changes.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 58 lines · 73 tokens per session scan A edc860e3c284
provider-adapter-development is a skill published in the GitHub repository AbdelStark/worldforge (108 stars, last pushed yesterday), licensed MIT. It adds 73 tokens to every session and 864 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
sensing-track
Query flow event logs to answer questions about past sensing events — "Have you seen anybody between 10pm and 12pm?", "Is there any motion in the last hour?", "What happened while I was away?".
claude-code-buddy
Push Claude Code activity to the user's device (e.g. a lamp) over the LAN. The plugin POSTs semantic events to a companion daemon on the device (HTTP, port 5002); the device turns them into its own feedback (LED / round display / voice). Supports connecting a device, pushing usage, sending notifications, and tuning…
sensing
React to passive sensing events from the device — presence, sound, light, fire hazard. Events arrive as [sensing: ] messages and each gets an emotion marker + optional short line. Does NOT handle motion.activity (→ wellbeing) or emotion.detected / speechemotion.detected (→ user-emotion-detection).
emotion
Express emotion through coordinated servo + LED + display eyes on EVERY conversational response. This is the PRIMARY response skill that makes the device feel alive. Do NOT use for ambiance lighting (use Scene) or custom LED colors (use LED Control).
guard
Guard mode for security monitoring. Two uses — (1) Toggle on/off when a friend says "guard mode", "watch the house", "I'm going out", or similar. (2) Handle any sensing event that carries a [guard-active] tag (e.g. [sensing:presence.enter][guard-active], [sensing:motion][guard-active]) with dramatic shock/curious…
led-control
Control the device's RGB light when the user asks for a SPECIFIC color (e.g. "yellow", "red", "yellow", "red", "turn on color X", "enable X light"), an LED effect, or turning LEDs off. Do NOT use for ambiance/activity lighting (use Scene) or emotion expression (use Emotion).