可组合性课堂

August 17, 2026 · View on GitHub

两门互相衔接的通俗课,外加一份论文中文译文阅读页:

页签路由讲什么
Cordis 演算#/lesson/<id>把论文《A Programming Paradigm for Spatiotemporal Composability》的演算讲成八课,最后一课对回 Cordis 4.0 源码
DeepSeek Harness#/dsh/lesson/<id>同一套演算落在真实产品上:dsh 的三层组合、一次对话的流水线、官方 78 行基础插件全景
论文译文#/paper中文译本,公式用 KaTeX 渲染,带目录与滚动高亮

每节课都配可以动手点的演示和一道随堂题,两门课的术语一一对应、双向链接。

Cordis 演算(8 课 + 附录)

#主题讲什么
1世界状态 Γ把副作用写进函数签名
2可撤销 effect一个动作配一把撤销钥匙
3撤销顺序为什么要倒着撤,什么时候可以乱撤
4coeffect「我需要什么」以及变化的三种分类
5生命周期fiber 的四个状态和七条规则
6卸载定序卸载为什么要分两步
7合流性为什么可以放心乱序热插拔
8落到代码对照 packages/core/src/{fiber,reflect,context,utils}.ts

DeepSeek Harness(导览 + 3 课)

#主题讲什么
00为什么是它与 Claude Code / Codex / Pi Agent 逐维度对比;与演算课的概念对照表
01组合出一棵树profile → bundle → patch 三层叠加;换两行 provider 搬走整个执行世界
02一次对话turn / step 流水线单步走,六个瀑布事件,「模型能看到的必须是记录过的」
03官方全景78 行基础组合按能力域可搜可筛、18 类面向模型的工具、「我要加 X 该动哪里」查表

课程里的每个数字都能在 deepseek-harness 仓库里核对:78 行来自 packages/bundle/base/cordis.patch.yml,工具名来自各 tool-* 包的注册点,流水线与扩展点来自 docs/architecture.mdnpm run smoke 里有一条断言专门盯着这个 78,行数一变测试就红。

本地开发

npm install
npm run dev      # http://localhost:5173
npm run build    # 类型检查 + 产物打包到 dist/
npm run preview  # 预览 dist/
npm run smoke    # 在 Node 里把两门课的每一课和译文页各渲染一遍

npm run smoke 用 SSR 把整棵组件树真正执行一次,能抓到只在运行时才暴露的错误(比如公式渲染失败、组件取值为空)。它同时校验译文页的公式块数量与目录锚点数量,CI 里跑在 build 之前。

部署

推到 main 后由 .github/workflows/deploy.yml 自动构建并发布到 GitHub Pages。仓库需要先在 Settings → Pages → Source 选择 GitHub Actions

Vite 的 base 设为 ./,所以站点放在 <user>.github.io 根目录或 <user>.github.io/<repo>/ 子路径都能正常加载;路由用 hash,不需要额外的 404 回退配置。

代码结构

文件作用
src/ui.tsx把 Canvas SDK 用到的组件(Stack / Row / Grid / Card / Table / Callout / Pill / Toggle …)按同样 API 实现一遍,附带明暗两套配色
src/Course.tsxCordis 演算课正文,是 Cursor Canvas 版的直接拷贝
src/DshCourse.tsxDeepSeek Harness 课正文,只有网页版
src/lesson-kit.tsx两门课共用的教学组件与课程外壳(Course.tsx 为便于与 Canvas 版整份同步,保留自己的一份拷贝)
src/route.ts把「当前第几课」提升为 URL,两门课各用一个前缀,链接可分享、前进后退可用
src/PaperPage.tsx译文渲染:markdown-it + KaTeX,自建目录与滚动高亮

useCanvasState 在网页版改为 localStorage 持久化,演示里点出来的状态刷新后仍在。Canvas 版更新时 Course.tsx 仍可整份覆盖,只需保留顶部两行 import 和 useLessonState 一处调用。

许可与版权

站点代码按 MIT 授权。

例外src/content/cordis-paper.zh.mdpublic/cordis-paper.zh.pdfcordiverse/paper 的非官方中文译本,著作权归原论文作者(Yifan Shi、Wei Zhang、Tianyi Cui)所有,不在 MIT 授权范围内。原仓库未附授权声明,译文由 LLM 翻译整理、仅供学习参考,引用请以英文原文为准;若作者不希望它被转载,请提 issue,会立即撤下。

课程内容是对该论文与 deepseek-harness 的非官方通俗讲解,代码引用自 cordis 4.0.0-rc.8 与 deepseek-harness master(2026-08)。