Install
$ agentstack add skill-grasscaograss-awesomeweldoneskills-gitlab-issue ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
GitLab Issue 协作创建
引导开发人员明确 Issue 内容,自动推断标签,通过 API 创建。
GitLab 配置
| 配置项 | 值 | |--------|-----| | URL | http://gitlab.roboticplus.com:2022 | | Project ID | 305 | | API Base | http://gitlab.roboticplus.com:2022/api/v4/projects/305 | | Token | 环境变量 $env:GITLAB_TOKEN 或用户提供 |
Token 检查(步骤 0)
每次开始工作前,使用 pwsh 7 会话(默认 UTF-8)检查 $env:GITLAB_TOKEN 是否已设置:
if ($env:GITLAB_TOKEN) { 'Token exists' } else { 'Token not set' }
> ⚠️ 必须使用 pwsh 7。如果通过外层 shell 调用,使用 pwsh -NoProfile -Command 并用单引号包住脚本,避免 $env: 被外层 shell 展开。
- 已设置(输出
Token exists)→ 直接进入步骤 1 - 未设置 → 引导用户创建并配置:
- 告诉用户:当前未配置 GitLab Token,需要创建一个才能操作 Issue
- 引导用户打开
http://gitlab.roboticplus.com:2022/-/profile/personal_access_tokens,创建一个 Personal Access Token,勾选api权限 - 让用户在终端执行以下命令设置环境变量(永久生效):
``pwsh # 在 pwsh 7 profile 中持久化 Add-Content -Path $PROFILE -Value "n$env:GITLAB_TOKEN = ''" $env:GITLAB_TOKEN = '' ``
- 或者让用户在 Claude Code 中直接输入
! $env:GITLAB_TOKEN = ''来临时设置 - 设置完成后继续步骤 1
注意:不要自己生成或猜测 Token 值,必须由用户提供。
工作流程
步骤 1:理解意图
从用户的描述中提取:
- 类型:根据语义自动判断
- 初步内容:问题/需求的核心描述
类型判断规则: | 用户表达 | 类型 | |---------|------| | 崩溃、报错、异常、不对、不生效、失败了、bug | 类型::缺陷 | | 新功能、需要、能不能、想要、需求、支持 | 类型::功能 | | 优化、改进、太慢、不好用、重构、改善 | 类型::优化 | | 重构、整理、清理、迁移 | 类型::重构 |
步骤 2:引导补充内容
根据类型,引导用户补充关键信息(用自然对话方式,不要一次性抛出所有问题)。
类型::缺陷
引导获取(按顺序,已有信息跳过):
- 问题现象:具体表现是什么?
- 复现步骤:怎么触发这个问题?
- 期望行为:应该是什么样子?
- 影响范围:哪些场景受影响?现场/研发?
- 环境信息:分支、工件版本(可选)
生成正文格式:
## 问题现象
{描述}
## 复现步骤
1. {步骤1}
2. {步骤2}
## 期望行为
{描述}
## 实际行为
{描述}
## 影响范围
{描述}
类型::功能
引导获取:
- 需求背景:为什么要做?谁提出?
- 功能描述:具体要实现什么?怎么使用?
- 验收标准:做到什么程度算完成?
生成正文格式:
## 需求背景
{描述}
## 功能描述
{描述}
## 验收标准
- [ ] {标准1}
- [ ] {标准2}
类型::优化 / 类型::重构
引导获取:
- 现状:当前有什么问题?
- 目标:改进后达到什么效果?
- 影响范围:涉及哪些模块?需要注意什么?
步骤 3:推断模块
从用户描述中匹配关键词,自动推断模块标签:
| 关键词 | 模块 | |--------|------| | 焊缝、打断、合并、WSG、WeldSeamGroup | 模块::焊缝规划 | | 模板、工艺、参数、焊道 | 模块::焊接模板 | | 粗定位、点云、匹配、coarse | 模块::粗定位 | | 精定位、视觉、拍照、fine、iLaser | 模块::精定位 | | 扫描、校准、MapMatrix、calibration | 模块::扫描校准 | | 机器人、外部轴、驱动、E1、E2 | 模块::机器人控制 | | 双臂、包角、协同、wrapping | 模块::双臂协同 | | 状态机、FSM、流程、工作流 | 模块::状态机 | | 前端、Blazor、React、页面、UI、组件 | 模块::前端 | | 插件、ZMJ、AGV、Rhino | 模块::插件 | | CI、构建、迁移、发布、electron | 模块::基础设施 | | 产能、统计、焊丝、消耗 | 模块::产能统计 |
如果无法推断,用 AskUserQuestion 让用户从列表选择。
步骤 4:确认并创建
向用户展示完整的 Issue 摘要:
📋 Issue 预览
━━━━━━━━━━━━━━━━━━
标题:{标题}
类型:{类型}
优先级:{优先级}
模块:{模块}
━━━━━━━━━━━━━━━━━━
{正文预览}
用户确认后,通过 API 创建:
$Headers = @{ "PRIVATE-TOKEN" = $Token; "Content-Type" = "application/json" }
$Body = @{
title = "{标题}"
description = "{正文}"
labels = "类型::xxx,优先级::xxx,模块::xxx,阶段::待办"
} | ConvertTo-Json -Compress
Invoke-RestMethod -Uri "$ApiBase/issues" -Method Post -Headers $Headers -ContentType "application/json" -Body $Body
创建成功后返回 Issue 链接:http://gitlab.roboticplus.com:2022/robimweld/weldone/-/issues/{iid}
步骤 5:上传附件(可选)
用户可能要求上传截图、视频等附件到 Issue。
上传流程:先调 POST $ApiBase/uploads 上传文件拿 markdown 引用,再调 POST $ApiBase/issues/{iid}/notes 发布为评论。
关键约束:
- 中文文件名必须先 cp 为 ASCII 名再上传,否则 GitLab API 返回
Bad Request - 上传接口返回 JSON,取
markdown字段放入评论body即可在 Issue 中展示
规则
- 标签必打齐:每个 Issue 必须有 类型 + 优先级 + 模块 + 阶段,四类标签缺一不可
- 创建前必须获取已有标签:每次创建 Issue 前,必须先调用
GET /projects/:id/labels?per_page=100获取项目已有标签列表,只从中选择。绝不允许使用列表中不存在的标签——GitLab API 会自动创建新标签,这是错误行为。如果已有标签中没有合适的,必须先向用户确认 - 优先级默认:如果用户未指定,缺陷默认
优先级::P1 高,功能/优化/重构默认优先级::P2 中,但必须告知用户 - 对话优先:用自然对话引导,不要一次性列出所有问题让用户填表
- 信息充分才创建:核心信息(现象/需求+模块)不完整时主动追问,不要创建空泛的 Issue
- 中文标题:标题用中文,简洁概括核心内容,不超过 50 字
- 不重复创建:创建前搜索是否已有类似 Issue,避免重复
- 不写代码级分析:Issue 正文只记录问题现象、复现步骤、期望/实际行为等用户可感知的信息。不要在正文中写入原因分析、代码定位、修复方案等内容——这些属于开发过程,不应由 Issue 创建时自动生成
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: grasscaograss
- Source: grasscaograss/AwesomeWeldoneSkills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.