II.
Page JSON
Structured · livepage:process-gaps-GAP-L2-P2-versionrange-attribute-on-modelversion
GAP-L2-P2-versionrange-attribute-on-modelversion json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "page:process-gaps-GAP-L2-P2-versionrange-attribute-on-modelversion",
"_kind": "Page",
"_file": "wiki/process/gaps/GAP-L2-P2-versionrange-attribute-on-modelversion.md",
"_cluster": "wiki",
"attributes": {
"nodeKind": "Page",
"title": "GAP-L2-P2-versionrange-attribute-on-modelversion",
"displayName": "GAP-L2-P2-versionrange-attribute-on-modelversion",
"slug": "process/gaps/GAP-L2-P2-versionrange-attribute-on-modelversion",
"articlePath": "wiki/process/gaps/GAP-L2-P2-versionrange-attribute-on-modelversion.md",
"article": "# GAP-L2-P2-versionrange-attribute-on-modelversion\n\n| Field | Value |\n|---|---|\n| id | gap:versionrange-attribute-on-modelversion |\n| title | ModelVersion uses versionRange for what is really a single concrete version |\n| level | 2 |\n| priority | P2 |\n| discoveredAt | 2026-04-28T00:00:00Z |\n| source | schema/examples/compute/models/claude-opus-4-7.yaml |\n| status | open |\n| owner | tbd |\n\n## Current state\n`ModelVersion.versionRange: versionRange` semantically conflates \"this version\" with \"a range of versions\". Example `claude-opus-4-7.yaml` has `versionRange: \">=4.7.0 <5.0.0\"` which is a range, but `model:claude-opus-4-7` is intended to be one specific snapshot (`claude-opus-4-7-20251201` or similar). The repo agent-catalog distinguishes `ModelFamily` (range-bearing) from `ModelVersion` (concrete snapshot id).\n\n## Desired state\n- Rename `ModelVersion.versionRange` → `ModelVersion.versionId` (string, e.g. snapshot id).\n- Move range-bearing claims to `ModelFamily.activeVersionRange`.\n- Update example to `versionId: \"claude-opus-4-7\"` plus separate `aliasIds: [\"claude-opus-4-7-20251201\"]`.\n\n## Evidence\n- C:/work/v6/graph/schema/ontology-schema.yaml (ModelVersion attributes)\n- packages/agent-catalog/graph/nodes/models.yaml (uses `modelVersionId` shape)\n- https://platform.claude.com/docs/en/docs/about-claude/models/overview (snapshot date discipline)\n\n## Propagation status\n- Level 2: open\n\n## Propagation chain\n- Level 2: rename attribute, update 3 example model files, update compute-path.md.\n\n## Notes\nNaming/semantics gap. Cascades into Level 1 fixes for Anthropic models.\n",
"documents": []
},
"outgoingEdges": [],
"incomingEdges": []
}