Back to home@bettermen

xiashuo

虾说教材写作 · dsh-course-writer — AI course-authoring workspace plugin for DeepSeek Harness (DSH). 三栏式工作台 · 九阶段门禁 · 课程/章节/资料库/知识图谱 · 导出 TXT/Word · 分享协作。Three-pane workspace, nine-phase gated workflow, lorebook, export & share.

Stars
2
Language
TypeScript
Created
Aug 23, 2026
Updated
Aug 30, 2026
GitHub repo

Introduction

虾说 — AI 教材写作工作台

虾说(xiashuo)

AI course-authoring workspace plugin for DeepSeek Harness (DSH) — three-pane workspace · nine-phase gated workflow · course/chapter/lorebook management · knowledge graph · TXT/Word export · share & collaborate.

一个面向 DeepSeek Harness(DSH)的 AI 教材写作工作台插件: 三栏式界面 + 九阶段门禁式编写流程 + 课程/章节/资料库管理 + 导出(TXT/Word)+ 分享协作

虾说 Logo

让 DSH 像一位专业的教材编写专家与你协同:从选题、学情分析、教学目标到教案、课件练习、评估结课,每一步有方法、有门禁、可校验、可导出,并配有资料库与知识图谱把知识点结构固化下来。


✨ 功能特性

三栏式工作台

  • 左栏:章节列表(拖拽排序 + 悬停删除 + 右键菜单)+ 九阶段门禁导航(进度 x/9、阶段锁定/进行中/已通过状态)
  • 中栏:Markdown 编辑 + 分屏预览 + 章节名编辑 + 手动保存 / 自动保存(停止输入 2 秒自动落盘)
  • 右栏:资料库(知识点管理)/ 知识图谱(可视化知识结构)

课程管理

  • 新建课程:23 类课程类型下拉选择(通识素养 / 学科知识 / 职业技能 / 资格考试 / 兴趣拓展)
  • 重命名 / 删除:一键操作,删除二次确认

资料库(知识点管理)

  • 知识点新增 / 编辑 / 停用 / 启用 / 删除 / 预览(弹窗表单,含名称、内容、关键词)
  • 关键词逗号分隔,按课程隔离(每门课独立栏目)

知识图谱

  • 可视化课程知识点与关联关系
  • 节点标签沿圆周径向分布,防重叠;长标签截断 + 悬停查看完整

导出

  • TXT 文本导出
  • Word(.docx) 标准 Office 格式(标题层级 + 章节样式)

分享协作

  • 生成只读 / 可编辑分享链接,他人免登录即可访问
  • 可编辑协作带版本记录冲突检测(多人编辑冲突时提示覆盖或加载最新)

九阶段门禁式编写流程

选题 → 学情分析 → 教学目标 → 大纲 → 单元 → 教案 → 课件练习 → 评估结课

  • 阶段门禁:前一阶段未批准不能进入下一阶段
  • 产物版本快照:每次提交留档,可回退
  • 审计日志:每次操作写入 audit.jsonl

窗口控制

  • 全屏 / 缩小 50%(可拖拽调整大小)/ 关闭
  • 三栏宽度可拖拽调整

虾说三栏式工作台

🎭 教材写作模式预设(agent 预设)

插件随包装载一个 「虾说」agent 预设,在 DSH 新建会话时的模式选择器里即可选用——选中即"一键进入教材编写模式"。

三通道协同,约束模型行为

  1. 模式锚定(本预设)——预设锚定"教材编写专家" persona;
  2. 软引导(技能)——随 enabling 自动注册的 course-writing-workflow 技能,进入会话后加载完整编写方法论(九阶段定义、模板用法、工具写法);
  3. 硬轨道(工具)——host 注册的 course_* / lorebook_* 工具随预设全程可调,阶段推进、产物提交、校验、写教案都走工具。

使用方式:新建会话 → 预设选择器选「虾说」→ 直接开始创作;或安装后自动同步到本地 ~/.dsh/.agent-presets/course-writer/


