conformance: report valid extension media types as informational - #85
Draft
thegovind wants to merge 1 commit into
Draft
conformance: report valid extension media types as informational#85thegovind wants to merge 1 commit into
thegovind wants to merge 1 commit into
Conversation
|
Independent verification against the current live ASM catalog (30 entries; fetched 2026-08-28; SHA-256 |
12 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ARD §3.3 defines an artifact-agnostic envelope: the
typeterm carries an IANA media type, and artifact schemas are delegated outside the core specification. The conformance CLI contradicts that by warning on every media type outside a fixed nine-entry list, includingapplication/ai-skill+mdfrom the specification's own example inspec/ard.md. This PR reclassifies valid, unrecognizedapplication/*types as informational and keeps warnings for real compatibility risks.Companion draft: huggingface/OpenEnv#1093. The two are coordinated, but neither depends on the other. This PR adds no OpenEnv type to ARD core.
Why this is needed
The tool tells a publisher that a conforming type "is not one of standard discovery types." Three consequences follow:
application/ai-skill+mdentry fromspec/ard.mdemits a warning. After this PR it emits an informational message.This is not a request to register one more domain type. It fixes the conformance tool's treatment of ARD's existing extension point.
The
application/*scope is deliberate. Eight of the nine current standard discovery types use theapplicationtop-level type, and the motivating extension requests in #27, #43, and #66 do too. Well-formed non-application types keep their existing warning so this diagnostic-only PR does not broaden its behavior silently.Broader goal
The broader effort is task-based discovery of portable RL environments across Hubs, using ARD as the outer catalog and search contract. ARD answers which resource matches a task and where its typed card lives, while an environment-specific card describes the domain details.
The companion OpenEnv RFC proposes
application/vnd.openenv.environment-card+jsonand read-onlyopenenv discoverboundaries. OpenEnv is one motivating extension type for a generic ARD fix that is independently useful, and ARD does not depend on OpenEnv.Changes
reexpression and no new dependency. A timeout test covers pathological backtracking on a 10,000-character invalid subtype.application/*types as informational.application/mcp-server+jsonform. The deprecated diagnostic names its replacement.Compatibility
Test plan
Without optional dependencies:
python3 -S conformance/tests/test_media_type_diagnostics.py -vpython3 -S conformance/bin/conformance-test manifest conformance/tests/fixtures/extension-media-types.jsonWith optional JSON Schema support:
python3 -m venv /tmp/ard-conformance-venv && /tmp/ard-conformance-venv/bin/python -m pip install jsonschemaARD_REQUIRE_JSONSCHEMA=1 /tmp/ard-conformance-venv/bin/python conformance/tests/test_media_type_diagnostics.py -vRegression check:
./conformance/bin/run-conformance-demoExpected: 19 tests pass (1 skipped without
jsonschema, 0 skipped with it). The fixture exits 0 with 3 warnings and 3 informational messages.This does not add the types from #27, #43, or #66 to the allowlist.