Bulk-create project items from sources such as requirement documents, task lists, and roadmaps.
Prerequisites
- The target GitHub Project must exist
ghThe CLI must be installed and authenticated (projectscope)
Flow
Step 1: Identify the source
Get the item source from the user:
- File path (Markdown, YAML, etc.)
- URL (GitHub Issue list, Wiki page, etc.)
- Inline text (entered directly by the user)
Step 2: Parse the source and extract items
Parse according to the source format and extract the following information:
- Title
- Body/description
- Priority (High / Medium / Low)
- Size (XS / S / M / L / XL)
- Category (from section headings, etc.)
Examples of supported source formats:
Markdown checklist:
## 認証機能
- [ ] ソーシャルログイン実装 (Priority: High, Size: L)
- [ ] パスワードリセット (Priority: Medium, Size: M)
## ダッシュボード
- [ ] 利用統計グラフ (Priority: Low, Size: S)
YAML task list:
tasks:
- title: "ソーシャルログイン実装"
priority: High
size: L
description: "OAuth2 を使用した Google/GitHub ログイン"
Step 3: Retrieve field metadata
# プロジェクト ID を取得
gh project view <number> --owner <owner> --format json -q '.id'
# フィールド ID とオプション ID を取得
gh project field-list <number> --owner <owner> --format json
jq Resolve field name → field ID and option name → option ID with
Step 4: Bulk-create items
For each extracted item:
gh project item-create <number> \
--owner <owner> \
--title "<タイトル>" \
--body "<本文>" \
--format json
Get the item ID from the output.
Step 5: Set field values
Set field values for each item:
# 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>
Step 6: List the creation results
Display the list of created items:
| # | Title | Priority | Size | Status |
|---|---|---|---|---|
| 1 | Social login implementation | High | L | Todo |
| 2 | Password reset | Medium | M | Todo |
Notes
- When creating a large number of items (20 or more), confirm with the user before running in batches
- If the source format is unclear, confirm with the user
- If a field value does not match a project option, skip it and warn
- Be mindful of GitHub API rate limits, and adjust the batch size as needed
- Requires network (mainly via API. See the later section "Running in a sandbox environment")
Verification
After completing Step 6, verify the created items with the following:
gh project item-list <number> --owner <owner> --format json --limit 999
If the created titles are included in the list and Priority / Size / Status match the expected values, it is complete.
Running in a sandbox environment
This skill requires GitHub operations over the network (gh project item-create / item-edit). Run the relevant commands with the sandbox disabled on a per-command basis. It cannot be run in an environment where network blocking cannot be lifted.