Phase 5 — Resolver Adapters
Converts C# Rendering Contents Resolvers to TypeScript Edge GraphQL adapters — one resolver at a time, with live XMC Edge validation.
Phase 5 converts your C# Rendering Contents Resolvers into TypeScript Edge GraphQL adapters. This is the final phase of the migration — once complete, your site is fully running on SitecoreAI SXA Headless with no remaining XP-specific dependencies.
Duration: Hours — iterative, one adapter at a time | Orchestrator: Resolver Adapters Orchestrator
Requires: All components complete in migration-state (pending=0), code-discovery-report, content-discovery-report, plus live mode active
Live mode required — Phase 5 must run with the sandbox dev server connected to SitecoreAI Edge. Switch to live mode before starting: calldev-server-set-mode { mode: 'live' }. This requiresSITECORE_EDGE_CONTEXT_ID— see the setup table below.
What Resolver Adapters does
In Sitecore XP, C# Rendering Contents Resolvers run server-side to fetch and transform data before it reaches the frontend. SitecoreAI has no equivalent — that logic must move to the Next.js application layer as TypeScript GraphQL adapters.
For each component that had a resolver, the agent:
- Compares the XP layout response (with resolver running) against the SitecoreAI Edge response (without resolver)
- Identifies exactly what data the resolver was enriching
- Builds a focused GraphQL query that fetches that data from SitecoreAI Edge
- Writes a TypeScript adapter with the resolver logic and appropriate caching
- Verifies the adapter produces enriched output (FIELDS_ENRICHED > 0)
Complexity order. Adapters are built from highest complexity to lowest — high → medium → low. This front-loads the hardest work while context is freshest.
Validation guardrail. After each adapter, the orchestrator verifies enrichment evidence. If an adapter claims success but shows FIELDS_ENRICHED=0 or uses endpoint-construction anti-patterns, it is automatically re-classified as failed and you are asked how to proceed.
Before you start
- Phase 2 — Code Migration is complete (
migration-stateshows pending=0) - Phase 4 — SXA Conversion is complete
-
SITECORE_EDGE_CONTEXT_IDis set in your workspace - Dev server switched to live mode
Required SitecoreAI environment values:
| Value | Required for | Where to find it |
|---|---|---|
| Edge Context ID | Live mode | Sitecore Cloud Portal → Deploy app → Environment → Details → Context ID |
| Editing Secret | Pages editing integration | Sitecore Cloud Portal → Deploy app → Environment → Details → Editing secret |
Set these via:
migration-set-connectors {
xmCloudEnvironment: {
edgeContextId: "<your-context-id>",
editingSecret: "<your-editing-secret>"
}
}
Or individually via dev-server-set-env.
How to run Resolver Adapters
- Set the Edge Context ID using
migration-set-connectorsordev-server-set-env - Switch to live mode: call
dev-server-set-mode { mode: 'live' } - Open your project in Kajoo Agentic and start a new chat session
- Type "Start resolver adapters" to invoke the Resolver Adapters Orchestrator
- The agent loads the resolver inventory from the discovery report
- For each resolver, the agent builds and validates the adapter
- Review and choose your next action after each one (see below)
- Continue until all adapters are complete
What you'll decide
After each adapter:
| Action | What it does |
|---|---|
| Continue | Accept the adapter and move to the next resolver |
| Redo | Re-build this adapter — optionally with adjusted instructions |
| Skip | Leave this resolver for manual handling and move to the next |
| Stop | Pause — progress is saved, resume anytime |
On failure:
| Action | What it does |
|---|---|
| Retry | Re-attempt the adapter build |
| Skip | Mark as skipped and continue |
| Stop | Pause and review before continuing |
After a rollback, the orchestrator will ask how to reconcile state before proceeding.
Resuming Resolver Adapters
Progress is tracked in the resolver-adapter-state artifact.
To resume: open a new chat session in your project and type "Resume resolver adapters". The agent picks up from the next pending adapter.
What Resolver Adapters produces
| Artifact | What it contains |
|---|---|
resolver-adapter-state | Completed, pending, and skipped adapters. Per-adapter detail: queries built, fields enriched, complexity, checkpoint references |
rendering-resolver-details | Resolver inventory loaded from Phase 1 discovery |
Completed adapter code is committed to your target repository alongside the migrated component code.
Troubleshooting
| Issue | Fix |
|---|---|
| "SITECORE_EDGE_CONTEXT_ID is not set" | Set via migration-set-connectors with xmCloudEnvironment.edgeContextId or via dev-server-set-env |
| "FIELDS_ENRICHED=0" on an adapter | Guardrail caught it — adapter is marked failed. Choose Retry with adjusted instructions or Skip |
| Dev server not connecting to SitecoreAI Edge | Confirm Edge Context ID is correct and the SitecoreAI environment is deployed and running |
| "Cannot resume" | resolver-adapter-state is missing. Safe to restart — the agent will reload the resolver inventory from discovery |
| Rollback needed | The orchestrator will ask how to reconcile state after rollback — follow its guidance |
Migration complete
Once all resolver adapters are built and validated, your migration is done. Your target repository contains:
- All React/JSS components migrated to Content SDK 2.0 SXA Headless
- Full content tree serialized and present in SitecoreAI
- SXA Headless site structure — tenant, partial designs, page designs, presentation
- TypeScript GraphQL adapters replacing all C# Rendering Contents Resolvers
The next step is to push your final code to your production repository, complete any remaining QA, and cut over to the new SitecoreAI environment.
Need help with the final cutover or QA? Contact your Kajoo delivery contact or reach out to the TechGuilds team for post-migration support.
Updated about 1 hour ago