mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 07:20:45 +00:00
* feat(skills): improve descriptions with routing logic Apply OpenAI's recommended pattern for skill descriptions: - Add 'Use when' conditions for clear triggering - Add 'NOT for' negative examples to reduce misfires - Make descriptions act as routing logic, not marketing copy Based on: https://developers.openai.com/blog/skills-shell-tips/ Skills updated: - coding-agent: clarify when to delegate vs direct edit - github: add boundaries vs browser/scripting - weather: add scope limitations Glean reported 20% drop in skill triggering without negative examples, recovering after adding them. This change brings Clawdbot skills in line with that pattern. * docs(skills): clarify routing boundaries (openclaw#14577) (thanks @DylanWoodAkers) * docs(changelog): add PR 14577 release note (openclaw#14577) (thanks @DylanWoodAkers) --------- Co-authored-by: ClawdBotWolf <clawdbotwolf@proton.me> Co-authored-by: Peter Steinberger <steipete@gmail.com>
164 lines
4.0 KiB
Markdown
164 lines
4.0 KiB
Markdown
---
|
|
name: github
|
|
description: "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured."
|
|
metadata:
|
|
{
|
|
"openclaw":
|
|
{
|
|
"emoji": "🐙",
|
|
"requires": { "bins": ["gh"] },
|
|
"install":
|
|
[
|
|
{
|
|
"id": "brew",
|
|
"kind": "brew",
|
|
"formula": "gh",
|
|
"bins": ["gh"],
|
|
"label": "Install GitHub CLI (brew)",
|
|
},
|
|
{
|
|
"id": "apt",
|
|
"kind": "apt",
|
|
"package": "gh",
|
|
"bins": ["gh"],
|
|
"label": "Install GitHub CLI (apt)",
|
|
},
|
|
],
|
|
},
|
|
}
|
|
---
|
|
|
|
# GitHub Skill
|
|
|
|
Use the `gh` CLI to interact with GitHub repositories, issues, PRs, and CI.
|
|
|
|
## When to Use
|
|
|
|
✅ **USE this skill when:**
|
|
|
|
- Checking PR status, reviews, or merge readiness
|
|
- Viewing CI/workflow run status and logs
|
|
- Creating, closing, or commenting on issues
|
|
- Creating or merging pull requests
|
|
- Querying GitHub API for repository data
|
|
- Listing repos, releases, or collaborators
|
|
|
|
## When NOT to Use
|
|
|
|
❌ **DON'T use this skill when:**
|
|
|
|
- Local git operations (commit, push, pull, branch) → use `git` directly
|
|
- Non-GitHub repos (GitLab, Bitbucket, self-hosted) → different CLIs
|
|
- Cloning repositories → use `git clone`
|
|
- Reviewing actual code changes → use `coding-agent` skill
|
|
- Complex multi-file diffs → use `coding-agent` or read files directly
|
|
|
|
## Setup
|
|
|
|
```bash
|
|
# Authenticate (one-time)
|
|
gh auth login
|
|
|
|
# Verify
|
|
gh auth status
|
|
```
|
|
|
|
## Common Commands
|
|
|
|
### Pull Requests
|
|
|
|
```bash
|
|
# List PRs
|
|
gh pr list --repo owner/repo
|
|
|
|
# Check CI status
|
|
gh pr checks 55 --repo owner/repo
|
|
|
|
# View PR details
|
|
gh pr view 55 --repo owner/repo
|
|
|
|
# Create PR
|
|
gh pr create --title "feat: add feature" --body "Description"
|
|
|
|
# Merge PR
|
|
gh pr merge 55 --squash --repo owner/repo
|
|
```
|
|
|
|
### Issues
|
|
|
|
```bash
|
|
# List issues
|
|
gh issue list --repo owner/repo --state open
|
|
|
|
# Create issue
|
|
gh issue create --title "Bug: something broken" --body "Details..."
|
|
|
|
# Close issue
|
|
gh issue close 42 --repo owner/repo
|
|
```
|
|
|
|
### CI/Workflow Runs
|
|
|
|
```bash
|
|
# List recent runs
|
|
gh run list --repo owner/repo --limit 10
|
|
|
|
# View specific run
|
|
gh run view <run-id> --repo owner/repo
|
|
|
|
# View failed step logs only
|
|
gh run view <run-id> --repo owner/repo --log-failed
|
|
|
|
# Re-run failed jobs
|
|
gh run rerun <run-id> --failed --repo owner/repo
|
|
```
|
|
|
|
### API Queries
|
|
|
|
```bash
|
|
# Get PR with specific fields
|
|
gh api repos/owner/repo/pulls/55 --jq '.title, .state, .user.login'
|
|
|
|
# List all labels
|
|
gh api repos/owner/repo/labels --jq '.[].name'
|
|
|
|
# Get repo stats
|
|
gh api repos/owner/repo --jq '{stars: .stargazers_count, forks: .forks_count}'
|
|
```
|
|
|
|
## JSON Output
|
|
|
|
Most commands support `--json` for structured output with `--jq` filtering:
|
|
|
|
```bash
|
|
gh issue list --repo owner/repo --json number,title --jq '.[] | "\(.number): \(.title)"'
|
|
gh pr list --json number,title,state,mergeable --jq '.[] | select(.mergeable == "MERGEABLE")'
|
|
```
|
|
|
|
## Templates
|
|
|
|
### PR Review Summary
|
|
|
|
```bash
|
|
# Get PR overview for review
|
|
PR=55 REPO=owner/repo
|
|
echo "## PR #$PR Summary"
|
|
gh pr view $PR --repo $REPO --json title,body,author,additions,deletions,changedFiles \
|
|
--jq '"**\(.title)** by @\(.author.login)\n\n\(.body)\n\n📊 +\(.additions) -\(.deletions) across \(.changedFiles) files"'
|
|
gh pr checks $PR --repo $REPO
|
|
```
|
|
|
|
### Issue Triage
|
|
|
|
```bash
|
|
# Quick issue triage view
|
|
gh issue list --repo owner/repo --state open --json number,title,labels,createdAt \
|
|
--jq '.[] | "[\(.number)] \(.title) - \([.labels[].name] | join(", ")) (\(.createdAt[:10]))"'
|
|
```
|
|
|
|
## Notes
|
|
|
|
- Always specify `--repo owner/repo` when not in a git directory
|
|
- Use URLs directly: `gh pr view https://github.com/owner/repo/pull/55`
|
|
- Rate limits apply; use `gh api --cache 1h` for repeated queries
|