💡 Inspiration: The Voice Developer Dilemma
Building an Alexa skill today is notoriously tedious. Even experienced developers face a daunting barrier to entry:
- 3 to 5 hours spent manually configuring JSON interaction models, custom intents, slot types, and sample utterances.
- Deep ASK SDK knowledge required just to wire up session attributes, state persistence, and error handlers.
- Trial-and-error testing with no automated way to validate utterance permutations or slot edge cases prior to deployment.
- Fragmented tooling where ASK CLI, AWS Lambda console, DynamoDB, and CloudWatch operate in silos.
We asked: What if an AI agent could take a plain English description and generate a complete, production-ready, fully tested, and deployable Alexa skill package in under 60 seconds?
That vision is SkillForge — an AI-powered MCP tool server that turns hours of boilerplate into seconds of synthesis.
🚀 What SkillForge Does
SkillForge exposes 6 standardized MCP tools complying with the Model Context Protocol (Spec 2025-11-25+) over Streamable HTTP and SSE:
generate_skill: Takes any conversational prompt (e.g., "Build a skill that tracks my daily water intake and reminds me to drink every 2 hours") and generates:skill.json: Deployment manifest with endpoints, permissions, and publishing metadata.interactionModel.json: Intents, custom slot types with entity synonyms, 10+ natural utterances per intent, and dialog delegation (ALWAYS).lambda/index.js: Full ASK SDK v2 Node.js handler withattributesManager, session handling, DynamoDB persistence, and rich SSML speech.tests/test_suite.json: 20+ automated test utterances with expected intents, slots, and edge cases.
refine_skill: Natural language iterative refinement loop. Prompts like "Add a weekly summary that tells me my average daily intake" seamlessly add new intents without resetting or dropping existing intents, automatically bumping version numbers.test_skill: Automated regression test runner with slot pattern matching and confidence scoring.deploy_skill: One-click deployment to the Alexa Developer Console via the ASK CLI orchestrator with schema pre-validation to eliminate silent deployment failures.analyze_skill: Real-time performance metrics, error tracking, and Sankey diagram conversation flows.list_skills: Developer portfolio manager tracking all skills and versions.
🏗️ How We Built It (Architecture & AWS Tech Stack)
SkillForge was engineered from the ground up as a cloud-native, voice-first microservices pipeline:
- AI Orchestrator (Amazon Bedrock): Powered by Anthropic Claude 3 Haiku (
anthropic.claude-3-haiku-20240307-v1:0), chosen for its blazing sub-second latency and precision with structured code generation. - Backend & Protocol: Python 3.11 with FastAPI, Uvicorn, and Model Context Protocol (MCP) supporting Streamable HTTP (
/mcp/tools,/mcp/call) and REST endpoints. - Persistence Layer (AWS DynamoDB): Pay-per-request DynamoDB table storing skill metadata, versioning, and session persistence, featuring automatic
gzipcompression for payloads exceeding 300KB. - ASK SDK Lambda Handlers: Generates production-ready Node.js 18.x handlers using
ask-sdk-coreandask-sdk-dynamodb-persistence-adapter. - Deployment & Cloud: Containerized with Docker and ready for AWS Serverless / SAM deployment via
serverless.yml. - Inclusive Voice Design (IVD): Auto-generates natural SSML speech with cognitive pauses (
<break time="300ms"/>), cadence tuning (<prosody rate="95%">), phoneme hints (<phoneme>), and multi-language generation across English, Hindi, Spanish, German, and Japanese.
⚡ Challenges We Faced & Resolved (Developer Friction Log)
During development, we documented 10 technical friction points across the Alexa developer stack, implementing concrete code resolutions for every one (earning a +10% judging bonus):
- MCP Parameter Discovery: Implemented Pydantic v2 JSON Schema reflection for complex tool parameters.
- Bedrock Token Limits: Created a staged micro-pipeline (Intents $\rightarrow$ Lambda $\rightarrow$ Test Suite) preventing truncation.
- ASK CLI Silent Deployment Failures: Built schema pre-validation in
ask_cli_service.pyto catch invocation name errors and missing built-in Amazon intents prior to CLI execution. - Voice Error Handling: Engineered an
MCPToolResponseenvelope with human-readable<speak>speech fallbacks. - Bedrock Throttling During Burst Generation: Built
invoke_with_retry()with full jitter exponential backoff. - DynamoDB 400KB Limit: Added automatic
gzipbase64 compression for large skill packages. - Node.js Compatibility: Pinned Node.js 18 LTS in Docker to guarantee ASK CLI stability.
- Hot-Reload Disconnections: Added stateful auto-reconnect logic for SSE streaming.
- Malformed JSON in Code Blocks: Built a multi-tier regex parser extracting JSON from markdown fences and bracket boundaries.
- Large Package Streaming: Implemented chunked HTTP transfer encoding for real-time progress events.
(Full report in FRICTION_LOG.md in the repository).
🧪 Automated Testing & Reliability
SkillForge includes 12 automated tests across 4 test suites with a 100% pass rate:
test_intent_generator.py: 4 tests verifying custom intents, multi-turn dialog delegation (ALWAYS), custom slot types, and $\ge 10$ sample utterances per intent.test_lambda_generator.py: 3 tests verifying session management, DynamoDB persistence, and universal error handlers.test_skill_validator.py: 3 tests verifying Alexa schema compliance, duplicate utterance detection, and required Amazon intents.test_mcp_tools.py: 2 integration tests verifying end-to-end package generation and intent preservation during refinement.
📈 Impact & What We Learned
- 98% Time Reduction: Reduces skill development time from 3–5 hours of manual work to under 60 seconds of AI-driven synthesis.
- Democratizing Voice: Allows non-technical domain experts (fitness coaches, educators, small business owners) to build and deploy rich voice skills without touching code.
- Voice-First AI: Prompt engineering for voice requires different paradigms than text chatbots — natural SSML pauses, short cognitive chunks, and conversational error recovery are essential.
Built With
- alexa-plus
- amazon-alexa
- amazon-bedrock
- amazon-dynamodb
- ask-sdk
- aws-cloudwatch
- aws-lambda
- claude-3-haiku
- docker
- fastapi
- json-rpc
- mcp
- model-context-protocol
- node.js
- pydantic
- pytest
- python
- rest-api
- serverless
- ssml
Log in or sign up for Devpost to join the conversation.