Skip to content

Add agent-readiness discovery endpoints for AI agents#478

Open
edmundmiller wants to merge 3 commits into
masterfrom
cursor/agent-readiness-893e
Open

Add agent-readiness discovery endpoints for AI agents#478
edmundmiller wants to merge 3 commits into
masterfrom
cursor/agent-readiness-893e

Conversation

@edmundmiller

@edmundmiller edmundmiller commented Jun 16, 2026

Copy link
Copy Markdown
Member

Summary

Implements the agent-readiness checks reported by isitagentready.com for nextflow.io. The site is a static Astro app on S3 + CloudFront; this PR adds the discovery artifacts, headers, and infrastructure hooks needed for AI agent discovery.

Changes

Discoverability

  • public/_headersLink response headers on / pointing to api-catalog, service-doc, and service-desc (Netlify previews)
  • infra/cloudfront/ — CloudFront Function for markdown negotiation and response headers policy template for production
  • scripts/set-s3-agent-metadata.sh — Sets correct Content-Type and Link metadata on S3 objects during publish

Content accessibility

  • public/index.md — Markdown homepage
  • netlify/edge-functions/markdown-negotiate.js — Serves markdown when Accept: text/markdown is present (with x-markdown-tokens)

Bot access control

  • public/robots.txt — Added Content-Signal: ai-train=no, search=yes, ai-input=yes

Protocol discovery

  • /.well-known/api-catalog — RFC 9727 linkset (application/linkset+json)
  • /openapi.json — Minimal OpenAPI 3.1 spec for public endpoints
  • /.well-known/oauth-authorization-server — RFC 8414 metadata with agent_auth block (honest stub — no protected APIs today)
  • /.well-known/oauth-protected-resource — RFC 9728 metadata
  • /.well-known/jwks.json — Empty JWKS (reserved)
  • /auth.md — Agent registration discovery document
  • /.well-known/mcp/server-card.json — MCP server card (SEP-1649)
  • /.well-known/agent-skills/index.json — Agent skills index synced from nextflow-io/agent-skills at build time (install-nextflow, create-workflow, run-module, launch-workflow) with SHA-256 digests
  • src/components/WebMcpBridge — WebMCP tools via navigator.modelContext

DNS-AID

  • infra/dns-aid/nextflow.io.zone — SVCB records for _index._agents and _a2a._agents (requires DNS operator to apply + DNSSEC)

Agent skills

scripts/generate-agent-skills-index.mjs shallow-clones nextflow-io/agent-skills into .cache/agent-skills, copies each skills/*/SKILL.md to public/.well-known/agent-skills/, and regenerates index.json with digests. Runs automatically via prebuild.

Deployment notes

After merge, production needs:

  1. make publish — runs updated metadata script automatically
  2. CloudFront — attach markdown-negotiation.js viewer-request function and response headers policy per infra/cloudfront/README.md
  3. DNS — publish DNS-AID records from infra/dns-aid/nextflow.io.zone and enable DNSSEC

Netlify PR previews get Link headers and markdown negotiation automatically via _headers and the edge function.

Testing

  • npx astro check && npx astro build — passes
  • node scripts/generate-agent-skills-index.mjs — syncs 4 skills from nextflow-io/agent-skills
Open in Web Open in Cursor 

Publish RFC 8288 Link headers, RFC 9727 API catalog, OAuth discovery
metadata, MCP server card, agent skills index, auth.md, Content Signals
in robots.txt, markdown negotiation, WebMCP tools, and DNS-AID zone
templates for nextflow.io agent discovery.

Co-authored-by: Edmund Miller <edmundmiller@users.noreply.github.com>
@netlify

netlify Bot commented Jun 16, 2026

Copy link
Copy Markdown

Deploy Preview for nextflow-staging ready!

Name Link
🔨 Latest commit c050bab
🔍 Latest deploy log https://app.netlify.com/projects/nextflow-staging/deploys/6a31625dcf1f1b00081f7224
😎 Deploy Preview https://deploy-preview-478--nextflow-staging.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 58 (🟢 up 1 from production)
Accessibility: 74 (no change from production)
Best Practices: 83 (🟢 up 8 from production)
SEO: 79 (🔴 down 8 from production)
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

cursoragent and others added 2 commits June 16, 2026 14:46
Replace the local nextflow-docs stub with the four official skills from
https://github.com/nextflow-io/agent-skills, synced at build time with
SHA-256 digests for the discovery index.

Co-authored-by: Edmund Miller <edmundmiller@users.noreply.github.com>
Co-authored-by: Edmund Miller <edmundmiller@users.noreply.github.com>
@edmundmiller edmundmiller marked this pull request as ready for review June 16, 2026 15:21

@ewels ewels left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Contains a mixture of deployment methods, which is very confusing.

Netlify is only used for deployment previews I think, so does not need to be agent-ready. It's only used for internal review and should not be accessed by an agent.

There are also many many broken URLs referenced in here, a lot of functionality that doesn't exist. Needs self-review before going any further.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Should add mention of this to the agent-skills repo CLAUDE.md so that we keep them in sync.

"anchor": "https://nextflow.io/",
"service-desc": [
{
"href": "https://nextflow.io/openapi.json",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

404 / hallucinated

],
"status": [
{
"href": "https://nextflow.io/feed.xml",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

404 / hallucinated

},
"transport": {
"type": "streamable-http",
"endpoint": "https://nextflow.io/mcp"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

404 / hallucinated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Empty file. Do we need this?

{
"_comment": "nextflow.io is a public marketing and documentation site with no protected APIs today. OAuth metadata is published for agent discovery per RFC 8414. Endpoints are reserved and do not accept live OAuth flows.",
"issuer": "https://nextflow.io",
"authorization_endpoint": "https://nextflow.io/oauth/authorize",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

404

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants