Implement rag-search skill for semantic search

Add new skill for semantic search across personal state files and
external documentation using ChromaDB and sentence-transformers.

Components:
- search.py: Main search interface (--index, --top-k flags)
- index_personal.py: Index ~/.claude/state files
- index_docs.py: Index external docs (git repos)
- add_doc_source.py: Manage doc sources
- test_rag.py: Test suite (5/5 passing)

Features:
- Two indexes: personal (116 chunks) and docs (k0s: 846 chunks)
- all-MiniLM-L6-v2 embeddings (384 dimensions)
- ChromaDB persistent storage
- JSON output with ranked results and metadata

Documentation:
- Added to component-registry.json with triggers
- Added /rag command alias
- Updated skills/README.md
- Resolved fc-013 (vector database for agent memory)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
OpenCode Test
2026-01-04 23:41:38 -08:00
parent c21b152de8
commit 7ca8caeecb
11 changed files with 1781 additions and 155 deletions

View File

@@ -1,6 +1,6 @@
{
"version": "1.1",
"generated": "2026-01-01T10:30:00.000000-08:00",
"version": "1.0",
"generated": "2026-01-04T14:29:44.138959-08:00",
"description": "Component registry for PA session awareness. Read at session start for routing.",
"skills": {
"sysadmin-health": {
@@ -78,6 +78,18 @@
"history"
]
},
"morning-report": {
"description": "Generate daily morning dashboard with email, calendar, stocks, weather, tasks, infra, and news",
"script": "~/.claude/skills/morning-report/scripts/generate.py",
"triggers": [
"morning report",
"morning",
"daily report",
"dashboard",
"briefing",
"daily briefing"
]
},
"stock-lookup": {
"description": "Look up stock prices and quotes",
"script": "~/.claude/skills/stock-lookup/scripts/quote.py",
@@ -92,23 +104,32 @@
"performance"
]
},
"morning-report": {
"description": "Generate daily morning dashboard with email, calendar, stocks, weather, tasks, infra, and news",
"script": "~/.claude/skills/morning-report/scripts/generate.py",
"rag-search": {
"description": "Semantic search across personal state files and external documentation (k0s, etc.)",
"script": "~/.claude/skills/rag-search/scripts/search.py",
"triggers": [
"morning report",
"morning",
"daily report",
"dashboard",
"briefing",
"daily briefing"
"search",
"find",
"lookup",
"what did",
"how did",
"when did",
"past decisions",
"previous",
"documentation",
"docs",
"remember",
"history"
]
}
},
"commands": {
"/pa": {
"description": "Personal assistant entrypoint",
"aliases": ["/assistant", "/ask"],
"aliases": [
"/assistant",
"/ask"
],
"invokes": "agent:personal-assistant"
},
"/programmer": {
@@ -118,24 +139,160 @@
},
"/gcal": {
"description": "Google Calendar access",
"aliases": ["/calendar", "/cal"],
"aliases": [
"/calendar",
"/cal"
],
"invokes": "skill:gcal"
},
"/stock": {
"description": "Stock price lookup",
"aliases": ["/quote", "/ticker"],
"invokes": "skill:stock-lookup"
},
"/morning": {
"description": "Generate morning report dashboard",
"aliases": ["/briefing", "/daily"],
"invokes": "skill:morning-report"
},
"/usage": {
"description": "View usage statistics",
"aliases": ["/stats"],
"aliases": [
"/stats"
],
"invokes": "skill:usage"
},
"/README": {
"description": "TODO",
"aliases": [],
"invokes": ""
},
"/agent-info": {
"description": "Show agent information",
"aliases": [
"/agent",
"/agents"
],
"invokes": "command:agent-info"
},
"/config": {
"description": "View and manage configuration settings",
"aliases": [
"/settings",
"/prefs"
],
"invokes": "command:config"
},
"/debug": {
"description": "Debug and troubleshoot configuration",
"aliases": [
"/diag",
"/diagnose"
],
"invokes": "command:debug"
},
"/diff": {
"description": "Compare config with backup",
"aliases": [
"/config-diff",
"/compare"
],
"invokes": "command:diff"
},
"/export": {
"description": "Export session data for sharing",
"aliases": [
"/session-export",
"/share"
],
"invokes": "command:export"
},
"/help": {
"description": "Show available commands and skills",
"aliases": [
"/commands",
"/skills"
],
"invokes": "command:help"
},
"/log": {
"description": "View and analyze logs",
"aliases": [
"/logs",
"/logview"
],
"invokes": "command:log"
},
"/maintain": {
"description": "Configuration maintenance (backup, validate, etc.)",
"aliases": [
"/maintenance",
"/admin"
],
"invokes": "command:maintain"
},
"/mcp-status": {
"description": "Check MCP integration status",
"aliases": [
"/mcp",
"/integrations"
],
"invokes": "command:mcp-status"
},
"/remember": {
"description": "Quick shortcut to save something to memory",
"aliases": [
"/save",
"/note"
],
"invokes": "command:remember"
},
"/search": {
"description": "Search memory, history, and configuration",
"aliases": [
"/find",
"/lookup"
],
"invokes": "command:search"
},
"/rag": {
"description": "Semantic search across state files and documentation",
"aliases": [
"/rag-search",
"/semantic-search"
],
"invokes": "skill:rag-search"
},
"/skill-info": {
"description": "Show skill information",
"aliases": [
"/skill",
"/skills-info"
],
"invokes": "command:skill-info"
},
"/status": {
"description": "Quick status overview across all domains",
"aliases": [
"/overview",
"/dashboard"
],
"invokes": "command:status"
},
"/summarize": {
"description": "Summarize and save session to memory",
"aliases": [
"/save-session",
"/session-summary"
],
"invokes": "command:summarize"
},
"/template": {
"description": "Manage session templates",
"aliases": [
"/templates",
"/session-template"
],
"invokes": "command:template"
},
"/workflow": {
"description": "List and describe workflows",
"aliases": [
"/workflows",
"/wf"
],
"invokes": "command:workflow"
},
"/sysadmin:health": {
"description": "System health check",
"aliases": [],
@@ -166,137 +323,125 @@
"aliases": [],
"invokes": "agent:k8s-diagnostician"
},
"/help": {
"description": "Show available commands and skills",
"aliases": ["/commands", "/skills"],
"invokes": "command:help"
"/stock": {
"description": "Stock price lookup",
"aliases": [
"/quote",
"/ticker"
],
"invokes": "skill:stock-lookup",
"status": "removed"
},
"/status": {
"description": "Quick status overview across all domains",
"aliases": ["/overview", "/dashboard"],
"invokes": "command:status"
},
"/summarize": {
"description": "Summarize and save session to memory",
"aliases": ["/save-session", "/session-summary"],
"invokes": "command:summarize"
},
"/maintain": {
"description": "Configuration maintenance (backup, validate, etc.)",
"aliases": ["/maintenance", "/admin"],
"invokes": "command:maintain"
},
"/remember": {
"description": "Quick shortcut to save something to memory",
"aliases": ["/save", "/note"],
"invokes": "command:remember"
},
"/config": {
"description": "View and manage configuration settings",
"aliases": ["/settings", "/prefs"],
"invokes": "command:config"
},
"/search": {
"description": "Search memory, history, and configuration",
"aliases": ["/find", "/lookup"],
"invokes": "command:search"
},
"/log": {
"description": "View and analyze logs",
"aliases": ["/logs", "/logview"],
"invokes": "command:log"
},
"/debug": {
"description": "Debug and troubleshoot configuration",
"aliases": ["/diag", "/diagnose"],
"invokes": "command:debug"
},
"/export": {
"description": "Export session data for sharing",
"aliases": ["/session-export", "/share"],
"invokes": "command:export"
},
"/mcp-status": {
"description": "Check MCP integration status",
"aliases": ["/mcp", "/integrations"],
"invokes": "command:mcp-status"
},
"/workflow": {
"description": "List and describe workflows",
"aliases": ["/workflows", "/wf"],
"invokes": "command:workflow"
},
"/skill-info": {
"description": "Show skill information",
"aliases": ["/skill", "/skills-info"],
"invokes": "command:skill-info"
},
"/agent-info": {
"description": "Show agent information",
"aliases": ["/agent", "/agents"],
"invokes": "command:agent-info"
},
"/diff": {
"description": "Compare config with backup",
"aliases": ["/config-diff", "/compare"],
"invokes": "command:diff"
},
"/template": {
"description": "Manage session templates",
"aliases": ["/templates", "/session-template"],
"invokes": "command:template"
"/morning": {
"description": "Generate morning report dashboard",
"aliases": [
"/briefing",
"/daily"
],
"invokes": "skill:morning-report",
"status": "removed"
}
},
"agents": {
"linux-sysadmin": {
"description": "Workstation management",
"model": "sonnet",
"triggers": ["system", "linux", "package", "service", "disk", "process"]
"triggers": [
"system",
"linux",
"package",
"service",
"disk",
"process"
]
},
"k8s-orchestrator": {
"description": "Kubernetes cluster management",
"model": "opus",
"triggers": ["kubernetes", "k8s", "cluster", "deploy"]
"triggers": [
"kubernetes",
"k8s",
"cluster",
"deploy"
]
},
"k8s-diagnostician": {
"description": "Kubernetes troubleshooting",
"model": "sonnet",
"triggers": ["pod issue", "crashloop", "k8s error", "deployment failed"]
"triggers": [
"pod issue",
"crashloop",
"k8s error",
"deployment failed"
]
},
"argocd-operator": {
"description": "ArgoCD GitOps operations",
"model": "sonnet",
"triggers": ["argocd", "gitops", "sync", "app sync"]
"triggers": [
"argocd",
"gitops",
"sync",
"app sync"
]
},
"prometheus-analyst": {
"description": "Metrics and alerting analysis",
"model": "sonnet",
"triggers": ["metrics", "prometheus", "alert", "grafana"]
"triggers": [
"metrics",
"prometheus",
"alert",
"grafana"
]
},
"git-operator": {
"description": "Git repository operations",
"model": "sonnet",
"triggers": ["git", "commit", "branch", "merge", "repo"]
"triggers": [
"git",
"commit",
"branch",
"merge",
"repo"
]
},
"programmer-orchestrator": {
"description": "Code development coordination",
"model": "opus",
"triggers": ["code", "develop", "implement", "program"]
"triggers": [
"code",
"develop",
"implement",
"program"
]
},
"code-planner": {
"description": "Code planning and design",
"model": "sonnet",
"triggers": ["plan code", "design", "architecture"]
"triggers": [
"plan code",
"design",
"architecture"
]
},
"code-implementer": {
"description": "Code implementation",
"model": "sonnet",
"triggers": ["write code", "implement", "build"]
"triggers": [
"write code",
"implement",
"build"
]
},
"code-reviewer": {
"description": "Code review",
"model": "sonnet",
"triggers": ["review", "code review", "check code"]
"triggers": [
"review",
"code review",
"check code"
]
},
"master-orchestrator": {
"description": "Coordinate and enforce policies",
@@ -306,49 +451,94 @@
"personal-assistant": {
"description": "User interface, ultimate oversight",
"model": "opus",
"triggers": ["help", "assist", "question"]
"triggers": [
"help",
"assist",
"question"
]
},
"README": {
"description": "TODO",
"model": "sonnet",
"triggers": [
"TODO"
]
}
},
"workflows": {
"validate-agent-format": {
"description": "Validate agent file format",
"triggers": ["validate agent", "check agent format"]
"triggers": [
"validate agent",
"check agent format"
]
},
"health/cluster-health-check": {
"description": "Kubernetes cluster health check",
"triggers": ["cluster health", "k8s health"]
"triggers": [
"cluster health",
"k8s health"
]
},
"health/cluster-daily-summary": {
"description": "Daily cluster health summary",
"triggers": ["daily summary", "cluster summary"]
"triggers": [
"daily summary",
"cluster summary"
]
},
"deploy/deploy-app": {
"description": "Deploy application to Kubernetes",
"triggers": ["deploy app", "deploy to k8s"]
"triggers": [
"deploy app",
"deploy to k8s"
]
},
"incidents/pod-crashloop": {
"description": "Handle pod crashloop",
"triggers": ["crashloop", "pod crashing", "restart loop"]
"triggers": [
"crashloop",
"pod crashing",
"restart loop"
]
},
"incidents/node-issue-response": {
"description": "Respond to node issues",
"triggers": ["node issue", "node down", "node problem"]
"triggers": [
"node issue",
"node down",
"node problem"
]
},
"incidents/resource-pressure-response": {
"description": "Handle resource pressure",
"triggers": ["resource pressure", "out of memory", "disk full"]
"triggers": [
"resource pressure",
"out of memory",
"disk full"
]
},
"incidents/argocd-sync-failure": {
"description": "Handle ArgoCD sync failures",
"triggers": ["sync failed", "argocd error"]
"triggers": [
"sync failed",
"argocd error"
]
},
"sysadmin/health-check": {
"description": "System health check workflow",
"triggers": ["system check", "health check"]
"triggers": [
"system check",
"health check"
]
},
"sysadmin/system-update": {
"description": "System update workflow",
"triggers": ["system update", "update packages", "upgrade"]
"triggers": [
"system update",
"update packages",
"upgrade"
]
}
},
"delegation_helpers": {
@@ -360,35 +550,5 @@
"description": "Calendar API with tiered delegation",
"location": "~/.claude/mcp/delegation/gcal_delegate.py"
}
},
"automation": {
"scripts": {
"validate-setup": "~/.claude/automation/validate-setup.sh",
"quick-status": "~/.claude/automation/quick-status.sh",
"backup": "~/.claude/automation/backup.sh",
"restore": "~/.claude/automation/restore.sh",
"clean": "~/.claude/automation/clean.sh",
"install": "~/.claude/automation/install.sh",
"test": "~/.claude/automation/test-scripts.sh",
"memory-add": "~/.claude/automation/memory-add.py",
"memory-list": "~/.claude/automation/memory-list.py",
"search": "~/.claude/automation/search.py",
"history-browser": "~/.claude/automation/history-browser.py",
"log-viewer": "~/.claude/automation/log-viewer.py",
"debug": "~/.claude/automation/debug.sh",
"daily-maintenance": "~/.claude/automation/daily-maintenance.sh",
"session-export": "~/.claude/automation/session-export.py",
"mcp-status": "~/.claude/automation/mcp-status.sh",
"upgrade": "~/.claude/automation/upgrade.sh",
"workflow-info": "~/.claude/automation/workflow-info.py",
"skill-info": "~/.claude/automation/skill-info.py",
"agent-info": "~/.claude/automation/agent-info.py",
"config-diff": "~/.claude/automation/config-diff.py",
"session-template": "~/.claude/automation/session-template.py"
},
"completions": {
"bash": "~/.claude/automation/completions.bash",
"zsh": "~/.claude/automation/completions.zsh"
}
}
}
}

File diff suppressed because one or more lines are too long