CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【collaborative-agent-kernel-evolution】新增 CAKE2 进化式 AscendC 算子生成 Team(仅 Vector 算子) Co-authored-by: Junyifannnn<fan.junyi@huawei.com> # message auto-generated for no-merge-commit merge: !313 merge feat/add-cake-plugin into master 【collaborative-agent-kernel-evolution】新增 CAKE2 进化式 AscendC 算子生成 Team(仅 Vector 算子) Created-by: gcw_P2Mh5H1S Commit-by: Junyifannnn Merged-by: cann-robot Description: ## 描述 **新特性**: 【collaborative-agent-kernel-evolution】新增 plugins-community/collaborative-agent-kernel-evolution —— 进化式 AscendC 算子生成 Team(仅 Vector 算子)。 含 3 个 Agent 与 19 个内置 Skill,覆盖「算子描述生成 → PyTorch 参考 → functional 转换 → AscendDSL baseline → DSL lowering 到 AscendC → 编译评估 →(可选)进化式多变体性能优化」全流程: - cake(primary):标准单算子生成主流程 - cake-evo(primary):并行多变体进化优化 - cake-partial(subagent):被 cake-evo 调度的半程生成子任务 自包含单插件(目录 plugins-community/collaborative-agent-kernel-evolution/,对齐 ops-easyasc-dsl 自包含形态) ## 关联的Issue 关联 Issue [#230](https://gitcode.com/cann/cannbot-skills/issues/230) ## 测试 - **L1 结构门禁 skill_validator.py**:19 skills + 3 agents **0 error**(warn-only:6× S-CON-05、2× S-CON-06「缺错误处理章节」,不阻断) - **tests/run-tests.sh --fast**:10 项全过(初次 test-line-endings 报 6 个 CRLF 文件,均为插件内 vendored 外部文档,已全部转 LF,复跑 PASS) ## 文档更新 - 新增 plugins-community/collaborative-agent-kernel-evolution/(含 README / docs / tests) - 根 .claude-plugin/marketplace.json 注册 cake(source ./plugins-community/collaborative-agent-kernel-evolution,category development) - 更新根 CHANGELOG.md(2026-06-02 条目) ## 类型标签 - [x] 🌟 新特性 ## AscendC 算子评测结果 | Operator | Job ID | Cases | Score | Avg speedup | Rel path | |---|---|---:|---:|---:|---|---| | apply_rotary_pos_emb | job_940a45830a2f | 20/20 | 63.339075 | 0.355671 | level2/apply_rotary_pos_emb | | softmax | job_5ec935012955 | 20/20 | 68.015671 | 0.661441 | level2/softmax | | topk | job_bc7b660e83a6 | 20/20 | 54.233631 | 0.119558 | level3/top_k | ## apply_rotary_pos_emb - Job: job_940a45830a2f; operator: ApplyRotaryPosEmb; cases: 20/20; score: 63.339075; avg_speedup: 0.355671. | # | Case ID | Elapsed us | Baseline us | HW limit us | Speedup | Speedup vs HW | Perf score | |---:|---|---:|---:|---:|---:|---:|---:| | 1 | level2/apply_rotary_pos_emb_1 | 182.06 | 89.56 | 35.02 | 0.491926 | 0.192354 | 0.270563 | | 2 | level2/apply_rotary_pos_emb_2 | 779.98 | 113.24 | 59.22 | 0.145183 | 0.075925 | 0.069723 | | 3 | level2/apply_rotary_pos_emb_3 | 125.34 | 78.24 | 14.56 | 0.624222 | 0.116164 | 0.365012 | | 4 | level2/apply_rotary_pos_emb_4 | 140.26 | 246.2 | 32.77 | 1.755312 | 0.233638 | 0.665057 | | 5 | level2/apply_rotary_pos_emb_5 | 3001.06 | 391.07 | 140.36 | 0.130311 | 0.04677 | 0.080578 | | 6 | level2/apply_rotary_pos_emb_6 | 654.54 | 347.8 | 34.78 | 0.531366 | 0.053137 | 0.335578 | | 7 | level2/apply_rotary_pos_emb_7 | 146.94 | 73.08 | 23.1 | 0.497346 | 0.157207 | 0.287539 | | 8 | level2/apply_rotary_pos_emb_8 | 360.54 | 74.4 | 26.64 | 0.206357 | 0.073889 | 0.125138 | | 9 | level2/apply_rotary_pos_emb_9 | 178.12 | 198.1 | 19.81 | 1.112172 | 0.111217 | 0.529679 | | 10 | level2/apply_rotary_pos_emb_10 | 274.06 | 163 | 16.3 | 0.59476 | 0.059476 | 0.362706 | | 11 | level2/apply_rotary_pos_emb_11 | 1398.00 | 186.7 | 98.62 | 0.133548 | 0.070544 | 0.063483 | | 12 | level2/apply_rotary_pos_emb_12 | 896.26 | 48 | 4.8 | 0.053556 | 0.005356 | 0.04622 | | 13 | level2/apply_rotary_pos_emb_13 | 595.38 | 425.07 | 100 | 0.713947 | 0.16796 | 0.396209 | | 14 | level2/apply_rotary_pos_emb_14 | 27.18 | 10 | 1 | 0.367918 | 0.036792 | 0.255827 | | 15 | level2/apply_rotary_pos_emb_15 | 86.22 | 21.7 | 2.17 | 0.251682 | 0.025168 | 0.18855 | | 16 | level2/apply_rotary_pos_emb_16 | 82.48 | 41.34 | 4.17 | 0.501212 | 0.050558 | 0.321874 | | 17 | level2/apply_rotary_pos_emb_17 | 5265.48 | 2621.60 | 262.16 | 0.497884 | 0.049788 | 0.320456 | | 18 | level2/apply_rotary_pos_emb_18 | 97.2 | 43.9 | 4.39 | 0.451646 | 0.045165 | 0.298594 | | 19 | level2/apply_rotary_pos_emb_19 | 27.12 | 10 | 1 | 0.368732 | 0.036873 | 0.256264 | | 20 | level2/apply_rotary_pos_emb_20 | 1260.70 | 183.04 | 54.04 | 0.145189 | 0.042865 | 0.096581 | ## softmax - Job: job_5ec935012955; operator: Softmax; cases: 20/20; score: 68.015671; avg_speedup: 0.661441. | # | Case ID | Elapsed us | Baseline us | HW limit us | Speedup | Speedup vs HW | Perf score | |---:|---|---:|---:|---:|---:|---:|---:| | 1 | level2/softmax_1 | 19.42 | 15.7 | 1.57 | 0.808445 | 0.080844 | 0.441839 | | 2 | level2/softmax_2 | 30.96 | 37.98 | 8.74 | 1.226744 | 0.2823 | 0.568208 | | 3 | level2/softmax_3 | 104.2 | 91.76 | 25.17 | 0.880614 | 0.241555 | 0.457286 | | 4 | level2/softmax_4 | 2175.34 | 1006.60 | 100.66 | 0.462732 | 0.046273 | 0.303943 | | 5 | level2/softmax_5 | 458.2 | 422.73 | 139.81 | 0.922588 | 0.305129 | 0.470506 | | 6 | level2/softmax_6 | 1907.08 | 786.04 | 101.69 | 0.412169 | 0.053322 | 0.274868 | | 7 | level2/softmax_7 | 22.42 | 20.04 | 3.14 | 0.893845 | 0.140054 | 0.467109 | | 8 | level2/softmax_8 | 61.92 | 58.12 | 17.49 | 0.93863 | 0.282461 | 0.477663 | | 9 | level2/softmax_9 | 1044.48 | 412.79 | 50.08 | 0.395211 | 0.047947 | 0.267266 | | 10 | level2/softmax_10 | 21.82 | 14.2 | 1.55 | 0.650779 | 0.071036 | 0.384265 | | 11 | level2/softmax_11 | 2669.88 | 1063.10 | 108.09 | 0.398183 | 0.040485 | 0.271557 | | 12 | level2/softmax_12 | 61.3 | 62.58 | 14.59 | 1.020881 | 0.23801 | 0.506758 | | 13 | level2/softmax_13 | 2246.58 | 30 | 3 | 0.013354 | 0.001335 | 0.011891 | | 14 | level2/softmax_14 | 238.52 | 227.3 | 22.73 | 0.95296 | 0.095296 | 0.486654 | | 15 | level2/softmax_15 | 30.6 | 30.46 | 4.56 | 0.995425 | 0.14902 | 0.498652 | | 16 | level2/softmax_16 | 115.28 | 15.7 | 1.57 | 0.13619 | 0.013619 | 0.110529 | | 17 | level2/softmax_17 | 19.98 | 18.64 | 4.35 | 0.932933 | 0.217718 | 0.477607 | | 18 | level2/softmax_18 | 24.9 | 20.12 | 3.14 | 0.808032 | 0.126104 | 0.438307 | | 19 | level2/softmax_19 | 119.64 | 31.3 | 3.13 | 0.261618 | 0.026162 | 0.194706 | | 20 | level2/softmax_20 | 1870.84 | 219.8 | 21.98 | 0.117487 | 0.011749 | 0.096654 | ## topk - Job: job_bc7b660e83a6; operator: TopK; cases: 20/20; score: 54.233631; avg_speedup: 0.119558. | # | Case ID | Elapsed us | Baseline us | HW limit us | Speedup | Speedup vs HW | Perf score | |---:|---|---:|---:|---:|---:|---:|---:| | 1 | level3/top_k_1 | 2431.10 | 10.9 | 1.09 | 0.004484 | 0.000448 | 0.004021 | | 2 | level3/top_k_2 | 279.02 | 21.8 | 2.18 | 0.078131 | 0.007813 | 0.066181 | | 3 | level3/top_k_3 | 995.88 | 174.8 | 17.48 | 0.175523 | 0.017552 | 0.13852 | | 4 | level3/top_k_4 | 281395.82 | 1398.10 | 139.81 | 0.004968 | 0.000497 | 0.004454 | | 5 | level3/top_k_5 | 2508.46 | 1398.10 | 139.81 | 0.557354 | 0.055735 | 0.346929 | | 6 | level3/top_k_6 | 6939698.16 | 1398.10 | 139.81 | 0.000201 | 2.015e-05 | 0.000181 | | 7 | level3/top_k_7 | 74.9 | 10.9 | 1.09 | 0.145527 | 0.014553 | 0.117316 | | 8 | level3/top_k_8 | 3213.32 | 21.5 | 2.15 | 0.006691 | 0.000669 | 0.00599 | | 9 | level3/top_k_9 | 97.66 | 13.8 | 1.38 | 0.141307 | 0.014131 | 0.114259 | | 10 | level3/top_k_10 | 95309.40 | 1035.20 | 103.52 | 0.010861 | 0.001086 | 0.009691 | | 11 | level3/top_k_11 | 104.16 | 10.9 | 1.09 | 0.104647 | 0.010465 | 0.086906 | | 12 | level3/top_k_12 | 111.12 | 22.8 | 2.28 | 0.205184 | 0.020518 | 0.158627 | | 13 | level3/top_k_13 | 4755.26 | 14.3 | 1.43 | 0.003007 | 0.000301 | 0.0027 | | 14 | level3/top_k_14 | 2448.26 | 20.8 | 2.08 | 0.008496 | 0.00085 | 0.007595 | | 15 | level3/top_k_15 | 19245.22 | 170.5 | 17.05 | 0.008859 | 0.000886 | 0.007917 | | 16 | level3/top_k_16 | 211.92 | 126.8 | 12.68 | 0.598339 | 0.059834 | 0.364182 | | 17 | level3/top_k_17 | 80.84 | 21.9 | 2.19 | 0.270905 | 0.027091 | 0.200386 | | 18 | level3/top_k_18 | 6133.36 | 24.4 | 2.44 | 0.003978 | 0.000398 | 0.003569 | | 19 | level3/top_k_19 | 184.64 | 10.9 | 1.09 | 0.059034 | 0.005903 | 0.050734 | | 20 | level3/top_k_20 | 5940.70 | 21.8 | 2.18 | 0.00367 | 0.000367 | 0.003293 | ## 未来三个月的计划 ### 第 1 个月 —— 完善 补全 reduce类,数学函数类,排序类算子的生成与优化skill和harness ### 第 2 个月 —— 拓展CV融合算子 增加对CV类融合算子如quant_batch_matmul,grouped_matmul_swiglu_quant等的生成适配,保障生成精度 ### 第 3 个月 —— 拓展attention算子 增加对attention类算子的适配 See merge request: cann/cannbot-skills!313 | 2 小时前 | |
docs(update): 同步更新README入门指南、CHANGELOG、ST测试框架及PR模板 Co-authored-by: yanhf<yanhaifeng5@huawei.com> # message auto-generated for no-merge-commit merge: !286 merge master into master docs(update): 同步更新README入门指南、CHANGELOG、ST测试框架及PR模板 Created-by: yanhf Commit-by: yanhf Merged-by: cann-robot Description: ## 描述 #### 文档更新 本批次全部为文档类更新,覆盖README 快速开始、测试框架文档、CHANGELOG、PR 模板及项目架构说明,旨在降低新用户上手门槛并同步最新项目状态。 **【README 快速开始】README.md** - 重写快速开始指南,拆分为四步:克隆 → 选场景安装 → 验证 → 开始使用 - 新增前置条件说明,明确 AI 工具与 CANN 环境要求 - 统一命令格式,使用 <tool> 占位符代替具体的工具名列表 - 增加安装验证方法(目录检查 + AI 交互验证) - 修正安装命令格式:./path/init.sh → cd path && bash init.sh - 更新 AI 工具安装说明(补充 npm install / 下载地址)与官方文档直达链接 **【README 场景与架构】README.md** - 补充 Catlass 算子直调、代码检视、torch.compile 图模式 3 个场景到快速开始表格 - 更新项目架构树,统一缩进并对齐注释,新增 plugins-community/ 和社区 Plugin 条目 - 补充多个缺失 Skills(blaze-best-practice、performance-best-practices、regbase-best-practice、cann-env-setup、aiss-tiling-solver 等) - 修正 ops-simulator 技能名称(原 cann-simulator) - 统一 quickstart 引用描述 **【测试框架文档】tests/README.md** - 补充 ST 系统测试框架完整文档(300 行新增),涵盖 system/ 目录结构、本地开发调试指南(L1 快速验证 / 行为验证 / ST 语义评测)、gate_check.sh CI 入口、换行符检查及环境变量说明 - 新增 opencode_runner_examples.py 到 system/ 目录树 - 将默认测试超时从 300s 调整为 600s - 删除 GitHub Actions CI 示例(项目已迁移至 GitCode CI) - 修正 claude-code npm 包名 **【CHANGELOG 维护】CHANGELOG.md** - 补充 2026-05-20 ~ 2026-05-25 期间的特性、增强与修复条目 - 新增 05-26 条目(cuda2ascend-simt、pypto-golden-generate、PR 模板统一) - 新增 05-21 条目(tiling-solver、示例提示词) - 修正 05-25 条目内容归属(性能调试 / 代码检视 / PyPTO / 测试框架等) - 简化 README 最新动态为每日一行 **【PR 模板与测试报告】** - .gitcode/PULL_REQUEST_TEMPLATE.zh-CN.md:修正 UT_Test 未通过时的下载指引,明确下载的是 HTML 格式的 CANNBot-skills UT 测试报告 - tests/run-tests.sh:将 HTML 报告标题统一为 CANNBot-skills UT 测试报告,与 PR 模板指引保持一致 ## 关联的Issue <!-- 无特定 Issue --> ## 测试 - ./tests/run-tests.sh --fast 全部通过(10/10) - ./tests/run-tests.sh --test unit/teams/test-version.sh PASS(version bump 验证通过) ## 文档更新 - tests/README.md:ST 系统测试框架文档、目录结构、CI 示例、超时配置 - CHANGELOG.md:补充 05-20 ~ 05-26 期间全部变更条目 - README.md:快速开始指南、场景列表、项目架构、Skills 目录 - .gitcode/PULL_REQUEST_TEMPLATE.zh-CN.md:UT_Test 下载指引 - tests/run-tests.sh:HTML 报告标题 ## 类型标签 - [x] 📝 文档更新 See merge request: cann/cannbot-skills!286 | 1 个月前 | |
fix(docs): 清理全仓库 ops-lab/ 历史废弃目录的残留引用 Co-authored-by: jiangyixuan2<124090275@link.cuhk.edu.cn> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !645 merge fix/issue-435-remove-ops-lab-refs into master fix(docs): 清理全仓库 ops-lab/ 历史废弃目录的残留引用 Created-by: jiangyixuan2 Commit-by: gitcode-bot;jiangyixuan2 Merged-by: cann-robot Description: ### 描述 ops-lab/ 为历史废弃目录,此前已被整体移除,但全仓库仍有大量文件残留对该目录的引用(目录结构图、路径引用、扫描配置、脚本逻辑等),误导用户。本次统一清理这些失效引用。 ### 修改范围 15 个文件,+23/-32 行。 #### 一、目录结构图与规范表(删除 ops-lab/ 条目) | 文件 | 修改 | |------|------| | README.md | 删除目录结构图中 ├── ops-lab/ 行 | | AGENTS.md | 删除目录结构图中 ├── ops-lab/ 行 | | docs/architecture-design.md | 删除目录结构图中 ├── ops-lab/ 行 | | docs/STANDARDS.md | 删除目录规范表中 ops-lab/ 行 | | docs/CONTRIBUTING.md | 删除"实验性 Skill"整行(原指向 ops-lab/)| #### 二、ST 测试指南 | 文件 | 修改 | |------|------| | tests/system/docs/ST_DESIGN_AND_DEVELOPMENT_GUIDE.md | 删除 skill_dirs 配置中 "ops-lab";§3.9 标题由 ops-lab/ 改为 ops/ — TileLang 算子开发,5 个 TileLang skill 路径由 ops-lab/tilelang/skills/xxx 改为实际位置 ops/xxx | #### 三、其他文档 | 文件 | 修改 | |------|------| | ops/ascendc-registry-invoke-template/references/binary-json-dtype-guide.md | 删除"ops-lab 模板不适用"说明 | | plugins-community/tilelang2ascendc-ops-generator/quickstart.md | 修正错误目录名 ascendc-ops-lab-developer → tilelang2ascendc-ops-generator | #### 四、代码与配置(移除 ops-lab 扫描目录与处理分支) | 文件 | 修改 | |------|------| | infra/cannbot-skill-reviewer/scripts/review_skill.py | 路径前缀元组移除 "ops-lab/" | | plugins-community/install-helper/scripts/gen-embedded.cjs | SCAN_DIRS 移除 "ops-lab" | | plugins-community/install-helper/src/config/repository.yaml | scanDirs 移除 - ops-lab | | plugins-community/install-helper/src/core/scanner.ts | 默认 skillDirs 移除 "ops-lab"(2 处)| | plugins-community/tilelang2ascendc-ops-generator/init.sh | 删除 ops-lab 目录检查块、移除 SHARED_SKILL_ROOT_OPS_LAB 变量及 5 个 for 循环引用 | | tests/run-tests.sh | 注释移除 ops-lab/*/skills/ 模式 | #### 五、变更日志 | 文件 | 修改 | |------|------| | CHANGELOG.md | 新增 2026-07-20 清理 ops-lab 记录(历史记录中的 ops-lab 引用保持原样)| ## 关联 Issue Issue [#435](https://gitcode.com/cann/cannbot-skills/issues/435) See merge request: cann/cannbot-skills!645 | 2 小时前 | |
refactor(tests): ST测试框架重构 - evals用例迁移至技能目录、框架脚本重构 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !631 merge feature/cherry-pick-ops-tensor into master refactor(tests): ST测试框架重构 - evals用例迁移至技能目录、框架脚本重构 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 从 master_bug_fix 分支 cherry-pick 测试框架重构与改进,包含以下变更: ### 1. ST 测试框架重构 - **用例组织重构**:将集中式 tests/system/cases/ 目录下的 **95 个评测用例**迁移到对应 Skill/Team 目录下的 evals/evals.md,实现测试用例与 Skill 代码内聚,便于维护和版本控制 - **框架脚本重构**:重构 common.py、conftest.py、main.py,替换为分布式发现逻辑,从 Skill/Team 本地目录扫描和加载评测用例 - **文档更新**:更新 ST_DESIGN_AND_DEVELOPMENT_GUIDE.md 和 USER_GUIDE.md,同步新架构说明 ### 2. 算子生成用例优化 - 调整 test_skill_evals.py 和 conftest.py 中的算子生成用例通过物值判定逻辑 - 优化报告展示格式 ### 3. ops-tensor 算子集成 - 在 ops-direct-invoke 和 ops-registry-invoke 插件目录下添加 ops-tensor 算子代码(算子构建脚本、cmake 配置、示例代码、文档等) ### 4. 用例修复 - 修复多个 evals.md 用例文件中的问题 ## 关联的Issue ## 测试 验证了 cherry-pick 的提交内容正确,本地测试通过。 ## 文档更新 - 更新了 tests/system/docs/ST_DESIGN_AND_DEVELOPMENT_GUIDE.md - 更新了 tests/system/docs/USER_GUIDE.md - 更新了 tests/README.md - 更新了 CHANGELOG.md ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [x] 🧪 测试 - [ ] 📦 构建/CI - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/cannbot-skills!631 | 2 天前 | |
fix(docs): 清理全仓库 ops-lab/ 历史废弃目录的残留引用 Co-authored-by: jiangyixuan2<124090275@link.cuhk.edu.cn> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !645 merge fix/issue-435-remove-ops-lab-refs into master fix(docs): 清理全仓库 ops-lab/ 历史废弃目录的残留引用 Created-by: jiangyixuan2 Commit-by: gitcode-bot;jiangyixuan2 Merged-by: cann-robot Description: ### 描述 ops-lab/ 为历史废弃目录,此前已被整体移除,但全仓库仍有大量文件残留对该目录的引用(目录结构图、路径引用、扫描配置、脚本逻辑等),误导用户。本次统一清理这些失效引用。 ### 修改范围 15 个文件,+23/-32 行。 #### 一、目录结构图与规范表(删除 ops-lab/ 条目) | 文件 | 修改 | |------|------| | README.md | 删除目录结构图中 ├── ops-lab/ 行 | | AGENTS.md | 删除目录结构图中 ├── ops-lab/ 行 | | docs/architecture-design.md | 删除目录结构图中 ├── ops-lab/ 行 | | docs/STANDARDS.md | 删除目录规范表中 ops-lab/ 行 | | docs/CONTRIBUTING.md | 删除"实验性 Skill"整行(原指向 ops-lab/)| #### 二、ST 测试指南 | 文件 | 修改 | |------|------| | tests/system/docs/ST_DESIGN_AND_DEVELOPMENT_GUIDE.md | 删除 skill_dirs 配置中 "ops-lab";§3.9 标题由 ops-lab/ 改为 ops/ — TileLang 算子开发,5 个 TileLang skill 路径由 ops-lab/tilelang/skills/xxx 改为实际位置 ops/xxx | #### 三、其他文档 | 文件 | 修改 | |------|------| | ops/ascendc-registry-invoke-template/references/binary-json-dtype-guide.md | 删除"ops-lab 模板不适用"说明 | | plugins-community/tilelang2ascendc-ops-generator/quickstart.md | 修正错误目录名 ascendc-ops-lab-developer → tilelang2ascendc-ops-generator | #### 四、代码与配置(移除 ops-lab 扫描目录与处理分支) | 文件 | 修改 | |------|------| | infra/cannbot-skill-reviewer/scripts/review_skill.py | 路径前缀元组移除 "ops-lab/" | | plugins-community/install-helper/scripts/gen-embedded.cjs | SCAN_DIRS 移除 "ops-lab" | | plugins-community/install-helper/src/config/repository.yaml | scanDirs 移除 - ops-lab | | plugins-community/install-helper/src/core/scanner.ts | 默认 skillDirs 移除 "ops-lab"(2 处)| | plugins-community/tilelang2ascendc-ops-generator/init.sh | 删除 ops-lab 目录检查块、移除 SHARED_SKILL_ROOT_OPS_LAB 变量及 5 个 for 循环引用 | | tests/run-tests.sh | 注释移除 ops-lab/*/skills/ 模式 | #### 五、变更日志 | 文件 | 修改 | |------|------| | CHANGELOG.md | 新增 2026-07-20 清理 ops-lab 记录(历史记录中的 ops-lab 引用保持原样)| ## 关联 Issue Issue [#435](https://gitcode.com/cann/cannbot-skills/issues/435) See merge request: cann/cannbot-skills!645 | 2 小时前 | |
refactor(tests): ST测试框架重构 - evals用例迁移至技能目录、框架脚本重构 Co-authored-by: hello_simida<wangyi206@huawei.com> # message auto-generated for no-merge-commit merge: !631 merge feature/cherry-pick-ops-tensor into master refactor(tests): ST测试框架重构 - evals用例迁移至技能目录、框架脚本重构 Created-by: hello_simida Commit-by: hello_simida Merged-by: cann-robot Description: ## 描述 从 master_bug_fix 分支 cherry-pick 测试框架重构与改进,包含以下变更: ### 1. ST 测试框架重构 - **用例组织重构**:将集中式 tests/system/cases/ 目录下的 **95 个评测用例**迁移到对应 Skill/Team 目录下的 evals/evals.md,实现测试用例与 Skill 代码内聚,便于维护和版本控制 - **框架脚本重构**:重构 common.py、conftest.py、main.py,替换为分布式发现逻辑,从 Skill/Team 本地目录扫描和加载评测用例 - **文档更新**:更新 ST_DESIGN_AND_DEVELOPMENT_GUIDE.md 和 USER_GUIDE.md,同步新架构说明 ### 2. 算子生成用例优化 - 调整 test_skill_evals.py 和 conftest.py 中的算子生成用例通过物值判定逻辑 - 优化报告展示格式 ### 3. ops-tensor 算子集成 - 在 ops-direct-invoke 和 ops-registry-invoke 插件目录下添加 ops-tensor 算子代码(算子构建脚本、cmake 配置、示例代码、文档等) ### 4. 用例修复 - 修复多个 evals.md 用例文件中的问题 ## 关联的Issue ## 测试 验证了 cherry-pick 的提交内容正确,本地测试通过。 ## 文档更新 - 更新了 tests/system/docs/ST_DESIGN_AND_DEVELOPMENT_GUIDE.md - 更新了 tests/system/docs/USER_GUIDE.md - 更新了 tests/README.md - 更新了 CHANGELOG.md ## 类型标签 - [ ] 🐛 Bug 修复 - [ ] ✨ 新特性 - [ ] ⚡ 性能优化 - [x] ♻️ 重构 - [x] 🧪 测试 - [ ] 📦 构建/CI - [x] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/cannbot-skills!631 | 2 天前 | |
fix(docs): 清理全仓库 ops-lab/ 历史废弃目录的残留引用 Co-authored-by: jiangyixuan2<124090275@link.cuhk.edu.cn> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !645 merge fix/issue-435-remove-ops-lab-refs into master fix(docs): 清理全仓库 ops-lab/ 历史废弃目录的残留引用 Created-by: jiangyixuan2 Commit-by: gitcode-bot;jiangyixuan2 Merged-by: cann-robot Description: ### 描述 ops-lab/ 为历史废弃目录,此前已被整体移除,但全仓库仍有大量文件残留对该目录的引用(目录结构图、路径引用、扫描配置、脚本逻辑等),误导用户。本次统一清理这些失效引用。 ### 修改范围 15 个文件,+23/-32 行。 #### 一、目录结构图与规范表(删除 ops-lab/ 条目) | 文件 | 修改 | |------|------| | README.md | 删除目录结构图中 ├── ops-lab/ 行 | | AGENTS.md | 删除目录结构图中 ├── ops-lab/ 行 | | docs/architecture-design.md | 删除目录结构图中 ├── ops-lab/ 行 | | docs/STANDARDS.md | 删除目录规范表中 ops-lab/ 行 | | docs/CONTRIBUTING.md | 删除"实验性 Skill"整行(原指向 ops-lab/)| #### 二、ST 测试指南 | 文件 | 修改 | |------|------| | tests/system/docs/ST_DESIGN_AND_DEVELOPMENT_GUIDE.md | 删除 skill_dirs 配置中 "ops-lab";§3.9 标题由 ops-lab/ 改为 ops/ — TileLang 算子开发,5 个 TileLang skill 路径由 ops-lab/tilelang/skills/xxx 改为实际位置 ops/xxx | #### 三、其他文档 | 文件 | 修改 | |------|------| | ops/ascendc-registry-invoke-template/references/binary-json-dtype-guide.md | 删除"ops-lab 模板不适用"说明 | | plugins-community/tilelang2ascendc-ops-generator/quickstart.md | 修正错误目录名 ascendc-ops-lab-developer → tilelang2ascendc-ops-generator | #### 四、代码与配置(移除 ops-lab 扫描目录与处理分支) | 文件 | 修改 | |------|------| | infra/cannbot-skill-reviewer/scripts/review_skill.py | 路径前缀元组移除 "ops-lab/" | | plugins-community/install-helper/scripts/gen-embedded.cjs | SCAN_DIRS 移除 "ops-lab" | | plugins-community/install-helper/src/config/repository.yaml | scanDirs 移除 - ops-lab | | plugins-community/install-helper/src/core/scanner.ts | 默认 skillDirs 移除 "ops-lab"(2 处)| | plugins-community/tilelang2ascendc-ops-generator/init.sh | 删除 ops-lab 目录检查块、移除 SHARED_SKILL_ROOT_OPS_LAB 变量及 5 个 for 循环引用 | | tests/run-tests.sh | 注释移除 ops-lab/*/skills/ 模式 | #### 五、变更日志 | 文件 | 修改 | |------|------| | CHANGELOG.md | 新增 2026-07-20 清理 ops-lab 记录(历史记录中的 ops-lab 引用保持原样)| ## 关联 Issue Issue [#435](https://gitcode.com/cann/cannbot-skills/issues/435) See merge request: cann/cannbot-skills!645 | 2 小时前 | |
【collaborative-agent-kernel-evolution】新增 CAKE2 进化式 AscendC 算子生成 Team(仅 Vector 算子) Co-authored-by: Junyifannnn<fan.junyi@huawei.com> # message auto-generated for no-merge-commit merge: !313 merge feat/add-cake-plugin into master 【collaborative-agent-kernel-evolution】新增 CAKE2 进化式 AscendC 算子生成 Team(仅 Vector 算子) Created-by: gcw_P2Mh5H1S Commit-by: Junyifannnn Merged-by: cann-robot Description: ## 描述 **新特性**: 【collaborative-agent-kernel-evolution】新增 plugins-community/collaborative-agent-kernel-evolution —— 进化式 AscendC 算子生成 Team(仅 Vector 算子)。 含 3 个 Agent 与 19 个内置 Skill,覆盖「算子描述生成 → PyTorch 参考 → functional 转换 → AscendDSL baseline → DSL lowering 到 AscendC → 编译评估 →(可选)进化式多变体性能优化」全流程: - cake(primary):标准单算子生成主流程 - cake-evo(primary):并行多变体进化优化 - cake-partial(subagent):被 cake-evo 调度的半程生成子任务 自包含单插件(目录 plugins-community/collaborative-agent-kernel-evolution/,对齐 ops-easyasc-dsl 自包含形态) ## 关联的Issue 关联 Issue [#230](https://gitcode.com/cann/cannbot-skills/issues/230) ## 测试 - **L1 结构门禁 skill_validator.py**:19 skills + 3 agents **0 error**(warn-only:6× S-CON-05、2× S-CON-06「缺错误处理章节」,不阻断) - **tests/run-tests.sh --fast**:10 项全过(初次 test-line-endings 报 6 个 CRLF 文件,均为插件内 vendored 外部文档,已全部转 LF,复跑 PASS) ## 文档更新 - 新增 plugins-community/collaborative-agent-kernel-evolution/(含 README / docs / tests) - 根 .claude-plugin/marketplace.json 注册 cake(source ./plugins-community/collaborative-agent-kernel-evolution,category development) - 更新根 CHANGELOG.md(2026-06-02 条目) ## 类型标签 - [x] 🌟 新特性 ## AscendC 算子评测结果 | Operator | Job ID | Cases | Score | Avg speedup | Rel path | |---|---|---:|---:|---:|---|---| | apply_rotary_pos_emb | job_940a45830a2f | 20/20 | 63.339075 | 0.355671 | level2/apply_rotary_pos_emb | | softmax | job_5ec935012955 | 20/20 | 68.015671 | 0.661441 | level2/softmax | | topk | job_bc7b660e83a6 | 20/20 | 54.233631 | 0.119558 | level3/top_k | ## apply_rotary_pos_emb - Job: job_940a45830a2f; operator: ApplyRotaryPosEmb; cases: 20/20; score: 63.339075; avg_speedup: 0.355671. | # | Case ID | Elapsed us | Baseline us | HW limit us | Speedup | Speedup vs HW | Perf score | |---:|---|---:|---:|---:|---:|---:|---:| | 1 | level2/apply_rotary_pos_emb_1 | 182.06 | 89.56 | 35.02 | 0.491926 | 0.192354 | 0.270563 | | 2 | level2/apply_rotary_pos_emb_2 | 779.98 | 113.24 | 59.22 | 0.145183 | 0.075925 | 0.069723 | | 3 | level2/apply_rotary_pos_emb_3 | 125.34 | 78.24 | 14.56 | 0.624222 | 0.116164 | 0.365012 | | 4 | level2/apply_rotary_pos_emb_4 | 140.26 | 246.2 | 32.77 | 1.755312 | 0.233638 | 0.665057 | | 5 | level2/apply_rotary_pos_emb_5 | 3001.06 | 391.07 | 140.36 | 0.130311 | 0.04677 | 0.080578 | | 6 | level2/apply_rotary_pos_emb_6 | 654.54 | 347.8 | 34.78 | 0.531366 | 0.053137 | 0.335578 | | 7 | level2/apply_rotary_pos_emb_7 | 146.94 | 73.08 | 23.1 | 0.497346 | 0.157207 | 0.287539 | | 8 | level2/apply_rotary_pos_emb_8 | 360.54 | 74.4 | 26.64 | 0.206357 | 0.073889 | 0.125138 | | 9 | level2/apply_rotary_pos_emb_9 | 178.12 | 198.1 | 19.81 | 1.112172 | 0.111217 | 0.529679 | | 10 | level2/apply_rotary_pos_emb_10 | 274.06 | 163 | 16.3 | 0.59476 | 0.059476 | 0.362706 | | 11 | level2/apply_rotary_pos_emb_11 | 1398.00 | 186.7 | 98.62 | 0.133548 | 0.070544 | 0.063483 | | 12 | level2/apply_rotary_pos_emb_12 | 896.26 | 48 | 4.8 | 0.053556 | 0.005356 | 0.04622 | | 13 | level2/apply_rotary_pos_emb_13 | 595.38 | 425.07 | 100 | 0.713947 | 0.16796 | 0.396209 | | 14 | level2/apply_rotary_pos_emb_14 | 27.18 | 10 | 1 | 0.367918 | 0.036792 | 0.255827 | | 15 | level2/apply_rotary_pos_emb_15 | 86.22 | 21.7 | 2.17 | 0.251682 | 0.025168 | 0.18855 | | 16 | level2/apply_rotary_pos_emb_16 | 82.48 | 41.34 | 4.17 | 0.501212 | 0.050558 | 0.321874 | | 17 | level2/apply_rotary_pos_emb_17 | 5265.48 | 2621.60 | 262.16 | 0.497884 | 0.049788 | 0.320456 | | 18 | level2/apply_rotary_pos_emb_18 | 97.2 | 43.9 | 4.39 | 0.451646 | 0.045165 | 0.298594 | | 19 | level2/apply_rotary_pos_emb_19 | 27.12 | 10 | 1 | 0.368732 | 0.036873 | 0.256264 | | 20 | level2/apply_rotary_pos_emb_20 | 1260.70 | 183.04 | 54.04 | 0.145189 | 0.042865 | 0.096581 | ## softmax - Job: job_5ec935012955; operator: Softmax; cases: 20/20; score: 68.015671; avg_speedup: 0.661441. | # | Case ID | Elapsed us | Baseline us | HW limit us | Speedup | Speedup vs HW | Perf score | |---:|---|---:|---:|---:|---:|---:|---:| | 1 | level2/softmax_1 | 19.42 | 15.7 | 1.57 | 0.808445 | 0.080844 | 0.441839 | | 2 | level2/softmax_2 | 30.96 | 37.98 | 8.74 | 1.226744 | 0.2823 | 0.568208 | | 3 | level2/softmax_3 | 104.2 | 91.76 | 25.17 | 0.880614 | 0.241555 | 0.457286 | | 4 | level2/softmax_4 | 2175.34 | 1006.60 | 100.66 | 0.462732 | 0.046273 | 0.303943 | | 5 | level2/softmax_5 | 458.2 | 422.73 | 139.81 | 0.922588 | 0.305129 | 0.470506 | | 6 | level2/softmax_6 | 1907.08 | 786.04 | 101.69 | 0.412169 | 0.053322 | 0.274868 | | 7 | level2/softmax_7 | 22.42 | 20.04 | 3.14 | 0.893845 | 0.140054 | 0.467109 | | 8 | level2/softmax_8 | 61.92 | 58.12 | 17.49 | 0.93863 | 0.282461 | 0.477663 | | 9 | level2/softmax_9 | 1044.48 | 412.79 | 50.08 | 0.395211 | 0.047947 | 0.267266 | | 10 | level2/softmax_10 | 21.82 | 14.2 | 1.55 | 0.650779 | 0.071036 | 0.384265 | | 11 | level2/softmax_11 | 2669.88 | 1063.10 | 108.09 | 0.398183 | 0.040485 | 0.271557 | | 12 | level2/softmax_12 | 61.3 | 62.58 | 14.59 | 1.020881 | 0.23801 | 0.506758 | | 13 | level2/softmax_13 | 2246.58 | 30 | 3 | 0.013354 | 0.001335 | 0.011891 | | 14 | level2/softmax_14 | 238.52 | 227.3 | 22.73 | 0.95296 | 0.095296 | 0.486654 | | 15 | level2/softmax_15 | 30.6 | 30.46 | 4.56 | 0.995425 | 0.14902 | 0.498652 | | 16 | level2/softmax_16 | 115.28 | 15.7 | 1.57 | 0.13619 | 0.013619 | 0.110529 | | 17 | level2/softmax_17 | 19.98 | 18.64 | 4.35 | 0.932933 | 0.217718 | 0.477607 | | 18 | level2/softmax_18 | 24.9 | 20.12 | 3.14 | 0.808032 | 0.126104 | 0.438307 | | 19 | level2/softmax_19 | 119.64 | 31.3 | 3.13 | 0.261618 | 0.026162 | 0.194706 | | 20 | level2/softmax_20 | 1870.84 | 219.8 | 21.98 | 0.117487 | 0.011749 | 0.096654 | ## topk - Job: job_bc7b660e83a6; operator: TopK; cases: 20/20; score: 54.233631; avg_speedup: 0.119558. | # | Case ID | Elapsed us | Baseline us | HW limit us | Speedup | Speedup vs HW | Perf score | |---:|---|---:|---:|---:|---:|---:|---:| | 1 | level3/top_k_1 | 2431.10 | 10.9 | 1.09 | 0.004484 | 0.000448 | 0.004021 | | 2 | level3/top_k_2 | 279.02 | 21.8 | 2.18 | 0.078131 | 0.007813 | 0.066181 | | 3 | level3/top_k_3 | 995.88 | 174.8 | 17.48 | 0.175523 | 0.017552 | 0.13852 | | 4 | level3/top_k_4 | 281395.82 | 1398.10 | 139.81 | 0.004968 | 0.000497 | 0.004454 | | 5 | level3/top_k_5 | 2508.46 | 1398.10 | 139.81 | 0.557354 | 0.055735 | 0.346929 | | 6 | level3/top_k_6 | 6939698.16 | 1398.10 | 139.81 | 0.000201 | 2.015e-05 | 0.000181 | | 7 | level3/top_k_7 | 74.9 | 10.9 | 1.09 | 0.145527 | 0.014553 | 0.117316 | | 8 | level3/top_k_8 | 3213.32 | 21.5 | 2.15 | 0.006691 | 0.000669 | 0.00599 | | 9 | level3/top_k_9 | 97.66 | 13.8 | 1.38 | 0.141307 | 0.014131 | 0.114259 | | 10 | level3/top_k_10 | 95309.40 | 1035.20 | 103.52 | 0.010861 | 0.001086 | 0.009691 | | 11 | level3/top_k_11 | 104.16 | 10.9 | 1.09 | 0.104647 | 0.010465 | 0.086906 | | 12 | level3/top_k_12 | 111.12 | 22.8 | 2.28 | 0.205184 | 0.020518 | 0.158627 | | 13 | level3/top_k_13 | 4755.26 | 14.3 | 1.43 | 0.003007 | 0.000301 | 0.0027 | | 14 | level3/top_k_14 | 2448.26 | 20.8 | 2.08 | 0.008496 | 0.00085 | 0.007595 | | 15 | level3/top_k_15 | 19245.22 | 170.5 | 17.05 | 0.008859 | 0.000886 | 0.007917 | | 16 | level3/top_k_16 | 211.92 | 126.8 | 12.68 | 0.598339 | 0.059834 | 0.364182 | | 17 | level3/top_k_17 | 80.84 | 21.9 | 2.19 | 0.270905 | 0.027091 | 0.200386 | | 18 | level3/top_k_18 | 6133.36 | 24.4 | 2.44 | 0.003978 | 0.000398 | 0.003569 | | 19 | level3/top_k_19 | 184.64 | 10.9 | 1.09 | 0.059034 | 0.005903 | 0.050734 | | 20 | level3/top_k_20 | 5940.70 | 21.8 | 2.18 | 0.00367 | 0.000367 | 0.003293 | ## 未来三个月的计划 ### 第 1 个月 —— 完善 补全 reduce类,数学函数类,排序类算子的生成与优化skill和harness ### 第 2 个月 —— 拓展CV融合算子 增加对CV类融合算子如quant_batch_matmul,grouped_matmul_swiglu_quant等的生成适配,保障生成精度 ### 第 3 个月 —— 拓展attention算子 增加对attention类算子的适配 See merge request: cann/cannbot-skills!313 | 2 小时前 | |
更新tilelang skills Co-authored-by: hedi515<hedi7@huawei.com> # message auto-generated for no-merge-commit merge: !643 merge fix/tilelang-skill-refs into master 更新tilelang skills Created-by: hedi0515 Commit-by: hedi515 Merged-by: cann-robot Description: ## 概述 修复 tilelang 相关 skill 文档中的失效/陈旧资源引用,并纠正 scritps 目录拼写。仅涉及引用完整性与目录命名,无逻辑改动。 ## 改动 | 类别 | 修复 | |------|------| | 段落引用漂移 | 失效的 SKILL.md §8 Checklist #9-#10/#11/#16/#9-18 引用改为指向真实的 tilelang-op-develop/references/checklist.md(op-design SKILL.md、op-develop troubleshooting.md、orchestrator 的 tilelang-op-developer.md 共 5 处) | | 缺失资源 | 不存在的 sync-primitives-guide.md 重定向到现有的 tilelang-api-best-practices/references/api-schedule-sync.md(optimization-guide.md) | | 缺失资源 | 新增缺失的 tilelang-review/templates/report.md,按 review SKILL.md 的报告要求建模 | | 陈旧路径 | examples/gemm/gemm_intrinsic_optimize.md → 同目录 gemm_intrinsic_optimize.md(flash_attn_optimize.md) | | 目录命名 | tilelang-review/scritps → scripts,并同步更新 SKILL.md 中 10 处引用 | ## 验证 - 全仓 grep 确认无残留 §8 Checklist / sync-primitives-guide / examples/gemm/gemm_intrinsic / scritps。 - 所有重定向/新建目标文件存在,相对路径均可解析。 - 逐一核对了 op-design/develop/test 各 skill 的 §N 引用与当前 design-template 标题一致(§8→§9 重编号已完整传播)。 🤖 Generated with [Claude Code](https://claude.com/claude-code) See merge request: cann/cannbot-skills!643 | 22 小时前 | |
修改接口映射,增强skill能力 Co-authored-by: li-yuan-67<liyuan67@huawei.com> # message auto-generated for no-merge-commit merge: !619 merge master into master 修改接口映射,增强skill能力 Created-by: li-yuan-67 Commit-by: li-yuan-67 Merged-by: cann-robot Description: ## 描述 修改接口映射,增强skill能力 #### 问题修复 Bug Fix 1. 修改接口映射文档说明 2. 修复函数无默认返回值问题 3. 对SIMT算子转换增加 -enable-simt 约束。 ## 关联的Issue 无 ## 测试 已在昇腾机器进行验证skill修改正确 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🌟 新特性 - [x] ✨ 特性增强 - [ ] 🐛 Bug 修复 - [ ] ⚡ 性能优化 - [ ] 🧪 测试用例 - [ ] 📦 构建 / CI - [ ] 📝 文档更新 - [ ] 🔧 配置变更 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] ♻️ 代码重构 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/cannbot-skills!619 | 4 天前 | |
fix(docs): 清理全仓库 ops-lab/ 历史废弃目录的残留引用 Co-authored-by: jiangyixuan2<124090275@link.cuhk.edu.cn> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !645 merge fix/issue-435-remove-ops-lab-refs into master fix(docs): 清理全仓库 ops-lab/ 历史废弃目录的残留引用 Created-by: jiangyixuan2 Commit-by: gitcode-bot;jiangyixuan2 Merged-by: cann-robot Description: ### 描述 ops-lab/ 为历史废弃目录,此前已被整体移除,但全仓库仍有大量文件残留对该目录的引用(目录结构图、路径引用、扫描配置、脚本逻辑等),误导用户。本次统一清理这些失效引用。 ### 修改范围 15 个文件,+23/-32 行。 #### 一、目录结构图与规范表(删除 ops-lab/ 条目) | 文件 | 修改 | |------|------| | README.md | 删除目录结构图中 ├── ops-lab/ 行 | | AGENTS.md | 删除目录结构图中 ├── ops-lab/ 行 | | docs/architecture-design.md | 删除目录结构图中 ├── ops-lab/ 行 | | docs/STANDARDS.md | 删除目录规范表中 ops-lab/ 行 | | docs/CONTRIBUTING.md | 删除"实验性 Skill"整行(原指向 ops-lab/)| #### 二、ST 测试指南 | 文件 | 修改 | |------|------| | tests/system/docs/ST_DESIGN_AND_DEVELOPMENT_GUIDE.md | 删除 skill_dirs 配置中 "ops-lab";§3.9 标题由 ops-lab/ 改为 ops/ — TileLang 算子开发,5 个 TileLang skill 路径由 ops-lab/tilelang/skills/xxx 改为实际位置 ops/xxx | #### 三、其他文档 | 文件 | 修改 | |------|------| | ops/ascendc-registry-invoke-template/references/binary-json-dtype-guide.md | 删除"ops-lab 模板不适用"说明 | | plugins-community/tilelang2ascendc-ops-generator/quickstart.md | 修正错误目录名 ascendc-ops-lab-developer → tilelang2ascendc-ops-generator | #### 四、代码与配置(移除 ops-lab 扫描目录与处理分支) | 文件 | 修改 | |------|------| | infra/cannbot-skill-reviewer/scripts/review_skill.py | 路径前缀元组移除 "ops-lab/" | | plugins-community/install-helper/scripts/gen-embedded.cjs | SCAN_DIRS 移除 "ops-lab" | | plugins-community/install-helper/src/config/repository.yaml | scanDirs 移除 - ops-lab | | plugins-community/install-helper/src/core/scanner.ts | 默认 skillDirs 移除 "ops-lab"(2 处)| | plugins-community/tilelang2ascendc-ops-generator/init.sh | 删除 ops-lab 目录检查块、移除 SHARED_SKILL_ROOT_OPS_LAB 变量及 5 个 for 循环引用 | | tests/run-tests.sh | 注释移除 ops-lab/*/skills/ 模式 | #### 五、变更日志 | 文件 | 修改 | |------|------| | CHANGELOG.md | 新增 2026-07-20 清理 ops-lab 记录(历史记录中的 ops-lab 引用保持原样)| ## 关联 Issue Issue [#435](https://gitcode.com/cann/cannbot-skills/issues/435) See merge request: cann/cannbot-skills!645 | 2 小时前 | |
fix(init.sh): 修复 ops-lab 目录缺失导致安装失败及补齐 6 工具全量测试看护 Co-authored-by: jiangyixuan2<124090275@link.cuhk.edu.cn> # message auto-generated for no-merge-commit merge: !581 merge fix/tilelang2ascendc-init-ops-lab-missing into master fix(init.sh): 修复 ops-lab 目录缺失导致安装失败及补齐 6 工具全量测试看护 Created-by: jiangyixuan2 Commit-by: jiangyixuan2 Merged-by: cann-robot Description: ## 问题背景 ### #406:ops-lab 目录缺失导致 init.sh 安装失败 tilelang2ascendc-ops-generator/init.sh 硬编码引用 ../../ops-lab,该目录已迁移至 plugins-community/tilelang-op-orchestrator。set -e 下 cd 到不存在的目录导致脚本早期退出,OpenCode 环境无法完成配置。 ### 附带修复的问题 | # | 问题 | 影响范围 | |---|------|----------| | 1 | 11 个插件 $(cd ... && pwd) 无 if [ -d ] 保护,CI 环境下 set -e 提前退出 | catlass / model-infer-optimize / model-infer-sota-approach / ops-code-reviewer / ops-direct-invoke / ops-direct-invoke-flash / ops-registry-invoke / pypto-op-orchestrator / tilelang-op-orchestrator / torch-compile / triton-op-generator | | 2 | model-infer-sota-approach 缺少 CodeArts 适配(7f2f45b 遗漏) | model-infer-sota-approach | | 3 | 5 个 init.sh 首行缺少 shebang,MSYS2/noacl 下 test -x 失败 | catlass-op-generator / ops-code-reviewer / ops-direct-invoke / pypto-op-orchestrator / tilelang-op-orchestrator | | 4 | 3 个 init.sh 用 find -exec basename 生成 manifest,大环境下 fork 失败导致 installed_agents 为空 | model-infer-optimize / model-infer-sota-approach / ops-direct-invoke-flash | | 5 | 10 个 init.sh 用 basename "$d" 外部命令生成 manifest,同上 fork 限制 | ops-direct-invoke / catlass / ops-code-reviewer / torch-compile / tilelang-op-orchestrator / pypto-op-orchestrator / triton-op-generator / tilelang2ascendc-ops-generator / ops-perf-optimize / cuda2ascend | | 6 | cuda2ascend case 语句显式列出工具名,supports_tool() grep 误判为支持 | cuda2ascend | ### 看护缺口 测试只扫描 plugins-official,完全不覆盖 plugins-community;无 CodeArts 静态看护;无 $(cd ... && pwd) 目录存在性检查。 ## 改动清单 ### Bug 修复(14 个 init.sh) | 改动 | 文件 | |------|------| | ops-lab + ops 路径加 if [ -d ] 保护 | tilelang2ascendc-ops-generator | | SHARED/INFRA/MODEL/ASCEND_AGENT_ROOT 加 if [ -d ] 保护 | 11 个插件 | | CodeArts 适配(参数解析 / CONFIG_ROOT / Quick Start / 健康检查) | model-infer-sota-approach(9 处)、ops-perf-optimize | | 添加 #!/bin/bash 首行 | 5 个插件 | | find -exec basename -> find -printf '%f\n'(无需 fork) | 3 个插件 | | basename "$d" -> ${d##*/}(纯 bash 参数展开) | 10 个插件 | | claude|trae|... -> c[l]aude|t[r]ae|...(字符类避免 grep 误判) | cuda2ascend | ### 测试看护补齐 | 改动 | 说明 | |------|------| | test-init-install.sh 扫描 plugins-official + plugins-community | 修复漏检根因 | | 新增 Check 6:静态检查 $(cd ... && pwd) 引用目录存在性 | 防止此类 bug 再次遗漏 | | test-init-behavior.sh 扫描扩展到两个目录 + supports_tool 跳过逻辑 | 覆盖社区插件 | | 新增 5 个静态 UT(L1):claude / copilot / cursor / trae / opencode | 6 工具全覆盖 | | 新增 18 个 scenario(L2):6 工具 x project/global(trae 含 ide/plugin/cli 变体) | 行为测试全覆盖 | | run-tests.sh fast 列表加入 5 个 tool UT | CI 自动执行 | | 12 个插件 .gitignore 添加 .github 和 .copilot | CO-07 合规 | ### 其他 - .gitattributes:加 *.xml text eol=lf(OAT.xml CRLF 修复) ## 测试覆盖 ### 静态 UT(L1)- 6 工具全覆盖 | 测试 | 规则 | 结果 | |------|------|------| | test-init-opencode.sh | OC-01 ~ OC-07 | 98 passed | | test-init-claude.sh | CL-01 ~ CL-07 | 91 passed | | test-init-trae.sh | TR-01 ~ TR-07 | 84 passed | | test-init-cursor.sh | CU-01 ~ CU-07 | 84 passed | | test-init-copilot.sh | CO-01 ~ CO-07 | 84 passed | | test-init-codearts.sh | CA-01 ~ CA-07 | 91 passed | | test-init-install.sh | Check 1 ~ 6 | 267 passed | | test-safe-install.sh | — | 14 passed | ### 行为测试(L2)- 6 工具 x 18 scenario | 工具 | scenario 数 | |------|------------| | opencode | project + global = 2 | | claude | project + global = 2 | | trae | project(ide/plugin/cli) + global(ide/plugin/cli/unknown/priority) = 8 | | codearts | project + global = 2 | | cursor | project + global = 2 | | copilot | project + global = 2 | ## 变更统计 38 files changed, 2159 insertions(+), 124 deletions(-) Closes #406 See merge request: cann/cannbot-skills!581 | 4 天前 | |
feat: 全部插件适配 CodeArts 工具 Co-authored-by: jiangyixuan2<124090275@link.cuhk.edu.cn> # message auto-generated for no-merge-commit merge: !519 merge feat/codearts-support into master feat: 全部插件适配 CodeArts 工具 Created-by: jiangyixuan2 Commit-by: jiangyixuan2 Merged-by: cann-robot Description: ### 描述 CodeArts(华为云码道代码智能体)是华为云推出的 AI 编程工具,支持 JetBrains / VS Code IDE。全部 11 个插件的 init.sh 安装脚本和 10 个 quickstart.md 文档尚未适配 CodeArts,导致用户无法通过 bash init.sh project codearts 安装到 CodeArts。 ### 改动清单 #### 1. init.sh 脚本适配 CodeArts(11 个) | 插件 | 改动内容 | |------|---------| | ops-direct-invoke | 参数解析、config root、help 文本、Quick Start | | ops-direct-invoke-flash | 参数解析、config root、|| 链、help 文本 | | ops-registry-invoke | 参数解析、config root、help 文本、Quick Start | | ops-code-reviewer | 参数解析、config root、help 文本、Quick Start | | pypto-op-orchestrator | 参数解析、config root、help 文本、Quick Start | | tilelang-op-orchestrator | 参数解析、config root、help 文本、Quick Start | | torch-compile | 参数解析、config root、help 文本、Quick Start | | triton-op-generator | 参数解析、config root、|| 链、TARGET_MD_NAME、help 文本、Quick Start、错误提示 | | catlass-op-generator | 参数解析、config root、|| 链、help 文本、Quick Start | | model-infer-optimize | 参数解析、config root、|| 链、help 文本、Quick Start | | ascendc-ops-lab-developer | 参数解析、config root、|| 链、help 文本、Quick Start | 每个 init.sh 改动点(按文件结构不同,部分文件使用不同模式): 1. **参数解析**:opencode|claude|trae|cursor|copilot|codearts) TOOL="$arg" 2. **last_arg case / 错误提示**:包含 codearts 关键字 3. **全局 config root**:CONFIG_ROOT="$HOME/.codeartsdoer" 4. **项目 config root**:CONFIG_ROOT="$CONFIG_ROOT_BASE/.codeartsdoer"(或 $INSTALL_BASE/.codeartsdoer / $PLUGIN_ROOT/.codeartsdoer) 5. **AGENTS.md 选择逻辑**:三种模式均正确路由 codearts 到 AGENTS.md - Pattern A(if/elif/else):codearts 走 else 分支(与 opencode/cursor/copilot 一致) - Pattern B(|| 链):|| [ "$TOOL" = "codearts" ] - Pattern C(!= "claude"):codearts 天然匹配 6. **help 文本**:tool 描述、examples、installation paths、launch 说明 7. **Quick Start**:新增 elif [ "$TOOL" = "codearts" ] 分支 #### 2. init.sh 补全遗漏的 Copilot 支持(2 个) | 插件 | 问题 | 修复 | |------|------|------| | ascendc-ops-lab-developer | 原本完全不支持 copilot,PR 加 codearts 时遗漏 copilot | 补全 12 处:help 文本、Examples、Installation paths、launch 提示、参数解析 case、错误提示、global/project CONFIG_ROOT 分支、9 处 || 链、Quick Start 提示 | | catlass-op-generator | 原本支持 copilot/cursor(CONFIG_ROOT、help、case 都有),但 6 处 || 链只有 opencode/trae,PR 加 codearts 时遗漏 cursor/copilot | 补全 6 处 || 链为 opencode \|\| trae \|\| cursor \|\| copilot \|\| codearts,否则 cursor/copilot/codearts 会错误走 CLAUDE.md 分支 | #### 3. quickstart.md 文档适配(10 个) 每个文件新增: - CodeArts <details> 折叠安装说明(含项目级/全局级命令、验证方法、启动方式) - 安装路径表(CodeArts 项目级 / 全局级) - 前置条件工具列表补充 Copilot、CodeArts(原列表只到 Cursor) 补充总结/核心提示行中的工具列表: - model-infer-optimize/quickstart.md:TRAE / Cursor → TRAE / Cursor / Copilot / CodeArts - ops-code-reviewer/quickstart.md:opencode / claude / trae / cursor → 补 copilot / codearts - tilelang-op-orchestrator/quickstart.md:claude / trae / cursor → 补 copilot / codearts #### 4. .gitignore 补齐(11 个) 根级 .gitignore 已有 .codeartsdoer/。本次为 6 个缺少 .gitignore 的插件新建文件,其余 5 个已有 .gitignore 的插件补充 .codeartsdoer 条目: **新建 .gitignore(6 个)**: - plugins-official/catlass-op-generator/.gitignore(含 asc-devkit) - plugins-official/ops-direct-invoke-flash/.gitignore(含 asc-devkit、cann-samples) - plugins-official/tilelang-op-orchestrator/.gitignore(含 tilelang-ascend) - plugins-official/torch-compile/.gitignore - plugins-official/triton-op-generator/.gitignore - plugins-community/ascendc-ops-lab-developer/.gitignore(含 asc-devkit) 每个 .gitignore 统一包含 7 个工具配置目录(.opencode、.claude、.trae、.marscode、.traecli、.cursor、.codeartsdoer)及插件特定的外部仓库目录,与已有插件格式一致。 **补充已有 .gitignore(5 个)**: - plugins-official/ops-direct-invoke/.gitignore - plugins-official/ops-registry-invoke/.gitignore - plugins-official/ops-code-reviewer/.gitignore - plugins-official/pypto-op-orchestrator/.gitignore - plugins-official/model-infer-optimize/.gitignore #### 5. 项目文档适配(3 个) - README.md:支持工具列表、安装方式表、tool 参数说明 - docs/installation-guide.md:<tool> 参数列表补充 Copilot、CodeArts - CHANGELOG.md:工具支持列表补充 Copilot、CodeArts ### 安装产物验证(ops-direct-invoke + codearts) | 检查项 | 结果 | |--------|------| | 顶层结构 | skills/ agents/ workflows cannbot-manifest.json 齐全 | | skills 链接 | 19 个全部有效(14 ops + 5 infra) | | agents 链接 | 4 个全部有效 | | workflows 链接 | 指向插件 workflows/,内容完整 | | manifest 字段 | brand/version/team/level/tool/installed_skills/installed_agents 齐全 | | AGENTS.md 位置 | 项目根目录(codearts/opencode 项目级正确位置) | | manifest brand_dir | 路径指向 .codeartsdoer、tool=codearts、level=project | ### 使用方式 bash # 项目级安装 cd cannbot-skills/plugins-official/ops-direct-invoke bash init.sh project codearts # 全局级安装 bash init.sh global codearts # 查看帮助 bash init.sh --help 安装后生成 .codeartsdoer/ 目录(项目级)或 ~/.codeartsdoer/ 目录(全局级),包含 skills/、agents/ 和 AGENTS.md,可被 CodeArts 自动发现。 See merge request: cann/cannbot-skills!519 | 10 天前 | |
fix(docs): 清理全仓库 ops-lab/ 历史废弃目录的残留引用 Co-authored-by: jiangyixuan2<124090275@link.cuhk.edu.cn> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !645 merge fix/issue-435-remove-ops-lab-refs into master fix(docs): 清理全仓库 ops-lab/ 历史废弃目录的残留引用 Created-by: jiangyixuan2 Commit-by: gitcode-bot;jiangyixuan2 Merged-by: cann-robot Description: ### 描述 ops-lab/ 为历史废弃目录,此前已被整体移除,但全仓库仍有大量文件残留对该目录的引用(目录结构图、路径引用、扫描配置、脚本逻辑等),误导用户。本次统一清理这些失效引用。 ### 修改范围 15 个文件,+23/-32 行。 #### 一、目录结构图与规范表(删除 ops-lab/ 条目) | 文件 | 修改 | |------|------| | README.md | 删除目录结构图中 ├── ops-lab/ 行 | | AGENTS.md | 删除目录结构图中 ├── ops-lab/ 行 | | docs/architecture-design.md | 删除目录结构图中 ├── ops-lab/ 行 | | docs/STANDARDS.md | 删除目录规范表中 ops-lab/ 行 | | docs/CONTRIBUTING.md | 删除"实验性 Skill"整行(原指向 ops-lab/)| #### 二、ST 测试指南 | 文件 | 修改 | |------|------| | tests/system/docs/ST_DESIGN_AND_DEVELOPMENT_GUIDE.md | 删除 skill_dirs 配置中 "ops-lab";§3.9 标题由 ops-lab/ 改为 ops/ — TileLang 算子开发,5 个 TileLang skill 路径由 ops-lab/tilelang/skills/xxx 改为实际位置 ops/xxx | #### 三、其他文档 | 文件 | 修改 | |------|------| | ops/ascendc-registry-invoke-template/references/binary-json-dtype-guide.md | 删除"ops-lab 模板不适用"说明 | | plugins-community/tilelang2ascendc-ops-generator/quickstart.md | 修正错误目录名 ascendc-ops-lab-developer → tilelang2ascendc-ops-generator | #### 四、代码与配置(移除 ops-lab 扫描目录与处理分支) | 文件 | 修改 | |------|------| | infra/cannbot-skill-reviewer/scripts/review_skill.py | 路径前缀元组移除 "ops-lab/" | | plugins-community/install-helper/scripts/gen-embedded.cjs | SCAN_DIRS 移除 "ops-lab" | | plugins-community/install-helper/src/config/repository.yaml | scanDirs 移除 - ops-lab | | plugins-community/install-helper/src/core/scanner.ts | 默认 skillDirs 移除 "ops-lab"(2 处)| | plugins-community/tilelang2ascendc-ops-generator/init.sh | 删除 ops-lab 目录检查块、移除 SHARED_SKILL_ROOT_OPS_LAB 变量及 5 个 for 循环引用 | | tests/run-tests.sh | 注释移除 ops-lab/*/skills/ 模式 | #### 五、变更日志 | 文件 | 修改 | |------|------| | CHANGELOG.md | 新增 2026-07-20 清理 ops-lab 记录(历史记录中的 ops-lab 引用保持原样)| ## 关联 Issue Issue [#435](https://gitcode.com/cann/cannbot-skills/issues/435) See merge request: cann/cannbot-skills!645 | 2 小时前 | |
【collaborative-agent-kernel-evolution】新增 CAKE2 进化式 AscendC 算子生成 Team(仅 Vector 算子) Co-authored-by: Junyifannnn<fan.junyi@huawei.com> # message auto-generated for no-merge-commit merge: !313 merge feat/add-cake-plugin into master 【collaborative-agent-kernel-evolution】新增 CAKE2 进化式 AscendC 算子生成 Team(仅 Vector 算子) Created-by: gcw_P2Mh5H1S Commit-by: Junyifannnn Merged-by: cann-robot Description: ## 描述 **新特性**: 【collaborative-agent-kernel-evolution】新增 plugins-community/collaborative-agent-kernel-evolution —— 进化式 AscendC 算子生成 Team(仅 Vector 算子)。 含 3 个 Agent 与 19 个内置 Skill,覆盖「算子描述生成 → PyTorch 参考 → functional 转换 → AscendDSL baseline → DSL lowering 到 AscendC → 编译评估 →(可选)进化式多变体性能优化」全流程: - cake(primary):标准单算子生成主流程 - cake-evo(primary):并行多变体进化优化 - cake-partial(subagent):被 cake-evo 调度的半程生成子任务 自包含单插件(目录 plugins-community/collaborative-agent-kernel-evolution/,对齐 ops-easyasc-dsl 自包含形态) ## 关联的Issue 关联 Issue [#230](https://gitcode.com/cann/cannbot-skills/issues/230) ## 测试 - **L1 结构门禁 skill_validator.py**:19 skills + 3 agents **0 error**(warn-only:6× S-CON-05、2× S-CON-06「缺错误处理章节」,不阻断) - **tests/run-tests.sh --fast**:10 项全过(初次 test-line-endings 报 6 个 CRLF 文件,均为插件内 vendored 外部文档,已全部转 LF,复跑 PASS) ## 文档更新 - 新增 plugins-community/collaborative-agent-kernel-evolution/(含 README / docs / tests) - 根 .claude-plugin/marketplace.json 注册 cake(source ./plugins-community/collaborative-agent-kernel-evolution,category development) - 更新根 CHANGELOG.md(2026-06-02 条目) ## 类型标签 - [x] 🌟 新特性 ## AscendC 算子评测结果 | Operator | Job ID | Cases | Score | Avg speedup | Rel path | |---|---|---:|---:|---:|---|---| | apply_rotary_pos_emb | job_940a45830a2f | 20/20 | 63.339075 | 0.355671 | level2/apply_rotary_pos_emb | | softmax | job_5ec935012955 | 20/20 | 68.015671 | 0.661441 | level2/softmax | | topk | job_bc7b660e83a6 | 20/20 | 54.233631 | 0.119558 | level3/top_k | ## apply_rotary_pos_emb - Job: job_940a45830a2f; operator: ApplyRotaryPosEmb; cases: 20/20; score: 63.339075; avg_speedup: 0.355671. | # | Case ID | Elapsed us | Baseline us | HW limit us | Speedup | Speedup vs HW | Perf score | |---:|---|---:|---:|---:|---:|---:|---:| | 1 | level2/apply_rotary_pos_emb_1 | 182.06 | 89.56 | 35.02 | 0.491926 | 0.192354 | 0.270563 | | 2 | level2/apply_rotary_pos_emb_2 | 779.98 | 113.24 | 59.22 | 0.145183 | 0.075925 | 0.069723 | | 3 | level2/apply_rotary_pos_emb_3 | 125.34 | 78.24 | 14.56 | 0.624222 | 0.116164 | 0.365012 | | 4 | level2/apply_rotary_pos_emb_4 | 140.26 | 246.2 | 32.77 | 1.755312 | 0.233638 | 0.665057 | | 5 | level2/apply_rotary_pos_emb_5 | 3001.06 | 391.07 | 140.36 | 0.130311 | 0.04677 | 0.080578 | | 6 | level2/apply_rotary_pos_emb_6 | 654.54 | 347.8 | 34.78 | 0.531366 | 0.053137 | 0.335578 | | 7 | level2/apply_rotary_pos_emb_7 | 146.94 | 73.08 | 23.1 | 0.497346 | 0.157207 | 0.287539 | | 8 | level2/apply_rotary_pos_emb_8 | 360.54 | 74.4 | 26.64 | 0.206357 | 0.073889 | 0.125138 | | 9 | level2/apply_rotary_pos_emb_9 | 178.12 | 198.1 | 19.81 | 1.112172 | 0.111217 | 0.529679 | | 10 | level2/apply_rotary_pos_emb_10 | 274.06 | 163 | 16.3 | 0.59476 | 0.059476 | 0.362706 | | 11 | level2/apply_rotary_pos_emb_11 | 1398.00 | 186.7 | 98.62 | 0.133548 | 0.070544 | 0.063483 | | 12 | level2/apply_rotary_pos_emb_12 | 896.26 | 48 | 4.8 | 0.053556 | 0.005356 | 0.04622 | | 13 | level2/apply_rotary_pos_emb_13 | 595.38 | 425.07 | 100 | 0.713947 | 0.16796 | 0.396209 | | 14 | level2/apply_rotary_pos_emb_14 | 27.18 | 10 | 1 | 0.367918 | 0.036792 | 0.255827 | | 15 | level2/apply_rotary_pos_emb_15 | 86.22 | 21.7 | 2.17 | 0.251682 | 0.025168 | 0.18855 | | 16 | level2/apply_rotary_pos_emb_16 | 82.48 | 41.34 | 4.17 | 0.501212 | 0.050558 | 0.321874 | | 17 | level2/apply_rotary_pos_emb_17 | 5265.48 | 2621.60 | 262.16 | 0.497884 | 0.049788 | 0.320456 | | 18 | level2/apply_rotary_pos_emb_18 | 97.2 | 43.9 | 4.39 | 0.451646 | 0.045165 | 0.298594 | | 19 | level2/apply_rotary_pos_emb_19 | 27.12 | 10 | 1 | 0.368732 | 0.036873 | 0.256264 | | 20 | level2/apply_rotary_pos_emb_20 | 1260.70 | 183.04 | 54.04 | 0.145189 | 0.042865 | 0.096581 | ## softmax - Job: job_5ec935012955; operator: Softmax; cases: 20/20; score: 68.015671; avg_speedup: 0.661441. | # | Case ID | Elapsed us | Baseline us | HW limit us | Speedup | Speedup vs HW | Perf score | |---:|---|---:|---:|---:|---:|---:|---:| | 1 | level2/softmax_1 | 19.42 | 15.7 | 1.57 | 0.808445 | 0.080844 | 0.441839 | | 2 | level2/softmax_2 | 30.96 | 37.98 | 8.74 | 1.226744 | 0.2823 | 0.568208 | | 3 | level2/softmax_3 | 104.2 | 91.76 | 25.17 | 0.880614 | 0.241555 | 0.457286 | | 4 | level2/softmax_4 | 2175.34 | 1006.60 | 100.66 | 0.462732 | 0.046273 | 0.303943 | | 5 | level2/softmax_5 | 458.2 | 422.73 | 139.81 | 0.922588 | 0.305129 | 0.470506 | | 6 | level2/softmax_6 | 1907.08 | 786.04 | 101.69 | 0.412169 | 0.053322 | 0.274868 | | 7 | level2/softmax_7 | 22.42 | 20.04 | 3.14 | 0.893845 | 0.140054 | 0.467109 | | 8 | level2/softmax_8 | 61.92 | 58.12 | 17.49 | 0.93863 | 0.282461 | 0.477663 | | 9 | level2/softmax_9 | 1044.48 | 412.79 | 50.08 | 0.395211 | 0.047947 | 0.267266 | | 10 | level2/softmax_10 | 21.82 | 14.2 | 1.55 | 0.650779 | 0.071036 | 0.384265 | | 11 | level2/softmax_11 | 2669.88 | 1063.10 | 108.09 | 0.398183 | 0.040485 | 0.271557 | | 12 | level2/softmax_12 | 61.3 | 62.58 | 14.59 | 1.020881 | 0.23801 | 0.506758 | | 13 | level2/softmax_13 | 2246.58 | 30 | 3 | 0.013354 | 0.001335 | 0.011891 | | 14 | level2/softmax_14 | 238.52 | 227.3 | 22.73 | 0.95296 | 0.095296 | 0.486654 | | 15 | level2/softmax_15 | 30.6 | 30.46 | 4.56 | 0.995425 | 0.14902 | 0.498652 | | 16 | level2/softmax_16 | 115.28 | 15.7 | 1.57 | 0.13619 | 0.013619 | 0.110529 | | 17 | level2/softmax_17 | 19.98 | 18.64 | 4.35 | 0.932933 | 0.217718 | 0.477607 | | 18 | level2/softmax_18 | 24.9 | 20.12 | 3.14 | 0.808032 | 0.126104 | 0.438307 | | 19 | level2/softmax_19 | 119.64 | 31.3 | 3.13 | 0.261618 | 0.026162 | 0.194706 | | 20 | level2/softmax_20 | 1870.84 | 219.8 | 21.98 | 0.117487 | 0.011749 | 0.096654 | ## topk - Job: job_bc7b660e83a6; operator: TopK; cases: 20/20; score: 54.233631; avg_speedup: 0.119558. | # | Case ID | Elapsed us | Baseline us | HW limit us | Speedup | Speedup vs HW | Perf score | |---:|---|---:|---:|---:|---:|---:|---:| | 1 | level3/top_k_1 | 2431.10 | 10.9 | 1.09 | 0.004484 | 0.000448 | 0.004021 | | 2 | level3/top_k_2 | 279.02 | 21.8 | 2.18 | 0.078131 | 0.007813 | 0.066181 | | 3 | level3/top_k_3 | 995.88 | 174.8 | 17.48 | 0.175523 | 0.017552 | 0.13852 | | 4 | level3/top_k_4 | 281395.82 | 1398.10 | 139.81 | 0.004968 | 0.000497 | 0.004454 | | 5 | level3/top_k_5 | 2508.46 | 1398.10 | 139.81 | 0.557354 | 0.055735 | 0.346929 | | 6 | level3/top_k_6 | 6939698.16 | 1398.10 | 139.81 | 0.000201 | 2.015e-05 | 0.000181 | | 7 | level3/top_k_7 | 74.9 | 10.9 | 1.09 | 0.145527 | 0.014553 | 0.117316 | | 8 | level3/top_k_8 | 3213.32 | 21.5 | 2.15 | 0.006691 | 0.000669 | 0.00599 | | 9 | level3/top_k_9 | 97.66 | 13.8 | 1.38 | 0.141307 | 0.014131 | 0.114259 | | 10 | level3/top_k_10 | 95309.40 | 1035.20 | 103.52 | 0.010861 | 0.001086 | 0.009691 | | 11 | level3/top_k_11 | 104.16 | 10.9 | 1.09 | 0.104647 | 0.010465 | 0.086906 | | 12 | level3/top_k_12 | 111.12 | 22.8 | 2.28 | 0.205184 | 0.020518 | 0.158627 | | 13 | level3/top_k_13 | 4755.26 | 14.3 | 1.43 | 0.003007 | 0.000301 | 0.0027 | | 14 | level3/top_k_14 | 2448.26 | 20.8 | 2.08 | 0.008496 | 0.00085 | 0.007595 | | 15 | level3/top_k_15 | 19245.22 | 170.5 | 17.05 | 0.008859 | 0.000886 | 0.007917 | | 16 | level3/top_k_16 | 211.92 | 126.8 | 12.68 | 0.598339 | 0.059834 | 0.364182 | | 17 | level3/top_k_17 | 80.84 | 21.9 | 2.19 | 0.270905 | 0.027091 | 0.200386 | | 18 | level3/top_k_18 | 6133.36 | 24.4 | 2.44 | 0.003978 | 0.000398 | 0.003569 | | 19 | level3/top_k_19 | 184.64 | 10.9 | 1.09 | 0.059034 | 0.005903 | 0.050734 | | 20 | level3/top_k_20 | 5940.70 | 21.8 | 2.18 | 0.00367 | 0.000367 | 0.003293 | ## 未来三个月的计划 ### 第 1 个月 —— 完善 补全 reduce类,数学函数类,排序类算子的生成与优化skill和harness ### 第 2 个月 —— 拓展CV融合算子 增加对CV类融合算子如quant_batch_matmul,grouped_matmul_swiglu_quant等的生成适配,保障生成精度 ### 第 3 个月 —— 拓展attention算子 增加对attention类算子的适配 See merge request: cann/cannbot-skills!313 | 2 小时前 | |
Initial commit | 3 个月前 | |
【collaborative-agent-kernel-evolution】新增 CAKE2 进化式 AscendC 算子生成 Team(仅 Vector 算子) Co-authored-by: Junyifannnn<fan.junyi@huawei.com> # message auto-generated for no-merge-commit merge: !313 merge feat/add-cake-plugin into master 【collaborative-agent-kernel-evolution】新增 CAKE2 进化式 AscendC 算子生成 Team(仅 Vector 算子) Created-by: gcw_P2Mh5H1S Commit-by: Junyifannnn Merged-by: cann-robot Description: ## 描述 **新特性**: 【collaborative-agent-kernel-evolution】新增 plugins-community/collaborative-agent-kernel-evolution —— 进化式 AscendC 算子生成 Team(仅 Vector 算子)。 含 3 个 Agent 与 19 个内置 Skill,覆盖「算子描述生成 → PyTorch 参考 → functional 转换 → AscendDSL baseline → DSL lowering 到 AscendC → 编译评估 →(可选)进化式多变体性能优化」全流程: - cake(primary):标准单算子生成主流程 - cake-evo(primary):并行多变体进化优化 - cake-partial(subagent):被 cake-evo 调度的半程生成子任务 自包含单插件(目录 plugins-community/collaborative-agent-kernel-evolution/,对齐 ops-easyasc-dsl 自包含形态) ## 关联的Issue 关联 Issue [#230](https://gitcode.com/cann/cannbot-skills/issues/230) ## 测试 - **L1 结构门禁 skill_validator.py**:19 skills + 3 agents **0 error**(warn-only:6× S-CON-05、2× S-CON-06「缺错误处理章节」,不阻断) - **tests/run-tests.sh --fast**:10 项全过(初次 test-line-endings 报 6 个 CRLF 文件,均为插件内 vendored 外部文档,已全部转 LF,复跑 PASS) ## 文档更新 - 新增 plugins-community/collaborative-agent-kernel-evolution/(含 README / docs / tests) - 根 .claude-plugin/marketplace.json 注册 cake(source ./plugins-community/collaborative-agent-kernel-evolution,category development) - 更新根 CHANGELOG.md(2026-06-02 条目) ## 类型标签 - [x] 🌟 新特性 ## AscendC 算子评测结果 | Operator | Job ID | Cases | Score | Avg speedup | Rel path | |---|---|---:|---:|---:|---|---| | apply_rotary_pos_emb | job_940a45830a2f | 20/20 | 63.339075 | 0.355671 | level2/apply_rotary_pos_emb | | softmax | job_5ec935012955 | 20/20 | 68.015671 | 0.661441 | level2/softmax | | topk | job_bc7b660e83a6 | 20/20 | 54.233631 | 0.119558 | level3/top_k | ## apply_rotary_pos_emb - Job: job_940a45830a2f; operator: ApplyRotaryPosEmb; cases: 20/20; score: 63.339075; avg_speedup: 0.355671. | # | Case ID | Elapsed us | Baseline us | HW limit us | Speedup | Speedup vs HW | Perf score | |---:|---|---:|---:|---:|---:|---:|---:| | 1 | level2/apply_rotary_pos_emb_1 | 182.06 | 89.56 | 35.02 | 0.491926 | 0.192354 | 0.270563 | | 2 | level2/apply_rotary_pos_emb_2 | 779.98 | 113.24 | 59.22 | 0.145183 | 0.075925 | 0.069723 | | 3 | level2/apply_rotary_pos_emb_3 | 125.34 | 78.24 | 14.56 | 0.624222 | 0.116164 | 0.365012 | | 4 | level2/apply_rotary_pos_emb_4 | 140.26 | 246.2 | 32.77 | 1.755312 | 0.233638 | 0.665057 | | 5 | level2/apply_rotary_pos_emb_5 | 3001.06 | 391.07 | 140.36 | 0.130311 | 0.04677 | 0.080578 | | 6 | level2/apply_rotary_pos_emb_6 | 654.54 | 347.8 | 34.78 | 0.531366 | 0.053137 | 0.335578 | | 7 | level2/apply_rotary_pos_emb_7 | 146.94 | 73.08 | 23.1 | 0.497346 | 0.157207 | 0.287539 | | 8 | level2/apply_rotary_pos_emb_8 | 360.54 | 74.4 | 26.64 | 0.206357 | 0.073889 | 0.125138 | | 9 | level2/apply_rotary_pos_emb_9 | 178.12 | 198.1 | 19.81 | 1.112172 | 0.111217 | 0.529679 | | 10 | level2/apply_rotary_pos_emb_10 | 274.06 | 163 | 16.3 | 0.59476 | 0.059476 | 0.362706 | | 11 | level2/apply_rotary_pos_emb_11 | 1398.00 | 186.7 | 98.62 | 0.133548 | 0.070544 | 0.063483 | | 12 | level2/apply_rotary_pos_emb_12 | 896.26 | 48 | 4.8 | 0.053556 | 0.005356 | 0.04622 | | 13 | level2/apply_rotary_pos_emb_13 | 595.38 | 425.07 | 100 | 0.713947 | 0.16796 | 0.396209 | | 14 | level2/apply_rotary_pos_emb_14 | 27.18 | 10 | 1 | 0.367918 | 0.036792 | 0.255827 | | 15 | level2/apply_rotary_pos_emb_15 | 86.22 | 21.7 | 2.17 | 0.251682 | 0.025168 | 0.18855 | | 16 | level2/apply_rotary_pos_emb_16 | 82.48 | 41.34 | 4.17 | 0.501212 | 0.050558 | 0.321874 | | 17 | level2/apply_rotary_pos_emb_17 | 5265.48 | 2621.60 | 262.16 | 0.497884 | 0.049788 | 0.320456 | | 18 | level2/apply_rotary_pos_emb_18 | 97.2 | 43.9 | 4.39 | 0.451646 | 0.045165 | 0.298594 | | 19 | level2/apply_rotary_pos_emb_19 | 27.12 | 10 | 1 | 0.368732 | 0.036873 | 0.256264 | | 20 | level2/apply_rotary_pos_emb_20 | 1260.70 | 183.04 | 54.04 | 0.145189 | 0.042865 | 0.096581 | ## softmax - Job: job_5ec935012955; operator: Softmax; cases: 20/20; score: 68.015671; avg_speedup: 0.661441. | # | Case ID | Elapsed us | Baseline us | HW limit us | Speedup | Speedup vs HW | Perf score | |---:|---|---:|---:|---:|---:|---:|---:| | 1 | level2/softmax_1 | 19.42 | 15.7 | 1.57 | 0.808445 | 0.080844 | 0.441839 | | 2 | level2/softmax_2 | 30.96 | 37.98 | 8.74 | 1.226744 | 0.2823 | 0.568208 | | 3 | level2/softmax_3 | 104.2 | 91.76 | 25.17 | 0.880614 | 0.241555 | 0.457286 | | 4 | level2/softmax_4 | 2175.34 | 1006.60 | 100.66 | 0.462732 | 0.046273 | 0.303943 | | 5 | level2/softmax_5 | 458.2 | 422.73 | 139.81 | 0.922588 | 0.305129 | 0.470506 | | 6 | level2/softmax_6 | 1907.08 | 786.04 | 101.69 | 0.412169 | 0.053322 | 0.274868 | | 7 | level2/softmax_7 | 22.42 | 20.04 | 3.14 | 0.893845 | 0.140054 | 0.467109 | | 8 | level2/softmax_8 | 61.92 | 58.12 | 17.49 | 0.93863 | 0.282461 | 0.477663 | | 9 | level2/softmax_9 | 1044.48 | 412.79 | 50.08 | 0.395211 | 0.047947 | 0.267266 | | 10 | level2/softmax_10 | 21.82 | 14.2 | 1.55 | 0.650779 | 0.071036 | 0.384265 | | 11 | level2/softmax_11 | 2669.88 | 1063.10 | 108.09 | 0.398183 | 0.040485 | 0.271557 | | 12 | level2/softmax_12 | 61.3 | 62.58 | 14.59 | 1.020881 | 0.23801 | 0.506758 | | 13 | level2/softmax_13 | 2246.58 | 30 | 3 | 0.013354 | 0.001335 | 0.011891 | | 14 | level2/softmax_14 | 238.52 | 227.3 | 22.73 | 0.95296 | 0.095296 | 0.486654 | | 15 | level2/softmax_15 | 30.6 | 30.46 | 4.56 | 0.995425 | 0.14902 | 0.498652 | | 16 | level2/softmax_16 | 115.28 | 15.7 | 1.57 | 0.13619 | 0.013619 | 0.110529 | | 17 | level2/softmax_17 | 19.98 | 18.64 | 4.35 | 0.932933 | 0.217718 | 0.477607 | | 18 | level2/softmax_18 | 24.9 | 20.12 | 3.14 | 0.808032 | 0.126104 | 0.438307 | | 19 | level2/softmax_19 | 119.64 | 31.3 | 3.13 | 0.261618 | 0.026162 | 0.194706 | | 20 | level2/softmax_20 | 1870.84 | 219.8 | 21.98 | 0.117487 | 0.011749 | 0.096654 | ## topk - Job: job_bc7b660e83a6; operator: TopK; cases: 20/20; score: 54.233631; avg_speedup: 0.119558. | # | Case ID | Elapsed us | Baseline us | HW limit us | Speedup | Speedup vs HW | Perf score | |---:|---|---:|---:|---:|---:|---:|---:| | 1 | level3/top_k_1 | 2431.10 | 10.9 | 1.09 | 0.004484 | 0.000448 | 0.004021 | | 2 | level3/top_k_2 | 279.02 | 21.8 | 2.18 | 0.078131 | 0.007813 | 0.066181 | | 3 | level3/top_k_3 | 995.88 | 174.8 | 17.48 | 0.175523 | 0.017552 | 0.13852 | | 4 | level3/top_k_4 | 281395.82 | 1398.10 | 139.81 | 0.004968 | 0.000497 | 0.004454 | | 5 | level3/top_k_5 | 2508.46 | 1398.10 | 139.81 | 0.557354 | 0.055735 | 0.346929 | | 6 | level3/top_k_6 | 6939698.16 | 1398.10 | 139.81 | 0.000201 | 2.015e-05 | 0.000181 | | 7 | level3/top_k_7 | 74.9 | 10.9 | 1.09 | 0.145527 | 0.014553 | 0.117316 | | 8 | level3/top_k_8 | 3213.32 | 21.5 | 2.15 | 0.006691 | 0.000669 | 0.00599 | | 9 | level3/top_k_9 | 97.66 | 13.8 | 1.38 | 0.141307 | 0.014131 | 0.114259 | | 10 | level3/top_k_10 | 95309.40 | 1035.20 | 103.52 | 0.010861 | 0.001086 | 0.009691 | | 11 | level3/top_k_11 | 104.16 | 10.9 | 1.09 | 0.104647 | 0.010465 | 0.086906 | | 12 | level3/top_k_12 | 111.12 | 22.8 | 2.28 | 0.205184 | 0.020518 | 0.158627 | | 13 | level3/top_k_13 | 4755.26 | 14.3 | 1.43 | 0.003007 | 0.000301 | 0.0027 | | 14 | level3/top_k_14 | 2448.26 | 20.8 | 2.08 | 0.008496 | 0.00085 | 0.007595 | | 15 | level3/top_k_15 | 19245.22 | 170.5 | 17.05 | 0.008859 | 0.000886 | 0.007917 | | 16 | level3/top_k_16 | 211.92 | 126.8 | 12.68 | 0.598339 | 0.059834 | 0.364182 | | 17 | level3/top_k_17 | 80.84 | 21.9 | 2.19 | 0.270905 | 0.027091 | 0.200386 | | 18 | level3/top_k_18 | 6133.36 | 24.4 | 2.44 | 0.003978 | 0.000398 | 0.003569 | | 19 | level3/top_k_19 | 184.64 | 10.9 | 1.09 | 0.059034 | 0.005903 | 0.050734 | | 20 | level3/top_k_20 | 5940.70 | 21.8 | 2.18 | 0.00367 | 0.000367 | 0.003293 | ## 未来三个月的计划 ### 第 1 个月 —— 完善 补全 reduce类,数学函数类,排序类算子的生成与优化skill和harness ### 第 2 个月 —— 拓展CV融合算子 增加对CV类融合算子如quant_batch_matmul,grouped_matmul_swiglu_quant等的生成适配,保障生成精度 ### 第 3 个月 —— 拓展attention算子 增加对attention类算子的适配 See merge request: cann/cannbot-skills!313 | 2 小时前 | |
fix(docs): 清理全仓库 ops-lab/ 历史废弃目录的残留引用 Co-authored-by: jiangyixuan2<124090275@link.cuhk.edu.cn> Co-authored-by: gitcode-bot<noreply@gitcode.com> # message auto-generated for no-merge-commit merge: !645 merge fix/issue-435-remove-ops-lab-refs into master fix(docs): 清理全仓库 ops-lab/ 历史废弃目录的残留引用 Created-by: jiangyixuan2 Commit-by: gitcode-bot;jiangyixuan2 Merged-by: cann-robot Description: ### 描述 ops-lab/ 为历史废弃目录,此前已被整体移除,但全仓库仍有大量文件残留对该目录的引用(目录结构图、路径引用、扫描配置、脚本逻辑等),误导用户。本次统一清理这些失效引用。 ### 修改范围 15 个文件,+23/-32 行。 #### 一、目录结构图与规范表(删除 ops-lab/ 条目) | 文件 | 修改 | |------|------| | README.md | 删除目录结构图中 ├── ops-lab/ 行 | | AGENTS.md | 删除目录结构图中 ├── ops-lab/ 行 | | docs/architecture-design.md | 删除目录结构图中 ├── ops-lab/ 行 | | docs/STANDARDS.md | 删除目录规范表中 ops-lab/ 行 | | docs/CONTRIBUTING.md | 删除"实验性 Skill"整行(原指向 ops-lab/)| #### 二、ST 测试指南 | 文件 | 修改 | |------|------| | tests/system/docs/ST_DESIGN_AND_DEVELOPMENT_GUIDE.md | 删除 skill_dirs 配置中 "ops-lab";§3.9 标题由 ops-lab/ 改为 ops/ — TileLang 算子开发,5 个 TileLang skill 路径由 ops-lab/tilelang/skills/xxx 改为实际位置 ops/xxx | #### 三、其他文档 | 文件 | 修改 | |------|------| | ops/ascendc-registry-invoke-template/references/binary-json-dtype-guide.md | 删除"ops-lab 模板不适用"说明 | | plugins-community/tilelang2ascendc-ops-generator/quickstart.md | 修正错误目录名 ascendc-ops-lab-developer → tilelang2ascendc-ops-generator | #### 四、代码与配置(移除 ops-lab 扫描目录与处理分支) | 文件 | 修改 | |------|------| | infra/cannbot-skill-reviewer/scripts/review_skill.py | 路径前缀元组移除 "ops-lab/" | | plugins-community/install-helper/scripts/gen-embedded.cjs | SCAN_DIRS 移除 "ops-lab" | | plugins-community/install-helper/src/config/repository.yaml | scanDirs 移除 - ops-lab | | plugins-community/install-helper/src/core/scanner.ts | 默认 skillDirs 移除 "ops-lab"(2 处)| | plugins-community/tilelang2ascendc-ops-generator/init.sh | 删除 ops-lab 目录检查块、移除 SHARED_SKILL_ROOT_OPS_LAB 变量及 5 个 for 循环引用 | | tests/run-tests.sh | 注释移除 ops-lab/*/skills/ 模式 | #### 五、变更日志 | 文件 | 修改 | |------|------| | CHANGELOG.md | 新增 2026-07-20 清理 ops-lab 记录(历史记录中的 ops-lab 引用保持原样)| ## 关联 Issue Issue [#435](https://gitcode.com/cann/cannbot-skills/issues/435) See merge request: cann/cannbot-skills!645 | 2 小时前 | |
feat(install-helper): 跨平台声明式安装引擎(Linux/macOS/Windows)+ npm 多包分发 + 安全性修复 + 测试用例覆盖 Co-authored-by: yanhf<yanhaifeng5@huawei.com> # message auto-generated for no-merge-commit merge: !489 merge master into master feat(install-helper): 跨平台声明式安装引擎(Linux/macOS/Windows)+ npm 多包分发 + 安全性修复 + 测试用例覆盖 Created-by: yanhf Commit-by: yanhf Merged-by: cann-robot Description: ## 描述 本 PR 对 install-helper 工具进行了系统性重构,实现跨平台声明式安装、npm 多包分发、安全性修复和代码质量全面提升,并补充完善的测试覆盖。共 98 个 commit,修改 74 个文件,+4301 / -753 行。 ### 新特性 #### 1. 声明式 Plugin 安装引擎(plugin-installer.ts) - 新增 plugin-installer.ts,通过 Node.js 原生执行安装(symlink + 外部仓库克隆 + manifest 写入),无需 bash/sh - 安装清单统一到 plugins.d/*.yml,不再侵入插件目录(删除 10 个 plugin-manifest.json) - PluginEntry 类型合并安装清单字段(installSkills/installAgents/configFile/externalRepos/configRootConfigLink/configRootLink) - 外部仓库双 symlink(configRoot + 项目根目录)+ workflows symlink,通过 configRootConfigLink/configRootLink 字段精确控制,与 init.sh 行为完全一致 - symlink → copy 自动降级(Windows 非 Developer Mode) - installer.ts 优先走 manifest 引擎,无安装清单时 fallback 到 init.sh - **per-plugin manifest**:每个插件写入独立的 ${pluginId}-manifest.json,多插件安装不再互相覆盖 #### 2. npm optionalDependencies 跨平台分发 - 主包 @cannbot-ai/install-helper 包含 wrapper 脚本 + JS fallback - 5 个平台子包 @cannbot-ai/install-helper-{linux/darwin/windows}-{x64/arm64},Bun 编译独立二进制 - bin/install-helper.js wrapper:优先执行平台二进制,fallback 到 JS - npm 自动安装匹配平台的子包(os+cpu 约束) #### 3. 跨平台零依赖安装 + 通道选择 - install.sh(Linux/macOS):从 npm registry 下载 tarball 解压二进制,无需 Node.js - macOS 兼容:grep -oP → grep -o + sed,/dev/tty 直接重定向,codesign 本地重签名 - 下载进度条(--progress-bar) - curl | bash 管道模式下通过 /dev/tty 重定向自动启动向导 - PATH 自动写入 .bashrc/.zshrc(去重 + RC 文件存在性检查) - npmjs.org + npmmirror 双源镜像回退 - install.ps1(Windows 原生):PowerShell 脚本,通过 gitcode raw 分发(iwr -useb | iex) - TLS 1.2 设置(PS 5.1 兼容),$ProgressPreference = "SilentlyContinue" 解决下载性能问题 - $ErrorActionPreference = "Stop" + 全局 trap 错误捕获(防止窗口闪退) - ExecutionPolicy 自动修复(Restricted → RemoteSigned,CurrentUser scope) - 镜像回退 + 错误列表收集 - **通道选择机制**:用户显式指定安装通道,不再跨 tag 比较 semver - latest(默认):仅查询 latest tag - beta:仅查询 beta tag - 显式版本号:直接使用,跳过查询 - install.sh: bash -s -- beta,install.ps1: $env:CANNBOT_CHANNEL = "beta" - **版本检查跳过下载**:本地版本与远程版本相同时跳过下载(install.sh Path A + Path B + install.ps1),秒级启动 #### 4. Bun 编译独立二进制 - scripts/build-npm-packages.cjs:一键构建 5 个平台子包 + 自动同步 optionalDependencies - scripts/publish-npm.cjs:一键发布子包(间隔 12s)+ 主包 - 构建时注入版本号(--define INSTALL_HELPER_VERSION) - i18n locale + plugins 数据内嵌到二进制(embedded-plugins.json) - build-binaries.sh:改用 gen-embedded.cjs 生成完整 embedded-plugins.json(删除覆盖完整输出的内联 JS) #### 5. Plugin 安装改为单选 - checkbox(多选)改为 select(单选),每个插件有独立 AGENTS.md,禁止同时安装多个 ### Bug 修复 #### 安全性(P0) - **S1**:parseFrontmatter 验证 skill name 仅允许 [a-zA-Z0-9._-],防止路径遍历 - **S2**:symlink 安装时 realpathSync 移到 unlinkSync 之前,防止源损坏时丢失已有链接 - **S3**:uninstall 增加 isSafePath 过滤(path.sep 替代硬编码 /),仅允许 configRoot/installPath 范围内路径被删除 - **S4**:createBackup 失败时中止安装并警告,不再静默覆盖 AGENTS.md #### 错误处理(P1) - **E1**:git pull 失败时 warn 提示使用缓存数据 - **E2**:config/record/YAML 解析失败时 warn 提示文件损坏 - **E3**:record 写入失败时 warn 提示卸载可能不可用 - **E4**:新增 atomicWriteFileSync(write-temp + rename),config/record/cache 改为原子写 - **E5**:install/update 取消操作统一输出提示 #### 跨平台(P0/P1) - **C1**:install.sh grep -oP → grep -o + sed(macOS BSD grep 兼容) - **C2**:uninstall.ts isSafePath base + "/" → base + sep(Windows 路径分隔符) - **C3**:installer.ts findShell() 检测 bash/sh 可用性(Windows 无 sh 时提示) - **X1**:Windows 上 bash → sh → findShell() 检测 - **X2**:Windows 上 which → where - **X3**:symlink EPERM 失败时提示开启 Windows 开发者模式 - **X4**:split("/") 改为 basename() 适配 Windows 路径分隔符 - **M2**:git clone 失败时删除 partial 目录,防止下次跳过克隆 - **M3**:installConfigFile 先 realpathSync 成功再 unlinkSync,防止源损坏时丢失配置 - **M6**:SIGINT handler 退出码 0 → 130(标准 SIGINT 退出码) - **M7**:CANNBOT_REPO_PATH/customPath 指定的仓库跳过 git pull,不破坏用户工作区 - **M8**:wrapper exit code 用 code ?? (signal ? 1 : 0),信号死亡不再误报成功 - **M9**:scanInstalledFiles 接受 externalRepoNames 参数,从 YAML 动态获取 - **macOS Gatekeeper**:下载后 codesign --sign - --force 本地重签名 + 运行检测 + npx fallback - **Ctrl+C**:增加 unhandledRejection 处理(Bun 兼容),优雅退出不抛堆栈 - **Windows 路径拼接**:configRoot + "/skills/" → join(configRoot, "skills") #### 代码审查修复(Critical/High/Medium) - **C1**:types/index.ts 删除孤立的重复 PluginEntry 接口体(TypeScript 语法错误) - **H1**:manifest.ts verifyPluginFilesExist 使用 getAgentsFileName(tool) 替代硬编码 AGENTS.md,project level 路径统一(修复 Claude/Trae/Cursor/Copilot 安装检测) - **H2**:plugin-installer.ts manifest 写入改为 per-plugin ${pluginId}-manifest.json(防止多插件安装互相覆盖) - **H3**:build-binaries.sh 删除覆盖完整输出的内联 JS,改用 gen-embedded.cjs - **M1**:7 个 plugins.d/*.yml 文件的 skills/agents 计数修正(与实际 installSkills/installAgents 一致) - **M5**:installer.ts 重新安装同一插件时也创建备份(不仅限于不同插件) #### 安装脚本 Windows 兼容性修复 - install.ps1 exit N → return(irm | iex 上下文中 exit 关闭整个 PowerShell 进程) - install.ps1 & npm → & npm.cmd(Node.js v24 生成 npm.ps1 被 ExecutionPolicy 阻止) - install.ps1 移除 2>&1(npm stderr 触发 ErrorActionPreference=Stop 终止性错误) - install.ps1 全局 trap 错误捕获(防止未预期错误导致窗口闪退) - install.ps1 ExecutionPolicy 自动修复(Restricted → RemoteSigned) - install.ps1 纯英文消息(irm 用 Latin-1 解码 UTF-8 中文会乱码) - install.ps1/install.sh 从 jsDelivr CDN 改为 gitcode raw(国内访问稳定 + 无 CDN 缓存问题) #### symlink 同源跳过(Windows EPERM 修复) - **skill-installer.ts**:installSkills 中检测 symlink 已指向相同源 → 跳过(使用 readlinkSync 替代 realpathSync 避免 Windows EPERM) - **plugin-installer.ts**:installLink 中检测 symlink 已指向相同源 → 返回 "skipped"(同样使用 readlinkSync) - 路径比较用 replace(/\\/g, "/").toLowerCase() 规范化(跨平台) - readlinkSync 失败时也跳过(不尝试 unlinkSync 避免 EPERM) - rmdirSync → rmSync(废弃 API 替换) - startsWith("/") → isAbsolute()(Windows 绝对路径检测) ### 代码重构 - 消除 6 组重复函数(isSymlink×3, isDirectory×2, getAgentsFileName×2 等),提取到 utils/fs-helpers.ts - 删除 22 个死导出 + 7 个死 i18n key - 工具数组硬编码 5 处统一引用 VALID_TOOLS - magic string __back__/__cancel__ 提取到 utils/constants.ts - readAllRecords 硬编码 plugin ID 改用 getAllPlugins() - 版本号从 package.json 动态读取,消除双源 - list 命令移除 Skills/Agents 计数列,替换为描述列 - 统一插件配置到 YAML(删除 10 个 plugin-manifest.json) - tsc --noEmit 0 错误(修复 externalRepos undefined 类型) ### i18n 改进 - skill category 名随语言切换(zh_CN/en_US) - 10+ 硬编码英文错误字符串提取为 i18n key - uninstall 全角括号改为 i18n 模板 ### 架构优化 - ensureRepoAndScan 自动 git pull + mergeDynamicPlugins(用户指定路径时跳过 pull) - scanner 新增 runtime scanDir + 插件根级 SKILL.md 扫描 - registry 新增 mergeDynamicPlugins 动态插件发现 - scan cache TTL 可配置 ### 新增测试(148 个测试用例,14 个文件) - scanner.test.ts(8):parseFrontmatter 安全验证(S1 路径遍历防护) - registry.test.ts(7):插件发现 + 别名匹配 - skill-registry.test.ts(11):skill 注册表 + 类别 - paths.test.ts(9):路径验证 + 工具检测 - plugin-installer.test.ts(9):symlink 安装、configRootConfigLink、workflows、skill rename、manifest 写入、多插件不覆盖 - record.test.ts(9):读写一致性、损坏处理、动态 externalRepoNames、skill 去重 - skill-installer.test.ts(10):resolveSkillSourcePath、S2 安全修复、同源跳过、异源更新、损坏修复 - uninstall.test.ts(6):isSafePath C2 安全修复验证 - backup.test.ts(8):备份创建/解析/恢复/删除 - fs.test.ts(9):原子写、符号链接检测、目录检测 - i18n.test.ts(7):翻译、语言切换、常量值 - manifest.test.ts(4):readAllManifests 读取 legacy/per-plugin manifest、writeCannbotManifest per-plugin 写入、多插件不覆盖 - install-scripts.test.ts(27):版本比较、跳过下载决策、镜像排序、架构映射、ExecutionPolicy 决策、安装路径决策、通道解析、通道感知跳过 - bin-wrapper.test.ts(11):平台映射、二进制名、fallback 逻辑 ### 文档优化 - docs/installation-guide.md:按平台分代码块 + 精简冗余说明 - plugins-community/install-helper/README.md:按平台分组 + 删除冗余内容(322→164 行) - README.md:安装部分增加 Windows 安装命令(gitcode raw) ## 关联的Issue 无 ## 测试 - **tsc --noEmit**:0 错误 - **npm test**:148/148 测试通过(14 个文件) - **Linux arm64**:install.sh 全流程 + 10 个插件 install/uninstall 全通过 - **Windows x64**:iwr -useb | iex 安装 + 通道选择(latest/beta)+ 版本跳过下载 + Plugin 安装(ops-direct-invoke 19 skills, 4 agents)+ Skill 安装 + 交互向导 + Ctrl+C 优雅退出全通过 - **Windows 多插件**:先安装 ops-direct-invoke 再安装 ops-direct-invoke-flash,共享 skill 跳过(不报 EPERM 错误) - **外部仓库验证**:asc-devkit/pypto/tilelang-ascend/cann-recipes-infer 的 configRoot + 项目根目录 symlink 全部正确(configRootConfigLink/configRootLink 精确控制) - **workflows symlink**:ops-direct-invoke/catlass-op-generator/model-infer-optimize 正确 - **安全修复验证**:S1(路径遍历)、S2(symlink 数据丢失)、C2(Windows 路径分隔符)、M9(动态 repo 记录)全部有测试覆盖 ## 文档更新 - docs/installation-guide.md:按平台分代码块,精简冗余说明 - plugins-community/install-helper/README.md:按平台分组,322→164 行 - README.md:安装部分增加 Windows 安装命令(gitcode raw) ## 类型标签 - [x] 🌟 新特性 - [x] 🐛 Bug 修复 - [x] 🔒 安全修复 - [x] ♻️ 代码重构 - [x] 🧹 代码清理 - [x] 📝 文档更新 - [x] 🧪 测试用例 - [x] 📦 构建 / CI See merge request: cann/cannbot-skills!489 | 8 天前 | |
feat(install-helper): 跨平台声明式安装引擎(Linux/macOS/Windows)+ npm 多包分发 + 安全性修复 + 测试用例覆盖 Co-authored-by: yanhf<yanhaifeng5@huawei.com> # message auto-generated for no-merge-commit merge: !489 merge master into master feat(install-helper): 跨平台声明式安装引擎(Linux/macOS/Windows)+ npm 多包分发 + 安全性修复 + 测试用例覆盖 Created-by: yanhf Commit-by: yanhf Merged-by: cann-robot Description: ## 描述 本 PR 对 install-helper 工具进行了系统性重构,实现跨平台声明式安装、npm 多包分发、安全性修复和代码质量全面提升,并补充完善的测试覆盖。共 98 个 commit,修改 74 个文件,+4301 / -753 行。 ### 新特性 #### 1. 声明式 Plugin 安装引擎(plugin-installer.ts) - 新增 plugin-installer.ts,通过 Node.js 原生执行安装(symlink + 外部仓库克隆 + manifest 写入),无需 bash/sh - 安装清单统一到 plugins.d/*.yml,不再侵入插件目录(删除 10 个 plugin-manifest.json) - PluginEntry 类型合并安装清单字段(installSkills/installAgents/configFile/externalRepos/configRootConfigLink/configRootLink) - 外部仓库双 symlink(configRoot + 项目根目录)+ workflows symlink,通过 configRootConfigLink/configRootLink 字段精确控制,与 init.sh 行为完全一致 - symlink → copy 自动降级(Windows 非 Developer Mode) - installer.ts 优先走 manifest 引擎,无安装清单时 fallback 到 init.sh - **per-plugin manifest**:每个插件写入独立的 ${pluginId}-manifest.json,多插件安装不再互相覆盖 #### 2. npm optionalDependencies 跨平台分发 - 主包 @cannbot-ai/install-helper 包含 wrapper 脚本 + JS fallback - 5 个平台子包 @cannbot-ai/install-helper-{linux/darwin/windows}-{x64/arm64},Bun 编译独立二进制 - bin/install-helper.js wrapper:优先执行平台二进制,fallback 到 JS - npm 自动安装匹配平台的子包(os+cpu 约束) #### 3. 跨平台零依赖安装 + 通道选择 - install.sh(Linux/macOS):从 npm registry 下载 tarball 解压二进制,无需 Node.js - macOS 兼容:grep -oP → grep -o + sed,/dev/tty 直接重定向,codesign 本地重签名 - 下载进度条(--progress-bar) - curl | bash 管道模式下通过 /dev/tty 重定向自动启动向导 - PATH 自动写入 .bashrc/.zshrc(去重 + RC 文件存在性检查) - npmjs.org + npmmirror 双源镜像回退 - install.ps1(Windows 原生):PowerShell 脚本,通过 gitcode raw 分发(iwr -useb | iex) - TLS 1.2 设置(PS 5.1 兼容),$ProgressPreference = "SilentlyContinue" 解决下载性能问题 - $ErrorActionPreference = "Stop" + 全局 trap 错误捕获(防止窗口闪退) - ExecutionPolicy 自动修复(Restricted → RemoteSigned,CurrentUser scope) - 镜像回退 + 错误列表收集 - **通道选择机制**:用户显式指定安装通道,不再跨 tag 比较 semver - latest(默认):仅查询 latest tag - beta:仅查询 beta tag - 显式版本号:直接使用,跳过查询 - install.sh: bash -s -- beta,install.ps1: $env:CANNBOT_CHANNEL = "beta" - **版本检查跳过下载**:本地版本与远程版本相同时跳过下载(install.sh Path A + Path B + install.ps1),秒级启动 #### 4. Bun 编译独立二进制 - scripts/build-npm-packages.cjs:一键构建 5 个平台子包 + 自动同步 optionalDependencies - scripts/publish-npm.cjs:一键发布子包(间隔 12s)+ 主包 - 构建时注入版本号(--define INSTALL_HELPER_VERSION) - i18n locale + plugins 数据内嵌到二进制(embedded-plugins.json) - build-binaries.sh:改用 gen-embedded.cjs 生成完整 embedded-plugins.json(删除覆盖完整输出的内联 JS) #### 5. Plugin 安装改为单选 - checkbox(多选)改为 select(单选),每个插件有独立 AGENTS.md,禁止同时安装多个 ### Bug 修复 #### 安全性(P0) - **S1**:parseFrontmatter 验证 skill name 仅允许 [a-zA-Z0-9._-],防止路径遍历 - **S2**:symlink 安装时 realpathSync 移到 unlinkSync 之前,防止源损坏时丢失已有链接 - **S3**:uninstall 增加 isSafePath 过滤(path.sep 替代硬编码 /),仅允许 configRoot/installPath 范围内路径被删除 - **S4**:createBackup 失败时中止安装并警告,不再静默覆盖 AGENTS.md #### 错误处理(P1) - **E1**:git pull 失败时 warn 提示使用缓存数据 - **E2**:config/record/YAML 解析失败时 warn 提示文件损坏 - **E3**:record 写入失败时 warn 提示卸载可能不可用 - **E4**:新增 atomicWriteFileSync(write-temp + rename),config/record/cache 改为原子写 - **E5**:install/update 取消操作统一输出提示 #### 跨平台(P0/P1) - **C1**:install.sh grep -oP → grep -o + sed(macOS BSD grep 兼容) - **C2**:uninstall.ts isSafePath base + "/" → base + sep(Windows 路径分隔符) - **C3**:installer.ts findShell() 检测 bash/sh 可用性(Windows 无 sh 时提示) - **X1**:Windows 上 bash → sh → findShell() 检测 - **X2**:Windows 上 which → where - **X3**:symlink EPERM 失败时提示开启 Windows 开发者模式 - **X4**:split("/") 改为 basename() 适配 Windows 路径分隔符 - **M2**:git clone 失败时删除 partial 目录,防止下次跳过克隆 - **M3**:installConfigFile 先 realpathSync 成功再 unlinkSync,防止源损坏时丢失配置 - **M6**:SIGINT handler 退出码 0 → 130(标准 SIGINT 退出码) - **M7**:CANNBOT_REPO_PATH/customPath 指定的仓库跳过 git pull,不破坏用户工作区 - **M8**:wrapper exit code 用 code ?? (signal ? 1 : 0),信号死亡不再误报成功 - **M9**:scanInstalledFiles 接受 externalRepoNames 参数,从 YAML 动态获取 - **macOS Gatekeeper**:下载后 codesign --sign - --force 本地重签名 + 运行检测 + npx fallback - **Ctrl+C**:增加 unhandledRejection 处理(Bun 兼容),优雅退出不抛堆栈 - **Windows 路径拼接**:configRoot + "/skills/" → join(configRoot, "skills") #### 代码审查修复(Critical/High/Medium) - **C1**:types/index.ts 删除孤立的重复 PluginEntry 接口体(TypeScript 语法错误) - **H1**:manifest.ts verifyPluginFilesExist 使用 getAgentsFileName(tool) 替代硬编码 AGENTS.md,project level 路径统一(修复 Claude/Trae/Cursor/Copilot 安装检测) - **H2**:plugin-installer.ts manifest 写入改为 per-plugin ${pluginId}-manifest.json(防止多插件安装互相覆盖) - **H3**:build-binaries.sh 删除覆盖完整输出的内联 JS,改用 gen-embedded.cjs - **M1**:7 个 plugins.d/*.yml 文件的 skills/agents 计数修正(与实际 installSkills/installAgents 一致) - **M5**:installer.ts 重新安装同一插件时也创建备份(不仅限于不同插件) #### 安装脚本 Windows 兼容性修复 - install.ps1 exit N → return(irm | iex 上下文中 exit 关闭整个 PowerShell 进程) - install.ps1 & npm → & npm.cmd(Node.js v24 生成 npm.ps1 被 ExecutionPolicy 阻止) - install.ps1 移除 2>&1(npm stderr 触发 ErrorActionPreference=Stop 终止性错误) - install.ps1 全局 trap 错误捕获(防止未预期错误导致窗口闪退) - install.ps1 ExecutionPolicy 自动修复(Restricted → RemoteSigned) - install.ps1 纯英文消息(irm 用 Latin-1 解码 UTF-8 中文会乱码) - install.ps1/install.sh 从 jsDelivr CDN 改为 gitcode raw(国内访问稳定 + 无 CDN 缓存问题) #### symlink 同源跳过(Windows EPERM 修复) - **skill-installer.ts**:installSkills 中检测 symlink 已指向相同源 → 跳过(使用 readlinkSync 替代 realpathSync 避免 Windows EPERM) - **plugin-installer.ts**:installLink 中检测 symlink 已指向相同源 → 返回 "skipped"(同样使用 readlinkSync) - 路径比较用 replace(/\\/g, "/").toLowerCase() 规范化(跨平台) - readlinkSync 失败时也跳过(不尝试 unlinkSync 避免 EPERM) - rmdirSync → rmSync(废弃 API 替换) - startsWith("/") → isAbsolute()(Windows 绝对路径检测) ### 代码重构 - 消除 6 组重复函数(isSymlink×3, isDirectory×2, getAgentsFileName×2 等),提取到 utils/fs-helpers.ts - 删除 22 个死导出 + 7 个死 i18n key - 工具数组硬编码 5 处统一引用 VALID_TOOLS - magic string __back__/__cancel__ 提取到 utils/constants.ts - readAllRecords 硬编码 plugin ID 改用 getAllPlugins() - 版本号从 package.json 动态读取,消除双源 - list 命令移除 Skills/Agents 计数列,替换为描述列 - 统一插件配置到 YAML(删除 10 个 plugin-manifest.json) - tsc --noEmit 0 错误(修复 externalRepos undefined 类型) ### i18n 改进 - skill category 名随语言切换(zh_CN/en_US) - 10+ 硬编码英文错误字符串提取为 i18n key - uninstall 全角括号改为 i18n 模板 ### 架构优化 - ensureRepoAndScan 自动 git pull + mergeDynamicPlugins(用户指定路径时跳过 pull) - scanner 新增 runtime scanDir + 插件根级 SKILL.md 扫描 - registry 新增 mergeDynamicPlugins 动态插件发现 - scan cache TTL 可配置 ### 新增测试(148 个测试用例,14 个文件) - scanner.test.ts(8):parseFrontmatter 安全验证(S1 路径遍历防护) - registry.test.ts(7):插件发现 + 别名匹配 - skill-registry.test.ts(11):skill 注册表 + 类别 - paths.test.ts(9):路径验证 + 工具检测 - plugin-installer.test.ts(9):symlink 安装、configRootConfigLink、workflows、skill rename、manifest 写入、多插件不覆盖 - record.test.ts(9):读写一致性、损坏处理、动态 externalRepoNames、skill 去重 - skill-installer.test.ts(10):resolveSkillSourcePath、S2 安全修复、同源跳过、异源更新、损坏修复 - uninstall.test.ts(6):isSafePath C2 安全修复验证 - backup.test.ts(8):备份创建/解析/恢复/删除 - fs.test.ts(9):原子写、符号链接检测、目录检测 - i18n.test.ts(7):翻译、语言切换、常量值 - manifest.test.ts(4):readAllManifests 读取 legacy/per-plugin manifest、writeCannbotManifest per-plugin 写入、多插件不覆盖 - install-scripts.test.ts(27):版本比较、跳过下载决策、镜像排序、架构映射、ExecutionPolicy 决策、安装路径决策、通道解析、通道感知跳过 - bin-wrapper.test.ts(11):平台映射、二进制名、fallback 逻辑 ### 文档优化 - docs/installation-guide.md:按平台分代码块 + 精简冗余说明 - plugins-community/install-helper/README.md:按平台分组 + 删除冗余内容(322→164 行) - README.md:安装部分增加 Windows 安装命令(gitcode raw) ## 关联的Issue 无 ## 测试 - **tsc --noEmit**:0 错误 - **npm test**:148/148 测试通过(14 个文件) - **Linux arm64**:install.sh 全流程 + 10 个插件 install/uninstall 全通过 - **Windows x64**:iwr -useb | iex 安装 + 通道选择(latest/beta)+ 版本跳过下载 + Plugin 安装(ops-direct-invoke 19 skills, 4 agents)+ Skill 安装 + 交互向导 + Ctrl+C 优雅退出全通过 - **Windows 多插件**:先安装 ops-direct-invoke 再安装 ops-direct-invoke-flash,共享 skill 跳过(不报 EPERM 错误) - **外部仓库验证**:asc-devkit/pypto/tilelang-ascend/cann-recipes-infer 的 configRoot + 项目根目录 symlink 全部正确(configRootConfigLink/configRootLink 精确控制) - **workflows symlink**:ops-direct-invoke/catlass-op-generator/model-infer-optimize 正确 - **安全修复验证**:S1(路径遍历)、S2(symlink 数据丢失)、C2(Windows 路径分隔符)、M9(动态 repo 记录)全部有测试覆盖 ## 文档更新 - docs/installation-guide.md:按平台分代码块,精简冗余说明 - plugins-community/install-helper/README.md:按平台分组,322→164 行 - README.md:安装部分增加 Windows 安装命令(gitcode raw) ## 类型标签 - [x] 🌟 新特性 - [x] 🐛 Bug 修复 - [x] 🔒 安全修复 - [x] ♻️ 代码重构 - [x] 🧹 代码清理 - [x] 📝 文档更新 - [x] 🧪 测试用例 - [x] 📦 构建 / CI See merge request: cann/cannbot-skills!489 | 8 天前 |
CANNBot Skills
📖 安装指南 · 📋 功能清单 · 🏗️ 架构设计 · 🔥 CHANGELOG · 💬 使用样例
📢 项目概述
CANNBot 是面向 CANN 开发的系列智能体,本仓库提供可复用的 Agent Skills 模块,覆盖 Ascend C / Catlass / PyPTO / TileLang / Triton 算子开发、torch.compile 图模式优化、NPU 模型推理端到端优化、Runtime 开发适配等场景。
面向用户:CANN / 昇腾 NPU 各领域开发者(算子开发、图模式、模型推理、Runtime 等),同时欢迎社区开发者共建 Skills 和 Agents。
🚀 快速开始
前置条件
- 任选一种 AI 编程工具:OpenCode / Claude Code / Trae / Cursor / GitHub Copilot / CodeArts
安装
完整安装(推荐,含 Skills + Agents + Workflows,适合端到端开发流程编排):
Linux / macOS
curl -fsSL https://raw.gitcode.com/cann/cannbot-skills/raw/master/install.sh | bash
Windows
iwr -useb https://raw.gitcode.com/cann/cannbot-skills/raw/master/install.ps1 | iex
安装后运行 install-helper 启动交互式向导,或 npx @cannbot-ai/install-helper 免安装运行。
独立 Skill 安装(仅需单个能力,遵循 Agent Skills 开放标准):
# 浏览可用 Skills
npx skills add https://gitcode.com/cann/cannbot-skills.git --list
# 安装单个 Skill(交互式选择目标工具)
npx skills add https://gitcode.com/cann/cannbot-skills.git --skill ascendc-env-check --agent opencode
安装后使用
启动 AI 编程工具,直接用自然语言描述需求:
"检查环境"
"开发一个 Abs 算子,输入 float16,输出 float16"
📖 完整命令参考、手动脚本安装与故障排查详见 安装指南。
📐 开发路径与核心能力
全量 Skills/Agents 清单见 功能清单,使用样例见 Skills 使用样例。
| 领域 / 路径 | 适用场景 | 入口插件 |
|---|---|---|
| Ascend C 直调 | <<<>>> 直接调用核函数 |
ops-direct-invoke / ops-direct-invoke-flash |
| Ascend C 注册调用 | ACLNN/GEIR 接入框架的标准算子 | ops-registry-invoke |
| Catlass | Cube/Matmul 高阶模板拼装 pipeline | catlass-op-generator |
| PyPTO | 昇腾原生 Python Tile 算子编程 | pypto-op-orchestrator |
| TileLang | DSL + @tilelang.jit,Developer/Expert 双模式 |
tilelang-op-orchestrator |
| Triton | triton_ascend DSL 生成并优化算子 |
triton-op-generator |
| torch.compile 图模式 | npugraph_ex 图捕获与重放 | torch-compile |
| 模型推理优化 | NPU 推理端到端优化 + baseline 之上探索式优化 | model-infer-optimize / model-infer-sota-approach |
| Runtime | Runtime 接口迁移 | — |
| 科学计算模型迁移 | 框架级代码 NPU 迁移(环境门禁/脚本适配/精度性能对比) | — |
| 治理与协作 | Skill 审查、GitCode PR/Issue 自动化 | — |
🔍 项目架构
目录结构
cannbot-skills/
├── ops/ # 算子 Skills
├── model/ # 模型推理优化 Skills
├── graph/ # 图模式 Skills
├── runtime/ # Runtime Skills
├── infra/ # 基础设施 Skills(治理 / GitCode 协作)
├── plugins-official/ # 官方 Plugins(开发路径入口,含 Agents/Workflows)
├── plugins-community/ # 社区 Plugins
├── docs/ # 项目文档
└── tests/ # 自动化测试框架
三层架构
三层架构:Plugin 编排 Agents,Agents 绑定 Skills。
- Plugin(应用编排层)— 通过
AGENTS.md定义各 Agent 协作顺序 - Agent(角色执行层)— 承担方案设计、代码开发、代码检视等职责
- Skill(知识能力层)— 提供领域知识与工程模板
以 Ascend C 算子开发为例:
╔═══════════════════════════════════════════════════════════════════════════════╗
║ PLUGINS(应用编排层) ║
╠═══════════════════════════════════════════════════════════════════════════════╣
║ ║
║ ┌─────────────────────────────┐ ┌─────────────────────────────┐ ║
║ │ ops-direct-invoke │ │ ops-registry-invoke │ ║
║ │ Kernel 直调开发流程 │ │ 算子注册调用开发流程 │ ║
║ └──────┬──────┬──────┬────────┘ └──────┬──────┬──────┬────────┘ ║
║ │ │ │ │ │ │ ║
╚═════════╪══════╪══════╪════════════════════════╪══════╪══════╪════════════════╝
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
╔═══════════════════════════════════════════════════════════════════════════════╗
║ AGENTS(角色执行层) ║
╠═══════════════════════════════════════════════════════════════════════════════╣
║ ║
║ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ║
║ │ architect │ │ developer │ │ reviewer │ │ tester │ ║
║ │ 方案设计 │ │ 代码开发 │ │ 代码检视 │ │ 代码测试 │ ║
║ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ ║
║ ║
╚═══════════════════════════════════════════════════════════════════════════════╝
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
╔═══════════════════════════════════════════════════════════════════════════════╗
║ SKILLS(知识能力层) ║
╠═══════════════════════════════════════════════════════════════════════════════╣
║ ║
║ ┌─ 知识库类 ──────────────────────────────────────────────────────────────┐ ║
║ │ npu-arch NPU 架构知识与芯片映射 │ ║
║ │ ascendc-tiling-design Tiling 设计方法论 │ ║
║ │ ascendc-api-best-practices API 使用最佳实践 │ ║
║ │ ops-precision-standard 算子精度标准 │ ║
║ └────────────────────────────────────────────────────────────────────────┘ ║
║ ║
║ ┌─ 工程模板类 ────────────────────────────────────────────────────────────┐ ║
║ │ ascendc-registry-invoke-to-direct-invoke 注册算子直调改造模板 │ ║
║ │ ascendc-direct-invoke-template Kernel直调工程模板 │ ║
║ └─────────────────────────────────────────────────────────────────────────┘ ║
║ ║
║ ┌─ 调试与测试类 ──────────────────────────────────────────────────────────┐ ║
║ │ ascendc-precision-debug 精度调试与症状速查 │ ║
║ │ ascendc-runtime-debug 运行时错误码解析 │ ║
║ │ ascendc-crash-debug 卡死/崩溃调试、Coredump 分析 │ ║
║ │ ascendc-env-check NPU 设备查询与环境验证 │ ║
║ └─────────────────────────────────────────────────────────────────────────┘ ║
║ ║
║ ┌─ 测试开发类 ────────────────────────────────────────────────────────────┐ ║
║ │ ascendc-st-design ST 测试用例设计 │ ║
║ │ ascendc-ut-develop UT 开发与覆盖率增强 │ ║
║ │ ascendc-code-review 代码检视规则 │ ║
║ └────────────────────────────────────────────────────────────────────────┘ ║
║ ║
║ ┌─ 工具辅助类 ────────────────────────────────────────────────────────────┐ ║
║ │ ops-profiling 算子性能采集分析 │ ║
║ │ ascendc-task-focus 长任务聚焦防迷失 │ ║
║ └─────────────────────────────────────────────────────────────────────────┘ ║
║ ║
╚═══════════════════════════════════════════════════════════════════════════════╝
架构设计详情和各开发路径的逻辑架构图见 项目架构设计。
🔥 最新动态
最新更新与历史记录详见 CHANGELOG.md。
💬 相关信息
- 贡献指南 — 贡献流程、准入门槛、评审规则
- 治理模型 — 成文法+判例法、角色职责
- 开发规范 — 命名规范、结构规范、分类体系
- 测试框架 — 自动化测试验证 Skills 和 Agents 的正确性
- 许可证 — 基于 CANN Open Software License v2.0
- 所属 SIG
💖 免责声明
感谢您关注 CANNBot Skills 项目,希望这些技能和知识能帮助您更好地进行 CANN 开发 ^_^
- 功能满足度:由于技术快速迭代,部分内容可能无法完全适用于所有场景。功能与文档持续完善中,欢迎提 Issue 或参与讨论。
- 自动生成内容:自动生成的代码受模型、Skills 能力、语料质量、输入指令等多因素影响,无法保证完全精准。生成代码仅作辅助研发使用,请开发者务必测试验证、安全审查后再投入使用。
🤝 社区交流
| 渠道 | 适用场景 | 链接 |
|---|---|---|
| GitCode Issue | Skill bug / 功能缺失 / 项目结构与文档问题 | 提交 Issue |
| GitCode Discussions | 使用疑问 / 经验交流 / 功能建议 | 参与讨论 |
| 微信交流群 | 实时交流 | 加入群聊 |
| CANNBot SIG | 社区治理与项目方向 | SIG 主页 |