{"audit":{"version":"1.5","generated_at":"2026-11-07T12:49:42.139641+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/swatch.clawhard.com","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"swatch.clawhard.com","name":"Swatch","url":"https://swatch.clawhard.com/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"Clawhard Studio","url":"https://clawhard.com"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"1.0","supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"live","live_responds":true,"last_status_code":200,"last_elapsed_ms":150,"last_error":null},"track_record":{"first_seen":"2026-11-07T09:59:07.214632+00:00","last_checked":"2026-11-07T09:59:07.214632+00:00","last_seen_ok":"2026-11-07T09:59:07.214632+00:00","checks_total":1,"checks_ok":1,"uptime_pct":100.0,"uptime_window_days":30,"uptime_probes":1,"archived":false,"archived_reason":null},"conformance":{"score":64,"grade":"C","summary":"C-grade: usable but has clear conformance issues, review the breakdown below.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification)."},{"key":"live_responds","label":"Live JSON-RPC","points":25,"max_points":25,"status":"pass","detail":"Endpoint responds to a negotiated A2A SendMessage probe (answers in ~53 ms)."},{"key":"protocol_version","label":"Protocol version","points":10,"max_points":10,"status":"pass","detail":"Declares A2A 1.0 with supportedInterfaces[] (current v1 card shape)."},{"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 1 probe so far, need ≥5 for an uptime grade."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 6 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: Clawhard Studio (https://clawhard.com). 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":"Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated."}]},"card_read":{"findings":[],"clean":true,"source_url":"https://swatch.clawhard.com/.well-known/agent-card.json"},"skills":[{"id":"swatch_check_contrast","name":"Check text and background color contrast (WCAG and APCA)","description":"Use when you pick, review or generate UI colors and need an exact accessibility answer. Computes the WCAG 2.x contrast ratio of a text color on a background (never guess ratios, LLMs get them wrong) and returns pass or fail for AA and AAA at normal and large text, the 3:1 UI-component rule, and the APCA Lc score.","tags":["swatch","DesignApplication","read-only"],"examples":["Does #777 on white pass WCAG AA?","Make this gray text accessible without changing the look","Build a 50 to 950 palette from #ff5a1f and check the contrast"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"]},{"id":"swatch_fix_contrast","name":"Find the closest colors that pass a contrast target","description":"Use when a color pair fails contrast and you need a replacement that still looks like the original. Returns the nearest passing text color (background fixed) and the nearest passing background (text fixed), keeping hue and changing only lightness, with the new exact ratios. Targets: AA (4.5:1 normal text, default), AAA (7:1), AA-large (3:1 large text), ui (3:1 icons and borders).","tags":["swatch","DesignApplication","read-only"],"examples":["Does #777 on white pass WCAG AA?","Make this gray text accessible without changing the look","Build a 50 to 950 palette from #ff5a1f and check the contrast"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"]},{"id":"swatch_pick_text_color","name":"Pick black or white text for a background color","description":"Use when you place text or an icon on a colored surface (button, badge, chip, tag, hero) and need the readable text color. Returns whichever of black or white has the higher contrast ratio, both ratios, the grade, and a softer near-black or near-white option that still passes AA.","tags":["swatch","DesignApplication","read-only"],"examples":["Does #777 on white pass WCAG AA?","Make this gray text accessible without changing the look","Build a 50 to 950 palette from #ff5a1f and check the contrast"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"]},{"id":"swatch_make_scale","name":"Build a 50 to 950 color scale from one color","description":"Use when you need a design-token palette from a brand color. Generates an 11-step scale (50, 100 ... 950) in OKLCH so steps look evenly spaced, with your exact color kept as the closest step. Returns each step's hex, contrast on white and black, the best text color on it, and ready-to-paste CSS variables, a Tailwind colors block and JSON.","tags":["swatch","DesignApplication","read-only"],"examples":["Does #777 on white pass WCAG AA?","Make this gray text accessible without changing the look","Build a 50 to 950 palette from #ff5a1f and check the contrast"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"]},{"id":"swatch_convert_color","name":"Convert a color between hex, rgb, hsl and oklch","description":"Use when you need the same color in another CSS format, or a color name turned into a value. Returns hex, rgb(), hsl(), oklch(), relative luminance and the nearest CSS color name. Accepts hex, rgb(), hsl(), hwb(), oklch() and CSS names.","tags":["swatch","DesignApplication","read-only"],"examples":["Does #777 on white pass WCAG AA?","Make this gray text accessible without changing the look","Build a 50 to 950 palette from #ff5a1f and check the contrast"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"]},{"id":"swatch_check_pairs","name":"Check many foreground and background pairs at once","description":"Use when you need to audit a whole UI or design-token set in one call. Takes up to 50 pairs and returns each pair's ratio, grade and AA/AAA results, plus how many fail AA for normal text. Ideal after you generate a theme or dark mode and want every text-on-surface pair verified.","tags":["swatch","DesignApplication","read-only"],"examples":["Does #777 on white pass WCAG AA?","Make this gray text accessible without changing the look","Build a 50 to 950 palette from #ff5a1f and check the contrast"],"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"]}],"provenance":[{"source":"ai_catalog","first_seen":"2026-11-07T09:59:07.214632+00:00"}],"recent_probes":[{"fetched_at":"2026-11-07T09:59:07.214632+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":150,"live_responds":true}],"catalog_attestation":null,"operator_revenue_evidence":{"evidence_class":"operator_submitted","authenticity":{"rung":"no_operator_evidence","rank":0,"why":"No verifiable operator evidence has been submitted for this agent.","thresholds":{"min_independent_payers":3,"min_verified_usd":25.0},"engine_table":"agent_authenticity","merge_rule":"max(existing_rank, rank)"},"metric_metadata":{"provenance":"operator_submitted_evidence","confidence":"attested","coverage":{"numerator":0},"as_of":"2026-11-07T12:49:42.154381+00:00","definition":"Revenue proofs submitted by the verified owner and re-checked by Agenstry against the settlement chain or the operator's own Stripe account. Only independently confirmed proofs are counted."},"counts":{"retained":0,"verified":0,"unverifiable":0},"verified":{"gross_usd":0.0,"transactions":0,"independent_payers":0},"detail_url":"https://agenstry.com/api/agents/swatch.clawhard.com/evidence","dispute_url":"https://agenstry.com/agents/swatch.clawhard.com/dispute"},"verification_history":[],"signatures":[{"protected":"eyJhbGciOiJFUzI1NiIsImprdSI6Imh0dHBzOi8vYWdlbnN0cnkuY29tLy53ZWxsLWtub3duL2p3a3MuanNvbiIsImtpZCI6ImFnZW50ZmluZGVyLWVzMjU2LTEiLCJ0eXAiOiJKT1NFIn0","signature":"VrZ1AdIDFPbKAE3JjcvSO_MfstEd0wKTnx0rwnWPbgQw2vzV_CSuqFe_V6LfzqyScK3DlJMKspHVQwnm41ftPg"}]}