Agent skill that generates beautiful HTML pages for diagrams, diff reviews, plan reviews, and data tables with native AI image generation.
Server defines 3 image generation tools with visible Zod schemas, descriptions, and tool annotations. Naming follows verb_noun convention (generate_*), which is positive. However, descriptions are quite brief (60-80 chars), parameter documentation is minimal despite Zod schemas being present, and output validation/error handling lacks recovery guidance. The tools are narrowly focused (good composition) but lack sophistication in parameter constraints and response metadata that would help agents understand failure modes. Schema definitions are present but output schemas are simplistic (just filePaths and count). No input validation messages, no rate-limit guidance, no idempotency markers despite tools having side effects (calling external API, writing files). Error handling returns plain text messages rather than structured recovery hints.
Generate an app icon or UI element with a specified visual style.
Generate images using the Gemini API. Creates hero banners, illustrations, or any visual asset.
Generate a seamless, tileable pattern or texture for backgrounds.
Tool descriptions are too brief (60 - 80 chars) and lack WHEN/WHY guidance. E.g., 'Generate images using the Gemini API.' does not explain when to use this vs. generate_icon or when the API might fail. Per pattern:tool-description, descriptions should be 10 - 1024 chars and include use-case context.
Output schema is overly simplistic (only filePaths array + count). Missing critical fields: file URLs, data URIs for direct embedding, MIME types, dimensions, generation metadata, timestamp, API response time. Per pattern:response-shaper, outputs should include all fields agents need for downstream tool chaining.
Error responses are plain text without recovery guidance. E.g., 'Error: GEMINI_API_KEY environment variable is missing' does not tell the agent what to do next. Per pattern:recovery-guide, errors should include actionable next steps like 'Configure GEMINI_API_KEY env var and retry' or 'Contact admin for API setup'.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2025-06-18+ | v2 |
| 2026-03-09 | D | 56 | - | v1 |
No input validation or constraints on the 'prompt' parameter beyond string type. Prompts sent to Gemini API have token limits, content policies (no violence, NSFW, etc.), and style requirements. Per pattern:constrained-input, free-form string parameters should document format, length limits, and invalid values agents might hallucinate.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are hardcoded to: readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true. This is misleading: these tools ARE destructive (write to filesystem), NOT idempotent (calling twice with same input generates different images), and require external API access (openWorldHint correct). The false hints will confuse agents about retry safety and permission requirements.
No rate-limiting or quota enforcement. The tools can be called repeatedly without bounds, risking runaway agent loops that exhaust API quotas or incur unbounded costs. Per pattern:rate-limit-guard, external API tools should include rate-limit checks and guide agents on safe retry windows.
Temporary files written to /tmp with no cleanup or lifetime guidance. If an agent generates 100 images, 100 files accumulate in the temp directory. Agents have no way to know files are temporary or should be cleaned up. Per pattern:resource-lifecycle, tools that create artifacts should document retention policy and provide a cleanup/expiration mechanism.