🎯 使用场景

场景怎么做
从零写一门新教材打开工坊 → 「+新建」→ 选课程类型 → 逐章编写
已有大纲/知识点建好课程后,把知识点录入资料库,正文引用
团队协作编教材「分享」生成可编辑链接,多人协作 + 冲突检测
交付 Word 文档「导出」→ Word(.docx) 一键下载
查看知识结构右栏「知识图谱」可视化知识点关联

📦 安装

需已装 DSH(跨 Windows/macOS/Linux;运行时 Node ≥18)。务必安装最新版(当前 v0.5.0)。

① 一句话让 AI 装(推荐)

把下面这段发给能执行命令的 AI:

帮我安装 DSH 插件「虾说」(xiashuo),只装最新版。步骤:从 https://github.com/bettermen/xiashuo/releases/latest 下载最新的 dsh-external-xiashuo-*.tgz(版本号最大的那个)→ 执行 dsh plugin --profile web add <该 tgz 绝对路径>dsh plugin list 确认在列且已启用 → 提醒我刷新 DSH 页面(Ctrl+Shift+R)后侧边栏出现「虾说」。遇到报错先告诉我再处理。

② 手动下载装

https://github.com/bettermen/xiashuo/releases/latest 下载最新的 dsh-external-xiashuo-*.tgz,然后:

dsh plugin --profile web add <该文件路径>
dsh plugin list        # 看到 xiashuo 即成功

③ 源码构建装(进阶)

需 Node ≥22 与 Git:

git clone https://github.com/bettermen/xiashuo.git && cd xiashuo
npm install && npm run build && npm pack
dsh plugin --profile web add ./dsh-external-xiashuo-0.6.0.tgz

装完:侧边栏出现「虾说」、设置页出现同名卡片即完成;没有就刷新页面/重启 DSH 并在插件列表确认已启用。


🚀 快速开始

  1. 打开侧边栏「虾说」→ 点「+新建」→ 输入课程名 + 选课程类型
  2. 左栏点章节切换,中栏写正文(Markdown),停止输入 2 秒自动保存
  3. 右栏「资料库」录入知识点(含关键词),「知识图谱」查看知识结构
  4. 顶部「导出」→ 选 TXT 或 Word 下载;「分享」→ 生成协作链接

数据目录默认 ~/.dsh/xiashuo/

lorebook/       资料库(entries)
projects/      项目(book.json + chapters/ + audit.jsonl + ...)

📖 功能使用指南

1️⃣ 新建课程

  • 顶部「+新建」→ 弹窗输入课程名 + 下拉选课程类型(23 类分组)→ 创建

2️⃣ 编写章节(CodeMirror 编辑器)

  • 左栏章节列表点击切换章节;中栏为 CodeMirror 6 Markdown 编辑器
  • Markdown 语法高亮(标题、加粗、斜体、删除线、引用、列表、链接、行内代码、代码块)
  • 软换行;列表 / 块引用按回车自动续行;引号与括号自动配对
  • 支持撤销 / 重做、查找替换、行号显示
  • 章节名可自定义(顶部输入框)
  • 保存:手动点「保存」,或停止输入 2 秒自动保存(底部显示「● 未保存 / ✓ 已保存」)
  • 搜索面板来自 CodeMirror 官方组件,面板文案为英文;快捷键 ⌘F 查找、⌘Z 撤销

2.5️⃣ 编辑器工具栏(手动排版)

中栏编辑器顶部有一条 Apple 风格工具栏,不用记 Markdown 语法也能手动排版,16 个按钮分 5 组:

  • 历史:撤销 / 重做(⌘Z / ⇧⌘Z)
  • 段落样式:正文 / 标题 H1–H3 / 引用 / 无序列表 / 有序列表 / 任务列表 / 代码块
  • 行内:加粗 / 斜体 / 删除线 / 行内代码
  • 外观:字体(默认 / 宋体衬线 / 黑体 / 等宽 / 楷体)+ 字体颜色(14 色)+ 文字高亮(8 色,可选"无")
  • 插入:链接 / 图片 / 表格(6×8 网格,悬停预览行列)/ 分割线
  • 视图:查找 / 行号开关

