Install
$ agentstack add skill-mlhiter-skills-issue-creator ✓ 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
Issue Creator
Turn a short tester note into a complete GitHub issue with low friction for the tester and high signal for developers.
Default target: labring-sigs/sealos-issues. Load assets/catalog.json for current products, environments, labels, milestones, GitHub Issue fields, Project field names, and priority rules. Read references/sealos-issues.md when working on Sealos issues or updating the catalog. Read references/issue-template.md when drafting the final body.
Core Rule
Ask the tester for as little as possible. Infer structure from their note, then preview the draft and ask only for missing information that blocks a useful issue.
Do not create a live GitHub issue until the user confirms the preview. Use scripts/sealos_issue.py draft for dry-runs and scripts/sealos_issue.py draft --create only after confirmation.
Minimal Input
A tester may provide only:
- Environment:
10.70,12.38,bja,public cloud, a URL, or a cluster name. - Product/page: approximate names such as
maestro,devbox,对象存储,应用管理, or a screenshot context. - Action: what they did.
- Actual result: what went wrong.
- Evidence: screenshot, log, API URL, payload, response, or recording if available.
If one of these is missing but the issue is still understandable, proceed and mark the field as inferred or unknown. Ask at most 1-2 concise questions when the missing information would make the issue unusable, usually product or environment.
Workflow
- Run a preflight if creation is likely:
``bash python3 skills/issue-creator/scripts/sealos_issue.py preflight ``
If gh is missing, tell the user to install GitHub CLI. On macOS, recommend brew install gh. If gh is not logged in, recommend gh auth login. If Project fields are needed and permissions fail, recommend gh auth refresh -s project or the exact scope from the gh error. The preflight also checks for a usable image uploader: PicList local server, PicGo CLI, or image_uploader.command in the catalog.
- Draft from the raw note:
``bash python3 skills/issue-creator/scripts/sealos_issue.py draft --note "" ``
- Review the generated title, body, labels, milestone, native GitHub issue metadata, and optional project fields. Correct obvious inference mistakes yourself. Use the catalog for known aliases and the template for body shape.
- Block or redact sensitive information before creating:
- passwords, tokens, access keys, authorization headers, private credentials, or long credential-looking values
- replace with
见内部渠道or[REDACTED] - never publish test passwords into public issues
- Create only after the user confirms:
``bash python3 skills/issue-creator/scripts/sealos_issue.py draft --note "" --create ``
The script sets native GitHub Issue Type and Issue Fields after creation when possible. Add --project-number only when a separate GitHub Project also needs to be updated.
If the tester supplied local screenshots, pass them with repeated --image flags:
``bash python3 skills/issue-creator/scripts/sealos_issue.py draft --note "" --image "/path/to/screenshot.png" --create ``
The script uploads images before issue creation and inserts Markdown image URLs into ## 证据. It never publishes local filesystem paths. For dry-run image upload testing, add --upload-images; otherwise previews show 本地截图待上传:.
If the screenshot is on the macOS clipboard and PicList's local server is running, use --clipboard-image instead of saving a temporary file:
``bash python3 skills/issue-creator/scripts/sealos_issue.py draft --note "" --clipboard-image --upload-images python3 skills/issue-creator/scripts/sealos_issue.py draft --note "" --clipboard-image --create ``
Without --upload-images or --create, clipboard previews show 剪贴板截图待上传 and do not call PicList. PicList uploads clipboard content through POST /upload with an empty JSON body, so the system clipboard must contain actual image data.
- If a new product, environment, milestone, or Project field option is confirmed as durable, update the catalog in a controlled way:
``bash python3 skills/issue-creator/scripts/sealos_issue.py draft --note "" --learn ``
Prefer asking before learning. Do not learn typos, temporary environments, or one-off wording.
Title Rules
Use:
:
Examples:
Devbox: 公网地址协议为 grpcs/wss 时内网协议错误GPU Maestro: 创建沙箱后 VS Code 连接超时AppLaunchpad: PVC 扩容接口返回 500对象存储: 长桶名导致权限和更多操作按钮不可见
Do not add bug to the title. Put Bug/Feature in Issue Type or Project Type. Do not use comma-style titles such as Devbox,xxx.
Field Policy
Use native GitHub issue metadata first:
- Issue Type:
Bug,Feature,Task - Issue Fields:
Priority,Effort, and other repo-level fields shown in the issue sidebar
Use GitHub Projects fields only when a separate Project board needs a duplicate value:
Priority:P0,P1,P2Type:Bug,Feature,TaskEffort: leave unset unless explicit or confidently suggested; development may own final effortProduct: normalized product/moduleEnvironment: normalized test environment
Use issue labels only for status or special categories:
- allowed:
待测试,功能相关,部署脚本 - do not add priority labels:
P0,P1,P2 - do not add
待测试when a tester first creates the issue; that label means development has finished and deployed for test
Use milestones for release or test batch such as v5.1.2, Offline-v5.1, or public cloud when the tester mentions it or the current task clearly belongs there.
Map internal priority to GitHub's current repo field options through the catalog. For labring-sigs/sealos-issues, the observed native Priority options are Urgent, High, Medium, and Low; use the catalog mapping instead of labels.
Priority Heuristics
P0: blocker, core flow unusable, data loss/corruption, security risk, cannot create/connect/deploy on a critical path.P1: important product bug, API/server error, broken feature, incorrect data, behavior that affects normal use but has a workaround or narrower scope.P2: copy, localization, visual polish, small-screen layout, minor edge compatibility, low-risk improvement.
When in doubt, suggest P1 and show the reasoning. Do not force testers to become release managers.
Catalog Updates
Keep stable knowledge in assets/catalog.json. Use controlled learning:
- If a new product/environment is detected, preview it as
catalog_suggestions. - Ask whether to add it when it looks durable.
- When adding, include aliases and source issue URL/date if available.
- Do not add misspellings, one-off test URLs, personal accounts, or temporary passwords.
Image Uploaders
Prefer PicList or PicGo so testers do not need to operate GitHub's attachment UI:
- PicList: enable its local server and keep PicList running. The script reads
~/Library/Application Support/piclist/data.jsonby default and uploads throughPOST /upload. - Clipboard screenshots: if PicList local server is enabled, pass
--clipboard-image; the script asks PicList to upload the current system clipboard image. - PicGo CLI: install/configure with
npm install -g picgoandpicgo set uploader; the script usespicgo upload. - Custom command: set
image_uploader.commandinassets/catalog.json, using{files}for all paths or{file}for the first path. The command must print final public image URLs or Markdown image links.
If upload fails during --create, stop instead of creating an issue with unusable local paths.
Output Expectations
When answering the user, show a short preview:
- title
- body summary or full body when asked
- inferred fields and confidence
- sensitive-info warnings
- exact action status: dry-run only, created URL, or blocked by missing gh/project permission
Keep Chinese issue drafts natural and concise. Developers should be able to reproduce the problem without asking the tester to rewrite the report.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: mlhiter
- Source: mlhiter/skills
- License: MIT
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.