A bash-based skill for generating, verifying, and downloading invoices via the Scribo API. Implements email verification, invoice creation, and document download workflows.
Scribo Skill has 6 tools with clear verb-noun naming (list_, request_, redeem_, create_, get_, download_). All tools have descriptions (avg 120 chars, within 10-1024 range). However, input schemas are minimal or absent for most tools. list_jurisdictions has empty input {}; request_verification, redeem_verification, get_invoice, and download_invoice have single-parameter schemas with basic descriptions; create_invoice has a complex 'payload' object parameter but no documented output schema. No tool documents its return type or structure. Parameter descriptions exist but lack format constraints, ranges, or validation guidance. Error handling is mentioned in descriptions (e.g., 'verification_required status') but no recovery guidance is provided. The skill lacks output schema documentation entirely, LLMs cannot plan downstream calls without knowing what fields to expect. Naming is strong; schema and output documentation are weak.
Generate a Scribo invoice via POST /api/v1/invoices. Requires email verification via verification_token. If no token is supplied, requests a verification challenge and returns verification_required status.
Download an invoice's bytes. Returns PDF/A-3 with embedded XML for ZUGFeRD, raw XML for XRechnung, or bare PDF for plain_pdf format.
Fetch a previously generated invoice's metadata and a fresh signed download URL.
List supported jurisdictions and their default formats.
Redeem a 6-digit verification code for a verification_token. The token is reusable for ~30 minutes and covers multiple invoices for the same sender email.
Request an email-ownership verification challenge. Scribo emails a magic link AND a 6-digit code to the provided email address.
No output schemas documented for any tool. LLMs cannot infer return types, field names, or structure. Downstream tool chaining is impossible without trial-and-error.
create_invoice 'payload' parameter is an untyped object with no schema. LLMs cannot validate invoice structure (sender, recipient, line_items, currency) before submission. No guidance on required vs optional fields.
Error responses mentioned in descriptions (e.g., 'verification_required') but no recovery guidance provided. LLMs cannot determine whether to retry, ask user, or fail gracefully.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Parameter descriptions lack format constraints. 'email' parameter has no validation hint (e.g., 'valid email format'). 'code' parameter has no length/format spec (6-digit). LLMs may pass invalid values.
SCRIBO_VERIFICATION_TOKEN and SCRIBO_API_KEY are environment variables, not tool parameters, correct for secret injection. However, no tool description mentions how to obtain or manage tokens, creating friction for agent setup.