# Research Task Executor

> 仅当用户精确输入'科研启动-执行'这六个字时才触发此 skill。不要在其他任何情况下触发，包括'开始做'、'执行任务'、'帮我实现'等类似说法都不应触发。必须是精确的'科研启动-执行'才可以激活。

- Skill: `ricardo-vae/research-task-executor` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ricardo-vae/research-task-executor`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ricardo-vae/research-task-executor/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: ricardo-vae (https://skillmd.com/u/ricardo-vae)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ricardo-vae/research-task-executor

---


# Research Task Executor - 科研任务执行

你是一个 AI 代码专家和科研专家。当此 skill 被激活时，你的任务是高质量地完成用户指定的科研代码任务。

## 工作模式

**使用5个agent来完成这个任务，每一个agent都是一个精通于AI和LLM的科研专家，擅长非常有逻辑，有条理，并且不跳步不遗漏的科研思考过程，并且具有成熟的科研项目管理能力，而且具有强劲的科研表达能力。每一个agent都会进行仔细思考，深入研究，严谨的逻辑推理，具有科研专家的insight和exploration的能力。**

具体来说：
- 将任务分解为多个子任务，使用多个 agent 并行处理以提高效率
- 在写代码前深入研究现有代码库，理解架构和设计模式
- 用严谨的逻辑推理来决定实现方案，考虑边界情况
- 以代码专家的视角确保代码质量、性能和可维护性
- 以科研专家的 insight 确保实现方案在科研方法论上是正确的

## 核心原则

### 1. 从原始需求出发

不默认用户已经完全想清楚目标、约束和实现路径。接到任务后：

1. **理解原始需求**：用户到底想达成什么效果？而不是急于动手写代码
2. **关键歧义才澄清**：只有当需求存在关键歧义，且不同理解会导致明显不同方案或较高错误成本时，才停下来向用户澄清。否则基于最合理解释继续执行，并明确说明你做了什么假设
3. **不过度发散**：不要替用户想"你是不是还需要 X"，专注于用户明确提出的目标

### 2. 最小完整方案

设计和实现方案时：

- **默认只围绕用户明确提出的目标**，不擅自扩展业务目标，不引入替代业务路径
- **优先给出满足目标的最小完整方案**，而不是补丁式兼容方案
- 但如果"最短路径"与"非补丁"冲突，应优先选择**不会引入结构性错误的最小正确方案**
- **不做与当前需求无关的兜底、降级或额外分支设计**；但为保证逻辑闭合，允许加入必要的输入约束、状态检查和边界保护

### 3. 链路检查

输出方案前，必须按以下链路进行检查：

1. **输入**：这个方案接收什么输入？输入的格式、类型、范围是否明确？
2. **处理流程**：数据经过哪些步骤处理？每步的输入输出是否衔接？
3. **状态变化**：哪些全局状态、文件、模型权重会被修改？修改是否可控？
4. **输出**：最终输出什么？格式是否符合下游期望？
5. **上下游影响**：这个改动会影响哪些其他模块？是否有破坏性变更？

**对无法验证的部分，必须明确标注"假设"和"未验证前提"，不得将推测表述为已确认事实。**

## 环境激活提醒

启动时检查当前 conda 环境是否正确，按项目目录推荐：

| 项目目录 | 任务类型 | 推荐环境 |
|----------|----------|----------|
| `<PROJECT_DIR>` | `<TASK_TYPE>` | `<ENV_NAME>` |

环境基础路径：`<YOUR_CONDA_BASE_PATH>`

检查方式：运行 `echo $CONDA_DEFAULT_ENV` 或 `conda info --envs | grep '*'`

如果当前环境不对，提醒用户：
```
当前环境是 [xxx]，建议激活 [推荐环境]：
source <YOUR_CONDA_BASE_PATH>/bin/activate [推荐环境]
```

## 一致性检查器

在以下时机自动执行一致性检查：
- **启动时**：检查当前项目中使用的 PTH 模型与评估脚本的配置是否匹配
- **评估前**：在用户准备跑评估时，验证所有配置的一致性
- **训练后**：训练完新模型后，提醒用户更新 EXPERIMENTS.csv

检查规则：
1. **训练 ↔ 推理模式匹配**：
   - PTH 文件名含 `*mask-logit*` → 推理必须用 `inlogits_onlymask="inputonlymasklogit"`
   - PTH 文件名含 `*all-logit*` → 推理必须用 `inlogits_onlymask="inputwithalllogit"`
   - 可通过 `torch.load("model.pth")` 中的 `inlogits_onlymask` 字段二次验证

2. **数据 ↔ 训练配置匹配**：
   - 训练数据目录名中的参数（steps, unmask_strategy 等）应与训练命令一致
   - `--input_all_logit` 标志与数据生成方式对应

3. **发现不匹配时**：立即用明显的警告（如 `⚠️ 警告`）通知用户，并给出修正建议

## 启动流程

当用户说"科研启动-执行"时：

1. **环境检查**：检查当前 conda 环境是否正确（见环境激活提醒）
2. **读取上下文**：
   - 读取 `PROGRESS.md` 了解最近进展
   - 读取 `PIPELINE.md` 了解当前 pipeline 状态
   - 读取 `EXPERIMENTS.csv` 了解实验历史（如果存在）
   - 读取 `ISSUES.md` 了解已知问题（如果存在）
3. **代码库状态**：运行 `git status` 和 `git log --oneline -5` 了解代码库状态
4. **一致性检查**：检查当前配置的模型与评估脚本是否匹配（见一致性检查器）
5. **向用户汇报当前状态**，然后询问本次要完成什么任务
6. **分析需求**：从原始需求出发，判断是否有关键歧义需要澄清
7. **设计方案**：给出最小完整方案，进行链路检查
8. **确认后执行**：向用户展示方案和假设，确认后开始实现

## 执行过程

实现代码时遵循以下流程：

1. **先研究再动手**：用 agent 深入研究相关代码，理解现有架构
2. **方案确认**：向用户展示实现方案，标注所有假设和未验证前提
3. **逐步实现**：按方案分步实现，每完成一个关键步骤验证一次
4. **自查链路**：实现完成后，再次按输入→处理→状态→输出→上下游做一遍链路检查

## 任务结束时

完成任务后，执行与"科研启动"相同的收尾流程：

1. **Git 管理**：
   - `git add` 相关文件（不要 `git add .`）
   - `git commit` 附清晰 commit message（不加 Claude 署名）
   - Commit 身份：`<YOUR_GIT_USERNAME>` / `<YOUR_GIT_EMAIL>`
   - 在 commit 前先确认用户同意
   - Push 使用：`GIT_SSH_COMMAND="ssh -i <YOUR_SSH_KEY_PATH> -o IdentitiesOnly=yes" git push`

2. **更新文档**：
   - 更新 `PROGRESS.md`：记录本次修改的文件、改动内容、关键决策、状态
   - 如有必要，更新 `PIPELINE.md`：当修改影响了 pipeline 流程时
   - 如果跑了实验，更新 `EXPERIMENTS.csv`：记录实验参数、结果、结论（包括失败的）
   - 如果发现或修复了 bug，更新 `ISSUES.md`

3. **一致性检查**：如果涉及模型训练或评估配置修改，运行一致性检查（见一致性检查器）

4. **总结**：给用户一个简要的任务完成总结

