Retrieve both source and target framework packages from a CASE API host using GET /ims/case/v1p0/CFPackages/{identifier} for each framework; load all CFItems into a keyed dictionary by identifier.
For each CFItem in the source framework, check the CFAssociations array in the source package for associations of type 'exactMatchOf', 'isRelatedTo', or 'crosswalkedTo' targeting items in the destination framework.
Build a bidirectional association map: source_item_id -> [(target_item_id, association_type)] for all available pre-authored crosswalk associations.
For source items with no association to the target framework, apply NLP similarity matching against target CFItem fullStatement text (TF-IDF or embedding cosine similarity) to generate candidate matches for human review.
Export the crosswalk as a CSV with columns: source_humanCodingScheme, source_fullStatement, target_humanCodingScheme, target_fullStatement, association_type, confidence_score.
Post the validated crosswalk back to the CASE host (if you have write access) as new CFAssociation objects of type 'crosswalkedTo' linking the source and target CFItem identifiers.
Known gotchas
Pre-authored crosswalk associations are rare; most crosswalks between state standards must be generated programmatically and reviewed by curriculum specialists before use in production.
The CASE spec defines association types but does not mandate that all CASE hosts support CFAssociation writes via the API; some hosts are read-only repositories.
humanCodingScheme strings (e.g., 'CCSS.Math.Content.3.OA.A.1') are display labels and may contain formatting variations across publishers; never use them as join keys — always join on CFItem identifier.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp