Skip to content

docs: add "Implementations in the wild" section (refs #26, #66) - #71

Open
YE-YI7 wants to merge 1 commit into
ards-project:mainfrom
YE-YI7:asm-implementations-in-the-wild
Open

docs: add "Implementations in the wild" section (refs #26, #66)#71
YE-YI7 wants to merge 1 commit into
ards-project:mainfrom
YE-YI7:asm-implementations-in-the-wild

Conversation

@YE-YI7

@YE-YI7 YE-YI7 commented Jul 30, 2026

Copy link
Copy Markdown

Creates the Implementations in the wild section proposed in #26, and adds the ASM tool-selection catalog to it — following @mindpower's invitation in #66.

Per the README's contribution split this is a non-normative documentation change (no edits to spec/ard.md or spec/schemas/), so I'm opening it directly as a PR rather than an issue.

Conformance

Verified against the live endpoint with this repo's CLI (v0.5.0) immediately before opening:

$ conformance/bin/conformance-test manifest https://asm-spec.onrender.com/.well-known/ai-catalog.json
CONFORMANCE STATUS: PASS
Validated with 0 critical specification errors and 30 warnings.

All 30 warnings are the same finding — Media type 'application/asm+json' is not one of standard discovery types — which is exactly what #66 asks about. I've noted that inline in the table rather than leaving it implicit, so the row doesn't read as a clean bill of health while that question is still open. If you'd rather the section only list types already in the allowlist, I'm happy to drop the row until #66 is resolved.

One more caveat, also in the table: the catalog is hosted on a free tier that sleeps when idle, so the first request after a quiet period can be slow or need a retry. Flagging it up front so a timeout doesn't get read as a dead endpoint.

On #26

#26 proposed this same section back in June for five conformance-tested deployments (SnowSure, SnowData, Afore, LUXSKI, Ski Limone), and the section itself doesn't appear to have landed — so this PR creates it.

I've deliberately not added those five, since their conformance status isn't mine to assert. @mikeslone — happy to include them in this PR if you'd like, or maintainers can land them separately. Placement, ordering, and wording are all yours to change; I have no attachment to the table format.

(Implementation and this PR drafted with Claude, at my direction and with my approval.)

…ards-project#66)

Creates the section proposed in ards-project#26 and lists the ASM tool-selection
catalog, following the invitation in ards-project#66.

Verified with this repo's conformance CLI v0.5.0 against the live
endpoint before opening: PASS, 0 critical errors, 30 warnings — all of
them the media-type finding that ards-project#66 asks about.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mrenzo20

Copy link
Copy Markdown

Another candidate for the section when it lands: the Desvela ARD Registry, registry.desvela.dev. It is a weekly crawl of the Tranco top-100K for the four discovery paths, and it implements both roles, so it can sit in the table as host and as registry.

Verified with this repo's CLI immediately before writing:

conformance-test manifest https://desvela.dev/.well-known/ai-catalog.json
CONFORMANCE STATUS: PASS  (0 errors, 0 warnings)

conformance-test registry https://registry.desvela.dev
CONFORMANCE STATUS: PASS  (0 errors, 0 warnings)

The registry run failed when I did it this morning, so the honest version of that claim is that it passes as of today: the spec allows an entry to carry its payload inline in data rather than a url, my parser only read url, and search was returning entries with neither. Fixed and redeployed before writing this.

I have deliberately not opened a competing PR, since this one creates the section. Happy for it to land as is and to add a row afterwards, or for @YE-YI7 or a maintainer to fold it into this PR, whichever is less work for you.

One thing for whoever ends up maintaining the list: wellknownhq.com has been running a crawler and an open registry against this spec since 11 August. I have no connection to it and it competes with what I run, but a section called "implementations in the wild" is more useful if it is not limited to the people who happen to post in this repo.

Disclosure: I run Desvela.

@YE-YI7

YE-YI7 commented Aug 20, 2026

Copy link
Copy Markdown
Author

Thanks @mrenzo20 — Desvela and the independent WellKnownHQ crawler are exactly the kind of evidence that makes an implementations section useful rather than vendor-specific. I have not changed this PR's branch without maintainer direction, but either row can be folded in here or added immediately after merge.

One factual update on the ASM row now that its reproduction path exists:

conformance/bin/conformance-test manifest https://asm-spec.onrender.com/.well-known/ai-catalog.json

No normative field or allowlist change is requested by this PR. This is my one follow-up; I will leave the listing and candidate rows with maintainers from here.

@YE-YI7

YE-YI7 commented Aug 31, 2026

Copy link
Copy Markdown
Author

Thanks — I independently reran the repo's v0.5.0 conformance CLI against Neuronto just now. The manifest and registry payloads do pass with 0 errors and 0 warnings once the request carries a non-default User-Agent.

One reproducibility note: the default commands return HTTP 403 from my machine because the live service rejects Python urllib's default User-Agent:

conformance/bin/conformance-test manifest https://neuronto.com/.well-known/ard.json
# HTTP 403

conformance/bin/conformance-test registry https://neuronto.com
# 3 probes: HTTP 403

Piping a curl fetch (which uses a different default User-Agent) into the manifest validator, or adding a curl User-Agent header to the registry command, both produce PASS with 0 errors and 0 warnings. Because the v0.5.0 manifest command has no header option, the 403 appears to be a WAF/User-Agent filter rather than a schema issue.

Would it be possible to either allow the CLI's default client through the filter, or document a stable request-header requirement? That would make the conformance claim fully reproducible with the published commands. I'll leave the PR branch unchanged pending maintainer direction.

@mrenzo20

Copy link
Copy Markdown

Two things, one on the table format and one for maintainers.

On format: there are three PASS claims in play now and they are not the same claim. ASM passes with 30 media-type warnings, which @YE-YI7 put in the row rather than leaving implicit. Desvela passes 0/0, though the registry run failed the morning I posted it and I fixed it before writing. And #87 passes 0/0, but the published commands returned 403 from YE-YI7's machine because of a User-Agent filter.

On that last one, for whatever it is worth: from my machine neuronto.com/.well-known/ard.json returns 200 with a urllib User-Agent right now, five out of five. So either it got fixed in the last couple of hours, or the filter depends on where you are calling from. The second possibility is the one I would worry about for a table, because a row can then be true for one reader and false for another.

Which is really the point. A column that just says PASS renders those three identically, and that is the least useful version of this section. YE-YI7 already did the right thing unprompted, noting the warnings inline so the row does not read as a clean bill of health. I think that should be the rule rather than a courtesy: every row carries the exact command, the date it was run, and anything that stops it reproducing. A row that cannot say how to reproduce it is a logo, not evidence.

Probably worth recording who ran it, too. Self-reported and independently reproduced are different things and readers can weigh them themselves.

For maintainers, the more useful question: this has been open a month and there are at least three implementations waiting to add rows to a section that has not landed. Before anyone spends more time on wording, is the section wanted? If it is, landing it with just the ASM row would unblock everyone and the rest can go in one at a time. If it is not, better to say so and close #26 with it.

Same disclosure as before, I run Desvela, so I have a row to gain from this existing at all.

@neuronto

Copy link
Copy Markdown

Neuronto author here. Answering the reproducibility question directly, because between your two theories the geo-dependent one is much the worse and it is not the right one.

It was Cloudflare's Browser Integrity Check. It returns error 1010 and bans a small legacy user-agent list that includes Python-urllib and libwww-perl. I disabled it zone-wide on 2026-08-31 at 17:57:13 UTC (the WAF change just before it at 17:55:56 UTC), which sits between @YE-YI7's test and yours. So: failing at 15:18, fixed at 17:57, passing at 18:47. Browser Integrity Check is a zone-level setting enforced at every edge location, so it was never location-dependent. Before the change it failed from everywhere, after it succeeds from everywhere.

Worth adding why it was invisible: of 16 clients I tested afterwards, only Python-urllib and libwww-perl were blocked. httpx, aiohttp, requests, node-fetch, Go, okhttp, curl, GPTBot and Claude-User all returned 200. Every casual check looked fine; the one client that failed happened to be the one the conformance CLI uses. A bot filter on a machine-facing service is a bad default and I should have caught it before publishing the claim rather than after.

Current state, published commands, no workaround, run 2026-09-01:

conformance/bin/conformance-test manifest https://neuronto.com/.well-known/ard.json
CONFORMANCE STATUS: PASS   0 critical specification errors and 0 warnings

conformance/bin/conformance-test registry https://neuronto.com
CONFORMANCE STATUS: PASS   0 critical specification errors and 0 warnings

On the format proposal: agree, and I would rather be held to it than not. Exact command, date, and who ran it are the three columns that make the difference between evidence and a logo, and a warnings count belongs inline exactly as @YE-YI7 did it, since 0/0 and 0/30 are not the same claim. I would add that "independently reproduced" is worth distinguishing from "self-reported": this thread is a fair example, since the 403 was found by one person and the fix confirmed by another, and neither was me.

Same disclosure as you both: I run Neuronto, so I have a row to gain from the section existing.

@YE-YI7

YE-YI7 commented Sep 1, 2026

Copy link
Copy Markdown
Author

Confirmed independently after the change. I reran the exact public v0.5.0 commands on 2026-09-01 with no custom headers:

conformance/bin/conformance-test manifest https://neuronto.com/.well-known/ard.json
PASS — 0 errors, 0 warnings

conformance/bin/conformance-test registry https://neuronto.com
PASS — 0 errors, 0 warnings

That resolves the reproducibility issue I observed. Thanks for tracing and removing the Browser Integrity Check, and for documenting the root cause. I also agree that self-reported and independently reproduced runs should remain distinct evidence states. I will keep the PR branch unchanged until maintainers decide the table format and candidate rows.

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