К основному содержанию
скилл CX Codex

course-publisher — скилл для Claude Code: что делает и как установить

Готовит рассылки, анонсы, статический сайт и файлы для LMS на основе Course Passport. Пригодится преподавателям, чтобы не переносить даты и правила вручную.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add YujxZJCN/teaching-skills --skill course-publisher -a claude-code
Открыть на GitHub

Что делает course-publisher

Скилл автоматизирует рутинные коммуникации со студентами. Внутри работают 4 субагента: один составляет разовые объявления, второй собирает еженедельные дайджесты, третий генерирует страницы курса в HTML или Markdown, а четвёртый упаковывает материалы для загрузки в Canvas, Moodle или Blackboard. Также предусмотрен режим живого FAQ, который берёт ответы строго из паспорта курса.

Главное правило скилла: паспорт курса (shared/course_passport_schema.md) остаётся единственным источником фактов. Если даты сдачи или номера аудитории там нет, агент не станет их выдумывать, а вставит заглушку [NEEDS PROFESSOR INPUT: ...]. Противоречия с программой курса скилл сразу помечает как критическую блокировку.

Скилл работает строго в режиме черновиков. Прямого доступа к LMS или почтовому ящику у него нет, поэтому публиковать и рассылать материалы преподавателю нужно самостоятельно.

Какие задачи решает

  • составить черновик еженедельного письма студентам с дедлайнами и планом на неделю
  • подготовить структуру папок и чек-лист для выгрузки материалов в Canvas или Moodle
  • сгенерировать статический сайт курса из файла паспорта
  • собрать ответы на повторяющиеся вопросы студентов без выдуманных правил

Примеры запросов агенту

  • Подготовь еженедельное письмо для студентов: у нас началась 6-я неделя
  • Собери материалы с 1 по 4 неделю для выгрузки в Canvas
  • Напиши объявление для группы: лекция в четверг переносится в аудиторию B204

Как установить course-publisher

1Через Skills CLI (Vercel)

npx skills add YujxZJCN/teaching-skills --skill course-publisher -a claude-code

2Вручную: положить файлы

~/.claude/skills/course-publisher/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/course-publisher/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о course-publisher

Как установить course-publisher в Claude Code?

Выполните команду npx skills add YujxZJCN/teaching-skills --skill course-publisher -a claude-code. Также можно разместить файл скилла вручную по пути ~/.claude/skills/course-publisher/SKILL.md.

Зачем нужен скилл course-publisher?

Он генерирует студенческие материалы и объявления строго по данным из паспорта курса. Это исключает путаницу в датах сдачи, баллах и аудиториях.

Может ли скилл сам отправить письмо или опубликовать курс в LMS?

Нет, инструмент лишён прямого доступа к почтовым службам и внешним системам. Все материалы формируются в виде черновиков, а публикацию преподаватель выполняет лично.

Исходный текст

SKILL.md · MIT
---
name: course-publisher
description: "Student-facing communication and packaging for university professors, derived entirely from the Course Passport. 4-agent team drafting one-off announcements, weekly emails, a static course website, LMS upload packages, and a living FAQ — every date, weight, and policy traces to a passport field, and everything ships as a draft the professor publishes. Triggers on: announcement, weekly email, course website, course page, LMS, Canvas, Moodle, Blackboard, post materials, publish course, student FAQ, 课程通知, 周报, 课程网站, 课程主页, 学习平台, 发布课件, 课程公告, 常见问题."
metadata:
  version: "1.0.0"
  last_updated: "2026-06-10"
  status: active
  pipeline_stage: 4
  related_skills:
    - teaching-pipeline
    - deck-studio
    - course-designer
---

# Course Publisher — Student Communications & Packaging Team

Drafts and packages everything students *receive* about a course — announcements, the
weekly email, the course website, LMS upload structures, the FAQ — by compiling it from
the Course Passport (`shared/course_passport_schema.md`). This is the highest-volume,
lowest-judgment work in a teaching term: it derives mechanically from decisions the
professor already made, which makes it ideal to delegate — and dangerous only if the
delegate invents facts. So this skill never does.

> **Prime rule:** the passport is the only source of facts. A date, weight, room number,
> or policy that is not in the passport or the professor's input appears as
> `[NEEDS PROFESSOR INPUT: ...]` — shipped visibly, never guessed. A plausible wrong
> date in a student email does more damage than a visible gap.

## Quick Start

