Generate barcodes -- EAN-13, UPC-A, Code128, Code39. Base64 SVG output, custom width and height.
Single tool 'utility_generate_barcode' has a well-structured schema with all required parameters typed and described. Description is comprehensive (280+ chars) and includes use cases and anti-patterns (when NOT to use). However, the tool name lacks a clear action verb prefix, 'utility_generate_barcode' is awkward; 'generate_barcode' would be clearer. Output schema is documented in the description but not formally in JSON Schema. Parameter descriptions are adequate but could be more prescriptive about constraints (e.g., width/height ranges, data format expectations). No error handling guidance provided.
Use this when you need to generate a barcode from text or a number. Returns base64-encoded SVG image in JSON. Returns: 1. image (base64 SVG string) 2. format used (code128/code39/ean13/upca) 3. data encoded 4. width and height in pixels. Example output: {"data":"5901234123457","format":"ean13","image":"PHN2ZyB4bWxu...","width":264,"height":142} Use this FOR product labeling, inventory management, shipping labels, retail POS systems, and asset tracking barcodes. Do NOT use for QR codes -- use utility_generate_qr_code instead. Do NOT use for image resizing -- use media_resize_image instead. Do NOT use for PDF generation -- use document_generate_pdf instead.
Tool name 'utility_generate_barcode' lacks action verb clarity. Should be 'generate_barcode' to match verb_noun convention and improve LLM intent inference.
Output schema documented only in description text, not as formal JSON Schema. LLMs cannot reliably parse unstructured descriptions to infer response structure. Provide explicit output schema definition.
No error handling guidance. Tool description lacks recovery hints (e.g., 'Invalid format: must be code128|code39|ean13|upca'). LLMs cannot self-correct without actionable error messages.
Parameter constraints not formally specified. 'width' and 'height' lack min/max bounds; 'data' lacks format/length constraints. Unbounded numeric parameters invite absurd values.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Format parameter description lists examples ('code128, code39, ean13, upca') instead of using enum constraint. LLMs may hallucinate invalid formats. Use JSON Schema enum.