Skip to content
Back to skills

Course Builder

ASecurity

build a course, create a course, design curriculum, course intake, course outline, course publishing, learning path build, course harvesting, course-builder

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 23, 2026
ai-agentsgobashrails

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add SVerITG/Metis --skill course-builder --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Course Builder?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Course Builder
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sveritg-course-builder/badge)](https://www.skillsdirectory.com/skills/sveritg-course-builder)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Course Builder
description: "build a course, create a course, design curriculum, course intake, course outline, course publishing, learning path build, course harvesting, course-builder"
model: Codex-opus-4-7
effort: thorough
complexity: chain
---

## Codex invocation

When invoked as `/course-builder` from Codex:

1. Read `agents/course-builder/system-prompt.md` for the full role definition.
2. Load the intake questionnaire at `system/config/course-builder-questionnaire.md`. Ask every question the user has not already answered.
3. Act as the orchestrator for the 7-step pipeline below. Do not invent content yourself — delegate to the named specialists.
4. Save the final course folder to `knowledge/courses/{course-slug}/` and a status row to `learning_courses` (slug, title, status='active', progress_pct=0).
5. Log the run via `log_agent_run`.

## The 7-step pipeline

1. **Intake** — load and complete the questionnaire (audience, scope, time budget, prerequisite assumptions, pedagogy preferences).
2. **Scope plan** — present a one-page outline (modules, Bloom levels per objective, estimated hours). Wait for user approval before proceeding.
3. **Harvest** — delegate to Content Harvester. Source materials land in `knowledge/courses/{slug}/sources/` with YAML metadata. Anything paywalled → flag and ask.
4. **Curriculum design** — delegate to Learning Architect. Backward-design from objectives, map to Bloom, define assessments. Output: `course.json`.
5. **Draft** — delegate to Writing Partner (prose), Methods Coach or Epidemiologist (technical review for methodology courses), Visualization Maker (diagrams). Output per module: `notes.md`, `exercises.md`, `assessment.md`.
6. **Review loop** — three self-checks against the guardrails (factual accuracy, pedagogy soundness, accessibility). On failure, iterate with the responsible specialist or ask the user.
7. **Publish** — write the course to disk, register a spaced-repetition schedule, surface on the Learning tab.

## Adaptive mode

If the user asks for one part of an existing course (e.g. "just the t-test module from the statistics course"), skip non-matching modules and produce a mini-course with the requested modules plus prerequisite summaries.

## Output contract

Final delivery includes:
- `knowledge/courses/{slug}/course.json` — schema-conformant course definition
- `knowledge/courses/{slug}/modules/NN_slug/{notes.md,exercises.md,assessment.md}` per module
- `knowledge/courses/{slug}/sources/` — harvested source material
- A row in `learning_courses` with status='active'
- A summary brief at `outputs/reviews/course-builder/YYYY-MM-DD_{course-slug}.md`

## Edge cases

- User has no time budget in mind: propose 8 hours total as the default and ask whether they want shorter or longer.
- Source material is mostly paywalled: stop at step 3 and ask whether to switch to open-access alternatives or drop the topic.
- Course duplicates one already in `learning_courses`: ask whether to extend the existing course or start a new one.
- User wants a course on a controversial / contested topic: include explicit "what is contested" framing in the curriculum, do not present one viewpoint as settled.

## Standing rules (from lessons-learned doc)

Full reference: `system/config/course-build-lessons-learned.md`

**Lesson structure (non-negotiable):**
Every lesson file must contain — in this order — `## Learning objectives`, `## Prerequisites`, `## Content` (with named `### Section N:` subsections), `## Summary`, `## Exercises`, `## Further reading`. No exceptions. The spaced-repetition seeder and the Learning tab progress parser both depend on this structure.

**lessons.json ids must match filenames:**
`01-topic.md` → `"id": "lesson-01"`. `order` must be sequential from 1. Gaps break the progress bar.

**Bloom verb discipline:**
Every learning objective starts with a Bloom-level action verb. Assessment difficulty must not exceed the ceiling verb in that lesson's objectives.

**Domain-grounded examples:**
Every content section includes an example tied to the learner's domain (not generic numbers). For public health / epidemiology courses, use disease/population framing.

**R code style:**
tidyverse only, `library()` at top of every block, expected output as a comment at the end. No package data that isn't in the standard install.

**Pre-publish validation:**
Before setting status → 'active', run:
```bash
for f in knowledge/courses/{slug}/lessons/*.md; do
  grep -q "## Summary" "$f" || echo "MISSING: $f"
  grep -q "## Exercises" "$f" || echo "MISSING EXERCISES: $f"
done
```
Fix all failures before publishing. Missing summaries produce zero spaced-repetition items for that lesson.

**DB registration:**
`total_modules` = count from `lessons.json`, `progress_pct = 0`, `slug` must match folder name exactly.

**Source strategy (open-access first):**
1. `ask_library()` (PaperQA2 index) → 2. OpenAlex `is_oa=true` → 3. arXiv/bioRxiv/medRxiv → 4. Ask user for paywalled PDF. Never scrape or reproduce copyrighted content.

**Output contract (corrected):**
Lessons live at `knowledge/courses/{slug}/lessons/NN-slug.md` (flat — no subdirectories). The previous contract listed `modules/NN_slug/` which was incorrect.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.