From 47d237bb7e055b8b975273252e99e274e6a89271 Mon Sep 17 00:00:00 2001 From: Zijie Tian Date: Thu, 22 Jan 2026 02:23:12 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20exec-plan=20command?= =?UTF-8?q?=20for=20automated=20task=20plan=20execution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a new Claude command that executes task_plan.md refactoring with: - GPU isolation via --gpu parameter (required) - Optional --no-interrupt mode for autonomous execution - Progress tracking via progress.md and findings.md - Strict CUDA_VISIBLE_DEVICES enforcement Co-Authored-By: Claude Opus 4.5 --- .claude/commands/exec-plan.md | 158 ++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 .claude/commands/exec-plan.md diff --git a/.claude/commands/exec-plan.md b/.claude/commands/exec-plan.md new file mode 100644 index 0000000..9e83d30 --- /dev/null +++ b/.claude/commands/exec-plan.md @@ -0,0 +1,158 @@ +--- +allowed-tools: Bash(CUDA_VISIBLE_DEVICES=*), Bash(PYTHONPATH=*), Bash(python*), Bash(git*), Bash(rm*), Bash(ls*), Bash(cat*), Bash(nvidia-smi*), Read, Edit, Write, Glob, Grep, TodoWrite, Task +argument-hint: --gpu [--no-interrupt] +description: Execute task_plan.md refactoring with specified GPU, optionally without user interruption +--- + +# Execute Task Plan (exec-plan) + +按照 `task_plan.md` 的要求执行代码重构,确保计划中的最终目标圆满实现。 + +## 参数说明 + +命令格式: `/exec-plan --gpu [--no-interrupt]` + +| 参数 | 说明 | 示例 | +|------|------|------| +| `--gpu ` | **必需**。指定可用的 GPU ID,只能使用此 GPU 进行调试 | `--gpu 0`, `--gpu 2` | +| `--no-interrupt` | 可选。禁止中断执行,遇到问题不与用户交互,自动解决或跳过 | `--no-interrupt` | + +## 当前参数 + +``` +$ARGUMENTS +``` + +## 执行前准备 + +### 1. 解析参数 + +从 `$ARGUMENTS` 中解析: +- `GPU_ID`: 从 `--gpu ` 或 `-g ` 提取 +- `NO_INTERRUPT`: 是否存在 `--no-interrupt` 或 `-n` 标志 + +### 2. 参数验证 + +**必须验证**: +- GPU_ID 必须是有效的数字 +- 运行 `nvidia-smi -i ` 验证 GPU 存在 + +### 3. 读取 task_plan.md + +读取项目根目录下的 `task_plan.md` 文件,理解: +- 总体目标 +- 分阶段计划 (Phase 1, 2, 3...) +- 文件修改清单 +- 风险和注意事项 +- 测试计划 + +## 执行流程 + +### Step 1: 创建执行计划 + +使用 TodoWrite 工具创建详细的执行计划,包括: +- 从 task_plan.md 提取的所有 Phase +- 每个 Phase 的子任务 +- 测试验证步骤 + +### Step 2: 按 Phase 执行重构 + +对于 task_plan.md 中的每个 Phase: + +1. **读取当前代码**: 使用 Read/Grep 理解现有实现 +2. **实施修改**: 使用 Edit/Write 进行代码修改 +3. **验证修改**: 运行相关测试 + +### Step 3: 运行测试验证 + +执行 task_plan.md 中定义的测试计划,验证重构成功。 + +## GPU 限制规则 + +**严格限制**: 只能使用指定的 GPU,所有涉及 GPU 的命令必须加 `CUDA_VISIBLE_DEVICES` 前缀: + +```bash +# 正确 +CUDA_VISIBLE_DEVICES=$GPU_ID PYTHONPATH=/home/zijie/Code/nano-vllm:$PYTHONPATH python test.py + +# 错误 - 禁止使用其他 GPU +python test.py # 可能使用默认 GPU 0 +CUDA_VISIBLE_DEVICES=0,1 python test.py # 使用多个 GPU +``` + +## 中断模式规则 + +### 当 `--no-interrupt` 生效时 + +遇到以下情况**不停下来询问用户**,而是: + +| 情况 | 处理方式 | +|------|----------| +| 测试失败 | 记录失败原因,尝试自动修复,继续下一步 | +| 代码冲突 | 尝试合理解决,记录解决方案 | +| 不确定的实现细节 | 选择最合理的方案继续 | +| 执行错误 | 分析错误,尝试修复,记录问题 | + +**自动决策原则**: +1. 优先保证功能正确性 +2. 遵循现有代码风格 +3. 选择简单直接的实现 +4. 记录所有自动决策到 `progress.md` + +### 当未指定 `--no-interrupt` 时 + +遇到以下情况**可以询问用户**: +- 多个实现方案需要选择 +- 测试持续失败无法自动修复 +- 发现 task_plan.md 中的问题或矛盾 + +## 执行记录 + +### 进度文件: progress.md + +实时更新 `progress.md` 记录: + +```markdown +## 执行进度 + +### Phase X: [名称] +- 状态: [进行中/完成/失败] +- 开始时间: [时间] +- 完成时间: [时间] +- 修改文件: [文件列表] +- 自动决策: [如果有] +- 问题记录: [如果有] +``` + +### 发现记录: findings.md + +记录执行过程中的重要发现到 `findings.md`。 + +## 示例用法 + +```bash +# 使用 GPU 2,允许中断 +/exec-plan --gpu 2 + +# 使用 GPU 0,不中断执行 +/exec-plan --gpu 0 --no-interrupt + +# 简短形式 +/exec-plan -g 1 -n +``` + +## 完成标准 + +执行完成后,确保: + +1. **所有 Phase 完成**: task_plan.md 中的所有 Phase 都已实施 +2. **测试通过**: task_plan.md 中的测试计划全部通过 +3. **代码质量**: 修改符合项目代码规范 +4. **文档更新**: progress.md 包含完整执行记录 + +## 重要约束 + +1. **GPU 隔离**: 绝对不能使用指定 GPU 以外的设备 +2. **遵循计划**: 严格按照 task_plan.md 执行,不做计划外的修改 +3. **渐进式修改**: 每个 Phase 完成后验证,而不是最后一起验证 +4. **回滚准备**: 重大修改前考虑是否需要 git commit 保存点