gh-skill
- Repo stars 39
- Author updated Live
- Author repo awesome-omni-skill
- Domain
- Other
- Compatible agents
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- Trust score
- 88 / 100 · community maintained
- Author / version / license
- @diegosouzapw · no license declared
- Token usage
- Lean
- Setup complexity
- Plug-and-play
- External API key
- Not required
- Operating systems
- macOS · Linux · Windows
- Runtime requirements
- Node.js
- Permissions
-
- Read-only
- Write / modify
- Env read
- Network behavior
- External requests
- Install commands
- 26 variants
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: gh-skill
description: Manage GitHub Projects (V2), Issues, and Boards. View project boards, create/move issues, commen…
category: other
runtime: Node.js
---
# gh-skill output preview
## PART A: Task fit
- Use case: Manage GitHub Projects (V2), Issues, and Boards. View project boards, create/move issues, comment, and track status via CLI. Use when you need to interact with GitHub Projects..
- Inputs: target material, constraints, expected output, and acceptance criteria.
- Evidence boundary: follow “Usage / 0. 🔍 Discovery / 1. 📋 Board Items” and do not present inference as author intent.
## PART B: Execution result
- **01** The card summarizes the use case; runtime output centers on “Manage GitHub Projects (V2), Issues, and Boards. View project boards, create/move issues, comment, and track status via CLI. Use when you need to interact with GitHub Projects.”.
- **02** When the source has headings, the agent prioritizes “Usage / 0. 🔍 Discovery / 1. 📋 Board Items” so the result follows the author’s structure.
- **03** Typical output includes task judgment, concrete steps, required commands or file edits, validation, and follow-up options.
- **04** Risk context follows the fingerprint: read files, write/modify files, read environment variables; may access external network resources; usually needs no extra API key.
## Running Rules
- read files, write/modify files, read environment variables; may access external network resources; usually needs no extra API key.
- Validate with a small sample before expanding scope.
- Return the result, validation criteria, and next iteration options. The source does not require a stable slash command. After installation, invoke the skill by name and describe the task.
Name target files or source material, expected output, forbidden changes, and whether network or shell access is allowed. Permission fingerprint: read files, write/modify files, read environment variables.
Start with a small task and check whether the result follows “Usage / 0. 🔍 Discovery / 1. 📋 Board Items”. Inspect diffs, logs, previews, or tests before expanding scope.
Confirm the final output includes a concrete result, evidence, and next action. If it stays generic, tighten inputs, boundaries, and acceptance criteria.
---
name: gh-skill
description: Manage GitHub Projects (V2), Issues, and Boards. View project boards, create/move issues, commen…
category: other
source: diegosouzapw/awesome-omni-skill
---
# gh-skill
## When to use
- Manage GitHub Projects (V2), Issues, and Boards. View project boards, create/move issues, comment, and track status vi…
- Use it when the task has clear inputs, repeatable steps, and validation criteria.
## What to provide
- Target material, scope, expected result, and forbidden changes.
- Whether network, commands, file writes, or external services are allowed.
## Execution rules
- Organize steps around “Usage / 0. 🔍 Discovery / 1. 📋 Board Items” and keep inference separate from source facts.
- read files, write/modify files, read environment variables; may access external network resources; usually needs no extra API key.
- Validate with a small sample before expanding the task.
## Output requirements
- Return the deliverable, key evidence, validation method, and next action.
- Mark missing information as unknown; do not invent commands, platforms, or dependencies. The author source anchors workflow facts; repository files anchor sources and commands; Fluxly only adds fit, limitations, and quality judgment.
skill "gh-skill" {
input -> user goal + target files + boundaries + acceptance criteria
context -> Usage / 0. 🔍 Discovery / 1. 📋 Board Items
rules -> SKILL.md triggers / order / output contract
runtime -> Node.js | read files, write/modify files, read environment variables | may access external network resources
guardrails -> usually needs no extra API key + small-sample validation + diff/log review
output -> copyable result + checklist + next iteration
} GitHub Project Skill
This skill provides a comprehensive CLI wrapper for the GitHub GraphQL API, enabling efficient management of GitHub Projects V2 and Issues directly from the terminal.
Usage
The main entry point is dist/cli.js (relative to the project root). You can verify it works with:
node dist/cli.js --help
Global Options:
-j, --json: Output results in JSON format. ALWAYS use this flag when parsing output programmatically.
Note: In --json mode, the CLI prints only JSON to stdout.
0. 🔍 Discovery
Goal: Explore owner resources and project structure.
List Projects
- Command:
node dist/cli.js project-list <owner> - Usage:
node dist/cli.js project-list "my-org" --json
List Repositories
- Command:
node dist/cli.js repo-list <owner> - Usage:
node dist/cli.js repo-list "my-org" --json
Get Project Board Details
- Command:
node dist/cli.js board <owner> <project> - Arguments:
<project>can be the Project Number or the Project Title (case-insensitive). - Options:
--status-field <name>(Default: "Status") - Usage:
Returns project ID, global node ID, and column definitions (including Option IDs needed for moving items).node dist/cli.js board "my-org" "My Project Name" --json
1. 📋 Board Items
Goal: List all items (Issues/PRs/Drafts) on the board with their current status.
- Command:
node dist/cli.js items <owner> <project> - Usage:
Returns list of items with their Item IDs (for moving/archiving) and Content Node IDs.node dist/cli.js items "my-org" 1 --json
List Issues Linked to a Project (Project-Centric)
Goal: One consistent way for AI agents: start from Project, get issues + both IDs (Issue node ID and Project item ID).
- Command:
node dist/cli.js project-issues <owner> <project> - Options:
--status-field <name>(Default: "Status")--state <open|closed|all>(Default:open)--limit <n>(Default:50)--repo <owner/repo>(Optional: narrow search to a single repo)
- Usage:
Implementation note: uses GitHub GraphQLnode dist/cli.js project-issues "my-org" "Trionix Lab" --state open --limit 50 --json # optionally scope to one repo for speed/limits node dist/cli.js project-issues "my-org" 1 --repo "my-org/my-repo" --jsonsearch+Issue.projectItemsto avoid cases whereProjectV2.itemslisting is incomplete for some integrations.
Show Project Item by Item ID
Goal: Inspect a specific project item when listing is incomplete.
- Command:
node dist/cli.js item-show <itemId> - Options:
--status-field <name>(Default: "Status") - Usage:
Useful workaround ifnode dist/cli.js item-show "PVTI_..." --jsonitemsdoes not show Issues/PRs due to access restrictions.
2. 🆕 Issue & Draft Management
List Issues
Goal: List issues in a repository (with pagination).
- Command:
node dist/cli.js issue-list <owner/repo> - Options:
--state <open|closed|all>(Default:open),--limit <n>(Default:50) - Usage:
node dist/cli.js issue-list "my-org/my-repo" --state open --limit 50 --json
Create Issue
- Command:
node dist/cli.js issue-create <owner/repo> "<title>" - Options:
--body "<body>" - Usage:
node dist/cli.js issue-create "my-org/my-repo" "Fix bug" --body "Details" --json
Create Draft
- Command:
node dist/cli.js draft-create <owner> <project> "<title>" - Options:
--body "<body>" - Usage:
node dist/cli.js draft-create "my-org" "Product Roadmap" "Task title" --body "Details" --json
Show Issue
- Command:
node dist/cli.js issue-show <owner/repo> <issue_number> - Usage:
node dist/cli.js issue-show "my-org/my-repo" 123 --json
Get Issue by Node ID (Agent-Friendly)
Goal: Fetch issue content when you already have issue.id (node ID).
- Command:
node dist/cli.js issue-get <issueNodeId> - Usage:
node dist/cli.js issue-get "I_kwDO..." --json
Update Issue
- Command:
node dist/cli.js issue-update <issueNodeId> - Options:
--title <text>,--body <text> - Usage:
node dist/cli.js issue-update "I_kwDO..." --title "New Title" --json
Close Issue
- Command:
node dist/cli.js issue-close <issueNodeId> - Usage:
node dist/cli.js issue-close "I_kwDO..." --json
Delete Issue (Behavior)
Note: GitHub APIs do not support hard-deleting Issues. This command closes the issue.
- Command:
node dist/cli.js issue-delete <issueNodeId> - Usage:
node dist/cli.js issue-delete "I_kwDO..." --json
3. 💬 Collaboration
Goal: Add comments to issues.
- Command:
node dist/cli.js issue-comment <issueNodeId> "Comment text" - Usage:
node dist/cli.js issue-comment "I_kwDO..." "Done" --json
List Comments
Goal: Get existing comments for an issue (for agents that need context).
- Command:
node dist/cli.js issue-comments <issueNodeId> - Options:
--limit <n>(Default:50) - Usage:
node dist/cli.js issue-comments "I_kwDO..." --limit 50 --json
4. 🚚 Kanban Operations
Add Issue to Project
- Command:
node dist/cli.js issue-add-to-project <owner> <project> <issueNodeId> - Usage:
node dist/cli.js issue-add-to-project "my-org" "Project Name" "I_kwDO..." --json
Move Item
- Command:
node dist/cli.js issue-move <itemId> <projectId> <statusFieldId> <optionId> - Usage:
# IDs are obtained from 'board' and 'items' commands node dist/cli.js issue-move "PVTI_..." "PVT_..." "PVTSSF_..." "f75ad846" --json
Move Item (Agent-Friendly)
Goal: Move an item without dealing with option IDs.
- Command:
node dist/cli.js item-move <owner> <project> <itemId> --status "<Status Name>" - Options:
--status-field <name>(Default: "Status") - Usage:
node dist/cli.js item-move "my-org" "Product Roadmap" "PVTI_..." --status "In progress" --json
Archive Item
- Command:
node dist/cli.js item-archive <owner> <project> <itemId> - Options:
--unarchive - Usage:
node dist/cli.js item-archive "my-org" 1 "PVTI_..." --json
Delete Item from Project
- Command:
node dist/cli.js item-delete <owner> <project> <itemId> - Usage:
node dist/cli.js item-delete "my-org" "Project Alpha" "PVTI_..." --json
Best Practices
- Use JSON: Always append
--jsonfor robust parsing. - Get IDs First: Most mutation commands require Node IDs (strings starting with like
PVT_,I_,PVTI_). Useproject-list,boardanditemscommands to retrieve these IDs. - Owner Logic: Owner can be either an Organization or a User. The tool automatically tries both.
Troubleshooting
- "Project not found": Check if
ownerandproject_numberare correct. - "Resource not accessible by integration": Check your
.envcredentials and GitHub App permissions.
Notes on Project Items Visibility
- A Project V2 may contain items that the current token cannot fully view. GitHub can return items as REDACTED when the integration lacks permissions to view the underlying Issue/PR.
- If
issue-add-to-projectsucceeds butitemsdoes not show the Issue/PR item, useitem-show <itemId>(theitemIdreturned byissue-add-to-project) to inspect it directly.
Recommended Single Workflow (for AI agents)
- List work from the Project (project-centric):
project-issues <owner> <project> --json. Note:<project>can be a name or a number. - Read issue content by node ID:
issue-get <issueNodeId> --json. - Update / comment:
issue-update <issueNodeId> --title ... --body ... --jsonissue-comments <issueNodeId> --json(get context)issue-comment <issueNodeId> "..." --json(add)
- “Delete” in practice:
- GitHub APIs do not support hard-deleting Issues.
- Use
issue-delete <issueNodeId>(closes the issue) and/oritem-delete <owner> <project> <projectItemId>(removes it from the Project).
- Move on the board using readable status:
item-move <owner> <project> <projectItemId> --status "To Do" --json
- Optional lifecycle:
item-archive <owner> <project> <projectItemId> --json
Decide Fit First
Design Intent
How To Use It
Boundaries And Review