Skip to main content

aim-jira-search

Search Jira issues and comments with semantic search and filters

Ir a la instalación

Datos de origen

Repositorio
Hidden-History/ai-memory
Última actividad en el origen
3 de junio de 2026 a las 18:19
Idioma detectado de SKILL.md
inglés
Estrellas
41
Forks
5

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
2 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
aim-jira-search
description
Search Jira issues and comments with semantic search and filters
allowed-tools
Read, Bash
# Search Jira - Semantic Search for Jira Content Search the jira-data collection for issues and comments using semantic similarity with advanced filtering. ## Activation ```text # Basic semantic search /aim-jira-search "authentication bug" # Filter by project /aim-jira-search "API errors" --project BMAD # Filter by type (issue or comment) /aim-jira-search "implementation details" --type jira_comment # Filter by issue type /aim-jira-search "bugs" --issue-type Bug # Filter by status /aim-jira-search "in progress work" --status "In Progress" # Filter by priority /aim-jira-search "critical issues" --priority High # Filter by author (comments) or reporter (issues) /aim-jira-search "alice's comments" --author alice@company.com # Issue lookup mode (issue + all comments) /aim-jira-search --issue BMAD-42 # Combine filters /aim-jira-search "database" --project BMAD --issue-type Bug --status Done --limit 10 ``` ## Options - `--project <key>` - Filter by Jira project key (e.g., BMAD, PROJ) - `--type <type>` - Filter by document type (jira_issue or jira_comment) - `--issue-type <type>` - Filter by issue type (Bug, Story, Task, Epic) - `--status <status>` - Filter by issue status (To Do, In Progress, Done, etc.) - `--priority <priority>` - Filter by priority (Highest, High, Medium, Low, Lowest) - `--author <email>` - Filter by comment author or issue reporter - `--issue <key>` - Lookup mode: retrieve issue + all comments (e.g., BMAD-42) - `--limit <n>` - Maximum results to return (default: 5) ## Result Format Each result includes: - **Jira URL** - Direct link to issue/comment - **Metadata badges** - Type, Status, Priority, Author/Reporter - **Content snippet** - First ~300 characters - **Relevance score** - Semantic similarity (0-100%) --- ## Qdrant Connection Details The jira-data collection is stored in the local Qdrant instance: | Parameter | Value | |-----------|-------| | **Host** | `localhost` | | **Port** | `26350` (NOT the default 6333) | | **API Key** | Required. Read from env: `QDRANT_API_KEY` | | **Collection** | `jira-data` | | **URL** | `http://localhost:26350` | --- ## Qdrant Payload Schema Every point in `jira-data` has the following payload fields. Use these **exact names** for filtering — do NOT guess field names like `project_key` or `issue_key`. ### Common Fields (all points) | Field | Type | Description | Example | |-------|------|-------------|---------| | `content` | string | Full text content of issue/comment | `"[PROJ-123] Fix login bug..."` | | `type` | string | Document type | `"jira_issue"` or `"jira_comment"` | | `group_id` | string | Jira instance hostname (tenant isolation) | `"hidden-history.atlassian.net"` | | `session_id` | string | Always `"jira_sync"` | `"jira_sync"` | | `jira_project` | string | Project key | `"BMAD"` | | `jira_issue_key` | string | Full issue key | `"BMAD-42"` | | `jira_issue_type` | string | Issue type name | `"Bug"`, `"Story"`, `"Task"`, `"Epic"` | | `jira_status` | string | Issue status | `"To Do"`, `"In Progress"`, `"Done"` | | `jira_priority` | string or null | Priority level | `"High"`, `"Medium"`, `"Low"`, `null` | | `jira_updated` | string | ISO 8601 timestamp | `"2026-02-10T14:30:00.000+0000"` | | `jira_url` | string | Full Jira URL | `"https://company.atlassian.net/browse/BMAD-42"` | ### Issue-Only Fields (`type: "jira_issue"`) | Field | Type | Description | Example | |-------|------|-------------|---------| | `jira_reporter` | string | Issue reporter display name | `"Alice Smith"` | | `jira_labels` | list[string] | Issue labels | `["backend", "auth"]` | ### Comment-Only Fields (`type: "jira_comment"`) | Field | Type | Description | Example | |-------|------|-------------|---------| | `jira_comment_id` | string | Jira comment ID | `"10042"` | | `jira_author` | string | Comment author display name | `"Bob Jones"` | ### Chunking Metadata (if content was chunked) | Field | Type | Description | |-------|------|-------------| | `chunk_index` | int | Chunk sequence number (0-based) | | `total_chunks` | int | Total chunks for this document | | `chunking_strategy` | string | Strategy used (e.g., `"topical"`) | --- ## Direct Query Examples Use `query.py` via `run-with-env.sh` for all direct Qdrant queries. Auth and connection are handled by the standard `memory.*` config layer — no manual API key export required. ```bash INSTALL="${AI_MEMORY_INSTALL_DIR:-$HOME/.ai-memory}" QUERY="$INSTALL/_ai-memory/skills/aim-jira-search/scripts/query.py" # Search by project key (table output) "$INSTALL/scripts/memory/run-with-env.sh" "$QUERY" \ --project BMAD --limit 10 # Filter by issue type and status "$INSTALL/scripts/memory/run-with-env.sh" "$QUERY" \ --project BMAD --issue-type Bug --status Done --limit 20 # Count points and vectors in the collection "$INSTALL/scripts/memory/run-with-env.sh" "$QUERY" --count # Get all comments for a specific issue "$INSTALL/scripts/memory/run-with-env.sh" "$QUERY" \ --issue-key BMAD-42 --doc-type jira_comment --limit 50 # JSON output for programmatic use "$INSTALL/scripts/memory/run-with-env.sh" "$QUERY" \ --project BMAD --format json --limit 5 ``` Available flags (use exact Qdrant payload field values — see schema above): - `--project` — project key (e.g., `BMAD`) - `--issue-type` — issue type (e.g., `Bug`, `Story`, `Task`, `Epic`) - `--status` — status (e.g., `"In Progress"`, `Done`) - `--issue-key` — full issue key (e.g., `BMAD-42`) - `--doc-type` — document type (`jira_issue` or `jira_comment`) - `--limit` — max results (default: 10) - `--format` — `table` (default) or `json` - `--count` — return collection info counts instead of scroll --- ## Python Implementation Reference The `src/memory/connectors/jira/search.py` module is **not importable from external scripts** — use `query.py` (above) for direct Qdrant access. ## Technical Details - **Semantic Search**: Uses jina-embeddings-v2-base-en for vector similarity - **Tenant Isolation**: Mandatory group_id filter prevents cross-instance leakage - **Performance**: < 2s for typical searches - **Collection**: jira-data (issues and comments) - **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` ## Notes - Jira instance URL is auto-detected from project configuration - Results sorted by relevance score (highest first) - Issue lookup mode returns chronologically sorted comments - All filters are optional except query (or --issue for lookup mode) - Use **exact field names** from the schema above — `jira_project` NOT `project_key`, `jira_issue_key` NOT `issue_key`
Ver en GitHub