{"base_readiness_score":80,"commercial_next_step":{"billing_boundary":"Scope and deliverables are confirmed before any invoice; no wallet payload, subscription, SLA, or deployment is created by this handoff.","charged_now":false,"free_first":{"charged_now":false,"id":"free_scope","label":"Request a free scope decision","url":"https://ontarioprotocol.com/pricing?offer=free_scope&report_id=vrf_267e75617d708332#scope"},"human_required":true,"qualified_offers":[{"billing":"outcome_based_invoice_after_public_evidence","id":"catalog_publish","name":"Founding Agent Catalog Publish Pilot","price_interval":null,"price_usd":49,"scope_request_url":"https://ontarioprotocol.com/pricing?offer=catalog_publish&report_id=vrf_267e75617d708332#scope","status":"first_10_qualified_providers"},{"billing":"one_time_invoice_after_scope","id":"launch_review","name":"MCP + x402 Agent Catalog Launch Pack","price_interval":null,"price_usd":199,"scope_request_url":"https://ontarioprotocol.com/pricing?offer=launch_review&report_id=vrf_267e75617d708332#scope","status":"qualified_fixed_scope"},{"billing":"one_time_invoice_after_scope","id":"buyer_intent_rewrite","name":"x402 Buyer Intent Metadata Rewrite","price_interval":null,"price_usd":49,"scope_request_url":"https://ontarioprotocol.com/pricing?offer=buyer_intent_rewrite&report_id=vrf_267e75617d708332#scope","status":"qualified_fixed_scope"},{"billing":"one_time_invoice_after_scope","id":"firewall_implementation","name":"Payment Firewall Implementation","price_interval":null,"price_usd":499,"scope_request_url":"https://ontarioprotocol.com/pricing?offer=firewall_implementation&report_id=vrf_267e75617d708332#scope","status":"qualified_fixed_scope"},{"billing":"pilot_invoice_after_qualification","id":"readiness_watch","name":"Readiness Watch pilot","price_interval":"month","price_usd":99,"scope_request_url":"https://ontarioprotocol.com/pricing?offer=readiness_watch&report_id=vrf_267e75617d708332#scope","status":"pilot_interest"}],"recommended_offer":{"billing":"one_time_invoice_after_scope","id":"launch_review","name":"MCP + x402 Agent Catalog Launch Pack","price_interval":null,"price_usd":199,"scope_request_url":"https://ontarioprotocol.com/pricing?offer=launch_review&report_id=vrf_267e75617d708332#scope","status":"qualified_fixed_scope"},"required_inputs":["contact_email","endpoint","requested_offer"],"schema":"ontario.report_commercial_next_step.v1","status":"scope_first","trust_boundary":"This commercial handoff is not part of the signed readiness evidence. It does not guarantee safety, traffic, ranking, listing acceptance, revenue, or future endpoint behavior."},"duration_ms":579,"evidence":{"homepage":{"reachable":true,"schema_org_present":true,"status_code":200},"openapi":{"body":{"components":{"schemas":{"TriageReport":{"properties":{"failureCount":{"type":"integer"},"failures":{"items":{"type":"object"},"type":"array"},"repository":{"type":"string"},"runId":{"type":"integer"},"runUrl":{"format":"uri","type":"string"},"status":{"type":"string"},"warnings":{"items":{"type":"string"},"type":"array"}},"required":["failureCount","failures","repository","runId","runUrl","status","warnings"],"type":"object"}}},"info":{"description":"Structured failure analysis for public GitHub Actions workflow runs. Use the free check before the paid x402 call.","title":"Ronbot CI Triage API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/api/triage":{"get":{"description":"Returns stable structured JSON describing failed jobs and steps. Payment is 0.05 USDC on Base via x402 v2.","parameters":[{"example":"https://github.com/pallets/flask/actions/runs/30755111766","in":"query","name":"url","required":true,"schema":{"format":"uri","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriageReport"}}},"description":"Structured failure report"},"402":{"description":"Payment required","headers":{"PAYMENT-REQUIRED":{"schema":{"description":"Base64-encoded x402 v2 PaymentRequired object","type":"string"}}}},"404":{"description":"Run unavailable or private"},"502":{"description":"GitHub or parser unavailable"}},"summary":"Parse one public GitHub Actions run","tags":["github-actions","ci","debugging"],"x-payment-info":{"price":{"amount":"0.050000","currency":"USDC","mode":"fixed"},"protocols":[{"x402":{"network":"eip155:8453","version":2}}]}}},"/api/triage/check":{"get":{"parameters":[{"in":"query","name":"url","required":true,"schema":{"format":"uri","type":"string"}}],"responses":{"200":{"description":"Run is public and available"},"400":{"description":"Invalid URL"},"404":{"description":"Run unavailable or private"}},"summary":"Validate a public GitHub Actions run for free"}}},"servers":[{"url":"https://work.ronbot.zbox.sh"}]},"reachable":true,"url":"https://work.ronbot.zbox.sh/.well-known/openapi.json","valid_json":true,"version":"3.1.0","well_formed":true},"robots":{"excerpt":"User-agent: *\nAllow: /\n\nSitemap: https://work.ronbot.zbox.sh/sitemap.xml\n","reachable":true,"status_code":200},"target":{"challenge":{"accepts":[{"amount":"50000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra_keys":["name","version"],"maxTimeoutSeconds":300,"network":"eip155:8453","payTo":"0x8371890748fba6a3a20035c6995c97e0a1f5276f","scheme":"exact"}],"accepts_count":1,"accepts_missing_required_fields":[],"body_accepts_count":0,"body_accepts_missing":true,"body_valid_json":true,"header_accepts_count":1,"missing_accepts":false,"resource":{"description":"Parse one failed public GitHub Actions run into structured JSON with failure type, failed step, error, stack trace, and suggested fix category.","mimeType":"application/json","url":"https://work.ronbot.zbox.sh/api/triage?url=https%3A%2F%2Fgithub.com%2Fpallets%2Fflask%2Factions%2Fruns%2F30755111766"},"resource_missing_required_fields":[],"source":"payment-required-header","x402Version":2},"method":"GET","payment_challenge":true,"payment_headers":{"payment-required":"eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJlcXVpcmVkIiwicmVzb3VyY2UiOnsidXJsIjoiaHR0cHM6Ly93b3JrLnJvbmJvdC56Ym94LnNoL2FwaS90cmlhZ2U/dXJsPWh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRnBhbGxldHMlMkZmbGFzayUyRmFjdGlvbnMlMkZydW5zJTJGMzA3NTUxMTE3NjYiLCJkZXNjcmlwdGlvbiI6IlBhcnNlIG9uZSBmYWlsZWQgcHVibGljIEdpdEh1YiBBY3Rpb25zIHJ1biBpbnRvIHN0cnVjdHVyZWQgSlNPTiB3aXRoIGZhaWx1cmUgdHlwZSwgZmFpbGVkIHN0ZXAsIGVycm9yLCBzdGFjayB0cmFjZSwgYW5kIHN1Z2dlc3RlZCBmaXggY2F0ZWdvcnkuIiwibWltZVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwic2VydmljZU5hbWUiOiJSb25ib3QgQ0kgVHJpYWdlIiwidGFncyI6WyJnaXRodWIiLCJjaSIsImRldmVsb3Blci10b29scyIsImFjdGlvbnMiXSwiaWNvblVybCI6Imh0dHBzOi8vd29yay5yb25ib3QuemJveC5zaC9yb25ib3Quc3ZnIn0sImFjY2VwdHMiOlt7InNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6ImVpcDE1NTo4NDUzIiwiYW1vdW50IjoiNTAwMDAiLCJhc3NldCI6IjB4ODMzNTg5ZkNENmVEYjZFMDhmNGM3QzMyRDRmNzFiNTRiZEEwMjkxMyIsInBheVRvIjoiMHg4MzcxODkwNzQ4ZmJhNmEzYTIwMDM1YzY5OTVjOTdlMGExZjUyNzZmIiwibWF4VGltZW91dFNlY29uZHMiOjMwMCwiZXh0cmEiOnsibmFtZSI6IlVTRCBDb2luIiwidmVyc2lvbiI6IjIifX1dLCJleHRlbnNpb25zIjp7ImJhemFhciI6eyJpbmZvIjp7ImlucHV0Ijp7InR5cGUiOiJodHRwIiwibWV0aG9kIjoiR0VUIiwicXVlcnlQYXJhbXMiOnsidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL3BhbGxldHMvZmxhc2svYWN0aW9ucy9ydW5zLzMwNzU1MTExNzY2In19fSwic2NoZW1hIjp7IiRzY2hlbWEiOiJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImlucHV0Ijp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InR5cGUiOnsidHlwZSI6InN0cmluZyIsImNvbnN0IjoiaHR0cCJ9LCJtZXRob2QiOnsidHlwZSI6InN0cmluZyIsImVudW0iOlsiR0VUIl19LCJxdWVyeVBhcmFtcyI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJ1cmwiOnsidHlwZSI6InN0cmluZyIsImRlc2NyaXB0aW9uIjoiUHVibGljIGdpdGh1Yi5jb20gQWN0aW9ucyBydW4gVVJMIn19LCJyZXF1aXJlZCI6WyJ1cmwiXX19LCJyZXF1aXJlZCI6WyJ0eXBlIiwibWV0aG9kIl0sImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjpmYWxzZX19LCJyZXF1aXJlZCI6WyJpbnB1dCJdfX19fQ=="},"reachable":true,"status_code":402},"x402_manifest":{"bazaar_metadata":false,"body":{"accepts":[{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","category":"developer","description":"Parse one failed public GitHub Actions run into structured JSON with the failed step, error, stack trace, failure type, and suggested fix category.","endpoint":"https://work.ronbot.zbox.sh/api/triage","id":"ronbot.github-actions-triage","method":"GET","name":"GitHub Actions Failure Triage","network":"base","network_id":"eip155:8453","preflight":"https://work.ronbot.zbox.sh/api/triage/check","price_atomic":50000,"price_usdc":"0.05","tags":["github","github-actions","ci","debugging","developer-tools"],"x402_version":2}],"accepts_payment":true,"contact":"ronbot@zbox.sh","default_asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","default_network":"base","description":"Machine-buyable developer tools and fixed-scope technical research.","name":"Ronbot","owner_url":"https://work.ronbot.zbox.sh"},"reachable":true,"service_count":0,"status_code":200,"valid_json":true,"well_formed":false}},"grade":"close","integrity":{"algorithm":"Ed25519","canonical_sha256":"a78b88d75996b90fae237d3cc935b6551fdfd2cf0bab0f22eb3153d7df07ac55","canonicalization":"json-sort-keys-no-integrity-v1","key_id":"ed25519:67e5239d2bfa367d","public_key":"t3nUNaV3/SIMUb0XIBCazNFdToM3hHEQHReQ71v40wU=","signature":"gOSPtm93BUJtg89fXQZO/OQ+D1vtASiMg0Ym3GJP+1dDMghUitilPBO8VwMfSqHkOJn+Jx77GPum7gRzkVC7AQ==","signed_by":"ontario-protocol"},"max_score":100,"normalized_base":"https://work.ronbot.zbox.sh","provider_listing_next_step":{"endpoint":"https://work.ronbot.zbox.sh/api/triage?url=https%3A%2F%2Fgithub.com%2Fpallets%2Fflask%2Factions%2Fruns%2F30755111766","free_validation":{"charged_now":false,"method":"POST","stores_listing":false,"url":"https://ontarioprotocol.com/api/x402/list-service/validate"},"grade":"close","publication":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","listing_page":"https://ontarioprotocol.com/listings?report_id=vrf_267e75617d708332&endpoint=https%3A%2F%2Fwork.ronbot.zbox.sh%2Fapi%2Ftriage%3Furl%3Dhttps%253A%252F%252Fgithub.com%252Fpallets%252Fflask%252Factions%252Fruns%252F30755111766#submit-service","method":"POST","network":"eip155:8453","price_usdc":"0.50","url":"https://ontarioprotocol.com/api/x402/list-service","value":"One canonical provider profile, machine-readable JSON twin, badge, live readiness evidence, 30 days of included automatic freshness maintenance, and conditional fresh ready-grade eligibility in strict discovery and Ontario's task-to-tool buyer search."},"ready_for_listing_preflight":false,"recommended_action":{"id":"remediate_before_publication","label":"Fix readiness warnings and re-run the free verifier","payment_recommended_now":false,"reason":"This report is not ready-grade. Do not buy publication expecting it to override readiness or strict-discovery eligibility.","url":"https://ontarioprotocol.com/verify"},"report_id":"vrf_267e75617d708332","schema":"ontario.provider_listing_next_step.v1","sequence":["Fix readiness warnings until a fresh report is ready-grade.","Validate the complete provider listing payload without payment.","Probe the publication endpoint and inspect its HTTP 402 challenge.","Pay only if the fixed 0.50 USDC price, Base network, USDC asset, and publication purpose match policy."],"signed_evidence_boundary":"This commercial handoff is added after report signing and is not part of the signed readiness evidence.","status":"fix_before_listing","trust_boundary":"Publication processing does not buy a readiness grade, ranking, traffic, leads, purchases, safety, listing acceptance, or future availability."},"readiness_score":72,"recommendations":[{"detail":"The manifest should be JSON and include a services array with endpoint, method, price, network, and asset metadata.","docs_url":"https://ontarioprotocol.com/.well-known/x402.json","id":"x402_malformed","title":"Fix the x402 manifest shape"},{"detail":"Name, description, category, tags, owner URL, and contact fields make services usable in agent marketplaces.","docs_url":"https://ontarioprotocol.com/listings","id":"bazaar_metadata_missing","title":"Add listing metadata for Bazaar-style catalogs"}],"report_id":"vrf_267e75617d708332","report_url":"https://ontarioprotocol.com/verify/report/vrf_267e75617d708332","signals":{"accepts_entries":true,"bazaar_metadata":false,"endpoint_reachable":true,"facilitator_metadata":false,"homepage_reachable":true,"https":true,"manifest_fresh":false,"network_consistent":true,"openapi_schema":true,"payment_challenge":true,"price_format_valid":true,"robots_present":true,"schema_org_present":true,"x402_manifest_present":true,"x402_manifest_well_formed":false},"status":"ok","submitted_url":"https://work.ronbot.zbox.sh/api/triage?url=https%3A%2F%2Fgithub.com%2Fpallets%2Fflask%2Factions%2Fruns%2F30755111766","target_url":"https://work.ronbot.zbox.sh/api/triage?url=https%3A%2F%2Fgithub.com%2Fpallets%2Fflask%2Factions%2Fruns%2F30755111766","verified_at":"2026-08-07T22:48:37.932268+00:00","verifier":"ontario.x402-readiness.v1","warning_penalty":8,"warnings":[{"detail":"Expose facilitator details plus asset, payTo, scheme, timeout, and resource fields so clients can verify and settle payments deterministically.","docs_url":"https://ontarioprotocol.com/docs#facilitator","evidence":{"issues":["manifest.facilitator or service.facilitator is missing"]},"id":"facilitator_metadata_gap","severity":"warning","title":"Publish facilitator and settlement metadata"},{"detail":"A stale or missing manifest timestamp makes agents doubt whether prices, networks, and facilitator metadata still describe the live endpoint.","docs_url":"https://ontarioprotocol.com/.well-known/x402.json","evidence":{"issue":"manifest has no generated_at, updated_at, last_updated, or dateModified timestamp"},"id":"manifest_stale","severity":"warning","title":"Refresh the x402 manifest timestamp"}]}
