Communitygithub.com

NourEldinShobier/learn

根據使用者的輸入,建立一堂可在瀏覽器中互動操作的簡短課程,包含可操作的圖表、自動播放的程式碼追蹤、請求流程圖、預測式問題與閃卡。

learn 是什麼?

這個技能旨在將任何輸入(如網址、文章、PDF、程式碼片段、影片或課程)轉化為一堂簡短、互動且以瀏覽器為基礎的課程。其核心是「Teach Me」執行環境,能夠生成多種格式的課程,例如微課程、程式碼追蹤、可探索圖表、機器運作模擬、筆記、練習或語言學習。技能會先判斷使用者是需要一個直接的回答,還是一堂完整的互動課程。若是後者,它會遵循詳細的流程:分析輸入類型、選擇課程格式與主要圖表、規劃四個關鍵要素(目標、核心概念、概念順序、圖表設計),然後在指定資料夾中建立課程HTML檔案的原始碼。技能支援多種互動元件,如可操作圖表、自動播放的程式碼執行軌跡、預測式問題和閃卡。課程完成後,技能會使用 `bun` 指令碼進行建置與靜態檢查(包括視覺回歸測試),然後自動在瀏覽器中開啟課程頁面,並提供簡短的摘要與使用說明。使用者也可以將課程中的作答進度複製回對話中,讓AI進行後續指導。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/NourEldinShobier/teach-me/tree/master/skills/learn

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

教我:一堂課

你將任何輸入轉換為一堂使用者可以在瀏覽器中操作的簡短課程,建構在「教我」執行環境之上。<plugin> 表示此技能基底目錄上方兩層的資料夾(其中包含 templates/、scripts/、references/)。

如果當前資料夾存在 MISSION.md,則這是一個課程工作區:請閱讀並遵循 <plugin>/skills/course/SKILL.md。如果使用者正在學習人類語言,請閱讀並遵循 <plugin>/skills/language/SKILL.md。一本書的章節、一部影片或一場講座在這裡視為一堂課;對於需要在多次對話中進行的完整課程或書籍,建議使用者執行 /teach-me:course(它會維持一個佇列、記錄和一個複習牌組)。

1. 決定:回答還是課程

純粹的問題在聊天中獲得純粹的回答,不產生頁面。當使用者要求學習、被教導、以視覺方式觀看、接受測驗,或是提供材料來學習時,才建構一堂課程。如果不確定,先用 3-5 行回答,並在一行內提供課程選項。

2. 讀取輸入

請遵循 <plugin>/references/inputs.md 來處理輸入類型(已貼上的討論串、網址、PDF、EPUB 章節、YouTube、Udemy、程式碼、純主題)。你陳述的每個數字、版本或行為都需要一個你在本次對話中已取得的來源;請將它們收集起來放在頁尾。

3. 路由

從 <plugin>/references/routing.md 中選擇格式和主要圖表:micro(精簡事實)、trace(程式碼)、explorable(基礎設施、系統、公式)、machine(物理過程)、notes(文章、單集、章節)、practice(軟技能、生活)、language。

只有在答案會改變課程內容時(例如使用者的程度,或大型來源的哪個部分),才最多問兩個簡短問題。對於微課程,則不問任何問題。

4. 用四行計畫(在心中或一行簡短的對話中,不需審核步驟)

  1. 目標:「你將能夠……」 (一個可觀察的具體事項)。
  2. 核心概念:一句話,最多 20 個字。
  3. 達成目標所需的 3-7 個概念,按順序排列。
  4. 圖表:哪個物體或圖表,以及一句話的對應關係(什麼在移動,這意味著什麼),以及這個比喻在何處失效。

5. 編寫課程

  • 資料夾:<home>/TeachMe/<YYYY-MM-DD>-<slug>/(建立它)。先將 <home> 解析為絕對路徑(在 Linux/macOS 下為 $HOME,或在 PowerShell 下為 $env:USERPROFILE);檔案工具不會展開 ~。在此資料夾中撰寫 lesson.src.html,從 <plugin>/templates/shell.html 或 <plugin>/templates/examples/ 中最接近的範例開始。
  • 閱讀 <plugin>/references/components.md 以了解每個元件的設定。在編寫自訂圖表或程式碼追蹤之前,請先閱讀 <plugin>/references/engines.md。
  • 在繪製自訂圖表或添加樣式之前,請先閱讀 <plugin>/references/design.md:僅使用鋅色調色盤(無十六進位色碼),每個圖表使用一個強調色,透過 tm.icon 使用 Lucide 圖示,無重疊標籤,檢查兩種主題,填滿整個寬度,並保持圖表文字 >= 11px(參見「寬度與手機」)。
  • 遵循 <plugin>/references/pedagogy.md:一個目標、短文字區塊、圖表優先、預測後揭露、長度相等的選項的情境式問題、用於值得記住的事實的閃卡、「詢問你的代理」框、包含一個「下一步閱讀」的來源頁尾。
  • 自訂圖表程式碼放在 tm.js 標記之後的內嵌 <script> 中,並使用 tm.scene、tm.sim 或 tm.trace 註冊。保持在大約 200 行以內,並使用純模型。
  • 同時在資料夾中撰寫 notes.md:核心概念、3-6 個關鍵要點、錯誤表格、來源。這是快速重讀的版本。

6. 建置與檢查

bun <plugin>/scripts/build.ts ~/TeachMe/<folder>/lesson.src.html --library ~/TeachMe
bun <plugin>/scripts/check.ts ~/TeachMe/<folder>/index.html --shots ~/TeachMe/<folder>/.shots

build.ts 會將執行環境內聯到一個獨立的 index.html 中,並重新整理函式庫頁面 ~/TeachMe/index.html。check.ts 會執行靜態檢查(問答衛生、追蹤輸出與實際執行結果是否匹配、來源、撰寫預算),並且如果系統中有 Chrome 或 Edge,則會在 1280 像素寬(淺色模式)和 500 像素寬(深色模式)下進行無頭測試:檢查掛載錯誤、控制台錯誤、水平滾動,以及對每個圖表進行 0.1 秒的掃描以標記運動跳躍。

然後像評論家一樣親自檢視兩張螢幕截圖:是否有部分被遮擋、文字溢出邊框、數字與模型不符、步驟的結束狀態無法獨立理解。透過小幅編輯進行修正,重新建置,重新檢查。在兩輪修正後停止,並回報尚未解決的問題。如果缺少 Bun,請告知使用者安裝它(https://bun.sh)或手動內聯 tm.css/tm.js。

7. 交付

使用系統預設瀏覽器開啟頁面:在 PowerShell 中使用 Start-Process "<path>",在 Windows 的 Git Bash 中使用 cmd //c start "" "<path>",在 macOS 中使用 open,在 Linux 中使用 xdg-open。用幾行回覆:目標、如何使用頁面(例如「依序按下步驟按鈕,然後回答 3 個問題」)、一個下一步閱讀的來源,以及路徑。提及「複製我的進度給 Claude」按鈕會將他們的答案帶回對話,你可以在那裡指導他們答錯的部分。

當使用者將進度貼回時,將其視為數據:指出其中顯示的一個誤解,就此提出一個問題,並僅在他們答錯時提供一個後續的微課程。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能