BuiTienDunghe/Low-3DGS/tree/main/.claude/mods/low3dgs-guard
关于这个 mod
这是一个 Claude Code 插件,在该项目的工作会话中实时运行。
它解决什么问题
这里的一批实验会消耗 45–100 分钟的 GPU 时间。如果在工作树不干净时运行,run_meta.json 会写入 dirty: true,而根据项目自己的约定(docs/VERSIONING.md),结果就无法复现——等一个半小时后才发现已经太晚了。在一次工作会话中,这种情况险些发生了三次。
它做什么
1. 在运行前阻止。 所有匹配 scripts/run_*.sh 的命令都会接受检查:
| 条件 | 操作 |
|---|---|
| 工作树不干净(experiments/ 除外) | 阻止,并附上脏项目数量和原因 |
| GPU 上已有任务 | 阻止——4 GB 显卡上的两个任务会争抢内存,破坏所有 VRAM 测量结果 |
| 命令开头有 ALLOW_DIRTY=1 | 放行 |
阻止发生在脚本加载图像之前,因此耗时是 0 分钟,而不是 45 分钟。
脏状态检查排除 experiments/:当前运行本身会把结果写在那里,算进去的话就不可能有任何一次运行是干净的。真正需要确认的是运行时的源代码是否与 commit 一致。
**2. 在输入框上方显示一行状态:**当前 tag、工作树干净/不干净、VRAM、正在运行的任务数。每 20 秒刷新一次,所以长时间后台运行时也能保持实时。状态正常时变暗,不正常时会亮起颜色。
启用
claude --plugin-dir .claude/mods
或者让 CLAUDE_CODE_PLUGIN_DIRS 指向该文件夹。
开发期间,可以复制到 ~/.claude/dev-mods/<session-id>/,这样每次修改文件时都会自动重新加载;完成后记得复制回这里,因为两个版本不会自动同步。
编辑器类型
.claude-plugin/types/ 是构建时生成的文件,不要提交(引擎会在那里自动写入 .gitignore)。使用 Claude Code 中的 /plugin-types 命令重新生成。
已验证
本次工作会话实际测试了三条路径:工作树干净 → 放行 · 1 个项目不干净 → 按正确消息阻止 · 工作树不干净 + ALLOW_DIRTY=1 → 放行。
安装
请先查看作者 README 确认 marketplace 和插件名称;命令可能随仓库结构改变。
claude plugin marketplace add BuiTienDunghe/Low-3DGS claude plugin install low3dgs-guard
原文 / README
low3dgs-guard
Mod cho Claude Code, chạy sống trong phiên làm việc của dự án này.
Nó giải quyết gì
Một loạt thí nghiệm ở đây tốn 45–100 phút GPU. Nếu nó chạy khi cây làm việc đang bẩn,
run_meta.json ghi dirty: true, và theo đúng quy ước của chính dự án
(docs/VERSIONING.md) kết quả đó không tái lập được —
phát hiện ra sau một tiếng rưỡi thì đã muộn. Trong một phiên làm việc, chuyện này suýt xảy ra ba lần.
Nó làm gì
1. Chặn trước khi chạy. Mọi lệnh khớp scripts/run_*.sh đều bị kiểm:
| Điều kiện | Hành động |
|---|---|
| Cây bẩn (ngoài experiments/) | chặn, kèm số mục bẩn và lý do |
| GPU đang có job | chặn — hai job trên card 4 GB tranh bộ nhớ, làm hỏng mọi số đo VRAM |
| Có ALLOW_DIRTY=1 ở đầu lệnh | cho qua |
Chặn xảy ra trước khi script nạp ảnh, tức mất 0 phút chứ không phải 45.
Phép kiểm bẩn loại trừ experiments/: chính lần chạy ghi kết quả vào đó, nên nếu tính cả thì
không lần chạy nào sạch được. Thứ cần biết là mã nguồn lúc chạy có khớp commit không.
2. Một dòng trạng thái trên ô nhập: tag hiện tại, cây sạch/bẩn, VRAM, số job đang chạy. Làm tươi mỗi 20 giây nên vẫn sống trong lúc loạt dài chạy nền. Dim khi ổn, lên màu khi không.
Bật
claude --plugin-dir .claude/mods
Hoặc đặt CLAUDE_CODE_PLUGIN_DIRS trỏ vào thư mục đó.
Đang phát triển thì chép sang ~/.claude/dev-mods/<session-id>/ để nó tự nạp lại mỗi khi sửa file;
nhớ chép ngược lại đây khi xong, vì hai bản không tự đồng bộ.
Type cho editor
.claude-plugin/types/ là file sinh theo build, không commit (engine tự đặt .gitignore ở đó).
Tạo lại bằng lệnh /plugin-types trong Claude Code.
Đã kiểm
Cả ba đường đã thử thật trong phiên: cây sạch → cho qua · cây bẩn 1 mục → chặn đúng thông điệp ·
cây bẩn + ALLOW_DIRTY=1 → cho qua.
