feat: canonical ARD identifiers and pinned OpenEnv Echo catalog entry - #38
feat: canonical ARD identifiers and pinned OpenEnv Echo catalog entry#38thegovind wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Align the contributor template and field table with canonical urn:air: and type fields.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review tier: Lite
Findings: 1
New issues introduced by this change (1)
| Severity | Finding |
|---|---|
CONTRIBUTING.md — This new guidance is contradicted by the contributor template and field table below, which still… |
What changed in this PR
Adds canonical ARD identifier support with legacy compatibility and a pinned OpenEnv Echo catalog entry.
Changes:
- Normalizes identifiers and detects duplicate identities.
- Adds regression tests and contributor guidance.
- Adds the Echo record and regenerates the catalog.
| File | Summary |
|---|---|
tests/test_extension_catalog.py |
Tests identifier compatibility and revision handling. |
scripts/generate_ai_catalog.py |
Adds normalization and collision handling. |
CONTRIBUTING.md |
Updates contributor guidance. |
catalog/huggingface/openenv-echo-8e6e2770.json |
Adds the pinned Echo environment card. |
ai-catalog.json |
Regenerated catalog output. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| New entries should use the canonical `urn:air:` identifier prefix and `type`. | ||
| Legacy `urn:ai:` and `mediaType` inputs remain accepted. Generation normalizes | ||
| the identifier once, and checks duplicates after normalization. |
There was a problem hiding this comment.
Fixed in 285cd4c. The template and field table now use canonical urn:air/type, show owner/repository source metadata, and distinguish URL delivery from inline data. A regression test parses and validates the actual documented template. This also exposed a canvas-only validator that still required the legacy field; it now accepts canonical type while rejecting conflicting aliases. All 23 generator tests pass.

Summary
Accept canonical
urn:air:contributor identifiers alongside legacyurn:ai:,normalize once, and check identity collisions after normalization. Existing
legacy inputs remain valid.
Adds one curated Echo Environment record using the OpenEnv RFC 011 declaration
profile. It preserves the GitHub URI,
envs/echo_envlocator and full immutablesource revision
8e6e277030806ebe19e4537fe5e9d792de8e88dc.The record is a description, not an MCP installation endpoint or a training
action. It does not claim runtime validation or verified publisher status.
Its publisher namespace is a proposed GitHub-hosted catalog namespace for review;
source ownership and publication authority remain distinct.
Scope
application/vnd.openenv.environment-card+jsonentry.ai-catalog.json, not hand-edited.The generated file also refreshes the upstream public MCP supplement through
the existing generator. Compared with the checked-in generated file, it contains
36 additions (one is Echo), two removals, and refreshed fields on 210 existing
records. The only new authored resource file is Echo; these other changes are
generator output, not manual catalog edits.
Validation
generated identities, inline payload preservation and distinct revision cards.
Canvas-only entries accept canonical
typewithout requiringmediaType,while conflicting aliases and existing source/tag constraints still fail.
--checkagree: 2,108 entries.relational source/path/revision validation.
pinned public OpenEnv source.
The review correction is committed as
285cd4c7ea64f817cc1e74aa73c7a45901a73ec9; all four current-head CI checks passed.The Copilot thread has a reply with the tested fix. A follow-up Copilot request
was refused by the available API credentials, so no second review is claimed.
Based on huggingface/OpenEnv#1093. The producer is proposed in
huggingface/OpenEnv#1138 and an independent consumer in huggingface/hf-discover#46.
ards-project/ard-spec#85 changes diagnostics and is complementary, not
an admission prerequisite. A catalog merge does not itself claim downstream
indexing, first-class UI support or production rollout.