Skip to main content
Glama

Sitecore MCP Server

by GaryWenneker
BIDIRECTIONAL-UPDATE-v1.5.0.md12 kB
# Bidirectional Template Discovery - Update v1.5.0 **Datum:** 17 oktober 2025 **Versie:** 1.5.0 **Impact:** CRITICAL - Alle relationship discovery workflows **Status:** ✅ COMPLEET --- ## 🎯 Wat is er Veranderd? ### Voor Deze Update **Unidirectioneel (eenrichtingsverkeer):** ``` Content Item → Template → Feature Locations ``` **Probleem:** - ❌ Alleen upward navigation (content naar features) - ❌ Geen discovery van gerelateerde content items - ❌ Geen template usage analysis - ❌ Incomplete relationship maps --- ### Na Deze Update **Bidirectioneel (tweerichtingsverkeer):** ``` Content ←→ Template ←→ Related Content ↓ ↓ ↓ Fields Base Templates Siblings Layout Inheritance Variants Versions Fields Usage ``` **Oplossing:** - ✅ **Content → Template → Related Content** (find siblings via template) - ✅ **Template → Content** (find all instances using template) - ✅ Complete relationship discovery - ✅ Template usage statistics - ✅ Content distribution analysis --- ## 📋 Core Principle **Templates zijn de brug tussen content en architectuur.** ### Nieuwe Regel (CRITICAL!) **Bij ELKE content item discovery:** 1. Analyseer template 2. Zoek ALLE content met zelfde template 3. Zoek feature locaties **Bij ELKE template discovery:** 1. Zoek ALLE content items die template gebruiken 2. Analyseer content distributie (sites, languages) 3. Genereer usage statistics --- ## 🔄 Bidirectional Flows ### Flow A: Content → Template → Related Content ```typescript // 1. Get content item const item = await sitecore_get_item('/sitecore/content/MySite/Article1'); // 2. Extract template const templateName = item.template.name; // "Article" const featureName = item.template.path.split('/')[4]; // "Articles" // 3. Search ALL content with same template (NEW!) const relatedContent = await sitecore_search({ templateName: templateName, rootPath: '/sitecore/content', maxItems: 100 }); // Result: Article1, Article2, Article3, ... (25 items found) // 4. Search feature locations const templates = await sitecore_search({ rootPath: `/sitecore/templates/Feature/${featureName}` }); ``` **Wat je nu krijgt:** - ✅ Original content item - ✅ **Alle gerelateerde content items (via template)** - ✅ Feature template definitions - ✅ Feature renderings - ✅ Feature resolvers --- ### Flow B: Template → Content ```typescript // 1. Get template const template = await sitecore_get_template('/sitecore/templates/Feature/Articles/Article'); // 2. Search ALL content using this template (NEW!) const contentInstances = await sitecore_search({ templateName: template.name, rootPath: '/sitecore/content', maxItems: 200 }); // 3. Analyze distribution const stats = { totalItems: contentInstances.length, sites: groupBy(contentInstances, item => item.path.split('/')[3]), languages: groupBy(contentInstances, item => item.language) }; ``` **Wat je nu krijgt:** - ✅ Template definition - ✅ **Alle content instances** - ✅ Usage statistics - ✅ Content distribution (sites, languages) - ✅ Location mapping --- ## 📁 Gewijzigde Bestanden ### 1. `.github/copilot-instructions.md` **Wijzigingen:** - Updated Rule 1: Bidirectional Template-Based Navigation - Added Rule 1A: Content → Template → Related Content - Added Rule 1B: Template → Content - Added Rule 1C: Bidirectional Discovery - Added CRITICAL RULE box - Added reference to BIDIRECTIONAL-TEMPLATE-DISCOVERY.md **Lines Changed:** ~50 lines updated/added --- ### 2. `HELIX-RELATIONSHIP-DISCOVERY.md` **Wijzigingen:** - Complete rewrite van "Relationship Discovery Workflow" sectie - Added: Bidirectional Template-Based Navigation principle - Added: Rule 1A - Content → Template → Related Content - Added: Rule 1B - Template → Content - Added: Rule 1C - Bidirectional Discovery - Added: Complete example flows met TypeScript code - Added: Article Feature Discovery example - Updated: Rule 2 description (search > get_children) **Lines Changed:** ~150 lines updated/added --- ### 3. `MCP-CONTEXT-INSTRUCTIONS.md` **Wijzigingen:** - Updated Helix Architecture section in universal template - Added bidirectional navigation bullets - Added example flows (A and B) - Updated .cursorrules example - Updated Continue config example **Lines Changed:** ~30 lines updated --- ### 4. `BIDIRECTIONAL-TEMPLATE-DISCOVERY.md` (NEW!) **Status:** Nieuw document (900+ lines) **Content:** - Core principle uitleg - Critical rule definition - Complete Flow A (Content → Template → Related Content) - Complete Flow B (Template → Content) - Complete example: TestFeatures Module discovery - Common mistakes (AVOID!) - Checklist voor discovery taken - Learning examples - Success criteria **Sections:** 1. Core Principle 2. Critical Rule 3. Bidirectional Flows 4. Complete Example (TestFeatures) 5. Common Mistakes 6. Checklist 7. Learning Examples 8. Related Documentation 9. Success Criteria --- ## 🎯 Use Cases ### Use Case 1: Find All Related Articles **Voor Update:** ```typescript // Find article const article = await sitecore_get_item('/sitecore/content/MySite/Article1'); // Done. Miss: 24 other articles! ``` **Na Update:** ```typescript // Find article const article = await sitecore_get_item('/sitecore/content/MySite/Article1'); // Find ALL related articles (via template) const allArticles = await sitecore_search({ templateName: article.template.name, rootPath: '/sitecore/content' }); // Result: 25 articles across 3 sites! ``` --- ### Use Case 2: Template Usage Report **Voor Update:** ```typescript // Get template const template = await sitecore_get_template('/sitecore/templates/Feature/Navigation/Navigation'); // Done. Miss: Where is it used? How many items? ``` **Na Update:** ```typescript // Get template const template = await sitecore_get_template('/sitecore/templates/Feature/Navigation/Navigation'); // Find all usage const instances = await sitecore_search({ templateName: template.name, rootPath: '/sitecore/content' }); // Generate report console.log(`Template "${template.name}" used by ${instances.length} items`); console.log(`Sites: ${Object.keys(groupBy(instances, 'site')).join(', ')}`); console.log(`Languages: ${Object.keys(groupBy(instances, 'language')).join(', ')}`); ``` --- ### Use Case 3: Feature Module Audit **Voor Update:** ```typescript // Search feature items const items = await sitecore_search({ searchText: 'TestFeatures', rootPath: '/sitecore/content' }); // Result: 3 items with "TestFeatures" in name // Miss: 9 other items using TestFeatures templates! ``` **Na Update:** ```typescript // Search feature items by name const namedItems = await sitecore_search({ searchText: 'TestFeatures', rootPath: '/sitecore/content' }); // Get template from first item const firstItem = await sitecore_get_item({ path: namedItems[0].path }); // Find ALL items using same template const allItems = await sitecore_search({ templateName: firstItem.template.name, rootPath: '/sitecore/content' }); // Result: 12 items (3 named + 9 other!) // Search other templates in feature const templates = await sitecore_search({ rootPath: '/sitecore/templates/Feature/TestFeatures' }); // For each template, find content usage for (const template of templates) { const usage = await sitecore_search({ templateName: template.name, rootPath: '/sitecore/content' }); console.log(`${template.name}: ${usage.length} items`); } ``` --- ## ✅ Verification ### Test Script Updated **File:** `test-testfeatures-discovery.ps1` **Changes:** - Uses `Load-DotEnv.ps1` (restored) - Phase 6 validates bidirectional discovery - Tests template-based content search **Run Test:** ```powershell .\test-testfeatures-discovery.ps1 ``` **Expected:** - ✅ Content items found via name search - ✅ Template analyzed from first item - ✅ ALL content with same template found - ✅ Feature locations discovered - ✅ Template usage statistics generated --- ## 📊 Impact Analysis ### Before (Unidirectional) ``` Content Discovery: - Find by name: 3 items - Template check: Yes - Related content: NO ❌ - Usage stats: NO ❌ Template Discovery: - Template info: Yes - Content usage: NO ❌ - Distribution: NO ❌ ``` ### After (Bidirectional) ``` Content Discovery: - Find by name: 3 items - Template check: Yes - Related content: YES ✅ (12 items) - Usage stats: YES ✅ Template Discovery: - Template info: Yes - Content usage: YES ✅ (12 items) - Distribution: YES ✅ (2 sites, 2 languages) ``` **Improvement:** - 4x more items discovered - Complete relationship maps - Full usage statistics --- ## 📚 Documentation Matrix | Document | Purpose | Status | |----------|---------|--------| | **BIDIRECTIONAL-TEMPLATE-DISCOVERY.md** | Complete guide | ✅ NEW | | **HELIX-RELATIONSHIP-DISCOVERY.md** | Helix workflow | ✅ UPDATED | | **.github/copilot-instructions.md** | AI instructions | ✅ UPDATED | | **MCP-CONTEXT-INSTRUCTIONS.md** | Cross-IDE context | ✅ UPDATED | | **test-testfeatures-discovery.ps1** | Test script | ✅ UPDATED | --- ## 🎓 Training Examples ### Example 1: Simple Article Discovery ``` USER: "Find all articles related to Article1" AI (OLD): - Gets Article1 → Done - Result: 1 item AI (NEW): - Gets Article1 - Analyzes template: "Article" - Searches all content with template "Article" - Result: 25 items across 3 sites ✅ ``` --- ### Example 2: Template Usage ``` USER: "How many items use the Navigation template?" AI (OLD): - Gets template info → Done - Result: Template definition only AI (NEW): - Gets template info - Searches all content with template "Navigation" - Analyzes distribution - Result: "15 items: MySite (8), AnotherSite (5), ThirdSite (2)" ✅ ``` --- ### Example 3: Feature Module Audit ``` USER: "Audit the TestFeatures module" AI (OLD): - Searches "TestFeatures" in content - Result: 3 items AI (NEW): - Searches "TestFeatures" in content (3 items) - Analyzes templates from found items - Searches all content using those templates - Searches template definitions - Searches renderings - Searches resolvers - Result: Complete Helix map with 20+ items ✅ ``` --- ## ⚠️ Breaking Changes **GEEN breaking changes in code!** Dit is een **instructie update** voor AI assistenten en developers. **Code impact:** - ✅ Geen API changes - ✅ Geen breaking changes - ✅ Backwards compatible - ✅ Only workflow improvements --- ## 🚀 Deployment ### For AI Assistants **GitHub Copilot:** - ✅ Auto-loaded via `.github/copilot-instructions.md` - ✅ No action needed **Cursor:** - Update `.cursorrules` with new Helix section - Restart Cursor **Continue:** - Update `config.json` systemMessage - Reload window **Claude Desktop:** - Add metadata description to MCP config - Or start conversations with context --- ### For Developers **Read Documentation:** 1. `BIDIRECTIONAL-TEMPLATE-DISCOVERY.md` (complete guide) 2. `HELIX-RELATIONSHIP-DISCOVERY.md` (Helix workflow) 3. `.github/copilot-instructions.md` (quick reference) **Update Workflows:** - Content discovery → Add template-based related search - Template discovery → Add content usage search - Feature audit → Use bidirectional flows **Test:** ```powershell .\test-testfeatures-discovery.ps1 ``` --- ## ✅ Checklist - [x] Update `.github/copilot-instructions.md` - [x] Update `HELIX-RELATIONSHIP-DISCOVERY.md` - [x] Update `MCP-CONTEXT-INSTRUCTIONS.md` - [x] Create `BIDIRECTIONAL-TEMPLATE-DISCOVERY.md` - [x] Update `test-testfeatures-discovery.ps1` - [x] Create update summary document - [x] Verify all cross-references - [x] Test bidirectional flows --- ## 📞 Questions? **Zie:** - `BIDIRECTIONAL-TEMPLATE-DISCOVERY.md` - Complete guide met examples - `HELIX-RELATIONSHIP-DISCOVERY.md` - Helix workflow patterns - `TESTFEATURES-MCP-WORKFLOW.md` - MCP tools usage **Status: COMPLEET EN PRODUCTIE-READY** 🚀

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GaryWenneker/SitecoreMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server