dsh-teacher
DSH teacher plugin: Socratic tutor that leads you to answers from a markdown question set, tracks knowledge gaps in-session, and retests them on a spaced-repetition schedule.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Yihong89/dsh-teacher说明文档
阅读完整 README ↗dsh-teacher 🧑🏫
A DeepSeek Harness plugin that turns the agent into a teacher — never answers, always asks.
Give it a markdown file of questions. It leads you to the answers with the Socratic method, keeps a quiet ledger of the gaps it notices in your reasoning, and retests those gaps on-demand on a spaced-repetition schedule.
The loop
questions.md ──▶ /teach questions.md
│ Q1: "What happens when TCP handshake fails?"
│ └─ you (wrong) ──▶ hint ──▶ you (right) ──▶ grade ✓
│ Q2: "Why does rebase rewrite history?"
│ └─ "idk" ──▶ gap noted: rebase, evidence="idk", missing
▼
gap ledger (persists across sessions, SQLite)
│ you: "/retest" (on-demand, anytime)
▼
"Explain rebase to me." ──▶ graded, rescheduled (FSRS-5)
Status
v0.2.0 — core + Web client implemented, tests passing (43/43).
| Milestone | Status |
|---|---|
| M0 Scaffold (bundle patch, plugin row, zero-build JS) | ✅ |
| M1 Core Socratic loop (curriculum parser, policy section, 5 tools) | ✅ |
| M2 Gap ledger + persistence (SQLite + JSON fallback, session events) | ✅ |
| M3 FSRS-5 spaced retest (official test vector pinned) | ✅ |
| M4 Web client (quiz cards, gaps button + panel, gap projection) | ✅ |
| M5 Publish (dsh-plugin topic ✓, awesome lists, live e2e) | ◐ |
Design decisions are in docs/PLAN.md.
Web client
Once the plugin is installed and the web profile restarted, the browser bundle
(lib/client.js, registered via dsh.client) adds:
- Quiz cards — custom
tool.call.toolviewcards fornext_question,grade_answer,note_gap,hint, andretest(question prompt, verdict color-coded by outcome, gap chips by kind). - 🧑🏫 gaps button — in the session header action row, shows a due-count badge and opens the gap panel.
- — floating overlay listing this session's gaps (kind, topic, due/✓ mastered), fed by the session projection (same seam dsh-usage-plugin uses). The durable cross-session ledger stays in and .