用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/HezaoHezao/poirot --skill github-issues命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | github-issues |
| description | Create, triage, label, assign GitHub issues via gh or REST. |
| allowed-tools | ["bash"] |
| enabled | true |
| related-skills | ["github-auth","github-pr-workflow"] |
| license | MIT |
| author | Adapted from hermes-agent (Nous Research, MIT) |
Create, search, triage, and manage GitHub issues. Each section shows gh first,
then curl fallback.
github-auth skill)if command -v gh &>/dev/null && gh auth status &>/dev/null; then
AUTH="gh"
else
AUTH="curl"
fi
REMOTE_URL=$(git remote get-url origin)
OWNER_REPO=$(echo "$REMOTE_URL" | sed -E 's|.*github\.com[:/]||; s|\.git$||')
OWNER=$(echo "$OWNER_REPO" | cut -d/ -f1)
REPO=$(echo "$OWNER_REPO" | cut -d/ -f2)
# With gh
gh issue list --state open --limit 20
gh issue view 42
# With curl
curl -s "https://api.github.com/repos/$OWNER/$REPO/issues?state=open&per_page=20" | python3 -c "
import sys, json
for i in json.load(sys.stdin):
print(f'#{i[\"number\"]:4d} [{i[\"state\"]:6s}] {i[\"title\"][:60]}')
"
# With gh (interactive editor)
gh issue create
# With gh (inline)
gh issue create --title "Bug: login fails on Safari" --body "Description..."
# With curl
curl -s -X POST \
-H "Authorization: token $GITHUB_TOKEN" \
https://api.github.com/repos/$OWNER/$REPO/issues \
-d '{"title":"Bug: login fails","body":"Description","labels":["bug"]}'
# Search within repo
gh issue list --search "login error" --state all
# Search across GitHub
gh search issues "is:issue is:open repo:$OWNER/$REPO label:bug"
# With curl (GitHub Search API)
curl -s "https://api.github.com/search/issues?q=repo:$OWNER/$REPO+label:bug+state:open" | python3 -c "
import sys, json
r = json.load(sys.stdin)
print(f'Total: {r[\"total_count\"]}')
for i in r['items']:
print(f'#{i[\"number\"]:4d} {i[\"title\"][:60]}')
"
# List labels
gh label list
# Create label
gh label create "priority-high" --color "D73A4A" --description "High priority"
# Add label to issue
gh issue edit 42 --add-label "priority-high"
# With curl
curl -s -X POST \
-H "Authorization: token $GITHUB_TOKEN" \
https://api.github.com/repos/$OWNER/$REPO/issues/42/labels \
-d '{"labels":["priority-high"]}'
# With gh
gh issue edit 42 --add-assignee username
# With curl
curl -s -X POST \
-H "Authorization: token $GITHUB_TOKEN" \
https://api.github.com/repos/$OWNER/$REPO/issues/42/assignees \
-d '{"assignees":["username"]}'
# With gh
gh issue comment 42 --body "Can you reproduce with the latest version?"
# With curl
curl -s -X POST \
-H "Authorization: token $GITHUB_TOKEN" \
https://api.github.com/repos/$OWNER/$REPO/issues/42/comments \
-d '{"body":"Can you reproduce with the latest version?"}'
# With gh
gh issue close 42
gh issue reopen 42
# With curl
curl -s -X PATCH \
-H "Authorization: token $GITHUB_TOKEN" \
https://api.github.com/repos/$OWNER/$REPO/issues/42 \
-d '{"state":"closed"}'
# List untriaged issues (no labels)
gh issue list --state open --search "no:label"
# Bulk add labels
for num in 10 11 12 13; do
gh issue edit $num --add-label "triaged"
done
# List issues assigned to you
gh issue list --assignee @me --state open
pull_request field: if 'pull_request' not in i.# (e.g. D73A4A).