github-project-board
Skill2 starsChanged 16 days agoMITView on GitHub
Manage GitHub Project Boards (Projects v2) via gh CLI. Read backlogs, claim work, update status, add comments, and communicate between agents through standardized board conventions.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Cloud-Peek/agent-skillstheir own version, first seen Jul 13, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- Cloud-Peek/agent-skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- AGENTS.mdAGENTS.md
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 10 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Use this skill when:
- Distinctive: line 30
Use short, lowercase labels that describe the agent's domain or role:
- Distinctive: line 40
Create labels in the repo if they don't exist:
- Distinctive: line 65
Before any board operation, discover the board structure.
- Very specific: line 86
Read the board README (gh project view ...
- Distinctive: line 113
All commands use dynamically discovered IDs from the Board Discovery step.
- Very specific: line 125
When an agent is scoped to a label, cross-reference the board items with the issue's labels.
- Distinctive: line 196
When commenting on issues, use this structured format so other agents and humans can parse updates consistently:
- Distinctive: line 241
Add a comment with your question using the Agent Comment Convention
- Distinctive: line 249
Add a comment with:
- Distinctive: line 258
Add a structured comment summarizing what was done and what remains
- Distinctive: line 264
Before marking any board operation as complete, verify:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
GitHub Project Board Skill
When to Activate
Use this skill when:
- Checking or reading a project board / backlog / sprint / kanban
- Finding work assigned to you or available to pick up
- Updating issue status on a board
- Adding progress comments to issues
- Creating issues or sub-issues on a board
- Handing off work between agents
- Any mention of "board", "backlog", "sprint", "kanban", "project board"
Agent Filtering (Optional)
Agents can be scoped to a subset of board issues using labels. This enables multiple independent agents to work the same board without stepping on each other.
- An agent given a label filter (e.g.,
--label research) only processes issues with that label - An agent given no label filter processes any issue on the board (default behavior)
- Labels are assigned to issues, not board items — use
gh issue editto manage them - Multiple labels can be combined: an issue labeled
research,securityis visible to both the "research" agent and the "security" agent
Label conventions
Use short, lowercase labels that describe the agent's domain or role:
| Label | Agent role |
research | Research and analysis tasks |
coding | Implementation and bug fixes |
docs | Documentation tasks |
devops | Infrastructure and deployment |
review | Code review and QA |
Create labels in the repo if they don't exist:
gh label create <LABEL> --repo <OWNER>/<REPO> --description "<description>"Assign a label to an issue:
gh issue edit <ISSUE_URL> --add-label "<LABEL>"Board Requirements
This skill expects a board with three single-select fields — Status
(In Definition, Todo, In progress, To Review, Ready, Done), Priority
(Critical → Zero), and Size (XL → XS). To create a compatible board from scratch,
see docs/board-setup.md.
Read-only and offline requests
Honor the requested scope: a backlog summary or proposed action does not authorize claims, comments, or status changes. For a supplied offline snapshot, analyze that input and label the result as a sample; do not claim live discovery occurred. Before an authorized live operation, use the discovery step below and re-read the current item before claiming it.
Board Discovery (Mandatory First Step)
Before any board operation, discover the board structure. All field IDs and option IDs are resolved dynamically — never hardcode them.
# 1. Get project metadata and README (workflow rules)
gh project view <NUMBER> --owner <OWNER> --format json
# 2. Get all fields with IDs and option values
gh project field-list <NUMBER> --owner <OWNER> --format json
# 3. Get all items with current field values
gh project item-list <NUMBER> --owner <OWNER> --format json --limit 100From the field-list output, resolve:
- Status field ID — find the field where
name == "Status" - Status option IDs — map each option name ("Todo", "In progress", etc.) to its ID
- Priority field ID — find the field where
name == "Priority" - Priority option IDs — map each option name to its ID
- Size field ID — find the field where
name == "Size" - Project ID — from
gh project viewoutput, theidfield (starts withPVT_)
Read the board README (gh project view ... --format json | jq -r .readme) to understand board-specific workflow rules. The README is authoritative for that board's conventions.
Board Workflow
The standard 6-status lifecycle:
In Definition → Todo → In Progress → To Review → Done
→ Ready → DoneWho controls what
| Transition | Who |
| In Definition → Todo | Human (issue is ready for work) |
| Todo → In Progress | Agent (claiming work) |
| In Progress → To Review | Agent (needs clarification or review) |
| In Progress → Ready | Agent (work complete, needs final approval) |
| To Review → Todo | Human (feedback given, back to backlog) |
| Ready → Done | Human (approved) |
| Ready → Todo | Human (rejected, needs rework) |
Agents should never move items to "In Definition" or "Done" — those are human-controlled states.
Quick Command Reference
All commands use dynamically discovered IDs from the Board Discovery step.
List backlog items by status
# All Todo items (no label filter)
gh project item-list <NUMBER> --owner <OWNER> --format json --limit 100 \
| jq '[.items[] | select(.status == "Todo")]'List backlog items filtered by label
When an agent is scoped to a label, cross-reference the board items with the issue's labels. The item-list output includes each item's issue URL — use GraphQL to filter by label efficiently (see references/graphql-recipes.md recipe #6), or filter locally:
# Get Todo items, then check each for the target label
TODO_ITEMS=$(gh project item-list <NUMBER> --owner <OWNER> --format json --limit 100 \
| jq '[.items[] | select(.status == "Todo")]')
# Filter by label (requires checking each issue)
echo "$TODO_ITEMS" | jq -r '.[].content.url' | while read url; do
labels=$(gh issue view "$url" --json labels --jq '.labels[].name')
if echo "$labels" | grep -q "^<LABEL>$"; then
echo "$url"
fi
doneMove item to a new status
gh project item-edit \
--project-id <PROJECT_ID> \
--id <ITEM_ID> \
--field-id <STATUS_FIELD_ID> \
--single-select-option-id <TARGET_STATUS_OPTION_ID>Add a comment to an issue
gh issue comment <ISSUE_URL> --body "<structured comment>"Create an issue and add to board
# Create the issue (add --label to assign to a specific agent)
gh issue create --repo <OWNER>/<REPO> --title "<title>" --body "<body>" \
--label "<LABEL>"
# Add to board (use the returned issue URL)
gh project item-add <NUMBER> --owner <OWNER> --url <ISSUE_URL>Set priority or size
gh project item-edit \
--project-id <PROJECT_ID> \
--id <ITEM_ID> \
--field-id <PRIORITY_FIELD_ID> \
--single-select-option-id <PRIORITY_OPTION_ID>Create a sub-issue
gh issue create --repo <OWNER>/<REPO> \
--title "<sub-issue title>" \
--body "Parent: <PARENT_ISSUE_URL>"
# Then add to the board and set fieldsOpen board in browser
gh project view <NUMBER> --owner <OWNER> --webAgent Comment Convention
When commenting on issues, use this structured format so other agents and humans can parse updates consistently:
## Agent Update — <AGENT_NAME>
**Status**: Working | Blocked | Complete | Needs Review
**Action**: <brief description of what was done>
### Details
<fuller description of the work, findings, or changes>
### Blockers (if any)
- <blocker description>
### Next Steps
- <next action to take>
---
_Updated by `<AGENT_NAME>` at <ISO 8601 timestamp>_Agent Workflow Patterns
Pick Up Work
- Discover the board (see Board Discovery above)
- List items with status "Todo" — if a label filter was provided, only consider issues with that label
- Sort by priority (Critical > Very High > High > Average > Low > Very Low > Zero)
- Claim the highest-priority item by moving it to "In Progress"
- Comment on the issue with an "Agent Update" noting you've started
Work Cycle
- Read the issue description, comments, and attachments for requirements
- Implement the requested work
- Comment periodically with progress updates
- Move to "To Review" (if you need feedback) or "Ready" (if work is complete)
- Comment with a final summary of what was done
Ask for Clarification
- Move the issue to "To Review"
- Add a comment with your question using the Agent Comment Convention
- Set
**Status**: Blockedin the comment - A human will review, answer in comments, and move back to "Todo"
- Pick it up again from the backlog
Submit for Approval
- Move the issue to "Ready"
- Add a comment with:
- Summary of all changes made
- Links to PRs or commits
- Any caveats or known limitations
- Set
**Status**: Completein the comment
Agent Handoff
- Complete your portion of work
- Add a structured comment summarizing what was done and what remains
- Move the issue back to "Todo" (or keep in "In Progress" if the next agent should continue immediately)
- The next agent picks it up following the "Pick Up Work" pattern
Quality Gate
Before marking any board operation as complete, verify:
- Status field was actually updated (re-read the item to confirm)
- Comment follows the Agent Comment Convention
- No stale "In Progress" items left behind (if you're done with an item, move it)
- Board README rules were followed
See references/ for the detailed command reference, GraphQL recipes, and expanded
workflow patterns; examples/ for installation recipes, usage scenarios, and a full
walkthrough; and docs/board-setup.md to create a compatible board.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

