From aa024cb1954fedbc8221967c080fa40b9867f994 Mon Sep 17 00:00:00 2001 From: Matt Pocock Date: Wed, 17 Jun 2026 22:26:34 +0100 Subject: [PATCH] feat: enhance teach skill to prioritize reusable components from ./assets --- .changeset/teach-shared-assets.md | 2 +- skills/productivity/teach/SKILL.md | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.changeset/teach-shared-assets.md b/.changeset/teach-shared-assets.md index 35724d1..8a42d68 100644 --- a/.changeset/teach-shared-assets.md +++ b/.changeset/teach-shared-assets.md @@ -2,4 +2,4 @@ "mattpocock-skills": patch --- -Allow the **`teach`** skill to share code between lessons. Shared stylesheets, simulator code, and any code reused across lessons now live in `./assets/`. +Make the **`teach`** skill reuse-first. Lessons are now built from reusable **components** in `./assets/` — stylesheets, quiz widgets, simulators, diagram helpers. Reuse is the default: the agent reads `./assets/` before authoring a lesson, builds from what's there, and extracts anything new and reusable into a component rather than inlining it. diff --git a/skills/productivity/teach/SKILL.md b/skills/productivity/teach/SKILL.md index 93298cb..b1603e5 100644 --- a/skills/productivity/teach/SKILL.md +++ b/skills/productivity/teach/SKILL.md @@ -16,7 +16,7 @@ Treat the current directory as a teaching workspace. The state of their learning - `RESOURCES.md`: A list of resources which can be explored to ground your teaching in contextual knowledge, or to acquire knowledge and wisdom. Use the format in [RESOURCES-FORMAT.md](./RESOURCES-FORMAT.md). - `./learning-records/*.md`: A directory of learning records, which capture what the user has learned. These are loosely equivalent to architectural decision records in software development - they capture non-obvious lessons and key insights that may need to be revised later, or drive future sessions. These should be used to calculate the zone of proximal development. They are titled `0001-.md`, where the number increments each time. Use the format in [LEARNING-RECORD-FORMAT.md](./LEARNING-RECORD-FORMAT.md). - `./lessons/*.html`: A directory of lessons. A **lesson** is a single, self-contained HTML output that teaches one tightly-scoped thing tied to the mission. This is the primary unit of teaching in this workspace. -- `./assets/*`: Shared code used across lessons — stylesheets, simulator code, anything two or more lessons reuse. Lessons may link to these rather than duplicating the code inline. +- `./assets/*`: Reusable **components** shared across lessons. See [Assets](#assets). - `NOTES.md`: A scratchpad for you to jot down user preferences, or working notes. ## Philosophy @@ -60,6 +60,14 @@ Each lesson should recommend a primary source for the user to read or watch. Thi Each lesson should contain a reminder to ask followup questions to the agent. The agent is their teacher, and can assist with anything that's unclear. +## Assets + +Lessons are built from reusable **components**, stored in `./assets/`: stylesheets, quiz widgets, simulators, diagram helpers — anything a second lesson could reuse. + +Reuse is the default, not the exception. Before authoring a lesson, read `./assets/` and build from the components already there. When a lesson needs something new and reusable, write it as a component in `./assets/` and link to it — never inline code a future lesson would duplicate. + +A shared stylesheet is the first component every workspace earns: every lesson links it, so the lessons look like one consistent course rather than a pile of one-offs. As the workspace grows, so should the component library. + ## The Mission Every lesson should be tied into the mission - the reason that the user is interested in learning about the topic.