OpenAI image generation and editing skills for DCC texture workflows
Two tools with complete input schemas and reasonable descriptions, but significant gaps in error guidance, output documentation, and parameter constraints. Tool names follow verb_noun convention (generate_*, edit_*). Descriptions are adequate (80-90 chars) but lack context on when to use each tool or prerequisites. Parameters have types and basic descriptions, but lack enums, ranges, or format constraints. No documented output schema. Error handling returns generic exceptions without recovery guidance. Missing tool annotations (destructiveHint, idempotentHint). No pagination or result limits documented.
Edit existing texture source images using OpenAI image editing API
Generate texture source images using OpenAI image generation API
No output schema documented. LLMs cannot plan downstream calls or extract returned fields (file path, asset_descriptor structure). Responses include AssetDescriptor objects but structure is not declared in tool definition.
Error handling returns generic exceptions without recovery guidance. 'OpenAI texture generation failed' tells LLM nothing about cause (API key missing, rate limit, invalid prompt, network timeout). Should categorize errors and suggest next steps.
Parameters lack enums and constraints. 'model' defaults to 'gpt-image-2' (non-existent OpenAI model name) with no enum of valid options. 'size' accepts free-form string with no validation of '1024x1024' vs '512x512' vs invalid values. 'quality' has no enum (medium|high|standard).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
No tool annotations. Both tools are destructive (write files, call external API, consume credits) but lack destructiveHint annotation. Agents cannot reason about side effects or confirm before execution.
OPENAI_API_KEY exposed as environment variable with no validation or fallback. If missing, raises RuntimeError with stack trace. Should validate at server startup and return actionable error message to LLM.