Files
optimclaw/skills/github/SKILL.md
[email protected]andClaude Opus 4.6 7d31d68f6f feat(skills): add 245 Pica integration skills covering full catalog
Add SKILL.md files for all 252 Pica platform integrations (245 new,
7 internal skills already existed). Covers the full Pica catalog:

- CRM: attio, close, freshdesk, gorgias, hubspot, intercom, klaviyo, zoho, etc.
- Communication: bluesky, linked-in, meta, x, teams, twilio, ring-central, etc.
- DevOps: git-lab, circle-ci, netlify, render, n8n, neon, ngrok, posthog, etc.
- AI/LLM: anthropic, deep-seek, gemini, perplexity, open-router, x-ai
- E-commerce: big-commerce, shopify-admin, shopify-storefront, square, woocommerce
- Payments: chargebee, paystack, square, stripe
- Email: sendgrid, mailchimp-marketing, mailgun, loops
- And 190+ more across all categories

~83 skills have detailed API docs (base URLs, example http() calls, notes).
~122 skills have auth setup and credential config from Pica metadata.

Skills are embedded into the binary at compile time via the bundling
infrastructure added to v2-architecture, making them available on
every IronClaw install without needing ClawHub.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-03-27 20:16:12 -07:00

3.1 KiB

name, version, description, activation
name version description activation
github 1.0.0 GitHub API integration via HTTP tool with automatic credential injection
keywords exclude_keywords patterns tags max_context_tokens
github
issues
pull request
repository
commit
branch
gitlab
bitbucket
(?i)(list|show|get|fetch|open|close|create|file|merge)\s.*(issue|PR|pull request|repo)
(?i)github.com
git
code-review
devops
2000

GitHub API Skill

You have access to the GitHub REST API via the http tool. Credentials are automatically injected — never construct Authorization headers manually. When the URL host is api.github.com, the system injects Authorization: Bearer {github_token} transparently.

API Patterns

All endpoints use https://api.github.com as the base URL. Common headers are injected automatically.

Issues

List issues:

http(method="GET", url="https://api.github.com/repos/{owner}/{repo}/issues?state=open&sort=created&direction=desc&per_page=30")

Get single issue:

http(method="GET", url="https://api.github.com/repos/{owner}/{repo}/issues/{number}")

Create issue:

http(method="POST", url="https://api.github.com/repos/{owner}/{repo}/issues", body={"title": "...", "body": "...", "labels": ["bug"]})

Add comment:

http(method="POST", url="https://api.github.com/repos/{owner}/{repo}/issues/{number}/comments", body={"body": "..."})

Pull Requests

List PRs:

http(method="GET", url="https://api.github.com/repos/{owner}/{repo}/pulls?state=open&sort=created&direction=desc&per_page=30")

Create PR:

http(method="POST", url="https://api.github.com/repos/{owner}/{repo}/pulls", body={"title": "...", "body": "...", "head": "feature-branch", "base": "main", "draft": true})

Get PR diff:

http(method="GET", url="https://api.github.com/repos/{owner}/{repo}/pulls/{number}", headers=[{"name": "Accept", "value": "application/vnd.github.v3.diff"}])

Repository

Get repo info:

http(method="GET", url="https://api.github.com/repos/{owner}/{repo}")

List branches:

http(method="GET", url="https://api.github.com/repos/{owner}/{repo}/branches")

List recent commits:

http(method="GET", url="https://api.github.com/repos/{owner}/{repo}/commits?per_page=10")

Response Handling

  • GitHub returns JSON. Parse the response to extract relevant fields.
  • For list endpoints, check the Link header for pagination.
  • Rate limit: 5000 req/hour authenticated. Check X-RateLimit-Remaining header if doing bulk operations.
  • Errors return {"message": "..."} — always check for error responses.

Common Mistakes

  • Do NOT add an Authorization header — it is injected automatically by the credential system.
  • Always use HTTPS URLs (HTTP is blocked by the security layer).
  • For creating PRs, always set draft: true unless the user explicitly says "ready for review".
  • The state parameter for issues/PRs is open, closed, or all — not active/inactive.
  • Use per_page to control result count (max 100). Default is 30.