{"audit":{"version":"1.3","generated_at":"2026-06-19T10:20:08.486063+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/sorted.fast","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"sorted.fast","name":"Sorted Registration Agent","url":"https://sorted.fast/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"Sorted","url":"https://sorted.fast"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":null,"supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"endpoint_404","live_responds":false,"last_status_code":200,"last_elapsed_ms":162,"last_error":null},"track_record":{"first_seen":"2026-06-18T17:00:06.146531+00:00","last_checked":"2026-06-19T05:38:08.594886+00:00","last_seen_ok":"2026-06-19T05:38:08.594886+00:00","checks_total":3,"checks_ok":3,"uptime_pct":100.0,"archived":false,"archived_reason":null},"conformance":{"score":29,"grade":"F","summary":"F-grade: card is reachable but fails most operational signals.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Schema-validated A2A AgentCard returned by the well-known endpoint."},{"key":"live_responds","label":"Live JSON-RPC","points":0,"max_points":25,"status":"fail","detail":"Card declares a URL but that URL returns 404."},{"key":"protocol_version","label":"Protocol version","points":0,"max_points":10,"status":"fail","detail":"No protocolVersion in card."},{"key":"signature","label":"JWS signature","points":0,"max_points":10,"status":"info","detail":"Card is unsigned (most published agents are)."},{"key":"uptime","label":"Uptime track record","points":0,"max_points":15,"status":"info","detail":"Only 3 probes so far, need ≥5 for an uptime grade."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 8 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: Sorted (https://sorted.fast). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit."},{"key":"freshness","label":"Freshness + modern flags","points":4,"max_points":5,"status":"pass","detail":"seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":0,"max_points":5,"status":"info","detail":"No securitySchemes declared (common for open agents, not penalised)."}]},"skills":[{"id":"list_events","name":"List Events","description":"Returns all events owned by the authenticated provider, including status, registration count, current price, and embed URL.","tags":["events","listing"],"examples":["List all my upcoming events","Show me events with available spots"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"get_event","name":"Get Event","description":"Returns full details for a single event including real-time registration count, current dynamic price, public URL, and embed URL.","tags":["events"],"examples":["Get details for event 42"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"create_event","name":"Create Event","description":"Creates a new event with title, description, capacity, price, datetime, and optional recurrence or dynamic pricing settings. Pricing mode is locked after creation. Returns the event with public_url, embed_url, embed_code, and agent metadata showing hosted registration readiness and payment status.","tags":["events","creation"],"examples":["Create a yoga event on Friday at 6pm for 20 students at $50","Set up a weekly recurring pottery workshop with dynamic pricing"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"update_event","name":"Update Event","description":"Updates an existing event's details such as title, capacity, or price. Pricing mode cannot be changed after the event is created.","tags":["events"],"examples":["Change the capacity of event 42 to 30"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"cancel_event","name":"Cancel Event","description":"Soft-cancels an event by setting cancelled_at. Stops accepting registrations immediately. The event record and its registrations are preserved.","tags":["events","cancellation"],"examples":["Cancel event 42","Close registration for the Friday yoga session"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"get_price_history","name":"Get Price History","description":"Returns the full dynamic pricing history for an event, including each price change, the reason, and timestamp.","tags":["events","pricing"],"examples":["Show price history for event 42"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"register_student","name":"Register Student","description":"Queues a student registration via the high-concurrency ETS path. Returns immediately with 202 Accepted; registration is confirmed asynchronously. Handles capacity limits and waitlisting automatically.","tags":["registrations"],"examples":["Register user 7 in event 42","Add student to the waitlist for event 99"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"embed_registration_form","name":"Embed Registration Form","description":"The embed_url returned with each event points to a self-contained LiveView form at /events/:id/embed. Drop it in an iframe on any landing page. Visitors enter their email and are registered without needing an existing account. Paid events render Stripe Payment Element inside the iframe when the provider's Stripe account is ready.","tags":["registrations","embed"],"examples":["Give me the iframe URL for event 42","Embed the signup form on my landing page"],"inputModes":[],"outputModes":["text/html"]}],"provenance":[{"source":"mcp_registry","first_seen":"2026-06-18T17:00:06.146531+00:00"}],"recent_probes":[{"fetched_at":"2026-06-19T05:38:08.594886+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":162,"live_responds":false},{"fetched_at":"2026-06-18T23:08:38.572377+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":154,"live_responds":false},{"fetched_at":"2026-06-18T17:00:06.146531+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":66,"live_responds":false}],"catalog_attestation":null,"verification_history":[],"signatures":[{"protected":"eyJhbGciOiJFUzI1NiIsImprdSI6Imh0dHBzOi8vYWdlbnN0cnkuY29tLy53ZWxsLWtub3duL2p3a3MuanNvbiIsImtpZCI6ImFnZW50ZmluZGVyLWVzMjU2LTEiLCJ0eXAiOiJKT1NFIn0","signature":"8U6PSV7y0_7Lm63pD2an_zzr3RTn4c1OeN-iWqdDq7e7T6KdwJ9CRCUouRlIb_nMdQZbtFCLAxKwi4w41ahxKg"}]}