```
Draft an announcement: Thursday's lecture moves to room B204
Write this week's email for my course — it's week 6
Build a course website from my passport
Package weeks 1–4 for Canvas upload
学生总在问迟交政策,帮我整理一个常见问题页
帮我起草下周的课程周报
```

## Modes

| Mode | Trigger intent | Output |
|------|---------------|--------|
| `announcement` | One-off message to the class: schedule change, exam logistics, reminder | Single-topic announcement draft, action-first structure |
| `weekly-email` | "This week's email", week-N update, 周报 | Week-N email from passport schedule + calendar position: what's due, what's next, what to prepare |
| `course-site` | "Course website", course page, 课程主页 | Static site from the passport: syllabus page, schedule table, materials index from `artifacts[]`, policies — plain HTML/Markdown for any static host or LMS pages |
| `lms-package` | "Get this into Canvas/Moodle/Blackboard", post materials, 发布课件 | Upload-ready folder structure with naming conventions + per-LMS upload checklist (the skill cannot access the LMS and says so plainly) |
| `faq` | Recurring student questions, 常见问题 | Living FAQ: professor pastes the questions, answers drafted FROM passport facts; policy gaps flagged back to `course-designer` |

**Mode dispatch rule:** a request mixing several topics ("announce the room change and
remind them about the quiz and the project") → split into separate `announcement` drafts,
or fold into the next `weekly-email` if none is urgent — one message, one topic. Detect
intent in any language.

### Does NOT trigger

| Scenario | Use instead |
|----------|-------------|
| Writing to an individual student (feedback, intervention, difficult email) | `student-mentor` |
| Building the materials themselves — lessons, slides, activity sheets | `lesson-builder` / `deck-studio` |
| Writing or changing syllabus content, outcomes, or policies | `course-designer` |

## Agent Team (4)

| Agent | Role |
|-------|------|
| `announcement_writer_agent` | One-off announcements: action-first, one topic each, urgency-calibrated subject lines, professor's voice; bad news leads with the change |
| `site_builder_agent` | Static course website built from the passport; single-source discipline (renders policy text, never restates it); rebuild-on-passport-change |
| `lms_packager_agent` | Upload-ready packaging: folder/naming conventions, week-aligned structure, upload checklist per LMS; verifies completeness against `artifacts[]`; never claims to have uploaded |
| `comms_planner_agent` | Semester communication calendar derived from the passport: lead-time rules, planned-vs-sent tracking, gap flags at the weekly checkpoint; never auto-sends |

## Workflow (`weekly-email` mode)

```
Phase 0  ORIENT      — read passport schedule + stored term calendar; confirm week N
                       (calendar never invented — Pipeline Iron Rule 5)
Phase 1  ASSEMBLE    — week-N facts from the passport: assessments due, upcoming
                       deadlines, what to prepare for next week, changes since last week
Phase 2  PLAN-CHECK  — comms_planner cross-checks the semester comms calendar: nothing
                       announced late (exam logistics ≥2 weeks out, changes ASAP);
                       overdue items folded into this email or flagged
Phase 3  DRAFT       — fill `templates/weekly_email_template.md` in the professor's
                       established voice (calibrated from prior emails when available)
Phase 4  CONSISTENCY — every shared fact cross-checked against the site and syllabus;
                       a contradiction with the syllabus is a BLOCK-grade flag
         🧑 checkpoint: draft + fact-trace presented; the professor sends — this skill
            never does (Checkpoint Protocol: student-facing outputs never auto-finalize)
```

`announcement` mode runs the same Phases 2–4 over a single topic. `course-site` and
`lms-package` are build modes: assemble from the passport, verify against `artifacts[]`,
🧑 checkpoint before anything is treated as publishable. `faq` mode drafts answers only
where the passport answers the question; a question the passport cannot answer is a
policy gap, routed to `course-designer` rather than improvised here.

## Iron rules

1. **Facts from the passport only.** Every date, weight, room, and policy line in a
   communication traces to a passport field or explicit professor input.
   `[NEEDS PROFESSOR INPUT: ...]` ships visibly in the draft rather than being guessed —
   a gap the professor can see beats a fabrication students will quote back.
2. **Draft-only.** This skill never sends, posts, publishes, or uploads. Every output
   ends with a review-and-publish-yourself note, non-removable by configuration.
3. **Consistency is checked, not hoped.** Each artifact regenerated cross-checks the
   facts it shares with the site, the syllabus, and prior communications. Drift between
   channels — the defect this skill exists to prevent — is reported per fact; a
   contradiction with the syllabus is a BLOCK-grade flag resolved before the checkpoint
   closes.
4. **No surveillance framing.** Announcements never name-and-shame and never generate
   "many of you still haven't…" guilt mechanically. If the professor asks for that
   register, flag once (Quality Gate I2 spirit); their call wins, with the reason logged.
5. **Accessibility by default.** Web and email output use semantic headings, real link
   text, alt text for images, and tables that survive a phone screen — Quality Gate U1
   applied to everything student-facing this skill produces.

## Outputs

- `comms/announcement_<topic>.md`, `comms/week_<N>_email.md` — drafts from
  `templates/weekly_email_template.md`, each with its fact-trace block
- `site/` — static course website per `templates/course_site_structure.md`
- `lms_package/` — upload-ready structure + `upload_checklist.md`. For an *importable*
  package (not just a zip), run `scripts/export_lms.py --to imscc` to build an IMS Common
  Cartridge (`.imscc`) that Canvas/Moodle/Blackboard import directly; render the syllabus
  and handouts to DOCX/PDF with `scripts/render_document.py`
- `comms/faq.md` — living FAQ, with policy gaps listed for `course-designer`
- `comms/comms_calendar.md` — planned vs sent, maintained by `comms_planner_agent`

## References

- `references/student_comms_guide.md` — action-first anatomy, subject conventions, tone
  calibration, bad-news patterns, accessibility rules
- `templates/weekly_email_template.md`
- `templates/course_site_structure.md`
- Shared: `shared/course_passport_schema.md`, `shared/checkpoint_protocol.md`,
  `shared/quality_gate_protocol.md`, `shared/pedagogy_foundations.md`

© YujxZJCN · MIT · YujxZJCN/teaching-skills

Похожие скиллы

Все скиллы по теме «Тексты и документация» →
grill-with-docs Matt Pocock Скилл проводит жёсткое интервью по плану или дизайну и по ходу создаёт ADR и глоссарий. Подойдёт перед началом сложной разработки. 1 219 756установок skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. 414 180установок setup-matt-pocock-skills Matt Pocock Скилл настраивает репозиторий для инженерных скиллов Matt Pocock: задаёт трекер задач, метки триажа и расположение доменной документации. Запустите его перед первым использованием остальных скиллов. 1 052 851установок handoff Matt Pocock Собирает текущий диалог в документ передачи, чтобы другой агент продолжил работу с нужным контекстом. Нужен при смене сессии или исполнителя. 1 038 491установок triage Matt Pocock Скилл проводит issue и внешние PR через роли триажа, проверку и подготовку брифа для агента. Подойдёт мейнтейнеру, который разбирает очередь задач. 990 453установок domain-modeling Matt Pocock Скилл помогает уточнять термины проекта, вести GLOSSARY.md и фиксировать архитектурные решения в ADR. Нужен, когда модель предметной области меняется. 876 391установок

Из того же набора15

media-scripter Превращает лекционные конспекты и план перевёрнутого курса в сценарии мини-лекций, раскадровки, серии эпизодов и вычищенные субтитры. Пригодится преподавателю, который записывает занятия на камеру или микрофон. CX Codex +1 ★ 41звёзд репо lesson-builder Генерирует полные комплекты учебных материалов для вузовских пар: планы занятий, конспекты лекций, структуры слайдов и практические задания. CX Codex +1 ★ 41звёзд репо lab-forge Собирает лабораторные и программные задания в готовые пакеты: с данными, стартовым кодом, автопроверкой и проверенным решением. Пригодится, когда нужно подготовить материалы для студентов. CX Codex +1 ★ 41звёзд репо deck-studio Собирает слайды, раздатки и постеры из готового плана лекции: команда из 4 агентов рендерит реальные файлы через Marp, Pandoc, Beamer или python-pptx. CX Codex +1 ★ 41звёзд репо course-designer Помогает спроектировать университетский курс: от результатов обучения до расписания и силлабуса. Пригодится для нового курса или переработки существующего. CX Codex +1 ★ 41звёзд репо cohort-analyst Превращает списки способностей, входную диагностику и результаты课前-опросов в решения по преподаванию. Работает только с агрегатами по группе. CX Codex +1 ★ 41звёзд репо bilingual-courseware Синхронизирует двуязычные университетские курсы через утверждённый глоссарий терминов, проверку педагогической эквивалентности и аудит расхождений. CX Codex +1 ★ 41звёзд репо assessment-architect Скилл помогает создавать экзамены, квизы, рубрики и задания, а затем разбирать результаты. Пригодится, когда нужно подготовить оценивание по заданным учебным результатам. CX Codex +1 ★ 41звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой