Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 19 additions & 11 deletions .agents/skills/tilelang-pass-agents-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Pass 在仓库中的实现通常分为两层:
| `tilelang-pass-analyzer` | 分析单个 Pass 的功能、原理、差异、分类 | 用户询问某个 Pass 是做什么的,或要对比/分类查询时 |
| `tilelang-pass-workflow-analyzer` | 分析 Pass 工作流、顺序、依赖关系、定位新 Pass | 用户询问 Pass pipeline、依赖、顺序、插入位置时 |
| `tilelang-pass-design` | 生成 Pass 设计文档 | 用户要设计 Pass、写 pass-design.md、明确方案时 |
| `tilelang-pass-generate` | Pass 实现相关 | 用户要根据设计文档开始实现、修改、补测试时 |
| `tilelang-pass-generate` | 根据设计文档生成 Pass **实现侧**最终代码(先输出 `pass-impl-skeleton.md` 框架文档,再落 C++/Python wrapper/pass_config/phase.py,最后做最小冒烟验证)。**不生成 UT/ST**,UT/ST 由独立的 Pass 测试生成 skill 处理 | 用户要根据设计文档开始实现 Pass、修改 Pass、重构 Pass 时 |

---

Expand Down Expand Up @@ -142,6 +142,8 @@ Pass 开发常常不止修改一个 `.cc` 文件,还可能需要同步修改
- 对局部改动,先跑最小范围验证;对影响面较大的改动,再补更广的算子或集成验证
- 若变更影响多个算子或通用 pipeline,可进一步运行更广范围的验证,例如相关测试集或 `examples/bench_test.sh`

> 测试**编写**由独立的 Pass 测试生成 skill(待创建)负责。`tilelang-pass-generate` 只做实现侧代码 + 冒烟验证,并在收尾报告里把上述测试需求列为「测试待补清单」,作为给测试 skill 的输入。

---

## 总体执行流程
Expand Down Expand Up @@ -173,7 +175,8 @@ Pass 开发常常不止修改一个 `.cc` 文件,还可能需要同步修改
| Pass 功能分析 | `tilelang-pass-analyzer` | 功能分析报告 |
| Pass 工作流分析 | `tilelang-pass-workflow-analyzer` | 工作流/依赖分析报告 |
| Pass 方案设计 | `tilelang-pass-design` | `pass-design.md` |
| Pass 代码执行 | `tilelang-pass-generate` | 代码实现、修改、重构与验证 |
| Pass 代码执行 | `tilelang-pass-generate` | `pass-impl-skeleton.md`(框架)+ 实现侧代码(C++/Python wrapper/pass_config/phase.py)+ 最小冒烟验证;**不含 UT/ST** |
| Pass 测试生成 | Pass 测试生成 skill(**待创建**) | UT / ST 测试代码(接续 `tilelang-pass-generate` 与设计文档 §5)|

若用户目标是“最终把 Pass 改好”,则整体流程通常为:

Expand Down Expand Up @@ -239,23 +242,23 @@ Pass 开发常常不止修改一个 `.cc` 文件,还可能需要同步修改

执行阶段由 `tilelang-pass-generate` 为主,必须覆盖以下检查项。

#### 新增 Pass 检查项
#### 新增 Pass 检查项(实现侧由 `tilelang-pass-generate` 完成)

1. 新建或补充 `src/transform/<pass_name>.cc`
2. 确认 `TVM_REGISTER_GLOBAL("tl.transform.<PassName>")`
3. 增加 `tilelang/transform/__init__.py` Python 封装
4. 必要时增加 `pass_config.py` 配置键
5. 将 Pass 接入 `tilelang/engine/phase.py`
6. 增加或更新测试
7. 补充相关设计文档或参考资料
6. 补充相关设计文档或参考资料
7. **测试由独立的 Pass 测试生成 skill(待创建)补充**,本步骤只在收尾报告里列出测试待补清单,不在 `tilelang-pass-generate` 内写测试

#### 修改已有 Pass 检查项

1. 先定位真正控制当前行为的方法或关键数据结构
2. 做最小行为修改
3. 检查是否影响中间属性、注解、循环结构或 buffer 访问
4. 检查 phase 中上下游 Pass 是否仍然兼容
5. 更新测试预期或补充回归测试
5. **回归测试由 Pass 测试生成 skill 补充**,本阶段在报告里写明需要覆盖的目标行为差异

#### 重构已有 Pass 检查项

Expand All @@ -267,12 +270,14 @@ Pass 开发常常不止修改一个 `.cc` 文件,还可能需要同步修改

### 阶段六:验证与收尾

按如下优先级验证:
`tilelang-pass-generate` 阶段只做不依赖 UT/ST 的冒烟验证:

1. 导入冒烟(Python 封装 ↔ C++ 注册一致)
2. 跨文件命名 grep 一致(`PassName` 三处一致、配置键两处一致)
3. 已有最小 example 跑通,确认 pipeline 没有因为新 Pass 接入而崩
4. (可选)本机能跑则做最小构建冒烟

1. 最小范围的行为验证
2. 受影响测试
3. 最小构建或编译检查
4. 路径、引用、配置项校验
UT/ST 测试相关验证由后续独立的 Pass 测试生成 skill 处理。

收尾输出必须至少包含:

Expand Down Expand Up @@ -362,6 +367,9 @@ Pass 开发常常不止修改一个 `.cc` 文件,还可能需要同步修改
- `.agents/skills/tilelang-pass-workflow-analyzer/references/`
- `.agents/skills/tilelang-pass-design/`
- `.agents/skills/tilelang-pass-generate/`
- `.agents/skills/tilelang-pass-generate/templates/pass-impl-skeleton-template.md`
- `.agents/skills/tilelang-pass-generate/references/code-generation-checklist.md`
- `.agents/skills/tilelang-pass-generate/references/integration-points.md`

---

Expand Down
4 changes: 2 additions & 2 deletions .agents/skills/tilelang-pass-design/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ description: "根据 Pass 需求生成 TileLang-Ascend Pass 设计文档(pass-
### 后续步骤建议
1. 查看详细 Pass 工作流:使用 **tilelang-pass-workflow-analyzer** skill
2. 查看类似 Pass 实现:使用 **tilelang-pass-analyzer** skill
3. 开始实现 Pass:使用 **tilelang-pass-generate** skill(待创建)
3. 开始实现 Pass:使用 **tilelang-pass-generate** skill
```

---
Expand All @@ -258,4 +258,4 @@ description: "根据 Pass 需求生成 TileLang-Ascend Pass 设计文档(pass-
|------|------|----------|
| `tilelang-pass-workflow-analyzer` | 依赖 | 查阅 Pipeline 架构、Pass 定位、依赖关系 |
| `tilelang-pass-analyzer` | 依赖 | 查阅现有 Pass 实现细节、IR 变换示例 |
| `tilelang-pass-generate`(待创建) | 后续 | 根据设计文档生成 Pass 代码 |
| `tilelang-pass-generate` | 后续 | 根据设计文档生成 Pass 代码(先输出 `pass-impl-skeleton.md` 框架,再落 C++/Python/Pipeline/测试) |
Loading
Loading