create-github-issues
About
This skill automatically creates structured GitHub Issues from code review findings or task breakdowns. It groups related items into logical issues, applies appropriate labels, and generates issues with standard templates including summaries, findings, and acceptance criteria. It's designed to work with outputs from review-codebase or similar audit skills to streamline issue tracking.
Quick Install
Claude Code
Recommendednpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/create-github-issuesCopy and paste this command in Claude Code to install this skill
Documentation
name: create-github-issues description: > 从审查发现或任务拆解中结构化创建 GitHub Issue。将相关发现分组为逻辑性 Issue, 应用标签,并生成包含标准模板(摘要、发现和验收标准)的 Issue。 专为使用 review-codebase 或类似审查技能的输出而设计。 locale: zh-CN source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16 license: MIT allowed-tools: Read Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: git complexity: intermediate language: multi tags: git, github, project-management, issues, review, automation
创建 GitHub Issue
从审查发现或任务拆解中结构化创建 GitHub Issue。将发现列表(来自 review-codebase、security-audit-codebase 或手动分析)转化为格式规范的 GitHub Issue,包含标签、验收标准和交叉引用。
适用场景
- 代码库审查产生了需要跟踪的发现表格后
- 规划会议识别出应成为 Issue 的工作项后
- 将 TODO 列表或待办事项转换为可跟踪的 GitHub Issue 时
- 批量创建需要一致格式和标签的相关 Issue 时
输入
- 必需:
findings——条目列表,每条至少包含标题和描述。理想情况下还包含:严重程度、受影响文件和建议标签 - 可选:
group_by——将发现批量归入 Issue 的方式:severity(严重程度)、file(文件)、theme(主题)(默认:theme)label_prefix——自动创建标签的前缀(默认:无)create_labels——是否创建缺失的标签(默认:true)dry_run——预览 Issue 而不实际创建(默认:false)
步骤
第 1 步:准备标签
确保所有所需标签在仓库中存在。
- 列出现有标签:
gh label list --limit 100 - 识别发现所需的标签(来自严重程度、阶段或显式标签字段)
- 将严重程度映射到标签(若未映射):
critical、high-priority、medium-priority、low-priority - 将阶段/主题映射到标签:
security、architecture、code-quality、accessibility、testing、performance - 若
create_labels为 true,创建缺失的标签:gh label create "name" --color "hex" --description "desc" - 使用一致的颜色:红色用于 critical/security,橙色用于 high,黄色用于 medium,蓝色用于 architecture,绿色用于 testing
预期结果: 发现引用的所有标签均在仓库中存在,未创建重复标签。
失败处理: 若 gh CLI 未认证,提示用户运行 gh auth login。若标签创建被拒绝(权限不足),在不创建标签的情况下继续,并记录缺失的标签。
第 2 步:分组发现
将相关发现批量归入逻辑性 Issue,避免 Issue 泛滥。
- 若
group_by为theme:按阶段或类别分组(所有安全发现 → 1-2 个 Issue,所有无障碍问题 → 1 个 Issue) - 若
group_by为severity:按严重程度分组(所有 CRITICAL → 1 个 Issue,所有 HIGH → 1 个 Issue) - 若
group_by为file:按主要受影响文件分组 - 在每组内按严重程度排序(CRITICAL 优先)
- 若一组超过 8 条发现,按子主题拆分为子组
- 每组对应一个 GitHub Issue
预期结果: 形成一组 Issue 分组,每组包含 1-8 条相关发现。Issue 总数应可管理(完整代码库审查通常为 5-15 个)。
失败处理: 若发现没有分组元数据,退回到每条发现对应一个 Issue。对于小型发现集(< 10 条)这是可接受的,但对于较大的发现集会产生过多 Issue。
第 3 步:撰写 Issue
使用标准模板构建每个 Issue。
- 标题:
[Severity] Theme: Brief description——例如:[HIGH] Security: Eliminate innerHTML injection in panel.js - 正文结构:
## Summary One-paragraph overview of what this issue addresses and why it matters. ## Findings 1. **[SEVERITY]** Finding description (`file.js:line`) — brief explanation 2. **[SEVERITY]** Finding description (`file.js:line`) — brief explanation ## Acceptance Criteria - [ ] Criterion derived from finding 1 - [ ] Criterion derived from finding 2 - [ ] All changes pass existing tests ## Context Generated from codebase review on YYYY-MM-DD. Related: #issue_numbers (if applicable) - 应用标签:严重程度标签 + 主题标签 + 任何自定义标签
- 若发现引用了特定文件,在正文中提及(不作为受理人)
预期结果: 每个 Issue 有清晰的标题、带严重程度标记的编号发现、复选框验收标准和适当的标签。
失败处理: 若正文超过 GitHub Issue 大小限制(65536 个字符),将 Issue 拆分为多个部分并相互交叉引用。
第 4 步:创建 Issue
使用 gh CLI 创建 Issue 并报告结果。
- 若
dry_run为 true,打印每个 Issue 的标题和正文,不实际创建,然后停止 - 对每个已撰写的 Issue 执行创建:
gh issue create --title "title" --body "$(cat <<'EOF' body content EOF )" --label "label1,label2" - 记录每个已创建 Issue 的 URL
- 所有 Issue 创建完成后,打印汇总表:
#number | Title | Labels | Findings count - 若 Issue 需要排序,添加交叉引用:编辑第一个 Issue,注明"Blocked by #X"或"See also #Y"
预期结果: 所有 Issue 创建成功,打印出包含 Issue 编号和 URL 的汇总表。
失败处理: 若单个 Issue 创建失败,记录错误并继续处理剩余 Issue,最后汇总报告失败情况。常见失败原因:认证已过期、未找到标签(若 create_labels 为 false)、网络超时。
验证清单
- 所有发现均在至少一个 Issue 中得到体现
- 每个 Issue 至少有一个标签
- 每个 Issue 有复选框形式的验收标准
- 未创建重复 Issue(对照现有开放 Issue 检查标题)
- Issue 数量与发现数量匹配合理(大型发现集不应 1:1 对应)
- 已打印包含所有 Issue URL 的汇总表
常见问题
- Issue 泛滥:每条发现创建一个 Issue 会产生 20+ 个难以管理的 Issue。应积极分组——完整审查产生 5-10 个 Issue 为理想状态
- 缺少验收标准:没有复选框的 Issue 无法验证是否完成。每条发现至少应映射到一个复选框
- 标签混乱:创建过多标签会使筛选失去意义。坚持使用严重程度 + 主题,而非每条发现单独建标签
- 引用了陈旧内容:若从旧审查中创建 Issue,请先验证发现是否仍适用。代码可能已变更
- 忘记试运行:对于大型发现集,始终先用
dry_run: true预览。编辑计划比关闭 15 个错误 Issue 容易得多
相关技能
review-codebase— 生成本技能使用的发现表格review-pull-request— 生成可转化为 Issue 的 PR 范围发现manage-backlog— 创建 Issue 后将其组织到冲刺和优先级中create-pull-request— 创建引用并关闭这些 Issue 的 PRcommit-changes— 提交解决 Issue 的修复
GitHub Repository
Related Skills
content-collections
MetaThis skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.
polymarket
MetaThis skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.
creating-opencode-plugins
MetaThis skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.
sglang
MetaSGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.
