{"audit":{"version":"1.5","generated_at":"2026-09-11T20:21:19.399883+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/car-gene.com","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"car-gene.com","name":"CarGene","url":"https://car-gene.com/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"CarGene","url":"https://car-gene.com/"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"1.0","supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"unreachable","live_responds":null,"last_status_code":200,"last_elapsed_ms":262,"last_error":null},"track_record":{"first_seen":"2026-09-11T18:00:37.278507+00:00","last_checked":"2026-09-11T18:00:37.511173+00:00","last_seen_ok":"2026-09-11T18:00:37.511173+00:00","checks_total":2,"checks_ok":2,"uptime_pct":100.0,"uptime_window_days":30,"uptime_probes":2,"archived":false,"archived_reason":null},"conformance":{"score":39,"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":"Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification)."},{"key":"live_responds","label":"Live JSON-RPC","points":0,"max_points":25,"status":"fail","detail":"DNS dead or connection refused."},{"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 2 probes so far, need ≥5 for an uptime grade."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 4 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: CarGene (https://car-gene.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://car-gene.com/.well-known/agent-card.json"},"skills":[{"id":"search_vehicles","name":"Search vehicles","description":"Find series by name, maker name, or a generation's chassis code. Series names match by normalized substring (width, case, kana), maker names by prefix, chassis codes by substring of the code as written (a slash-joined code is one string, not split). Returns {query, hits: [{series, maker, matched_models}]} where each series and model carries its public page url; pass the ids in the hits to the other skills. Empty hits means nothing matched the query. Send a data part {\"skill\": \"search_vehicles\", \"query\": \"<name or chassis code>\"}, or a plain text part whose whole text is the query.","tags":["genealogy","search"],"examples":["AE86","スカイライン","GT-R","{\"skill\": \"search_vehicles\", \"query\": \"カローラ\"}"],"inputModes":["application/json","text/plain"],"outputModes":["application/json"]},{"id":"get_vehicle","name":"Get a series with its generations","description":"Get one series with its generations (models), the people who developed them, and the cited sources. A model_id returns the whole series the generation belongs to. Returns {series, maker, models, sources}: each model (generation) has start_year, end_year (null = still on sale), chassis_code, description, source_url, drivetrains, engineers (each with role_name and source_url), and its public page url; sources are the cited references for the descriptions (url, title, publisher, accessed_on). An empty drivetrains, engineers, or sources list means not researched yet, never none. Unknown ids are an error, not an empty result. Send {\"skill\": \"get_vehicle\", \"series_id\": \"<uuid>\"} or {\"skill\": \"get_vehicle\", \"model_id\": \"<uuid>\"}.","tags":["genealogy","generations","engineers","sources"],"examples":["{\"skill\": \"get_vehicle\", \"series_id\": \"<uuid from search_vehicles>\"}"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"get_vehicle_relationships","name":"Get relationships between generations","description":"Get the relationships between generations (succession, sibling, derivation, spiritual successor). Either id returns the whole series' relationships, because a relationship sits between two generations. Returns {series_id, url, relations}: each relation has kind and kind_name, kind_directed, from_model and to_model (each with its chassis_code, series_name and public page url), and where the source requires one, source_url with the verbatim source_excerpt; rationale is filled for spiritual successors. When kind_directed is false the two ends are interchangeable, so treat the relation as belonging to both generations. An empty relations list means not researched yet, never that the car has no relatives. Send {\"skill\": \"get_vehicle_relationships\", \"series_id\": \"<uuid>\"} or a model_id.","tags":["genealogy","relations","succession","siblings"],"examples":["{\"skill\": \"get_vehicle_relationships\", \"model_id\": \"<uuid from search_vehicles>\"}"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"get_sales_figures","name":"Get sales figures","description":"Get the sales figures of a series. Returns {series_id, url, figures, cells, region_totals, coverage, lifetime}. figures are the rows as published, each with units, the source's own wording, the period, source_url and a verbatim source_excerpt. cells are the grid a figure may be summed into, one per series, country and calendar year; a null units on a cell means the sources disagree, never zero sold. region_totals sum years within one country only, so never add across countries or add a parent region to its children. coverage rows are the blanks that were checked and found empty, with the reason. lifetime rows are cumulative or per-generation totals that must not be added to the grid. A model_id narrows figures only, since allocating a year to a generation needs the whole series. An empty list means not researched yet, never zero. Send {\"skill\": \"get_sales_figures\", \"series_id\": \"<uuid>\"} or a model_id.","tags":["sales","figures","sources"],"examples":["{\"skill\": \"get_sales_figures\", \"series_id\": \"<uuid from search_vehicles>\"}"],"inputModes":["application/json"],"outputModes":["application/json"]}],"provenance":[{"source":"a2a_registry_org","first_seen":"2026-09-11T18:00:37.278507+00:00"}],"recent_probes":[{"fetched_at":"2026-09-11T18:00:37.511173+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":262,"live_responds":null},{"fetched_at":"2026-09-11T18:00:37.278507+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":741,"live_responds":null}],"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-09-11T20:21:19.414261+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/car-gene.com/evidence","dispute_url":"https://agenstry.com/agents/car-gene.com/dispute"},"verification_history":[]}