Apps SDK UI 1:1 Catalog Skill
This skill defines strict, deterministic rules for generating JSON Renderer specs mapped 1:1 to @openai/apps-sdk-ui components.
Purpose
- •Keep generated UI specs deterministic and machine-validated.
- •Restrict generation to known component names and strict prop schemas.
- •Use serializable action descriptors only.
Required Workflow
- •Generate or update the UI spec using only allowed component names from
src/catalog/apps-sdk-ui/inventory.generated.ts. - •Validate the spec with
validateAppsSdkUiSpecbefore any render/runtime step. - •Stop on validation errors (hard fail). Do not auto-fix silently.
- •Return structured validation errors including component name and JSON path.
Allowed Component Set
- •Source of truth:
APPS_SDK_UI_COMPONENTSinsrc/catalog/apps-sdk-ui/inventory.generated.ts. - •Custom component names are forbidden in this phase.
Action Rules
- •Interactive components may only use serializable action descriptors from
src/catalog/apps-sdk-ui/actions.ts. - •Allowed action kinds:
- •
tool.call - •
ui.message - •
open.url
- •
- •Function callbacks in JSON are forbidden.
Forbidden Patterns
- •Unknown component names.
- •Unknown props on any component.
- •Function values anywhere in props payloads.
- •Non-serializable values in action params.
Drift and Upgrade Protocol
- •When bumping
@openai/apps-sdk-ui, run:- •
npm run sync:inventory
- •
- •Commit inventory updates and mapping/schema/test updates in the same PR.
- •CI must pass:
- •inventory drift check
- •parity tests
- •strict validation tests
- •render smoke tests
Notes
- •This skill intentionally excludes MCP widget execution/runtime wiring.
- •Rendering/runtime integration is a separate phase.