BuiTienDunghe/Low-3DGS/tree/main/.claude/mods/low3dgs-guard
low3dgs-guard
작업 트리가 깨끗하지 않거나 GPU가 사용 중일 때 실험 실행을 막고 프로젝트 상태 줄을 함께 보여 주는 Claude Code 모드입니다.
이 mod 소개
이 Claude Code 모드는 이 프로젝트의 작업 세션에서 실시간으로 실행됩니다.
해결하는 문제
이곳의 실험 묶음 하나에는 GPU 45–100분이 걸립니다. 작업 트리가 깨끗하지 않은 상태에서 실행하면 run_meta.json에 dirty: true가 기록되고, 프로젝트의 규칙(docs/VERSIONING.md)에 따라 결과를 재현할 수 없습니다. 한 시간 반 뒤에 알아차리면 이미 늦습니다. 실제로 한 세션에서 이런 일이 세 번 일어날 뻔했습니다.
하는 일
1. 실행 전에 막습니다. scripts/run_*.sh와 일치하는 모든 명령을 검사합니다.
| 조건 | 동작 |
|---|---|
| 작업 트리가 깨끗하지 않음(experiments/ 제외) | 깨끗하지 않은 항목 수와 이유를 표시하고 차단 |
| GPU에 작업이 있음 | 차단 — 4 GB 카드에서 두 작업이 메모리를 다투어 모든 VRAM 측정값을 망가뜨림 |
| 명령 앞부분에 ALLOW_DIRTY=1이 있음 | 통과 |
스크립트가 이미지를 불러오기 전에 차단하므로 45분이 아니라 0분만 잃습니다.
깨끗하지 않음 검사는 experiments/를 제외합니다. 현재 실행이 결과를 그곳에 기록하므로 포함하면 어떤 실행도 깨끗할 수 없습니다. 확인해야 할 것은 실행 시점의 소스 코드가 commit과 일치하는지입니다.
2. 입력 칸 위에 상태 한 줄을 표시합니다. 현재 tag, 작업 트리의 clean/dirty 상태, VRAM, 실행 중인 작업 수를 보여 줍니다. 20초마다 새로 고치므로 긴 작업이 백그라운드에서 실행되는 동안에도 최신 상태를 볼 수 있습니다. 정상일 때는 어둡게, 문제가 있을 때는 색을 입힙니다.
켜기
claude --plugin-dir .claude/mods
또는 CLAUDE_CODE_PLUGIN_DIRS가 이 폴더를 가리키도록 설정합니다.
개발 중에는 ~/.claude/dev-mods/<session-id>/로 복사하면 파일을 수정할 때마다 자동으로 다시 로드됩니다. 끝나면 여기로 다시 복사해야 합니다. 두 사본은 자동으로 동기화되지 않습니다.
에디터용 타입
.claude-plugin/types/는 빌드 시 생성되는 파일이며 commit하지 않습니다(엔진이 그곳에 .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.
