compile — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited compile (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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)# 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 previewImages 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.pngUse 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# 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").
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 placeholderMissing assignment:
Warning: No assignment found for Module 1
- Expected: "### Module 1 Assignment" in 00-course.md
- Action: Skipping assignment.mdModule code collision:
Error: Module code "101" already exists
- Existing: compiled/andamio-for-contributors/101/
- Action: Choose different code or delete existingcompiled/.compiled/ directory should be uploadable as-is.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.