{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_w47v8mg298am","handle":"pool-log","url":"https://wellknown.network/agents/pool-log","links":{"self":"https://wellknown.network/agents/pool-log/record.json","html":"https://wellknown.network/agents/pool-log","markdown":"https://wellknown.network/agents/pool-log/record.md","api":"https://wellknown.network/api/v1/agents/pool-log","status":"https://wellknown.network/api/v1/agents/pool-log/status","claim":"https://wellknown.network/agents/pool-log/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/pool-log/claim.json","badge":"https://wellknown.network/agents/pool-log/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/pool-log/history","tools":"https://wellknown.network/api/v1/agents/pool-log/tools"},"ard":{"identifier":"urn:air:pool-log.rowb.app:agent:pool-log","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"Pool Log","summary":"CDC-based pool and spa water test log with deterministic compliance checks and an auditable record This service is a plain REST API and an MCP server over Streamable HTTP - it is NOT an A2A JSON-RPC agent. Docs at the documentationUrl.","description":"CDC-based pool and spa water test log with deterministic compliance checks and an auditable record This service is a plain REST API and an MCP server over Streamable HTTP - it is NOT an A2A JSON-RPC agent. Docs at the documentationUrl.","publisher":{"name":"rowb.app","url":"https://rowb.app"},"homepage":"https://pool-log.rowb.app/llms.txt","repository":null,"version":"1.0.0","license":null,"protocols":["a2a"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"https://pool-log.rowb.app","type":"a2a","auth":"none","probeable":true}],"skills":[{"id":"check_readings","name":"check_readings","tags":["mcp"],"description":"Check a list of pool or spa water readings for things that cannot be true, and compare pH, free chlorine and bromine against the ranges published on the US CDC pages. Deterministic arithmetic only - no AI. It does not decide whether a pool is legally compliant, and it does not know your local code."},{"id":"get_rules","name":"get_rules","tags":["mcp"],"description":"The exact rule table this service checks against, the quoted source of every range, and what it explicitly does not claim. Quote it if you need to explain a result."},{"id":"create_site","name":"create_site","tags":["mcp"],"description":"Open a water-test log for one pool, hot tub or splash pad (returns a site id). Requires a bearer key."},{"id":"add_readings","name":"add_readings","tags":["mcp"],"description":"Append water readings to an existing log. Requires a bearer key."},{"id":"get_log_summary","name":"get_log_summary","tags":["mcp"],"description":"Every reading, the flagged issues, the CDC-range counts, the longest gap between tests, and the A4 log sheet URL, for one log. Requires a bearer key."},{"id":"request_operator_signoff","name":"request_operator_signoff","tags":["mcp"],"description":"Create a one-time URL the pool operator can open to confirm the log. Requires a bearer key. The token is single use."}],"tools":["check_readings","get_rules","create_site","add_readings","get_log_summary","request_operator_signoff"],"extra":{"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"capabilities":{"streaming":false,"pushNotifications":false}},"attribution":{"kind":"a2a_card","name":"a2a_card","summary":"a2a_card","version":"a2a_card","description":"a2a_card","homepageUrl":"a2a_card","publisherUrl":"a2a_card","publisherName":"a2a_card"}},"derived":{"capabilities":[{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["content"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-19T18:34:12.002Z","lastProbedAt":"2026-10-19T18:34:12.002Z","statusComputedAt":"2026-10-19T18:36:26.059Z","reliability30d":{"probes":62,"successRate":1,"p50Ms":62,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":62,"ok":62,"authBoundaryOk":0,"serviceOk":62,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-19T18:34:12.002Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":113,"error":null,"detail":{"name":"Pool Log","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":6}},{"at":"2026-10-19T11:32:36.717Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":68,"error":null,"detail":{"name":"Pool Log","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":6}},{"at":"2026-10-19T05:32:17.975Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":14,"error":null,"detail":{"name":"Pool Log","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":6}},{"at":"2026-10-18T22:26:47.232Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":15,"error":null,"detail":{"name":"Pool Log","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":6}},{"at":"2026-10-18T15:28:55.062Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":68,"error":null,"detail":{"name":"Pool Log","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":6}},{"at":"2026-10-18T08:30:18.206Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":26,"error":null,"detail":{"name":"Pool Log","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":6}},{"at":"2026-10-18T02:25:32.534Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":54,"error":null,"detail":{"name":"Pool Log","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":6}},{"at":"2026-10-17T20:33:45.742Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":28,"error":null,"detail":{"name":"Pool Log","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":6}},{"at":"2026-10-17T14:22:10.044Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":104,"error":null,"detail":{"name":"Pool Log","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":6}},{"at":"2026-10-17T07:26:38.222Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":90,"error":null,"detail":{"name":"Pool Log","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":6}}],"tools":null,"package":null,"toolSurface":null,"endpointFacts":[{"id":"ep_6gdfbngvbw9w","url":"https://pool-log.rowb.app","type":"a2a","factsCheckedAt":"2026-10-19T05:32:17.973Z","auth":null,"tls":{"observedAt":"2026-10-19T05:32:17.981Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"rowb.app","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-30T21:10:54.000Z","validTo":"2026-12-29T22:10:50.000Z","daysToExpiry":70,"sanCount":3,"fingerprint256":"7D:9C:73:5F:40:4D:B9:6D:04:6C:28:BC:17:E0:08:6B:08:00:4A:B4:14:A0:0C:6E:89:D5:B2:A5:B6:40:4E:2C"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"a2a_card","key":"https://pool-log.rowb.app/.well-known/agent-card.json","url":"https://pool-log.rowb.app/.well-known/agent-card.json","firstSeenAt":"2026-10-03T06:19:47.890Z","fetchedAt":"2026-10-17T12:19:10.019Z","normalizedAt":"2026-10-17T12:19:10.019Z"}]},"firstSeenAt":"2026-10-03T06:19:47.890Z","updatedAt":"2026-10-03T06:19:50.474Z"}