원클릭으로
aim-search
Search memory system with advanced filtering and intent detection
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Search memory system with advanced filtering and intent detection
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Detect content drift of an operator's scaffolded sanctum files (BOND, CAPABILITIES, CREED, INDEX, LORE, MEMORY, PERSONA, PULSE) against the evolving reference templates, and surface recommended add/remove WITH rationale — never a silent overwrite. Use on a session-start drift check, after the reference templates change, or when the operator asks whether their sanctum is current.
Check ai-memory system status and collection stats
Check ai-memory system status and collection stats
Manually save current session context to ai-memory
Search ai-memory for relevant stored memories
Search ai-memory for relevant stored memories
| name | aim-search |
| description | Search memory system with advanced filtering and intent detection |
| allowed-tools | Read, Bash |
Search the AI Memory Module using semantic similarity with advanced filtering by collection, type, and intent detection.
The memory system has 3 collections:
# Basic semantic search (searches code-patterns by default)
/aim-search "how do I implement authentication"
# Search specific collection
/aim-search "error handling patterns" --collection conventions
# Filter by memory type
/aim-search "recent bugs" --type error_fix
# Filter by multiple types
/aim-search "code patterns" --type implementation,refactor
# Use intent detection with cascading search
/aim-search "how do I implement auth" --intent how
# Limit results
/aim-search "database patterns" --limit 10
# Hide decay scores
/aim-search "authentication" --no-decay
--collection <name> - Target specific collection (code-patterns, conventions, discussions)--type <type> - Filter by memory type (see types below)--intent <intent> - Use intent detection (how, what, why)--limit <n> - Maximum results to return (default: 5)--group-id <id> - Filter by project (default: auto-detect from cwd)--decay - Show decay scores per result (default: enabled)--no-decay - Hide decay scores from outputimplementation - How features/components were builterror_fix - Errors encountered and solutionsrefactor - Refactoring patterns appliedfile_pattern - File or module-specific patternsrule - Hard rules that MUST be followedguideline - Soft guidelines (SHOULD follow)port - Port configuration rulesnaming - Naming conventionsstructure - File and folder structure conventionsdecision - Architectural/design decisions (DEC-xxx)session - Session summariesblocker - Blockers and resolutions (BLK-xxx)preference - User preferences and working stylecontext - Important conversation contextWhen using --intent, the system routes to the appropriate primary collection:
how → code-patterns (implementation examples)what → conventions (rules and guidelines)why → discussions (decisions and context)If primary collection has insufficient results, automatically expands to secondary collections.
Each result shows relevance score, content summary, metadata, and decay scores:
1. [0.85] Implementation of authentication middleware
Collection: code-patterns | Type: implementation | 2026-01-15
Decay: 0.72 (temporal: 0.61, semantic: 0.85)
2. [0.78] JWT token validation pattern
Collection: code-patterns | Type: implementation | 2026-01-10
Decay: 0.65 (temporal: 0.52, semantic: 0.78)
When decay scoring is disabled or timestamp is unavailable:
1. [0.85] Implementation of authentication middleware
Collection: code-patterns | Type: implementation | 2026-01-15
Decay: n/a (temporal: n/a, semantic: 0.85)
Results include three scores:
A memory with semantic=0.90 and temporal=0.30 is very relevant but old. A memory with semantic=0.60 and temporal=0.95 is less relevant but very recent.
final_score = 0.7 * semantic + 0.3 * 0.5^(age_days / half_life)
Sub-scores are recomputed client-side (Qdrant returns only the combined score):
age_days = (datetime.now(timezone.utc) - datetime.fromisoformat(stored_at)).days
temporal_score = 0.5 ** (age_days / half_life)
semantic_score = (combined_score - 0.3 * temporal_score) / 0.7
Half-life varies by memory type (configured via decay_type_overrides):
conversation, session_summary: 21 daysgithub_commit, github_code_blob: 14 daysgithub_issue, github_pr: 30 daysrule, guideline: 60 days# Find implementation examples in current project
/aim-search "authentication implementation"
# Find shared conventions across all projects
/aim-search "naming conventions" --collection conventions
# Find specific error fixes
/aim-search "database connection" --type error_fix
# Use cascading search with intent
/aim-search "why did we choose postgres" --intent why
# Find architectural decisions
/aim-search "database choice" --type decision --collection discussions
# Search multiple types
/aim-search "auth patterns" --type implementation,error_fix --limit 10
# Search without decay score display
/aim-search "auth patterns" --no-decay
This skill uses search_memories() from src/memory/search.py:
from memory.search import search_memories
from memory.secrets_env import pin_qdrant_api_key, is_auth_error
# Pin QDRANT_API_KEY from .env.secrets so a stale exported key can't silently
# fail auth and degrade this search to file-only (run-with-env.sh parity).
pin_qdrant_api_key()
try:
results = search_memories(
query="your search query",
collection="code-patterns", # Optional
memory_type="implementation", # Optional, can be list
use_cascading=True, # Enable cascading search
intent="how", # Optional: auto-detects from query
limit=5
)
except Exception as e:
# Auth failure: the knowledge base was NOT consulted. Do not present this
# as "no results found" — results are file-only.
if is_auth_error(str(e)):
print("❌ Memory search auth FAILED (401) — knowledge base NOT "
"consulted; results are file-only")
raise