From 5602973b5df0b19961c0bd58eb25de7eb00a5646 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 16 Mar 2026 20:24:07 -0700 Subject: [PATCH] docs(plugins): add capability contract example --- docs/tools/plugin.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/tools/plugin.md b/docs/tools/plugin.md index 8b8de658785..8b4d389cd30 100644 --- a/docs/tools/plugin.md +++ b/docs/tools/plugin.md @@ -167,6 +167,18 @@ For example, TTS follows this shape: That same pattern should be preferred for future capabilities. +### Capability example: video + +If OpenClaw adds video, prefer this order: + +1. define a core video capability +2. decide the shared contract: input media shape, provider result shape, cache/fallback behavior, and runtime helpers +3. let vendor plugins such as `openai` or a future video vendor register video implementations +4. let channels or feature plugins consume `api.runtime.video` instead of wiring directly to a provider plugin + +This avoids baking one provider's video assumptions into core. The plugin owns +the vendor surface; core owns the capability contract. + ## Compatible bundles OpenClaw also recognizes two compatible external bundle layouts: