MVP Workflow Guide
This guide describes the minimal viable product (MVP) workflow for generating educational content with Curriculum Curator.
Overview
The MVP workflow (minimal_educational_module
) generates a complete educational module with the following components:
- Course overview
- Module outline
- Lecture content
- Worksheet with practice activities
- Assessment with various question types
- Instructor guide with teaching suggestions and answer keys
The workflow includes validation and remediation steps to ensure content quality. Each component is output as a separate Markdown file.
Workflow Steps
- Generate Course Overview: Creates a high-level overview of the course
- Generate Module Outline: Creates a structured outline for the module
- Generate Lecture Content: Creates the main lecture content based on the outline
- Validate Lecture Content: Checks for readability and structural issues
- Remediate Lecture Content: Fixes any issues found during validation
- Generate Worksheet: Creates practice activities related to the lecture content
- Generate Assessment: Creates assessment questions to evaluate learning
- Generate Instructor Materials: Creates a guide for instructors with answer keys
- Generate Output Files: Saves all generated content to Markdown files
Configuration-Based Workflow
The MVP workflow is defined in a YAML configuration file located at examples/workflows/minimal_module.yaml
. This approach allows for:
- Easy customization without code changes
- Reuse of common steps across different workflows
- Addition of new steps or modification of existing ones
- Simple sharing of workflow configurations
Workflow Configuration Example
name: minimal_educational_module
description: "Generates a complete educational module with basic components"
steps:
- name: course_overview
type: prompt
prompt: course/overview.txt
llm_model_alias: default_smart
output_format: raw
output_variable: course_overview
# Additional steps...
- name: generate_outputs
type: output
output_mapping:
course_overview: overview.md
remediated_lecture: lecture.md
worksheet: worksheet.md
assessment: assessment.md
instructor_materials: instructor_guide.md
output_dir: output/{course_slug}/{module_id}
Running the Workflow
Using the CLI
# Load workflow config from a file
curator run --config examples/workflows/minimal_module.yaml \
--var course_title="Introduction to Python Programming" \
--var course_slug="intro-python" \
--var num_modules=4 \
--var module_id="module1" \
--var "learning_objectives=Understand basic Python syntax and data structures;Write simple Python programs"
Using the Sample Script
We've provided a sample script that runs the workflow from the config file:
Required Context Variables
The workflow requires the following context variables:
course_title
: Title of the coursecourse_slug
: URL-friendly version of the course titlelearning_objectives
: List of learning objectives for the coursenum_modules
: Number of modules to generatemodule_id
: ID of the current module being generated
Output
The workflow generates the following output files in the output/{course_slug}/{module_id}/
directory:
overview.md
: Course overviewlecture.md
: Lecture contentworksheet.md
: Practice activities worksheetassessment.md
: Assessment questionsinstructor_guide.md
: Instructor guide with answer keys
Extending the Workflow
To extend this workflow:
- Add new prompt templates in the
prompts/
directory - Create a copy of the workflow YAML file and modify it
- Add new steps or modify existing ones in the YAML configuration
- Update the context variables to include any new required inputs
This config-driven approach allows you to: - Create specialized workflows for different educational needs - Share workflow configurations between users - Version control your workflow definitions - Experiment with different step sequences without code changes
Creating Your Own Workflows
- Start with a copy of an existing workflow YAML file
- Add or remove steps as needed
- Configure each step with the appropriate parameters
- Test with sample inputs
- Iterate and refine as needed
Troubleshooting
If you encounter errors:
- Check that all required context variables are provided
- Verify that your LLM API credentials are correctly configured
- Check the logs for detailed error messages
- Ensure all prompt templates have the correct metadata
- Validate your workflow YAML configuration for syntax errors