说明:

  • 所有操作走一次撤销步(撤销即整段回退),并保持光标定位
  • 字体颜色 / 高亮在 Markdown 中以内联 <span style="…"> 落地(预览器白名单还原,仅放行安全的 CSS 属性,url() / expression / javascript: 一律拦截,内容可安全分享)
  • 颜色 / 高亮再次点击同色即取消;字体再次选择并入同一 span,不嵌套

2.6️⃣ 删除与拖拽排序

  • 删除:悬停章节行 → 右侧浮现 ✕ 按钮;或在章节上右键 → 删除课时(二次确认后生效)
  • 排序:直接拖动章节行到目标位置,落点显示蓝色插入条,松手即保存
  • 右键菜单另有:预览 / 新建课时 / 复制标题
  • 语义说明:
    • 删除不重编号(保留稀疏编号,如删掉第 2 课后为 1、3),避免外部引用(分享链接、账本、AI 上下文)失效;新建课时取 max(no)+1,不会撞号
    • 拖拽统一重编号为 1..N,并同步修正一致性账本的课时归属、按新顺序重放课程变量
    • 两者都写入审计日志(action: delete / reorder

3️⃣ 资料库(知识点)

  • 右栏「资料库」Tab → 「+ 新建知识点」→ 填名称 / 内容 / 关键词(逗号分隔)
  • 每条知识点支持预览 / 编辑 / 停用启用 / 删除
  • 知识点按课程隔离

4️⃣ 知识图谱

  • 右栏「知识图谱」Tab → 可视化当前课程知识点关联
  • 节点标签防重叠,悬停查看完整名称

5️⃣ 导出

  • 顶部「导出」→ 选 TXTWord(.docx) → 直接下载

6️⃣ 分享协作

  • 顶部「分享」→ 选权限(只读 / 可编辑)→ 生成链接 → 复制发给他人
  • 可编辑协作:保存时带版本号,多人冲突时提示「覆盖 or 加载最新」
  • 可撤销任意分享链接

⚙️ 配置

设置默认说明
enabledtrue插件总开关(关闭即注销工具/技能,数据保留)
dataDir~/.dsh/xiashuo数据根目录
uiHiddenfalse隐藏侧边栏「虾说」入口

🔌 与 DSH 的交互

  • agent 工具course_*(项目/阶段/写教案/校验/导出…)+ lorebook_*(资料库 CRUD)
  • 技能course-writing-workflow(九阶段编写方法指导)
  • GUI 数据面/api/xiashuo/*(项目/章节/导出/分享/资料库,fence 头校验)

❓ 常见问题(FAQ)

Q:为什么保存后没有跳回第 1 课? A:这是刻意设计——保存后停留当前章节,只刷新章节列表,方便连续编写。

Q:编辑后切章节会丢内容吗? A:不会。有未保存改动时切章节/切课程/关闭都会先弹确认,避免误丢。

Q:分享链接安全吗? A:分享走独立 /share/ 公开路径 + token 鉴权,不暴露管理密码;可随时撤销。

Q:Word 导出是标准格式吗? A:是标准 .docx(零依赖生成器),Word / WPS / Google Docs 均可打开,保留标题与章节层级。


🧪 开发

npm run typecheck   # host + client 双段
npm test            # vitest
npm run build       # tsc host + tsdown client
npm pack            # 打包为 tgz

🛡 安全模型

  • 数据仅存本地 ~/.dsh/xiashuo/,不联网上传
  • 所有写操作走审计日志
  • GUI 路由带自定义头校验(防 CSRF/dns-rebinding)
  • 分享接口 token 鉴权 + nginx 独立放行,不暴露管理凭据

📄 许可

MIT