写作与公文
从 Markdown/YAML/需求文档批量创建…
当需要把 Markdown 检查清单、YAML 任务列表、需求定义书或路线图中的条目批量导入 GitHub Project,并自动解析与设置标题、正文、Priority、Size、Status 时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
从 Markdown/YAML/需求文档特定
解决思路
- 从用户处确定项目条目的来源:文件路径(Markdown、YAML 等)、URL(GitHub Issue 列表、Wiki 页面等)或用户直接输入的 inline 文本。
- 按源格式解析并抽取每个条目的:标题、正文/说明、优先级(High / Medium / Low)、大小(XS / S / M / L / XL)、分类(来自章节标题等)。
- 支持并解析 Markdown 检查清单,例如从章节标题和 `- [ ] 条目 (Priority: ..., Size: ...)` 中抽取标题、Priority、Size 和分类。
- 支持并解析 YAML 任务列表,例如从 `tasks:` 下的 `title`、`priority`、`size`、`description` 字段抽取标题、优先级、大小和说明。
- 获取项目 ID:运行 `gh project view <number> --owner <owner> --format json -q '.id'`。
- 获取字段 ID 和选项 ID:运行 `gh project field-list <number> --owner <owner> --format json`。
- 使用 `jq` 将字段名解析为字段 ID,将选项名解析为选项 ID。
- 对抽取出的每个条目执行批量创建:`gh project item-create <number> --owner <owner> --title "<タイトル>" --body "<本文>" --format json`。
- 从 `gh project item-create` 的输出中取得 item ID。
- 对每个条目设置 Priority 字段:`gh project item-edit --id <item-id> --field-id <priority-field-id> --project-id <project-id> --single-select-option-id <option-id>`。
- 对每个条目设置 Size 字段:`gh project item-edit --id <item-id> --field-id <size-field-id> --project-id <project-id> --single-select-option-id <option-id>`。
- 对每个条目设置 Status 字段,默认 Todo:`gh project item-edit --id <item-id> --field-id <status-field-id> --project-id <project-id> --single-select-option-id <todo-option-id>`。
- 创建完成后列出结果,表格列包含 `#`、标题、Priority、Size、Status。
- 大量条目(20 件以上)创建前先向用户确认,然后再批量执行。
- 源格式不明时先向用户确认。
- 字段值与项目选项不匹配时跳过该字段并发出警告。
- 注意 GitHub API 速率限制,必要时调整批量大小。
- 需要网络(主要通过 API;若在 sandbox 环境,按 sandbox 环境执行要求处理)。
- Step 6 完成后验证:运行 `gh project item-list <number> --owner <owner> --format json --limit 999`。
- 若创建出的标题出现在列表中,且 Priority / Size / Status 与期望值一致,则视为完成。
- 在 sandbox 环境中,必须执行的 GitHub 网络操作命令是 `gh project item-create` / `item-edit`;对这些命令按命令单位禁用 sandbox 后执行。
- 在无法解除网络遮断的环境中不能执行该技能。
适用边界 · 注意事项
- 目标 GitHub Project 不存在,或 `gh` CLI 未安装、未认证、缺少 `project` scope。
- 运行环境无法访问 GitHub API,或 sandbox 网络遮断无法按命令解除。
- 需要导入到 GitHub Projects 以外的任务或项目管理工具。