---
name: sundial-org/github-kb
source: https://app.decimal.ai/s/sundial-org-github-kb@1/SKILL.md
source_sha256: 91ffeac14833
---

# GitHub Knowledge Base

Manage a local GitHub knowledge base and provide GitHub search capabilities via gh CLI. Key file: GITHUB_KB.md at the root of the KB directory catalogs all projects with brief descriptions.

## Configuration

Set environment variables before use:
- `GITHUB_TOKEN` - GitHub Personal Access Token (optional, for private repos)
- `GITHUB_KB_PATH` - Path to local KB directory (default: `/home/node/clawd/github-kb`)

Example:
```bash
export GITHUB_TOKEN="ghp_xxxx..."
export GITHUB_KB_PATH="/your/path/github-kb"
```

**Token Privacy:** Never hardcode tokens. Inject via environment variables or container secrets.

## GitHub CLI (gh)

**Requirement:** GitHub CLI must be installed and authenticated.

**Installation:**
- **macOS:** `brew install gh`
- **Linux:** `apt install gh` or see [official install guide](https://github.com/cli/cli/blob/trunk/docs/install_linux.md)
- **Windows:** `winget install GitHub.cli`

**Authentication:**
```bash
# Interactive login
gh auth login

# Or use token from GITHUB_TOKEN env var
gh auth login --with-token <(echo "$GITHUB_TOKEN")
```

**Verify:** `gh auth status`

If `gh` is not installed or not authenticated, skip search operations and use only local KB features.

### Searching Repos

```bash
# Search repos by keyword
gh search repos <query> [--limit <n>]

# Examples:
gh search repos "typescript cli" --limit 10
gh search repos "language:python stars:>1000" --limit 20
gh search repos "topic:mcp" --limit 15
```

**Search qualifiers:**
- `language:<lang>` - Filter by programming language
- `stars:<n>` or `stars:><n>` - Filter by star count
- `topic:<name>` - Filter by topic
- `user:<owner>` - Search within a user's repos
- `org:<org>` - Search within an organization

### Searching Issues

```bash
gh search issues "react hooks bug" --limit 20
gh search issues "repo:facebook/react state:open" --limit 30
gh search issues "language:typescript label:bug" --limit 15
```

**Search qualifiers:**
- `repo:<owner/repo>` - Search in specific repository
- `state:open|closed` - Filter by issue state
- `author:<username>` - Filter by author
- `label:<name>` - Filter by label
- `language:<lang>` - Filter by repo language
- `comments:<n>` or `comments:><n>` - Filter by comment count

### Searching Pull Requests

```bash
# Search PRs
gh search prs <query> [--limit <n>]

# Examples:
gh search prs "repo:vercel/next.js state:open" --limit 30
gh search prs "language:go is:merged" --limit 15
```

**Search qualifiers:**
- `repo:<owner/repo>` - Search in specific repository
- `state:open|closed|merged` - Filter by PR state
- `author:<username>` - Filter by author
- `label:<name>` - Filter by label
- `language:<lang>` - Filter by repo language
- `is:merged|unmerged` - Filter by merge status

### Viewing PR/Issue Details

```bash
# View issue/PR details
gh issue view <number> --repo <owner/repo>
gh pr view <number> --repo <owner/repo>

# View with comments
gh issue view <number> --repo <owner/repo> --comments
gh pr view <number> --repo <owner/repo> --comments
```

## Local Knowledge Base Workflow

### Querying About a Repo in KB

1. Read GITHUB_KB.md to understand what projects exist
2. Locate the project directory under ${GITHUB_KB_PATH:-/home/node/clawd/github-kb}/

### Cloning a New Repo to KB

1. Search GitHub if the full repo name is not known
2. Clone to KB directory:
   ```bash
   git clone https://github.com/<owner>/<name>.git ${GITHUB_KB_PATH:-/home/node/clawd/github-kb}/<name>
   ```
3. Generate project description: Read README or key files to understand the project
4. Update GITHUB_KB.md: Add entry for the new repo following the existing format:
   ```markdown
   ### [<name>](/<name>)
   Brief one-line description of what the project does. Additional context if useful (key features, tech stack, etc.).
   ```
5. Confirm completion: Tell user the repo was cloned and where to find it

### Default Clone Location

If user says "clone X" without specifying a directory, default to ${GITHUB_KB_PATH:-/home/node/clawd/github-kb}/.

## GITHUB_KB.md Format

The catalog file follows this structure:

```markdown
# GitHub Knowledge Base

This directory contains X GitHub projects covering various domains.

---

## Category Name

### [project-name](/project-name)
Brief description of the project.
```

Maintain categorization and consistent formatting when updating.