Scovant Core — https://example.com/

Profile: api (requested auto, confidence 90%)

Core version: 0.2.1

20 PASS, 6 WARN, 0 FAIL, 19 N/A, 0 ERROR (45 checks)

Scovant Core Static Signal Score

89 / 100

Grade: B · Scope: CANONICAL · Status: OK · Coverage: 100% · Errors: 0

Capabilities detected (descriptive, not scored): mcp: absent · webmcp: absent · ucp: not_checked · llms_txt: absent · openapi: present · oauth: present · content_signal: absent · security_txt: present

Standards: AgentReady v1.0 (descriptive, not scored): MUST 3/3 measured — 2 pass, 1 warn · SHOULD 6/12 measured — 4 pass, 2 warn · MAY 1/3 measured — 1 pass — Mapping: docs/standards/agentready.md

Categories

CategoryWeightScoreEvaluated / applicable
Access & Discovery2510021 / 21
Machine Understanding25818 / 8
Agent Interfaces201006 / 6
Trust & Commerce15758 / 8
Operability & Efficiency158211 / 11

Findings

StatusIDTitleSeveritySummary
WARNCORE-MACHINE-002Organization entitymediumNo Organization entity was found on the sampled pages.
WARNCORE-MACHINE-003WebSite/WebPage entitylowNo WebSite or WebPage entity was found on the sampled pages.
WARNCORE-OPERABILITY-001Server-rendered core contentmediumThe entry page's static HTML carries only 155 chars of visible text (< 200).
WARNCORE-OPERABILITY-003Cache validatorsinfoThe entry response carries no cache validator (ETag, Last-Modified, or Cache-Control).
WARNCORE-TRUST-004Privacy policy discoverabilityhighA privacy policy page was found but has too little text (135 chars) to be a real policy document.
WARNCORE-TRUST-005Terms/conditions discoverabilitymediumNo terms/conditions page was found linked from the entry page.
PASSCORE-ACCESS-001HTTPS reachabilityinfoHTTPS entry URL answered 200.
PASSCORE-ACCESS-002robots.txt availability and syntaxinforobots.txt answered 200 with a well-formed policy.
PASSCORE-ACCESS-003AI search crawler policyinforobots.txt declares all major search and answer-engine crawlers as allowed.
PASSCORE-ACCESS-004Training vs. search crawler separationinfoNo training restriction is declared; search and retrieval remain allowed.
PASSCORE-ACCESS-005Sitemap availabilityinfoA valid urlset sitemap was found at https://example.com/sitemap.xml.
PASSCORE-ACCESS-006Sitemap freshnessinfoSitemap lastmod values look plausible.
PASSCORE-ACCESS-007Canonical URL integrityinfoThe canonical URL matches the entry URL.
PASSCORE-ACCESS-008IndexabilityinfoThe entry page does not declare noindex.
PASSCORE-INTERFACE-005OpenAPI discoveryinfoAn OpenAPI/Swagger document was discovered and parses.
PASSCORE-INTERFACE-006OAuth authorization-server metadatainfoOAuth authorization-server metadata is published and complete.
PASSCORE-INTERFACE-007OAuth protected-resource metadatainfoOAuth protected-resource metadata is published and complete.
PASSCORE-MACHINE-008Metadata qualityinfoThe entry page declares title, description, and Open Graph tags.
PASSCORE-MACHINE-009Heading structureinfoThe entry page has a single H1 and no skipped heading levels.
PASSCORE-MACHINE-010Language declarationinfoThe entry page declares a valid `lang` attribute.
PASSCORE-OPERABILITY-002Redirect chain complexityinfoThe entry URL redirects 0 time(s) before settling.
PASSCORE-OPERABILITY-004Broken machine-consumable endpointsinfoAll 4 checked machine-consumable reference(s) resolve.
PASSCORE-OPERABILITY-005Agent parse costinfoThe entry page's estimated parse cost is ~38 tokens (low).
PASSCORE-TRUST-001Contact/support discoverabilityinfoA contact or support link was found on the entry page.
PASSCORE-TRUST-006security.txt discoverabilityinfoA valid security.txt was found with a contact method.
N/ACORE-ACCESS-009llms.txt presence and integrityinfoNo llms.txt is published.
N/ACORE-ACCESS-010Content-Signal declarationinfoNo Content-Signal directive is declared.
N/ACORE-INTERFACE-001MCP discovery presenceinfoNo MCP discovery file is published.
N/ACORE-INTERFACE-002MCP server declaration qualityinfoNo MCP server is declared.
N/ACORE-INTERFACE-003WebMCP static presenceinfoNo static WebMCP marker was found on the sampled pages.
N/ACORE-MACHINE-001JSON-LD parseabilityinfoNo JSON-LD blocks were found on the sampled pages.
N/ACORE-MACHINE-004Product structured datainfoNot applicable to the api profile.
N/ACORE-MACHINE-005Offer price, currency, and availabilityinfoNot applicable to the api profile.
N/ACORE-MACHINE-006Product identifier countinfoNot applicable to the api profile.
N/ACORE-MACHINE-007BreadcrumbsinfoNot applicable to the api profile.
N/ACORE-MACHINE-011Image alt coverageinfoNot applicable to the api profile.
N/ACORE-OPERABILITY-006Form/control labelsinfoNot applicable to the api profile.
N/ACORE-TRUST-002Shipping policy discoverabilityinfoNot applicable to the api profile.
N/ACORE-TRUST-003Returns/refund policy discoverabilityinfoNot applicable to the api profile.
N/ACORE-TRUST-007Pricing discoverabilityinfoNot applicable to the api profile.

