원클릭으로
generate-course
Generate a card-based certification training course from wiki content
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Generate a card-based certification training course from wiki content
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Process raw sources into wiki pages — creates summaries, entities, and concept pages
Check Sentry errors, Axiom logs, and other monitoring sources for bugs, then fix them with regression tests
Recursively crawl a documentation site, converting each page to markdown
Fetch Google Docs and convert to markdown
Generate TTS audio from speaker_notes and upload to Vercel Blob
Generate AI illustrations for course cards and upload to Vercel Blob
| name | generate-course |
| description | Generate a card-based certification training course from wiki content |
| user-invocable | true |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash |
Generate a complete card-based course from the wiki knowledge base.
/generate-course <topic-or-slug>
Example: /generate-course claude-architect
wiki/index.md to locate pages relevant to $ARGUMENTS.[[wikilinks]] one hop out for context.raw/ if this is exam-prep content.Create courses/<slug>/graph.yaml following this format:
concepts:
concept-key:
prerequisites: [other-concept-key]
domain: "Domain Name"
wiki_page: "Wiki Page Title"
Rules:
Create courses/<slug>/course.md with YAML frontmatter:
---
type: course
id: "course_<slug>"
title: "Course Title"
status: draft
exam_target: "target-exam-slug"
target_audience: "Who this is for"
estimated_minutes: 90
pass_threshold: 0.72
difficulty_curve: gradual
domains:
- name: "Domain Name"
weight: 0.25
cards: [03, 04, 05]
card_order:
- cards/01-slug.md
- cards/02-slug.md
tags: [tag1, tag2]
---
The body should contain objectives, exam format, and overview.
Create individual card files in courses/<slug>/cards/ following these schemas.
Card ID format: card_<8-char-hex> — generate randomly, must be unique across the course.
Filename convention: NN-slug.md where NN is zero-padded order number.
---
id: "card_<8hex>"
type: page
order: N
difficulty: 1-3
title: "Title"
domain: "Domain Name"
wiki_refs: ["Wiki Page 1", "Wiki Page 2"]
source: "raw/filename.md"
content_hashes:
"Wiki Page 1": "<first-8-chars-of-md5>"
speaker_notes: |
Narration script for TTS...
---
Body content in markdown, >100 chars...
For content_hashes: read each wiki_ref page, compute a simple hash of its content (first 8 chars of a hex digest). This enables staleness detection.
---
id: "card_<8hex>"
type: quiz
order: N
difficulty: 1-3
title: "Title"
domain: "Domain Name"
wiki_refs: ["Wiki Page"]
pass_threshold: 0.8
questions:
- prompt: "Question text"
objective: "What this tests"
source: "raw/filename.md"
choices:
- text: "Answer A"
correct: true
feedback: "Why correct"
- text: "Answer B"
correct: false
misconception: "what the learner confused"
feedback: "Why wrong and what's right"
- text: "Answer C"
correct: false
misconception: "specific misconception"
feedback: "Correction"
- text: "Answer D"
correct: false
misconception: "specific misconception"
feedback: "Correction"
---
ENFORCED quiz constraints:
misconception field (non-empty, specific)source field pointing to an existing raw/ fileobjective---
id: "card_<8hex>"
type: scenario
order: N
difficulty: 3
title: "Title"
domain: "Domain Name"
wiki_refs: ["Wiki Page"]
source: "raw/filename.md"
steps:
- id: start
situation: |
Description of the situation...
choices:
- text: "Option A"
next: step_id
score: 1.0
- text: "Option B"
next: other_step
score: 0.0
- id: terminal_step
outcome: |
What happened as a result...
total_score: best|partial|poor
---
Scenario constraints:
---
id: "card_<8hex>"
type: reflection
order: N
difficulty: 1-3
title: "Title"
domain: "Domain Name"
wiki_refs: ["Wiki Page"]
prompt: |
Open-ended reflection prompt...
---
wiki/index.md if not present.- [[Course - <Title>]] — one-line summarywiki/log.md:
## [YYYY-MM-DD] generate-course | <Title>
Generated N cards across M domains. Card mix: X page, Y quiz, Z scenario, W reflection.
Run the validator:
npx tsx scripts/validate-course.ts courses/<slug>
Fix any failures before completing. Iterate until the validator exits 0 with all checks passing.
Every card should be something a learner would genuinely learn from: