ワンクリックで
akg-issue
生成符合 AKG 项目规范的 Issue 描述文件(Bug Report / RFC / Task)。 支持两种模式:用户描述生成、基于分支 diff 自动生成。 生成的 .md 和 .json 文件写入 .tmp/issue/,经规范校验后供用户确认和提交。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
生成符合 AKG 项目规范的 Issue 描述文件(Bug Report / RFC / Task)。 支持两种模式:用户描述生成、基于分支 diff 自动生成。 生成的 .md 和 .json 文件写入 .tmp/issue/,经规范校验后供用户确认和提交。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
矩阵乘法矩阵乘法 A[M, K] @ B[K, N] = C[M, N]中,大K维度矩阵乘法(K>>M,N)优化:针对M/N较小但K极大(如M=N=256,K=131072)的场景,Split-K切分K维度并行化、Workspace+Reduce替代全局同步,实现显著性能提升
Triton Ascend hard API restrictions and forbidden syntax. MUST-follow rules that apply to every kernel: forbidden control flow (return/break/continue/lambda/while), tensor slice/index restrictions, scalar conversion rules, BLOCK_SIZE upper bound. Violating any of these produces a compile or runtime error on Ascend.
Triton Ascend 性能优化通用策略: BLOCK_SIZE 选择 (1024-2048 for elementwise, must be <65536), grid configuration (use VEC_CORE_NUM / CUBE_CORE_NUM, 2D/3D grid for matmul / conv / reduce, 1D grid + inner loop for elementwise / pointwise), 256B alignment for memory transfers, autotune block-size patterns, fp16 / fp32 precision conversion. Bind via keywords like matmul, elementwise, reduce, block_size, grid, autotune, alignment, fp16, fp32, tile, interleaved-loop, cube-core, vec-core.
通过 adaptive_search 或 evolve 搜索式 workflow 生成优化算子。 后台 silent mode 执行,轮询监控进度。
适用于归约(reduce)类算子和含归约子步骤的复合算子(如归一化)的优化指南。典型算子包括:sum, mean, max, min, prod, argmax, argmin, cumsum, cumprod, softmax, logsoftmax, layernorm, rmsnorm, groupnorm, instancenorm, batchnorm, l1norm, l2norm, frobeniusnorm, var, std, average_pooling, sum_pooling 等。特别重要:当归约维度不是最后一维(如 dim=1 归约 shape=[B,F,D1,D2]),需要正确处理多维索引和两阶段归约。包含 PyTorch normalized_shape 多轴归一化语义说明。不适用于纯逐元素运算或矩阵乘法。如果算子是损失函数(先逐元素计算再全局归约),应选择 elementwise-reduce-fused 指南。
CPU C++ 算子核心概念、标准结构模式、KernelBench 代码规范和内嵌扩展方法
| name | akg-issue |
| description | 生成符合 AKG 项目规范的 Issue 描述文件(Bug Report / RFC / Task)。 支持两种模式:用户描述生成、基于分支 diff 自动生成。 生成的 .md 和 .json 文件写入 .tmp/issue/,经规范校验后供用户确认和提交。 |
| argument-hint | 两种使用方式: 1. 描述模式:/akg-issue <问题描述> 2. Diff 模式:/akg-issue 从当前分支到 <目标分支> 建 issue 示例:/akg-issue softmax算子在batch>32时报IndexError 示例:/akg-issue 帮我基于当前分支和目标分支origin/br_agents的差异提一个issue |
$AKG_AGENTS_DIR/.tmp/issue/,禁止写入其他位置。[AKG_AGENTS] 前缀。[ -z "$VAR" ] 判断。git remote -v 的 URL 提取,禁止从用户输入的分支名推断。Step 0 模式判定(自动)
Step 1 收集信息(自动 / 交互)
Step 2 检测远程信息(自动)
Step 3 生成 Issue 文件(自动)
Step 4 规范校验(自动)
Step 5 展示结果 + 用户决策(一次交互)
Step 6 执行 API 提交(仅当用户选择"提交"时,不再二次确认)
解析 $ARGUMENTS,判定使用哪种模式:
Diff 模式触发条件(满足任一):
描述模式:不满足以上条件的所有情况。
目标分支解析:从用户输入中提取目标分支名。用户输入的分支名直接作为 git diff 的目标 ref 使用,例如:
git diff origin/master...HEADgit diff master...HEAD⚠️ 分支名仅用于 git diff/log 命令。不要从分支名推断 owner、repo 或平台信息。
git rev-parse --abbrev-ref HEAD
git diff <target_ref>...HEAD --stat
git log <target_ref>..HEAD --oneline --no-merges
git diff <target_ref>...HEAD
无差异 → 报错终止。
基于 diff 自动推断(不需要向用户询问):
| 字段 | 推断逻辑 |
|---|---|
issue_type | 代码变更类型:bug fix 相关 → bug,新功能 → task,大规模设计/重构 → rfc |
title | [AKG_AGENTS] <概要描述> |
labels | ["kind/<issue_type>"] |
body | 按对应模板格式生成,描述本分支做了什么、要解决什么问题 |
从 $ARGUMENTS 中提取信息:
| 信息 | 提取方式 |
|---|---|
issue_type | 用户明确指定 → 直接用。否则推断:报错/crash/失败 → bug,需求/设计/方案 → rfc,其他 → task |
title | 从描述提炼一句话摘要,加 [AKG_AGENTS] 前缀 |
body | 按模板格式组织用户描述 |
如果用户未指定 issue_type 且无法推断,使用 question 工具一次性询问:
请选择 Issue 类型:
- Bug Report — 报告一个 bug
- RFC — 提出新功能或增强方案
- Task — 跟踪一项任务
Bug 类型额外采集环境信息(自动执行):
cat $HOME_DIR/.akg/check_env.md 2>/dev/null
uname -a
python3 --version 2>/dev/null || python --version
信息不足时,一次性列出所有缺失字段(不要逐个询问):
请补充以下信息:
- [Bug] 当前行为:实际发生了什么?
- [Bug] 期望行为:你期望发生什么?
- [Bug] 复现步骤 (已自动采集:设备=ascend, Python=3.9.7, OS=Linux...)
无论哪种模式,都从 git remote 检测平台和仓库信息(用于后续提交):
git remote -v
origin > origin_gitcode > 第一个gitcode.com / gitee.com / github.com.git 后缀)⚠️ 再次强调:owner 和 repo 只能从 remote URL 提取,不能从用户输入的分支名提取。
文件名:issue_<slug>_<YYYYMMDD_HHmmss>.md(slug 从 title 取前几个词,空格转 -)
必须使用以下内嵌模板:
Bug Report(issue_type == "bug"):
---
name: Bug Report
about: Use this template for reporting a bug
labels: kind/bug
---
## Environment
### Hardware Environment(`Ascend`/`GPU`/`CPU`):
/device <ascend|gpu|cpu>
### Software Environment:
- **AKG version (source or binary)**: <版本>
- **Python version**: <版本>
- **OS platform and distribution**: <系统信息>
- **GCC/Compiler version (if compiled from source)**: <如有>
## Describe the current behavior
<当前行为描述>
## Describe the expected behavior
<期望行为描述>
## Steps to reproduce the issue
1. <步骤1>
2. <步骤2>
3. <步骤3>
## Related log / screenshot
<日志或截图>
## Special notes for this issue
<补充说明>
RFC(issue_type == "rfc"):
---
name: RFC
about: Use this template for the new feature or enhancement
labels: kind/feature or kind/enhancement
---
## Background
<背景描述:问题现状>
## Introduction
<方案设计:解决方案概述>
## Trail
| No. | Task Description | Related Issue(URL) |
| --- | ---------------- | ------------------ |
| 1 | | |
Task(issue_type == "task"):
---
name: Task
about: Use this template for task tracking
labels: kind/task
---
## Task Description
<任务描述>
## Task Goal
<任务目标>
## Sub Task
| No. | Task Description | Issue ID |
| --- | ---------------- | -------- |
| 1 | | |
文件名:issue_<slug>_<YYYYMMDD_HHmmss>.json
{
"version": "1.0",
"type": "issue",
"issue_type": "<bug|rfc|task>",
"platform": "<gitcode|gitee|github>",
"repo": "<owner/repo>",
"title": "[AKG_AGENTS] <标题>",
"labels": ["kind/<bug|feature|task>"],
"assignees": [],
"generated_at": "<ISO 8601 时间戳>",
"body_file": "<对应的 .md 文件名>",
"validation": { "passed": null, "errors": [], "warnings": [] }
}
mkdir -p $AKG_AGENTS_DIR/.tmp/issue
python $AKG_AGENTS_DIR/.opencode/skills/akg-issue/scripts/validate_issue.py $AKG_AGENTS_DIR/.tmp/issue/<json_file>
校验规则(脚本已实现):
通用:
| 规则 ID | 描述 | 级别 |
|---|---|---|
| ISS-000 | title 必须以 [AKG_AGENTS] 开头 | error |
| ISS-001 | title 至少 10 字符 | error |
| ISS-002 | labels 至少包含一个 kind/* 标签 | error |
Bug Report 专项:BUG-001 ~ BUG-006(/device、软件环境、当前/期望行为、复现步骤、日志)
RFC 专项:RFC-001 ~ RFC-003(背景、方案设计、任务拆分)
Task 专项:TSK-001 ~ TSK-003(任务描述、任务目标、子任务)
一次性展示所有信息,让用户做一次决策:
Issue 预览
字段 值 标题 [AKG_AGENTS] <标题>类型 <bug/rfc/task>标签 kind/<type>仓库 <owner>/<repo>(<平台名>)正文摘要:<前 200 字>
校验结果:<逐条列出>
文件:
- 描述文件:
.tmp/issue/issue_<slug>_<ts>.md- 元数据文件:
.tmp/issue/issue_<slug>_<ts>.json请选择:
- 提交 — 通过 API 提交到 <平台名>
- 仅保存 — 只保留本地文件
- 修改 — 请说明要改什么
- 放弃
处理逻辑:
⛔ 禁止使用 echo $TOKEN 或 echo "${TOKEN:?}" 打印 Token 值。
# GitCode
if [ -z "$GITCODE_TOKEN" ]; then echo "GITCODE_TOKEN 未设置"; exit 1; fi
echo "GITCODE_TOKEN 已设置"
# Gitee
if [ -z "$GITEE_TOKEN" ]; then echo "GITEE_TOKEN 未设置"; exit 1; fi
echo "GITEE_TOKEN 已设置"
# GitHub
gh auth status
Token 未设置时提示:
GitCode:登录 GitCode → 右上角头像 → 个人设置 → 访问令牌 → 新建访问令牌(勾选 api 权限)
export GITCODE_TOKEN="你的token"文档:https://docs.gitcode.com/docs/help/home/user_center/security_management/user_patGitee:设置 → 私人令牌 → 生成新令牌(勾选 issues 权限)
export GITEE_TOKEN="你的token"GitHub:
gh auth login
重要:title、body 等内容在 Step 3 生成时已存在于上下文中,无需重新读取文件,直接使用即可。
owner 和 repo 必须使用 Step 2 从 git remote -v 提取的值。
GitCode(platform == "gitcode"):
使用完整路径 /repos/<owner>/<repo>/issues,JSON 格式提交。
curl -s -X POST "https://api.gitcode.com/api/v5/repos/<owner>/<repo>/issues?access_token=$GITCODE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "<title>",
"body": "<body>"
}'
| 参数 | 必填 | 位置 | 说明 |
|---|---|---|---|
access_token | ✅ | query | Token 环境变量 |
owner | ✅ | URL path | 从 git remote -v 的 URL 提取的组织/用户名 |
repo | ✅ | URL path | 从 git remote -v 的 URL 提取的仓库名 |
title | ✅ | JSON body | Step 3 生成的标题 |
body | ❌ | JSON body | Step 3 生成的正文 |
Gitee(platform == "gitee"):
curl -s -X POST "https://gitee.com/api/v5/repos/<owner>/issues" \
-H "Content-Type: application/json" \
-d '{
"access_token": "'"$GITEE_TOKEN"'",
"repo": "<repo>",
"title": "<title>",
"body": "<body>"
}'
GitHub(platform == "github"):
gh issue create --title "<title>" --body-file $AKG_AGENTS_DIR/.tmp/issue/<file>.md \
--label "<label1>" --label "<label2>"
html_url)→ 展示 Issue 链接403 → URL 中 owner 不正确,检查 git remote -v 输出401 → Token 无效或过期