Experimental (not scored)

N/A: CORE-INTERFACE-004, CORE-INTERFACE-008, CORE-MACHINE-012, CORE-OPERABILITY-007

Evidence

CORE-ACCESS-001 — HTTPS reachability
{
  "final_url": "https://example.com/",
  "input_url": "https://example.com/",
  "redirect_chain": [],
  "redirect_count": 0,
  "status": 200
}
CORE-ACCESS-002 — robots.txt availability and syntax
{
  "error": null,
  "resource": "https://example.com/robots.txt",
  "served_as_html": false,
  "sha256": "b87966e58d2e52aaf3d52e0e5308a67505c7b1015c2fa7f772d1ecc327c4082f",
  "sitemap_count": 1,
  "status": 200,
  "unknown_directives": []
}
CORE-ACCESS-003 — AI search crawler policy
{
  "declared_policy": {
    "Applebot": true,
    "Bingbot": true,
    "Claude-SearchBot": true,
    "Googlebot": true,
    "OAI-SearchBot": true,
    "PerplexityBot": true
  },
  "http_status": 200,
  "resource": "https://example.com/robots.txt",
  "robots_present": true,
  "user_fetch_policy": {
    "ChatGPT-User": true,
    "Claude-User": true,
    "DuckAssistBot": true,
    "Perplexity-User": true
  }
}
CORE-ACCESS-004 — Training vs. search crawler separation
{
  "explicit_separation": false,
  "http_status": 200,
  "resource": "https://example.com/robots.txt",
  "search_blocked": [],
  "training_blocked": []
}
CORE-ACCESS-005 — Sitemap availability
{
  "entry_count": 3,
  "exists": true,
  "kind": "urlset",
  "parse_error": null,
  "probe_error": null,
  "probe_status": 200,
  "served_as_html": false,
  "url": "https://example.com/sitemap.xml",
  "valid": true
}
CORE-ACCESS-006 — Sitemap freshness
{
  "dated_entry_count": 3,
  "entry_count": 3,
  "newest": "2026-08-01",
  "oldest": "2026-08-01",
  "url": "https://example.com/sitemap.xml"
}
CORE-ACCESS-007 — Canonical URL integrity
{
  "canonical_url": "https://example.com/",
  "entry_url": "https://example.com/"
}
CORE-ACCESS-008 — Indexability
{
  "robots_meta": null,
  "x_robots_tag": null
}
CORE-ACCESS-009 — llms.txt presence and integrity
{
  "http_status": 404,
  "resource": "https://example.com/llms.txt"
}
CORE-ACCESS-010 — Content-Signal declaration
{
  "declared": false,
  "dimensions": {
    "ai-input": "unset",
    "ai-train": "unset",
    "search": "unset"
  },
  "syntax_errors": []
}
CORE-INTERFACE-001 — MCP discovery presence
{
  "exists": false,
  "http_status": 404,
  "resource": "https://example.com/.well-known/mcp.json",
  "server_card": false,
  "valid": false
}
CORE-INTERFACE-003 — WebMCP static presence
{
  "pages_scanned": 3,
  "pages_with_marker": []
}
CORE-INTERFACE-005 — OpenAPI discovery
{
  "candidates_checked": 5,
  "found_url": "https://example.com/openapi.json",
  "openapi_version": "3.1.0",
  "parseable": true
}
CORE-INTERFACE-006 — OAuth authorization-server metadata
{
  "has_endpoints": true,
  "http_status": 200,
  "issuer": "https://example.com",
  "parseable": true,
  "resource": "https://example.com/.well-known/oauth-authorization-server",
  "served_as_html": false
}
CORE-INTERFACE-007 — OAuth protected-resource metadata
{
  "authorization_servers": [
    "https://example.com"
  ],
  "http_status": 200,
  "parseable": true,
  "resource": "https://example.com/.well-known/oauth-protected-resource",
  "resource_value": "https://example.com",
  "served_as_html": false
}
CORE-MACHINE-001 — JSON-LD parseability
{
  "pages": [
    {
      "parsed": 0,
      "raw": 0,
      "url": "https://example.com/"
    },
    {
      "parsed": 0,
      "raw": 0,
      "url": "https://example.com/docs"
    },
    {
      "parsed": 0,
      "raw": 0,
      "url": "https://example.com/contact"
    }
  ],
  "parsed_total": 0,
  "raw_total": 0
}
CORE-MACHINE-002 — Organization entity
{
  "found": false,
  "pages_parsed": 3
}
CORE-MACHINE-003 — WebSite/WebPage entity
{
  "found": false,
  "pages_parsed": 3
}
CORE-MACHINE-008 — Metadata quality
{
  "entry_url": "https://example.com/",
  "issues": [],
  "meta_description": "Example API is a synthetic HTTP API used to exercise agent-readiness checks.",
  "missing": [],
  "title": "Example API"
}
CORE-MACHINE-009 — Heading structure
{
  "entry_url": "https://example.com/",
  "h1_count": 1,
  "heading_count": 1,
  "issues": [],
  "levels": [
    "h1"
  ]
}
CORE-MACHINE-010 — Language declaration
{
  "entry_url": "https://example.com/",
  "html_lang": "en"
}
CORE-OPERABILITY-001 — Server-rendered core content
{
  "entry_url": "https://example.com/",
  "spa_shell_marker": false,
  "visible_text_chars": 155
}
CORE-OPERABILITY-002 — Redirect chain complexity
{
  "redirect_chain": [],
  "redirect_count": 0
}
CORE-OPERABILITY-003 — Cache validators
{
  "cache_control": null,
  "etag": null,
  "last_modified": null
}
CORE-OPERABILITY-004 — Broken machine-consumable endpoints
{
  "broken": [],
  "broken_count": 0,
  "inconclusive": [],
  "refs_checked": 4,
  "refs_resolved": 4,
  "unresolved": []
}
CORE-OPERABILITY-005 — Agent parse cost
{
  "dom_nodes": 18,
  "estimated_tokens": 38,
  "html_bytes": 753,
  "level": "LOW",
  "link_count": 4,
  "script_bytes": 0,
  "script_ratio": 0.0,
  "structured_bytes": 0,
  "text_chars": 155,
  "token_chars_ratio": 4
}
CORE-TRUST-001 — Contact/support discoverability
{
  "contact_url": "https://example.com/contact",
  "kind": "page"
}
CORE-TRUST-004 — Privacy policy discoverability
{
  "served_as_html": true,
  "status": 200,
  "text_chars": 135,
  "url": "https://example.com/privacy"
}
CORE-TRUST-006 — security.txt discoverability
{
  "contact": true,
  "expires": "2030-01-01T00:00:00Z",
  "expires_valid": true,
  "found_url": "https://example.com/.well-known/security.txt",
  "status": 200
}

