scaffold-exercises

Создавайте структуры каталогов упражнений с разделами, задачами, решениями и пояснениями, проходящими линтинг. Используйте, когда пользователь хочет создать каркас упражнений, заготовки упражнений или настроить новый раздел курса.

npx skills add https://github.com/mattpocock/skills --skill scaffold-exercises

Scaffold Exercises

Create exercise directory structures that pass pnpm ai-hero-cli internal lint, then commit with git commit.

Directory naming

  • Sections: XX-section-name/ inside exercises/ (e.g., 01-retrieval-skill-building)
  • Exercises: XX.YY-exercise-name/ inside a section (e.g., 01.03-retrieval-with-bm25)
  • Section number = XX, exercise number = XX.YY
  • Names are dash-case (lowercase, hyphens)

Exercise variants

Each exercise needs at least one of these subfolders:

  • problem/ - student workspace with TODOs
  • solution/ - reference implementation
  • explainer/ - conceptual material, no TODOs

When stubbing, default to explainer/ unless the plan specifies otherwise.

Required files

Each subfolder (problem/, solution/, explainer/) needs a readme.md that:

  • Is not empty (must have real content, even a single title line works)
  • Has no broken links

When stubbing, create a minimal readme with a title and a description:

# Exercise Title

Description here

If the subfolder has code, it also needs a main.ts (>1 line). But for stubs, a readme-only exercise is fine.

Workflow

  1. Parse the plan - extract section names, exercise names, and variant types
  2. Create directories - mkdir -p for each path
  3. Create stub readmes - one readme.md per variant folder with a title
  4. Run lint - pnpm ai-hero-cli internal lint to validate
  5. Fix any errors - iterate until lint passes

Lint rules summary

The linter (pnpm ai-hero-cli internal lint) checks:

  • Each exercise has subfolders (problem/, solution/, explainer/)
  • At least one of problem/, explainer/, or explainer.1/ exists
  • readme.md exists and is non-empty in the primary subfolder
  • No .gitkeep files
  • No speaker-notes.md files
  • No broken links in readmes
  • No pnpm run exercise commands in readmes
  • main.ts required per subfolder unless it's readme-only

Moving/renaming exercises

When renumbering or moving exercises:

  1. Use git mv (not mv) to rename directories - preserves git history
  2. Update the numeric prefix to maintain order
  3. Re-run lint after moves

Example:

git mv exercises/01-retrieval/01.03-embeddings exercises/01-retrieval/01.04-embeddings

Example: stubbing from a plan

Given a plan like:

Section 05: Memory Skill Building
- 05.01 Introduction to Memory
- 05.02 Short-term Memory (explainer + problem + solution)
- 05.03 Long-term Memory

Create:

mkdir -p exercises/05-memory-skill-building/05.01-introduction-to-memory/explainer
mkdir -p exercises/05-memory-skill-building/05.02-short-term-memory/{explainer,problem,solution}
mkdir -p exercises/05-memory-skill-building/05.03-long-term-memory/explainer

Then create readme stubs:

exercises/05-memory-skill-building/05.01-introduction-to-memory/explainer/readme.md -> "# Introduction to Memory"
exercises/05-memory-skill-building/05.02-short-term-memory/explainer/readme.md -> "# Short-term Memory"
exercises/05-memory-skill-building/05.02-short-term-memory/problem/readme.md -> "# Short-term Memory"
exercises/05-memory-skill-building/05.02-short-term-memory/solution/readme.md -> "# Short-term Memory"
exercises/05-memory-skill-building/05.03-long-term-memory/explainer/readme.md -> "# Long-term Memory"

Больше skills от mattpocock

improve-codebase-architecture
mattpocock
Находить возможности для углубления в кодовой базе, руководствуясь предметным языком из CONTEXT.md и решениями из docs/adr/. Использовать, когда пользователь хочет улучшить архитектуру, найти возможности для рефакторинга, объединить тесно связанные модули или сделать кодовую базу более тестируемой и удобной для навигации ИИ.
developmentcode-reviewapi
tdd
mattpocock
Разработка через тестирование с циклом «красный-зелёный-рефакторинг». Используется, когда пользователь хочет создавать функции или исправлять ошибки с помощью TDD, упоминает «красный-зелёный-рефакторинг», нуждается в интеграционных тестах или запрашивает разработку, ориентированную на тесты.
developmenttesting
handoff
mattpocock
Сжать текущий разговор в документ передачи для другого агента.
communicationproject-managementdocument
prototype
mattpocock
Создайте одноразовый прототип, чтобы проработать дизайн до его утверждения. Маршрутизирует между двумя ветками — запускаемым терминальным приложением для проверки состояния/бизнес-логики или несколькими кардинально разными вариантами интерфейса, переключаемыми с одного маршрута. Используйте, когда пользователь хочет прототипировать, проверить модель данных или конечный автомат, создать макет интерфейса, изучить варианты дизайна или говорит «спрототипируй это», «дай поиграться», «попробуй несколько вариантов».
developmentdesigncreative
triage
mattpocock
Выполнение триажа задач через конечный автомат, управляемый ролями триажа. Используйте, когда пользователь хочет создать задачу, выполнить триаж задач, просмотреть входящие ошибки или запросы на новые функции, подготовить задачи для AFK-агента или управлять рабочим процессом задач.
developmentproject-managementcommunication
obsidian-vault
mattpocock
Искать, создавать и управлять заметками в хранилище Obsidian с помощью вики-ссылок и индексных заметок. Используйте, когда пользователь хочет найти, создать или организовать заметки в Obsidian.
productivitydocument
edit-article
mattpocock
Редактировать и улучшать статьи, перестраивая разделы, повышая ясность и уплотняя текст. Используйте, когда пользователь хочет отредактировать, доработать или улучшить черновик статьи.
documentcreative
writing-great-skills
mattpocock
Справочник по написанию и редактированию навыков — словарь и принципы, которые дела
documentdevelopment