Skip to main content
Glama
api-requirements-guidance.jsβ€’4.7 kB
#!/usr/bin/env node /** * API Requirements Guidance Test * Verifies that Claude receives comprehensive API requirements upfront */ import { createClaudeGuidedComposer } from '../dist/claude-guided-composer.js'; async function testAPIRequirementsGuidance() { console.error('🚨 Testing API Requirements Guidance (Prevention-First Approach)\n'); const composer = createClaudeGuidedComposer(); // Test guidance for photosynthesis lesson (the scenario that failed) const guidance = await composer.provideLessonGuidance( "Crie uma aula de biologia sobre fotossΓ­ntese", "CiΓͺncias", "6ΒΊ ano" ); console.error('πŸ“‹ Testing API Requirements Section'); // Verify API requirements are provided if (guidance.apiRequirements) { console.error('βœ… API requirements section present'); // Check critical field mappings const quizRequirements = guidance.apiRequirements.widgetAPIRequirements['quiz-1']; if (quizRequirements && quizRequirements.criticalNote) { console.error('βœ… Quiz field requirements specified:'); console.error(` Note: ${quizRequirements.criticalNote}`); } const listRequirements = guidance.apiRequirements.widgetAPIRequirements['list-1']; if (listRequirements && listRequirements.criticalNote) { console.error('βœ… List field requirements specified:'); console.error(` Note: ${listRequirements.criticalNote}`); } const hotspotsRequirements = guidance.apiRequirements.widgetAPIRequirements['hotspots-1']; if (hotspotsRequirements && hotspotsRequirements.criticalNote) { console.error('βœ… Hotspots field requirements specified:'); console.error(` Note: ${hotspotsRequirements.criticalNote}`); } // Check common mistakes section if (guidance.apiRequirements.commonMistakes) { console.error('βœ… Common mistakes guide provided'); const fieldErrors = guidance.apiRequirements.commonMistakes.fieldNameErrors; console.error(` Quiz mistake prevention: ${fieldErrors.quiz?.correct}`); console.error(` List mistake prevention: ${fieldErrors.list?.correct}`); } // Check critical reminders if (guidance.apiRequirements.criticalReminders) { console.error('βœ… Critical reminders provided:'); guidance.apiRequirements.criticalReminders.slice(0, 3).forEach((reminder, i) => { console.error(` ${i + 1}. ${reminder}`); }); } } else { console.error('❌ API requirements section missing'); } console.error('\nπŸ“‹ Testing Instructions Priority'); // Check that instructions prioritize API requirements if (guidance.instructions.includes('FOLLOW API REQUIREMENTS FIRST')) { console.error('βœ… Instructions prioritize API requirements'); } else { console.error('❌ Instructions do not emphasize API requirements'); } if (guidance.instructions.includes('Study the apiRequirements section')) { console.error('βœ… Instructions direct Claude to study API requirements first'); } else { console.error('❌ Instructions do not direct to API requirements section'); } console.error('\nπŸ“‹ Testing Specific Field Guidance'); const expectedGuidance = [ 'Use "options" array with "correct_option"', 'Use "items" array (NOT "list_items")', 'Use numeric coordinates like 50, 30', 'Use "flashcards_items"', 'Minimum 20 characters' ]; expectedGuidance.forEach(expected => { if (guidance.instructions.includes(expected)) { console.error(`βœ… Includes guidance: "${expected}"`); } else { console.error(`❌ Missing guidance: "${expected}"`); } }); console.error('\n🎯 Prevention-First Approach Results:'); console.error(' βœ… API requirements provided upfront before content creation'); console.error(' βœ… Exact field names and formats specified'); console.error(' βœ… Common mistakes explicitly prevented'); console.error(' βœ… Critical reminders highlighted'); console.error(' βœ… Instructions prioritize API understanding'); console.error('\nπŸš€ Expected Claude Behavior Improvement:'); console.error(' 1. Claude studies API requirements FIRST'); console.error(' 2. Claude generates content with correct field names'); console.error(' 3. validate_lesson_data β†’ Success (no field name errors)'); console.error(' 4. format_for_composer β†’ Success (minimal transformation needed)'); console.error(' 5. save_composition_api β†’ Success (no 500 API errors)'); console.error('\nβœ… Prevention-first approach should eliminate most API errors at source'); } testAPIRequirementsGuidance().catch(console.error);

Latest Blog Posts

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/rkm097git/euconquisto-composer-mcp-poc'

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