create-course — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited create-course (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.
This skill scaffolds a new course directory with a properly structured COURSE.md. It works for both curated courses (core/courses/ — community- contributed, upstream-managed) and personal courses (custom/courses/ — user-owned, never upstreamed). The output is a ready-to-edit COURSE.md with structure in place — the author fills in the details, then learners use /start-course to begin.
Upstack is domain-agnostic. The course being created could teach Go programming, management accounting, network administration, project management, or anything else that can be taught through productive struggle.
Read these files — they must be in your context before continuing:
references/COURSE-SCHEMA.md — the full COURSE.md schema withYAML frontmatter fields, markdown body structure, and formatting rules
core/courses/go-lang-for-developers/COURSE.md — the referencecourse. Read this to calibrate what a well-structured COURSE.md looks like: YAML frontmatter, assignment descriptions, suggested milestones, design questions, paradigm shift flags, scope notes, topic checklists, and reasoning review prompts. Match its register and depth when generating the new course scaffold.
Ask the author for the following. Suggest sensible defaults where possible (e.g., derive slug from title).
(core/courses/) or a personal course (custom/courses/)?"
Use for featured courses and catalogue content.
upstreamed. Use for personal learning goals.
the author.
What background and prior knowledge should they have?"
per module? Give me a brief title for each assignment."
knowledge? If none, that's fine."
work? What would you tackle first, second, third?" These become suggested milestones in the COURSE.md.
through before they start working? What trade-offs or structural/design choices will they face?" These are posed by the tutor before execution (see TUTOR-CONTRACT.md §10.3).
paradigm? Which topics will conflict with their existing instincts?" If yes, flag those topics with paradigm shift annotations.
but isn't here to learn? (e.g., an API, a data format, a business process)" If yes, add scope notes telling the tutor to scaffold that knowledge so struggle stays focused on the course subject.
Move through the questions conversationally. If the author has a clear vision, this can be quick. If they're exploring, help them think through the structure. Items 9–12 can be deferred to a refinement pass if the author wants to scaffold first and refine later.
Create the course directory under the chosen location (core/courses/ or custom/courses/):
<location>/<slug>/
├── COURSE.md
└── references/
└── .gitkeepThe course directory contains curriculum and reference material only. Learner work lives in the learner's own separate workspace — each assignment is a self-contained project, not a subdirectory of the course.
Populate using the schema from references/COURSE-SCHEMA.md:
Set created and updated to today's date. Set author from profile/PROFILE.md if it exists, otherwise ask.
described. The author will refine it.
based on the assignment titles. Mark them as TODO for the author to refine.
suggested milestone placeholders, design question placeholders, and topic placeholders (- [ ] Topic — TODO: describe). Add paradigm shift annotations if identified in Step 1. Add scope notes if domain scaffolding boundaries were identified.
These should be refined by the author before the course is used.
Show the author a summary:
Note that COURSE.md is a scaffold — the author should edit it to fill in topic details, learning objectives, and reasoning review prompts before running /start-course.
git add <location>/<slug> && git commit -m "course: scaffold <slug>"produce something meaningful — a system, a workflow, a model, an analysis. "Build a REST API client" or "Create a quarterly budget forecast" is an assignment. "Write a for loop" or "Add two cells" is not.
goroutine scheduling" or "Master double-entry bookkeeping" are topics. "Create a file" or "Run the tests" are tasks.
names one thing to produce and one concept that emerges. The tutor adapts them to the learner's pace. Milestones help the tutor sequence the assignment and give the learner a sense of progression.
the learner must resolve before starting work. Target trade-offs and structural decisions, especially where prior instincts mislead.
prior knowledge will actively conflict with a topic, flag it. The tutor can then anticipate the conflict and apply bridging rather than teaching from scratch.
requires domain knowledge that isn't the course subject, tell the tutor to help with it. The learner's struggle should stay on the course topic, not on deciphering an API or a business rule.
why you chose this approach over the alternative" — not "What function did you use?"
works for any domain. Don't assume the course is about programming.
references/COURSE-SCHEMA.md~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.