为 Claude Code 提供制作自学教材的知识技能集合。
自用项目。把课程大纲、培养方案和教案转化为可独立自学的中文 Markdown 教材、Jupyter 实验与必要项目源码,供 Claude Code 使用。
支持课程规划、指定单元生成、质量验证、反馈修订和断点续作。按基础知识、项目实践、工业与求职选择教学方式;主线教材自足,练习与答案分开,原教案保持只读。有实验的资料同时交付自动初始化环境、依赖锁文件、自检与统一启动入口,同一兼容项目跨 session 复用环境。
下载并解压本仓库,进入仓库目录后执行:
bash install.sh --dry-run
bash install.sh默认复制到 ~/.claude/skills/sani/。也可以只安装到一个已有项目,或指定 Skills 目录:
bash install.sh --project /path/to/project
bash install.sh --target /path/to/skills请替换示例路径。安装器不下载文件、不安装 Python 依赖;已有相同文件时跳过,已有不同内容或符号链接时保留并停止。更新前自行备份和处理旧版本。
sani/ 就是完整的分发单元,也可以将整个目录手动复制到个人或项目的 .claude/skills/ 下,无需仓库中的其他文件。安装后启动新的 Claude Code 会话,使用 /sani。
将实际资料目录、课程标识和输出目录写入请求:
/sani 规划:读取指定课程教案,设计先修、单元和目标覆盖表,先交我确认。
/sani 生成:按已批准计划完成 U01,正文、实验与参考答案分开,保留原教案。
/sani 验证:检查 U01,并执行 CPU 基础实验,报告未验证的部分。
/sani 修订:根据我的批注调整 U01,保留手改内容并说明变化。
/sani 续作:读取现有清单,继续已批准范围的下一个单元。
新课程先确认计划;已有批准且输入未实质变化的计划可以直接继续。没有合理计算实验的主题不强行创建 Notebook。工具检查不替代数学、工程和教学内容审查。
新资料使用默认 uv 骨架时,生成者补齐课程依赖、固定实际 Python 版本、生成 uv.lock,并在干净目录验证。学习者安装过一次 uv 后,在资料项目目录使用:
./lab doctor
./lab
./lab verify --unit U01首次自动创建项目 .venv 和安装锁定依赖,后续复用;不需要每个 session 手动重建。JupyterLab 默认只提供项目私有内核。额外的编译器、GPU 或系统服务按实际课程检测和说明。首次下载仍需网络或预备缓存;编辑器已选择过其他环境时还需正确分配项目解释器。
生成者可使用 sani/scripts/prepare_environment.py PROJECT 准备运行骨架,再按 实验规范 填充、锁定和验证。此脚本不会覆盖已有配置。现有学习资料须在检查手改内容后逐项目接入;更新 Skill 不会自动改写它们。
规划与教材写作无需预装工具依赖。只读盘点需要 Python 3.8+;验证与执行需要 Python 3.10+。需要这些工具时,先在独立环境中安装依赖,例如在仓库根目录执行:
python3.11 -m venv .venv
.venv/bin/python -m pip install -r sani/scripts/requirements.txt
mkdir -p .vscode
cp -n sani/assets/course-runtime/vscode-settings.json .vscode/settings.json
cp -n pyrightconfig.example.json pyrightconfig.json
.venv/bin/python sani/scripts/inspect_materials.py --help
.venv/bin/python sani/scripts/validate_materials.py --helpVS Code/Pylance 默认使用仓库内的 .venv,Pyright 也使用同一环境。已经打开过的工作区如果选过其他解释器,应在 Python Environments 中将本项目分配到 .venv;仅修改默认路径不会替换既有选择。
也可复用已有课程环境,并按课程补充 NumPy、编译器等实际依赖。安装到其他位置后,使用实际的 Skill 路径。
生成的课程遵守 清单协议。默认静态检查;运行实验必须显式指定执行与单元范围:
.venv/bin/python sani/scripts/validate_materials.py /path/to/course --unit U01
.venv/bin/python sani/scripts/validate_materials.py /path/to/course --unit U01 --execute --resources cpu执行使用课程副本和新内核,保存实际结果,不回写源 Notebook。验证器不是安全沙箱,执行前应读过代码并确认运行范围。
- sani/SKILL.md:入口、适用场景和核心流程。
sani/references/:课程设计、教材、实验、验收与清单规范,按需读取。sani/assets/:课程计划、教材单元和 Notebook 模板。sani/scripts/:只读盘点、验证器、共享函数与固定版本依赖。install.sh:本地复制安装器;LICENSE:MIT 许可证。
发布包仅含通用 Skill 与安装文件,不包含个人课程、开发记录、虚拟环境或课程运行产物。目录组织参考 wp-skills。
在独立环境中安装 ruff==0.17.2、pyright==1.1.414,并安装上述工具依赖后,从仓库根执行:
python -m ruff check .
python -m ruff format --check .
pyrightpyrightconfig.example.json 提供可复制的 basic 类型检查配置(验证器使用 Python 3.10 API 基线,运行骨架使用 Python 3.11)。pyrightconfig.json 与仓库 .vscode/ 保持本地配置,已有内容应先阅读并合并;VS Code 中的 Pylance 也读取此配置,需要选择已安装依赖的解释器。ruff.toml 为盘点工具与共享函数保留 Python 3.8 兼容性,为验证器和实验模板设置 Python 3.10 基线。运行上述命令时请激活相应环境或使用该环境中的工具完整路径。
MIT。随 Skill 单独分发的许可证位于 sani/LICENSE。本仓库许可证不替代输入课程、外部数据或第三方库各自的许可。