| name | bootstrapping-github-projects |
| description | Automates GitHub Projects V2 setup with standardized workflow boards. Creates custom fields (Status/Value/Effort), configures automations, generates semantic repository labels, and aligns project name with repository. Use when users ask to "set up a project board", "create GitHub project", "bootstrap project planning", "initialize project management", or mention "GitHub Projects V2", "project tracking", or "kanban board setup". Requires GitHub CLI with project scope. |
Bootstrapping GitHub Projects
Bootstrap a GitHub Projects V2 board with standardized custom fields, views, and automations using a proven project management template.
What you should do
When invoked, set up a GitHub project using the automation script. Manual steps are only required for view creation (no API support).
Automated setup (Primary approach)
Run the automation script from the repository root. The script auto-detects the repository from git context:
./core/skills/gh-project-setup/scripts/setup-project.sh
./core/skills/gh-project-setup/scripts/setup-project.sh owner/repo [project-name]
The script automatically:
- ✅ Detects repository from git remote (or uses provided argument)
- ✅ Verifies GitHub authentication and project scope
- ✅ Gets current user as owner
- ✅ Creates project (derives name from repo if not provided)
- ✅ Creates/updates custom fields (Status, Value, Effort)
- ✅ Links repository to project
- ✅ Creates semantic repository labels
- ✅ Saves configuration to
.github/project-config.json
Configuration file location: The config is saved to .github/project-config.json (NOT docs/):
- Standard GitHub-specific configuration directory
- Alongside workflows, issue templates, and other automation
- Separates infrastructure config from user documentation
- Used by
gh-project-manage skill for efficient automation
Manual step required: Create views via web UI (no API available)
Manual setup
For step-by-step instructions or if the automation script cannot be used, see MANUAL-SETUP.md.
Example workflow
User invokes skill: /gh-project-setup in Claude Code (from repository root)
Agent executes:
- Run automation script:
./core/skills/gh-project-setup/scripts/setup-project.sh
- Script auto-detects repository and handles everything (auth, project, fields, labels, config)
- Instruct user to create views manually via web UI (provide project URL from script output)
- Output summary with project URL and next steps (automations, testing)
Error handling
Common issues:
-
Missing project scope
gh auth refresh -h github.com -s project
-
Organization not found
- Verify org name
- Check user has admin access
-
Repository not found
- Verify repo exists
- Check format is
owner/repo
-
GraphQL errors
- Check API response for specific error messages
- Verify all IDs are correct format
-
Field creation fails - Missing description
Error: Expected value to not be null for description field
Solution: Every option MUST include a description property:
{"name": "Todo", "color": "GREEN", "description": "Ready to start"}
-
Field creation fails - JSON array stringified
Error: Expected "..." to be a key-value object
Solution: Don't use -F flags for JSON arrays. Use --input with a JSON file instead.
-
Cannot update field options
Solution: Use updateProjectV2Field mutation (requires December 2024+ API version)
Integration with existing tools
Works with:
gh-project-manage skill - Use generated config for ongoing management
git-project-setup workflow - Reference documentation for process
git-issue-create agent - Auto-add new issues to project
- Issue templates - Update to reference project fields
Generated config enables:
gh project item-add <number> --owner <org> --url <issue-url>
gh project item-edit --id <item-id> --project-id <project-id> \
--field-id <status-field-id> --single-select-option-id <todo-option-id>
Customization options
If advanced customization is needed after initial setup, use the gh-project-manage skill to:
- Update custom field options
- Modify automations
- Change label definitions
- Manage project views
Best practices
- Align project name with repository name - Matches repository slug for consistency
- Always save configuration file - Essential for future management with
gh-project-manage
- Use
--input flag for all field mutations - The -F flag doesn't work for JSON arrays
- Always include
description in options - Required by API schema
- Verify auth and project scope upfront - Check with
gh auth status
- Create standard labels automatically - Apply semantic color psychology for consistency
- Test immediately - Create test issue and add to project
- Capture all field and option IDs - Store in config file for future automation
Reference: Standard template
Custom fields (semantic colors):
- Status: Backlog (GRAY) → Todo (GREEN) → Doing (BLUE) → Done (PURPLE)
- Color progression: neutral → ready → active → complete
- Value: Essential (PURPLE) > Useful (BLUE) > Nice-to-have (GREEN)
- Color hierarchy: highest priority uses most vibrant color
- Effort: Heavy (RED) > Moderate (YELLOW) > Light (GRAY)
- Color warning: red = significant investment, gray = quick task
Views:
- Status board (primary workflow view)
- Table (detailed planning view)
- Value board (prioritization view)
- Effort board (capacity planning view)
Automations:
- Auto-add sub-issues
- Auto-close on PR merge
- Set Status=Done on item closed
- Set Status=Done on PR merged
Label color philosophy:
- Warm colors (red-orange): Urgency and attention-required items
- Cool colors (blue-cyan): Technical infrastructure and routine work
- Greens: Quality and success indicators
- Purples: Refinement and improvement work
- Grays: Neutral configuration and documentation
For detailed color assignment guidance, see LABEL-COLORS.md.
Planning philosophy:
- Value/Effort guide prioritization (not arbitrary priority labels)
- Status reflects work state, dependencies reflect constraints
- Backlog is for triage, Todo is ready queue
- Done means merged and deployed
API reference and troubleshooting
For detailed API information, limitations, and technical notes, see REFERENCE.md:
- GitHub CLI
-F flag limitations and workarounds
- Required field properties and schemas
updateProjectV2Field mutation details (December 2024+)
- GraphQL mutation reference
- Available colors for field options
- View creation limitations
- Built-in automation capabilities