github.com/theunknown107/grad_tools
Finalizing the report
Preparing the stored Is Agentic score
github.com/theunknown107/grad_tools
Preparing the stored Is Agentic score
github.com/theunknown107/grad_tools
These checks describe whether an ordinary agent can enter, read, and operate the public site.
Agents can reach the site
Crawler access and bot defenses.
Core content is available
Useful content remains accessible without a fragile browser-only path.
Navigation fails safely
Redirects and missing pages give agents a recoverable path.
Controls are understandable
Forms and interactive controls expose usable names and structure.
The public website is always evaluated. Optional surfaces appear when the scan finds positive evidence that they apply.
Needs work
Weighted across 15 applicable checks
Needs work
Weighted across 11 applicable checks
Ready with gaps
Weighted across 1 applicable check
Critical access gaps come first, followed by other applicable readiness gaps.
Keep the correct HTTP 404 status. The remaining requirement is a Markdown error body when agents request Accept: text/markdown. Include at least 20 characters explaining the error and a link to your docs, sitemap, or llms.txt. Verify with curl -sS -L -i -H 'Accept: text/markdown' https://yourdomain.com/some-path-that-does-not-exist. Check both the final 404 status and the Markdown body with Content-Type: text/markdown. Checking the status alone does not verify the missing requirement.
Serve at least 500 characters of meaningful homepage content in raw HTML. Add a clear H1, keep deeper heading levels sequential, and remove excessive non-content markup.
Publish an OpenAPI (Swagger) specification at /openapi.json or /api/openapi.yaml. This is how agents understand your API surface automatically.
Enable Markdown negotiation on the scanned homepage. Supporting it only on /docs or a separate .md URL does not satisfy this check. Requests with Accept: text/markdown must receive a nonempty Markdown body with Content-Type: text/markdown and Vary: Accept. Keep serving HTML for Accept: text/html. Adding Vary alone does not create a Markdown response. Verify both with curl -sS -L -i -H 'Accept: text/markdown' https://yourdomain.com/ and curl -sS -L -i -H 'Accept: text/html' https://yourdomain.com/. Check the final response headers and body: Markdown with Vary: Accept for the first request, HTML for the second.
Add JSON-LD structured data to your homepage using the identity type that matches your site - SoftwareApplication for products, Organization or LocalBusiness for companies, Person for personal sites, Article for blogs - with name, description, url, and type-appropriate fields (offers, sameAs, author) so AI can parse your identity programmatically.
Checks are grouped by relevance for App sites.
4610 chars with H1, but first content heading is H2, not H1; 1.6% content ratio is below the 5% target
How to pass
Serve at least 500 characters of meaningful homepage content in raw HTML. Add a clear H1, keep deeper heading levels sequential, and remove excessive non-content markup.
Site accessible to 6 AI agent user-agents
No meta-refresh stubs, JavaScript-redirect stubs, or cross-domain hops across 1 checked page
No OpenAPI/Swagger specification found
How to pass
Publish an OpenAPI (Swagger) specification at /openapi.json or /api/openapi.yaml. This is how agents understand your API surface automatically.
Homepage https://github.com does not meet the Markdown negotiation requirements: Accept: text/markdown returned text/html; charset=utf-8
How to pass
Enable Markdown negotiation on the scanned homepage. Supporting it only on /docs or a separate .md URL does not satisfy this check. Requests with Accept: text/markdown must receive a nonempty Markdown body with Content-Type: text/markdown and Vary: Accept. Keep serving HTML for Accept: text/html. Adding Vary alone does not create a Markdown response. Verify both with curl -sS -L -i -H 'Accept: text/markdown' https://yourdomain.com/ and curl -sS -L -i -H 'Accept: text/html' https://yourdomain.com/. Check the final response headers and body: Markdown with Vary: Accept for the first request, HTML for the second.
API returns JSON error responses (200 at https://api.github.com)
The nonexistent path https://github.com/__ora-404-probe-xd98synj correctly returns HTTP 404. Partial credit: no Markdown error body was detected.
How to pass
Keep the correct HTTP 404 status. The remaining requirement is a Markdown error body when agents request Accept: text/markdown. Include at least 20 characters explaining the error and a link to your docs, sitemap, or llms.txt. Verify with curl -sS -L -i -H 'Accept: text/markdown' https://yourdomain.com/some-path-that-does-not-exist. Check both the final 404 status and the Markdown body with Content-Type: text/markdown. Checking the status alone does not verify the missing requirement.
Agent discovered 2 developer-resource types by name (API docs, OpenAPI spec) across 7 pages
github.com ranks #2 for "GitHub code hosting"
No sitemap found
How to pass
Add a valid XML sitemap at /sitemap.xml listing all indexable URLs. Include lastmod dates and keep it under 50MB.
No JSON-LD structured data found on homepage
How to pass
Add JSON-LD structured data to your homepage using the identity type that matches your site - SoftwareApplication for products, Organization or LocalBusiness for companies, Person for personal sites, Article for blogs - with name, description, url, and type-appropriate fields (offers, sameAs, author) so AI can parse your identity programmatically.
Pricing page found at /pricing
Documentation site found at https://docs.github.com
When-to-use guidance found in llms.txt
All metadata signals present: canonical URL, lang="en", og:image, og:type
No JSON-LD found - Organization schema missing
How to pass
Add Organization JSON-LD that includes both contactPoint (with email/phone and contactType) and address (PostalAddress). This lets AI verify your business legitimacy and answer contact queries.
All trust anchor pages verified: About, Contact, Privacy
All 1 measured page fit an agent context budget (largest ~1K tokens)
Code fences balanced across 1 markdown document
Developer portal found at /developers
REST API documentation found at https://docs.github.com/api/pagelist/versions. Best-of-protocols score: 7/7.
First-party MCP server published by product org (npm, @github/mcp-registry, 16283 score). Add live handshake at /.well-known/mcp for full credit.
How to pass
Build an MCP (Model Context Protocol) server exposing your API as tools. Use Streamable HTTP transport for full score. This lets Claude, ChatGPT, and other AI agents call your product natively.
The live API at https://api.github.com/ returns legacy x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset headers. Adopting the IETF RateLimit-* standard would earn full credit.
How to pass
Return standard rate-limit headers on your API responses (the RFC RateLimit headers, plus Retry-After on a 429) so agents can self-throttle in real time, and document the conventions alongside your API.
No typed error model found
How to pass
Document your error responses in your OpenAPI spec: give 4xx and 5xx responses a typed error schema (or use RFC 9457 application/problem+json). A consistent error object with a machine-readable code and a human-readable message lets agents handle failures without guessing.
Deprecation or versioning policy mentioned in prose at https://docs.github.com - formalize in OpenAPI spec for full credit
How to pass
Declare a versioning policy agents can rely on: version your API (in the URL path or a version header) and publish how you signal deprecation (a Sunset/Deprecation header or a documented timeline). Agents avoid integrating against a surface that can change without warning.
CLI package found on npm: @github/copilot
No API schema detected
How to pass
Make your API spec self-describing: a unique operationId and a description on every operation, typed parameters, and response schemas. For GraphQL, a fully typed schema with a documented cost or rate limit reads best.
No API spec found - function calling requires discoverable endpoints
How to pass
Ensure API endpoints have unique operation IDs, typed schemas, and descriptions compatible with LLM function-calling formats.
Wikipedia "GitHub" and Wikidata Q364 both verified - domain confirmed on both sources
NPM package found: @github/copilot-sdk - "TypeScript SDK for programmatic control of GitHub Copilot CLI via JSON-RPC"
Found in ChatGPT app directory: "GitHub"
99 official skills published on skills.sh - 1,249,509 total installs (skills.sh/github)
pricing.md found at /pricing.md but thin (6998 lines) - add plan tiers, prices, and feature breakdowns
How to pass
Create a /pricing.md file with your pricing tiers, features, and limits in plain markdown. This lets AI agents compare costs and recommend plans without scraping HTML pricing pages.
Found the llms.txt at https://github.com/llms.txt.
The llms.txt is well-formatted: 142 lines with markdown links, 28,650 characters in total.
Rich skills.sh presence - 99 skills, 1,249,509 installs. Agents can understand capabilities in depth
2 of 5 probed llms.txt links do not resolve: https://docs.github.com/api/article and https://docs.github.com/api/article/body
How to pass
Make every link your llms.txt declares resolve to real content. Verify each one with curl -L <url> - you should see the linked document, not your homepage. If your app returns the homepage shell for unknown paths (common with single-page apps), a 200 status is not proof: check the body. Fix or remove any dead link; agents that follow the index treat a broken link as a dead end.
SDK packages found in npm, rubygems
How to pass
Publish official SDK packages across multiple language ecosystems (npm, PyPI, Go modules, RubyGems). Auto-generate them from your OpenAPI spec using tools like openapi-generator. For each package set the project URL or homepage to your product domain (package.json repository/homepage, PyPI Home-Page or project_urls, RubyGems homepage_uri) - this is how agents verify the package is your official SDK.
Sandbox environment found at https://github.com/sandbox
Server HTML is a well-structured document (main=true, landmarks=4/4, h1=1, maxHeadingSkip=1).
182 native controls, 0 non-native div-soup affordances (100% native).
180/180 interactive elements have a computable accessible name (100%).
2/2 form controls have an associated label (100%).
No hidden instruction text detected in accessibility-tree attributes or off-screen content.
What does github.com do and who is it for? Explain it back to me.
Sign me up for Vercel product updates and marketing emails.
Unsubscribe anytime. Privacy Notice
Source: Ora API
What does github.com do and who is it for? Explain it back to me.
15 steps5 reasoning steps5 searches
The agent successfully gathered comprehensive information about GitHub's purpose, audience, pricing, and competitive positioning, but relied entirely on web search and prior knowledge rather than GitHub's own website. The agent attempted to fetch GitHub's homepage and key pages (/pricing, /about, /features, /enterprise) but found them to be JavaScript-heavy HTML that did not render readable content in text form, forcing a pivot to external sources. The task was satisfied with a detailed, accurate explanation, though GitHub's own site proved poorly navigable for machine-readable extraction.