Remediation

Limitations

Not tested by Scovant Core

Core vs Cloud

CapabilityCoreCloud
HTTP reachability
robots.txt
Sitemap
llms.txt
Structured data (JSON-LD)
Product/Offer data
Static crawler policy
Content-Signal
MCP discovery
WebMCP static presence
OpenAPI presence
OAuth authorization-server / protected-resource metadata
UCP profile validity✅ (experimental)
Agent discovery surface (A2A cards, AI-plugin, agents.json, Agent Skills)✅ (experimental)
Core Score
Cloud = observed, reproducible, cross-provider, longitudinal
Cloud's full compatibility score
Cloud's full production ruleset
Observed WAF/bot-firewall behavior
Real crawler network access
Browser-based agent simulation
Multi-model execution
MCP tool invocation
WebMCP tool execution/state parity
Tool/UI parity checking
Checkout/task completion
CAPTCHA/challenge behavior
Verified-agent access
Failure attribution
Temporal stability / regressions
Scheduled monitoring
Alerts/webhooks
Hosted, shareable reports
Contextual fix plan

Scovant Core measures passive, machine-facing signals. Scovant Cloud verifies how real agents actually behave, across providers, browser runtimes, security layers and time.

Methodology

Category weights are 25/25/20/15/15. Each check contributes PASS = 1, WARN = 0.5, FAIL = 0 to its category; ERROR lowers coverage (a document that could not be read counts against evidence), and N/A is excluded entirely. A scan scores INSUFFICIENT_EVIDENCE below a 60% coverage floor of its applicable weight. A full-selection scan that clears that floor but falls short of 85% coverage, or that hit any ERROR, is reported as DEGRADED (a score, no letter grade) rather than being silently graded on incomplete evidence. Running with checks narrowed or widened via --include/--exclude/--experimental instead reports a NOT_CANONICAL Subset Diagnostic Score over that subset, not the full Core Score. Full reference: docs/methodology.md.

Provenance

scan_id
local-golden
started_at
2026-09-04T00:00:00Z
completed_at
2026-09-04T00:00:00Z
schema_version
1.0
core_version
0.2.1
profile_detector_version
1.0
ruleset_version
2026.09
ruleset_digest
ea4ada4fffbf
python
<runtime>
platform
<runtime>
user_agent
ScovantCore/0.2.1 (+https://github.com/Scovant/scovant-core)
timeout
60.0
max_pages
5
network_mode
fixture
experimental
False
allow_private_networks
False
scan_scope
CANONICAL
included_checks
[]
excluded_checks
[]
error_count
0
evidence_min_coverage
0.6
canonical_min_coverage
0.85
dependencies
<runtime>
environment_digest
<runtime>