with one click
compile
Compile a course module into the Andamio import format for publishing.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Compile a course module into the Andamio import format for publishing.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Evaluate SLT quality across 5 dimensions with rewrite suggestions.
Interview the user to classify each SLT by lesson type and build up lesson type heuristics.
Draft Student Learning Targets for a new course or module.
Assess your readiness to coach a learner through each SLT.
Release a new version of Coach across all three distribution channels — Claude Code marketplace, npm, and GitHub.
Capture and apply knowledge from course development to improve future runs.
| name | compile |
| description | Compile a course module into the Andamio import format for publishing. |
| license | MIT |
| compatibility | Designed for Andamio platform import format. Adapt output format for other learning platforms. |
| metadata | {"author":"Andamio","version":"1.0.0"} |
Takes a completed course module and packages it into the clean directory structure required by Andamio's module import system. Creates a compiled/ directory with outline.md, numbered lesson files, and optional introduction.md and assignment.md.
module-folder/
├── outline.md # Required
├── introduction.md # Optional
├── assignment.md # Optional
├── lesson-1.md # Optional (maps to SLT 1)
├── lesson-2.md # Optional (maps to SLT 2)
└── ...
outline.md critical requirements:
| Element | Format | Notes |
|---|---|---|
| Title (YAML) | title: in frontmatter | Module display name |
| Code | YAML code: | Unique module identifier — can be a number (101) or slug (intro-cardano) |
| SLT heading | ## SLTs | Must be exactly this (H2, case-insensitive) — first element after frontmatter |
| SLT list | Numbered or bulleted | Each item becomes one SLT |
Common mistakes:
# Title heading in outline.md → not needed, title comes from YAML frontmatter# Student Learning Targets instead of ## SLTs → parser ignores SLTsUpsert behavior: If code matches an existing module, content will be updated.
First, list courses in courses-in-progress/:
## Available Courses
| # | Course | Modules |
|---|--------|---------|
| 1 | andamio-for-contributors | 4 |
| 2 | andamio-for-api-developers | 4 |
Which course? (number or slug)
After course selection, list modules:
## Modules in [Course Name]
| # | Module | SLTs | Lessons Written |
|---|--------|------|-----------------|
| 1 | Your On-Chain Identity | 3 | 3/3 |
| 2 | Browsing Courses and Projects | 3 | 3/3 |
| 3 | Earning a Credential | 2 | 2/2 |
| 4 | The Contribution Loop | 4 | 1/4 |
Which module to compile? (number)
Warn if lessons are incomplete:
lessons/module-N/ doesn't have files for all SLTs, show warningFrom 00-course.md, extract for the selected module:
From lessons/module-N/:
1.1-compare-access-token.md)Create a unique code for the module. This can be a numeric code or a slug string:
Numeric convention (when course uses numbered modules):
101102103201, 202, 203Slug convention (when course uses descriptive identifiers):
intro-cardanowallet-setupfirst-transactionThe code must be unique within the course. If it matches an existing module, the import will upsert (update) rather than create.
Create compiled/[course-slug]/[module-code]/:
compiled/
andamio-for-contributors/
101/
outline.md
lesson-1.md
lesson-2.md
lesson-3.md
assignment.md
---
title: [Module Title]
code: [module-code]
---
## SLTs
1. [First SLT text, exactly as it appears on-chain]
2. [Second SLT text, exactly as it appears on-chain]
3. [Third SLT text, exactly as it appears on-chain]
Critical format requirements:
title: field only## SLTs (H2 level, case-insensitive) — first element after frontmatter# Title after frontmatter or using # Student Learning TargetsSLT text formatting:
For each SLT, copy the corresponding lesson file:
1.1-compare-access-token.md → lesson-1.md1.2-connect-wallet.md → lesson-2.md1.3-mint-access-token.md → lesson-3.mdLesson file transformations:
--- divider)# H1 title — this becomes the lesson title in the import system. Use a short, descriptive title (e.g., # Connect a Cardano Wallet, # Mint Your Access Token)Extract assignment content from 00-course.md:
# Module Assignment
## Task
[Description of what the learner will do]
## Deliverables
1. [First deliverable]
2. [Second deliverable]
3. [Third deliverable]
Assignment transformations:
Module introduction shown before lessons. Great for context, prerequisites, or learning objectives.
If the module section in 00-course.md has introductory text, extract it:
# Welcome to [Module Topic]
[Module-level introduction - context, what learners will accomplish]
## Prerequisites
- [Prerequisite 1]
- [Prerequisite 2]
If there's no intro text in the source, skip this file.
Before writing files, validate:
00-course.mdReport any issues:
## Validation
- [x] 3 SLTs found in module
- [x] 3 lesson files found
- [x] Assignment content found
- [ ] Missing: lesson-2.md (SLT 1.2)
Fix missing lessons before compiling, or proceed with partial?
Write all files to compiled/[course-slug]/[module-code]/.
Show summary:
## Compiled: Module [N] - [Title]
**Output:** `compiled/[course-slug]/[module-code]/`
### Files Created
| File | Size | Status |
|------|------|--------|
| outline.md | 245 bytes | Created |
| lesson-1.md | 3.2 KB | Created |
| lesson-2.md | 2.8 KB | Created |
| lesson-3.md | 4.1 KB | Created |
| assignment.md | 890 bytes | Created |
### Ready for Import
This module is ready to upload to Andamio Studio.
**Next steps:**
1. Review files in `compiled/[course-slug]/[module-code]/`
2. Upload folder via Studio import
3. Verify SLTs and content in preview
Images in lessons are automatically processed during import. Place them correctly and they'll be uploaded to cloud storage with local paths replaced by hosted URLs.
Place images in an assets/ subdirectory within your module folder:
compiled/
andamio-for-contributors/
101/
outline.md
lesson-1.md
lesson-2.md
assignment.md
assets/
diagram-1.png
screenshot-wallet.png
screenshots/
step-by-step.png
Use relative paths from the markdown file:



All three path formats work:
assets/image.png./assets/image.pngimage.png (matched by filename as fallback).png, .jpg, .jpeg, .gif, .webp, .svg
wallet-setup.png not Wallet Setup.pngassets/diagrams/, assets/screenshots/1.1-connect-wallet-01.png, 1.1-connect-wallet-02.pngWhen copying lesson content, apply these transformations:
# Lesson X.Y: Title ← STRIP this specific format
**SLT:** I can... ← STRIP
**Type:** Product Demo ← STRIP
--- ← STRIP
# H1 title — this becomes the lesson title in the app:# Connect a Cardano Wallet ← ADD a short, descriptive title
## Before You Start ← Lesson content starts here
...
The H1 title should be descriptive but concise (not "Lesson 1.2: Connect a Cardano Wallet", just "Connect a Cardano Wallet").
Key Terms sections: Keep (useful for learners)
What's Next sections: Remove or keep based on context
"Want to know how this works?" links: Keep (cross-course references are good)
Missing lesson file:
Warning: No lesson file found for SLT 1.2
- Expected: lessons/module-1/1.2-*.md
- Action: Creating empty lesson-2.md placeholder
Missing assignment:
Warning: No assignment found for Module 1
- Expected: "### Module 1 Assignment" in 00-course.md
- Action: Skipping assignment.md
Module code collision:
Error: Module code "101" already exists
- Existing: compiled/andamio-for-contributors/101/
- Action: Choose different code or delete existing
compiled/.compiled/ directory should be uploadable as-is.