{"audit":{"version":"1.4","generated_at":"2026-08-19T17:42:09.214032+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/blog.techdominator.com","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"blog.techdominator.com","name":"Tech Dominator Blog","url":"https://blog.techdominator.com/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"Chedy Missaoui","url":"https://blog.techdominator.com/about-chedy-missaoui.html"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"0.3.0","supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"wrong_response","live_responds":false,"last_status_code":200,"last_elapsed_ms":150,"last_error":null},"track_record":{"first_seen":"2026-08-12T08:50:20.058074+00:00","last_checked":"2026-08-19T11:12:39.596995+00:00","last_seen_ok":"2026-08-19T11:12:39.596995+00:00","checks_total":14,"checks_ok":14,"uptime_pct":100.0,"archived":false,"archived_reason":null},"conformance":{"score":54,"grade":"D","summary":"D-grade: significant issues, auth-gated, partially broken, or stale.","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":5,"max_points":25,"status":"fail","detail":"Endpoint replies but body isn't a valid JSON-RPC 2.0 A2A response."},{"key":"protocol_version","label":"Protocol version","points":5,"max_points":10,"status":"partial","detail":"Declares pre-1.0 A2A 0.3.0 (Google preview). Upgrade to v1.x for full points."},{"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":15,"max_points":15,"status":"pass","detail":"14/14 probes succeeded (100% uptime)."},{"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: Chedy Missaoui (https://blog.techdominator.com/about-chedy-missaoui.html). 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://blog.techdominator.com/.well-known/agent-card.json"},"skills":[{"id":"azure-event-hubs","name":"Azure Event Hubs","description":"In-depth series on producing and consuming events, scaling consumption, checkpointing and rewinding, consumer clients, partition receivers, raw AMQP, the Kafka surface, and load testing with JMeter and Locust.","tags":["azure","azure-event-hubs","event-streaming","event-processing","checkpointing","amqp","kafka","csharp","load-testing","jmeter","locust"],"examples":["How do I scale event consumption in Azure Event Hubs?","How do checkpoints and rewinding work in Azure Event Hubs?","How do I load-test Event Hubs processing with Locust?"],"inputModes":[],"outputModes":[]},{"id":"aspnet-core-tag-helpers","name":"ASP.NET Core Tag Helpers","description":"Cheat sheets and deep dives on using, creating, nesting, and programmatically rendering Tag Helpers, including a dynamic form Tag Helper and View Components.","tags":["aspnet-core","tag-helpers","dynamic-forms","view-components","rendering","csharp"],"examples":["How do I render a Tag Helper inside another Tag Helper?","How do I build a dynamic form Tag Helper in ASP.NET Core?"],"inputModes":[],"outputModes":[]},{"id":"csharp-dotnet","name":"C# and .NET","description":"Articles on async/await internals, Reactive Extensions (Rx), and general C# software engineering.","tags":["csharp","async-await","reactive-programming","concurrency","dotnet"],"examples":["How does async/await work under the hood in C#?","How do I adapt callback-based asynchronous interfaces to async/await?"],"inputModes":[],"outputModes":[]},{"id":"elixir-phoenix","name":"Elixir and Phoenix","description":"Functional programming on the Erlang platform: GenServer patterns and contention, fault-tolerant state conservation, Phoenix routes/controllers/channels, state machines, and interop with Python and C++ NIFs.","tags":["elixir","erlang","phoenix","genserver","functional-programming","fault-tolerance","concurrency","interoperability"],"examples":["How do I conserve GenServer state between crashes?","How do I implement a state machine in Elixir?"],"inputModes":[],"outputModes":[]},{"id":"web-development","name":"Web Development","description":"Front-end fundamentals: HTML cheat sheets, CSS animations, modern layouts with grids and flexboxes, ES6, and React.","tags":["html","css","javascript","es6","react","web-development","responsive-design","animations"],"examples":["How do modern CSS layouts with grids and flexboxes work?","What are the basics of CSS animations?"],"inputModes":[],"outputModes":[]},{"id":"software-design","name":"Software Design and Architecture","description":"Design patterns and architecture topics: the circuit breaker pattern (in C# and Elixir), MVVM, specification view models, and automated testing.","tags":["software-architecture","design-patterns","circuit-breaker","mvvm","fault-tolerance","automated-testing"],"examples":["How do I implement the circuit breaker pattern in C#?","What is the MVVM pattern?"],"inputModes":[],"outputModes":[]}],"provenance":[{"source":"manifests","first_seen":"2026-08-12T08:50:20.058074+00:00"},{"source":"recrawl_hot","first_seen":"2026-08-17T15:12:12.516149+00:00"}],"recent_probes":[{"fetched_at":"2026-08-19T11:12:39.596995+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":150,"live_responds":false},{"fetched_at":"2026-08-18T20:26:57.025466+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":141,"live_responds":false},{"fetched_at":"2026-08-18T09:41:00.831177+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":174,"live_responds":false},{"fetched_at":"2026-08-17T15:12:12.516149+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":130,"live_responds":false},{"fetched_at":"2026-08-16T20:58:21.918977+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":769,"live_responds":false},{"fetched_at":"2026-08-16T09:04:35.366907+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":150,"live_responds":false},{"fetched_at":"2026-08-16T03:09:28.108964+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":703,"live_responds":false},{"fetched_at":"2026-08-15T09:04:46.245533+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":208,"live_responds":false},{"fetched_at":"2026-08-15T02:40:30.568934+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":704,"live_responds":false},{"fetched_at":"2026-08-14T12:43:41.237090+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":168,"live_responds":false}],"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-08-19T17:42:09.217666+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/blog.techdominator.com/evidence","dispute_url":"https://agenstry.com/agents/blog.techdominator.com/dispute"},"verification_history":[]}