Skip to main content

aim-github-search

Search GitHub issues, PRs, commits, and CI results with semantic search and filters

설치로 이동

소스 정보

저장소
Hidden-History/ai-memory
최근 소스 활동
2026년 6월 5일 20:17
감지된 SKILL.md 언어
영어
스타
41
포크
5

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
aim-github-search
description
Search GitHub issues, PRs, commits, and CI results with semantic search and filters
allowed-tools
Read, Bash
# Search GitHub - Semantic Search for GitHub Content Search the github collection for GitHub-sourced content using semantic similarity with advanced filtering. ## Activation ```text # Basic semantic search /aim-github-search "authentication bug" # Filter by type /aim-github-search "API refactoring" --type github_pr /aim-github-search "CI failures" --type github_ci_result # Filter by state /aim-github-search "deployment fix" --state merged # Combine filters /aim-github-search "security" --type github_issue --limit 10 ``` ## Options - `--type <type>` - Filter by GitHub document type: `github_issue`, `github_pr`, `github_commit`, `github_ci_result`, `github_code_blob`, `github_issue_comment`, `github_pr_review`, `github_pr_diff` - `--state <state>` - Filter by state: `open`, `closed`, `merged` - `--limit <n>` - Maximum results to return (default: 5) ## Result Format Each result includes: - **GitHub URL** - Direct link - **Metadata badges** - Type, State, Date - **Content snippet** - First ~300 characters - **Relevance score** - Semantic similarity with decay (0-100%) --- ## Qdrant Connection Details GitHub content is stored in the github collection: | Parameter | Value | |-----------|-------| | **Host** | `localhost` | | **Port** | `26350` (NOT the default 6333) | | **API Key** | Required. Read from env: `QDRANT_API_KEY` | | **Collection** | `github` | | **URL** | `http://localhost:26350` | --- ## Qdrant Payload Schema Every GitHub point in `github` has the following payload fields. Use these **exact names** for filtering. ### Common Fields (all GitHub points) | Field | Type | Description | Example | |-------|------|-------------|---------| | `content` | string | Composed document text | `"[PR #42] Add decay scoring..."` | | `type` | string | Document type | `"github_pr"`, `"github_issue"` | | `source` | string | Always `"github"` | `"github"` | | `group_id` | string | normalized lowercase `owner/repo` | `"hidden-history/ai-memory"` | | `github_id` | int | Issue/PR number | `42` | | `state` | string | Current state | `"open"`, `"closed"`, `"merged"` | | `url` | string | GitHub URL | `"https://github.com/..."` | | `github_updated_at` | string | ISO 8601 from GitHub API | `"2026-02-16T..."` | | `files_changed` | list[string] | Files touched (PRs, commits) | `["src/memory/decay.py"]` | | `labels` | list[string] | Issue/PR labels | `["bug", "v2.0.6"]` | | `merged_at` | string or null | PR merge timestamp | `"2026-02-16T..."` | | `is_current` | bool | Versioning: latest version | `true` | --- ## Direct Query Examples Use `query.py` for direct Qdrant queries. The script applies `source=github` automatically and accepts optional `--type`, `--state`, `--limit`, and `--format` flags. ### Search by source ```bash # Replace "owner/repo-name" with your GITHUB_REPO value (e.g., "hidden-history/ai-memory") # --collection defaults to github; omit it for the standard case bash "${AI_MEMORY_INSTALL_DIR:-$HOME/.ai-memory}/scripts/memory/run-with-env.sh" \ "${AI_MEMORY_INSTALL_DIR:-$HOME/.ai-memory}/_ai-memory/skills/aim-github-search/scripts/query.py" \ --group-id "owner/repo-name" ``` ### Filter by type and state ```bash # Replace "owner/repo-name" with your GITHUB_REPO value bash "${AI_MEMORY_INSTALL_DIR:-$HOME/.ai-memory}/scripts/memory/run-with-env.sh" \ "${AI_MEMORY_INSTALL_DIR:-$HOME/.ai-memory}/_ai-memory/skills/aim-github-search/scripts/query.py" \ --group-id "owner/repo-name" --type github_pr --state merged --limit 20 ``` ### Count GitHub points in collection ```bash # Returns the exact count via the Qdrant count endpoint (exact=true) bash "${AI_MEMORY_INSTALL_DIR:-$HOME/.ai-memory}/scripts/memory/run-with-env.sh" \ "${AI_MEMORY_INSTALL_DIR:-$HOME/.ai-memory}/_ai-memory/skills/aim-github-search/scripts/query.py" \ --group-id "owner/repo-name" --format count ``` --- ## Query Script Reference The parameterized query script at `_ai-memory/skills/aim-github-search/scripts/query.py` implements the `source=github` + `group_id` filter pattern. It accepts: ```text python3 query.py \ --group-id GROUP_ID # required; e.g. "hidden-history/ai-memory" [--type TYPE] # github_issue | github_pr | github_commit | # github_ci_result | github_code_blob | # github_issue_comment | github_pr_review | github_pr_diff [--state STATE] # open | closed | merged [--limit N] # default: 10 [--format table|json|count] # default: table; count uses Qdrant count endpoint (exact=true) [--collection COLL] # default: github; use to query a different collection ``` Run via `run-with-env.sh` so `memory.*` imports and `QDRANT_API_KEY` are resolved automatically: ```bash bash "${AI_MEMORY_INSTALL_DIR:-$HOME/.ai-memory}/scripts/memory/run-with-env.sh" \ "${AI_MEMORY_INSTALL_DIR:-$HOME/.ai-memory}/_ai-memory/skills/aim-github-search/scripts/query.py" \ --group-id "hidden-history/ai-memory" --type github_pr --state merged ``` ## Technical Details - **Semantic Search**: Uses jina-embeddings-v2-base-en for vector similarity - **Tenant Isolation**: Mandatory group_id filter prevents cross-repo leakage - **Performance**: < 2s for typical searches - **Collection**: github (dedicated collection for GitHub-sourced content, per PLAN-010) - **Score Threshold**: Configurable via SIMILARITY_THRESHOLD (default 0.7) - **Port**: 26350 (NOT the Qdrant default of 6333) - **API Key**: Required -- stored in `~/.ai-memory/docker/.env` as `QDRANT_API_KEY` - **Decay Scoring**: Applied to results via existing search path ## Notes - GitHub repo is auto-detected from project configuration - Results sorted by relevance score (highest first) - All filters are optional except the search query - Use **exact field names** from the schema above -- `source` NOT `namespace`, `type` NOT `doc_type` - The `source="github"` filter is always applied to restrict results to GitHub content - The `group_id` filter is always applied for mandatory tenant isolation (prevents cross-repo leakage)
GitHub에서 보기