B
Why this grade
A solid B. Strong on robots.txt AI-agent rules and Anti-bot interstitial; tightening on Public MCP registry listing and Wikipedia article would push this into A territory.
Get notified when this grade changes
Subscribe to grade-change alerts for touchstone.cv — we'll email you when a new scan moves the grade or score.
Blocking issues
High-weight checks that aren't passing.
- protocols.mcp_registry_presence Host touchstone.cv not listed in any of 2 registry/registries consulted.
Per-category breakdown
| Category | Score | Percent |
|---|---|---|
| Anti Bot | 15 / 15 | |
| Api | 15 / 15 | |
| Crawl | 23 / 23 | |
| Docs | 3 / 14 | |
| Html Meta | 8 / 8 | |
| Identity | 10 / 10 | |
| Llm Training | 0 / 8 | |
| Onboarding | 3 / 6 | |
| Protocols | 8 / 18 | |
| Root Level | 20 / 20 | |
| Well Known | 24 / 24 |
Findings (33)
Anti Bot · 2
| Check | Status | Points | Notes |
|---|---|---|---|
| Anti-bot interstitial | pass | 10 / 10 | No anti-bot interstitial markers on a single polite homepage request — behavioural anti-bot can still challenge real crawler traffic. |
| User-agent sniffing | pass | 5 / 5 | Homepage responses for default and curl UAs are effectively identical. |
Api · 3
| Check | Status | Points | Notes |
|---|---|---|---|
| GraphQL introspection | skip | — | No GraphQL endpoint found at any of 3 conventional paths. |
| JSON error bodies for API callers | pass | 5 / 5 | HTTP 404 with parseable JSON body (Content-Type: application/json). |
| OpenAPI specification discovery | pass | 10 / 10 | OpenAPI 3.1.0 served at /openapi.json (5 paths, 3 schemas). |
Crawl · 3
| Check | Status | Points | Notes |
|---|---|---|---|
| RSS/Atom feed | skip | — | No RSS/Atom feed found at probed paths or via `<link rel="alternate">`. |
| robots.txt AI-agent rules | pass | 13 / 13 | All 13 documented AI user-agents can crawl /. |
| XML sitemap discovery | pass | 10 / 10 | Sitemap at /sitemap.xml (urlset, 3 entries). |
Docs · 2
| Check | Status | Points | Notes |
|---|---|---|---|
| Docs platform discoverability | warn | 3 / 6 | Docs found at /docs but platform is custom — crawler-friendliness is unknown. |
| SDK availability across languages | fail | 0 / 8 | No SDKs discoverable via npm, PyPI, or the docs page. |
Html Meta · 3
| Check | Status | Points | Notes |
|---|---|---|---|
| JSON-LD structured data | pass | 8 / 8 | JSON-LD declares a machine-targeted type (SoftwareApplication). |
| meta description | info | — | Meta description present (195 characters) (informational — not graded). |
| Open Graph tags | info | — | All three core Open Graph tags present on the homepage (informational — not graded). |
Identity · 3
| Check | Status | Points | Notes |
|---|---|---|---|
| Email auth (SPF, DMARC, DKIM) | info | — | Email auth present: SPF (informational — mail trust/deliverability, not graded). |
| security.txt responsible-disclosure declaration | info | — | security.txt at https://touchstone.cv/.well-known/security.txt declares a Contact (informational — a human security-researcher signal, not graded). |
| TLS + HSTS + HTTPS redirect | pass | 10 / 10 | Valid TLS cert (issuer: C=US, O=Let's Encrypt, CN=YR1, expires 2026-09-22), http → https redirect confirmed. (HSTS not set — informational.) |
Llm Training · 3
| Check | Status | Points | Notes |
|---|---|---|---|
| Common Crawl index presence | skip | — | Common Crawl CDX endpoint was unreachable — not penalising target. |
| Hacker News mentions | skip | — | 0 verified HN mention(s) of touchstone.cv (0 raw search hits; threshold for pass is 3) — not penalising, HN chatter is a secondary signal. |
| Wikipedia article | fail | 0 / 8 | 3 Wikipedia article(s) match "touchstone" (Touchstone, Touchstone Pictures, Touchstone (metaphor)) but none link to touchstone.cv — a name match without a domain link is not attribution. |
Onboarding · 1
| Check | Status | Points | Notes |
|---|---|---|---|
| API-key / signup path discoverability | warn | 3 / 6 | Signup/API-key page found at /developers but nothing on the homepage or docs links to it — a crawler would have to guess. |
Protocols · 2
| Check | Status | Points | Notes |
|---|---|---|---|
| Public MCP registry listing | fail | 0 / 10 | Host touchstone.cv not listed in any of 2 registry/registries consulted. |
| A2A AgentCard conformance | pass | 8 / 8 | Conformant AgentCard (version 0.1.0, 4 skills, 3 endpoints). |
Registries · 3
| Check | Status | Points | Notes |
|---|---|---|---|
| GitHub public repository | skip | — | No GitHub repositories attributable to touchstone.cv — name matches without a verifiable attribution signal are not counted. |
| npm SDK package | skip | — | No npm packages attributable to touchstone.cv — name matches without a verifiable attribution signal are not counted. |
| PyPI SDK package | skip | — | PyPI package(s) exist at probed name(s) (touchstone) but none carry a verifiable attribution signal — name-existence alone is not counted. |
Root Level · 3
| Check | Status | Points | Notes |
|---|---|---|---|
| /ai.txt AI-crawler directives | pass | 4 / 4 | ai.txt present, 273 bytes. |
| /llms-full.txt long-form index | pass | 8 / 8 | llms-full.txt present, 3.5 KB. |
| /llms.txt index for LLMs | pass | 8 / 8 | llms.txt present, 1.4 KB, starts with '# Touchstone'. |
Well Known · 5
| Check | Status | Points | Notes |
|---|---|---|---|
| /.well-known/agent.json (A2A AgentCard) | pass | 10 / 10 | agent.json present with all required keys (4 skills, 3 endpoints). |
| /.well-known/ai-plugin.json manifest | skip | — | No /.well-known/ai-plugin.json present (404). |
| /.well-known/mcp.json (Model Context Protocol) | pass | 8 / 8 | mcp.json present with indicator keys: tools. |
| OpenID Connect configuration + dynamic registration | skip | — | No /.well-known/openid-configuration — site does not advertise an OIDC provider. |
| /.well-known/openapi.{json,yaml} | pass | 6 / 6 | OpenAPI 3.1.0 served at /.well-known/openapi.json (5 paths). |
Score over time
- Latest
- 73 ▲ 3
- Best
- 73
- Worst
- 20
- Scans
- 3
Scan history
| When | Grade | Score | Checks | Change | Open scan |
|---|---|---|---|---|---|
| 24 Jun 2026, 15:43 | B | 73 | 33 | ↑ | Open · Compare |
Since 24 Jun:no flips |
|||||
| 24 Jun 2026, 15:38 | B | 70 | 33 | ↑ | Open · Compare |
Since 24 Jun:
|
|||||
| 24 Jun 2026, 15:23 | F | 20 | 33 | Open | |