skills/cupix-watch/SKILL.md
Search Cupix Watch (Kibana/Elasticsearch) application logs at watch.cupix.com. Use when the user asks to search logs, find errors, debug processing issues, or investigate service behavior. Triggers on keywords like "log", "watch", "kibana", "error log", service names (skat, pano, api, worker, vista), or mentions of cupix processing pipelines.
npx skillsauth add olion500/skills cupix-watchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Search application logs from watch.cupix.com via script.
Script: ${SKILL_DIR}/scripts/search-watch.ts
npx -y bun ${SKILL_DIR}/scripts/search-watch.ts -- [OPTIONS]
Before searching, determine:
--service keyword. If unsure, --resolve or --list-services first.--lucene query.--time-from. No time range = millions of hits = useless.When results are too many → narrow time > add filters > limit fields.
When results are zero → verify keyword with --resolve > widen time range > check Lucene syntax.
| Situation | Command pattern |
|-----------|----------------|
| Specific capture errors | --service X -q "capture.id:NNN" -F "level:error" --time-from now-24h |
| Service outage investigation | --service X -F "level:error" --time-from now-1h -s 50 |
| Search by log message | --service X -q 'message:"out of memory"' --time-from now-24h |
| Unknown service name | --resolve keyword first, then search |
| Pipeline trace (full capture flow) | Search each stage in order: capture-pre → skat → pano → capture-post |
| CupixVista (not CupixWorks) | Prefix keyword with vista: --service "vista skat" |
--time-from — without time range, query hits entire log history, response is slow and results meaninglessservice — use service.keyword (the .keyword suffix is the exact-match variant; without it, Elasticsearch tokenizes the value and partial matches)--all-fields by default — infra noise (agent, ecs, host, log, tags) buries actual log content. Only use when explicitly investigating infrastructure-q "*" — always include service filter or specific query. A bare wildcard on logstash-processing* returns random logs from all servicesservice.keyword value — always use --resolve or --service. The actual values are non-obvious (e.g., cupixworks-captue-skatmaster-arm-instance — note the typo captue, it's in the real data)# Search by service keyword (auto-resolves index + service filter)
npx -y bun ${SKILL_DIR}/scripts/search-watch.ts -- --service skat -q "level:error" --time-from now-1h
# Search API logs for specific capture
npx -y bun ${SKILL_DIR}/scripts/search-watch.ts -- --service api -q "capture.id:69697" --time-from now-7d
# Search with explicit index and filters
npx -y bun ${SKILL_DIR}/scripts/search-watch.ts -- -i logstash-processing* -F "service.keyword:cupixworks-captue-skatmaster-arm-instance" -F "level:error" --time-from now-1h
# Resolve a service keyword
npx -y bun ${SKILL_DIR}/scripts/search-watch.ts -- --resolve skat
# List available services
npx -y bun ${SKILL_DIR}/scripts/search-watch.ts -- --list-services
| Option | Short | Description | Default |
|--------|-------|-------------|---------|
| --service | | Service keyword (auto-resolves index + filter) | - |
| --index | -i | Index pattern (required if no --service) | - |
| --lucene | -q | Lucene query string | * |
| --filter | -F | Term filter field:value (repeatable) | - |
| --time-from | | Start time (now-1h, ISO 8601) | - |
| --time-to | | End time (now, ISO 8601) | - |
| --size | -s | Max results (1-200) | 20 |
| --sort-field | | Sort field | @timestamp |
| --sort-order | | desc or asc | desc |
| --fields | -f | Comma-separated fields to return | - |
| --all-fields | | Return all fields (no infra noise filter) | false |
| --resolve | | Resolve keyword without searching | - |
| --list-services | | List all service keywords | - |
| --list-indices | | List index patterns from Kibana | - |
| --test-connection | | Test Kibana connectivity | - |
| Keyword | Service | Index |
|---------|---------|-------|
| skat | SKAT master processing | logstash-processing* |
| pano | Panorama post-processor | logstash-processing* |
| 3d | 3D reconstruction | logstash-processing* |
| api | API server logs | logstash-api_log* |
| worker | Worker service | logstash-unknown* |
| vista skat | CupixVista SKAT | logstash-processing* |
Use --list-services for the full list. Prefix with vista for CupixVista services.
| Pattern | Content |
|---------|---------|
| logstash-processing* | Processing (skat, pano, 3d-recon, refinement) |
| logstash-agents* | Agents (preprocessor, postprocessor, complete) |
| logstash-api_log* | API server logs |
| logstash-api_request* | API request logs |
| logstash-unknown* | Uncategorized (worker, aerial-map) |
KIBANA_USERNAME / KIBANA_PASSWORD env vars. Restart Claude to reload .env--resolve. Check field names: capture.id not capture_id (nested vs flat). Widen --time-from--fields "@timestamp,message,level" or reduce --sizeRequires KIBANA_USERNAME and KIBANA_PASSWORD environment variables.
development
Search and query Elasticsearch/Kibana database models using curl API. Use for querying database models, searching Kibana indices, checking Elasticsearch data, investigating data in Kibana, finding records by ID, searching documents. Supports multiple environments (dev, qa, stage, production-us, production-au, production-eu).
development
Search and analyze Datadog logs and metrics using API for cupixworks-api and cupixworks-worker services. Use when debugging errors, investigating issues, searching logs, analyzing worker jobs, checking Sidekiq logs, querying metrics, or finding specific log entries by class/function names. Supports error/warn/info log levels with 14-day retention for logs.
tools
Create, update, search, transition, link, and read comments on Jira issues via CLI. MUST use this skill whenever the user pastes or mentions any atlassian.net URL (Jira issues, Confluence pages, focusedCommentId links, board links — anything from *.atlassian.net). Also use for: TSLA-* ticket references, JQL searches, issue status changes, reading comments, creating bugs, updating descriptions. This is the ONLY way to interact with Jira/Atlassian — there is no MCP Atlassian available.
development
Access Azure DevOps resources (PRs, builds, pipelines, releases, variable groups) for the Cupix organization. TRIGGER when: user pastes a dev.azure.com URL; user mentions Azure DevOps, ADO, az pr, az pipeline, build status, release status, or deploy status for Cupix projects; user asks about PR reviews, build logs, pipeline runs, or release progress. SKIP: general git questions not about Azure DevOps; GitHub-only workflows.