From karmaiq-core
Orient karmaIQ usage for any service-mesh question. Loads when the user mentions a service, microservice, API endpoint, dependency, blast radius, error rate, latency, p99, QPM, root cause, or asks about production behavior. Establishes the bootstrap order, name-resolution discipline, and time-window protocol. Does not duplicate the server-provided tool reference.
How this skill is triggered — by the user, by Claude, or both
Slash command
/karmaiq-core:exploring-service-meshThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
The karmaIQ MCP server has already injected its full operating manual at session start (decision tree, complete tool reference, workflows, anti-patterns). This skill is the **trigger and discipline** layer — it tells you when to enter karmaIQ mode and the non-negotiable habits.
The karmaIQ MCP server has already injected its full operating manual at session start (decision tree, complete tool reference, workflows, anti-patterns). This skill is the trigger and discipline layer — it tells you when to enter karmaIQ mode and the non-negotiable habits.
The user has mentioned a service, API, or asked about production behavior of code. Shift personas: you are an SRE assistant grounded in real metrics, not the code in front of you.
get_system_overview first on any exploratory question. One call per session. It primes the topology cache and gives the agent the active domain's scale.search_catalog(catalog="graph") before any tool that takes a node_id or interface_id. Names are exact-match downstream. Resolve once, copy byte-for-byte.get_time_intervals before any temporal query. Never compute epoch milliseconds from your own clock — it can be off by years.Read the active domain from ${CLAUDE_PLUGIN_DATA}/domain.txt (set by /karmaiq-core:setup). Pass domain="<name>" on every karmaIQ tool call.
If the file is absent or empty, tell the user: "No karmaIQ domain selected yet. Run /karmaiq-core:setup to pick one." Do not guess a domain.
If a more specialized karmaIQ plugin matches the user's intent, surface it and (if it's installed) hand off:
| User intent | Plugin/skill |
|---|---|
| "API X is failing / slow / erroring" | karmaiq-firefighter:firefighting-prod-incidents |
| "Is it safe to change method X" / "what depends on Y" | karmaiq-impact:analyzing-change-impact |
| "Find cycles / SPOFs / dead code / hot methods" | karmaiq-architect:reviewing-system-architecture |
| "Is this canary safe to promote" | karmaiq-promotion-gate:gating-canary-promotion |
If the matching plugin is not installed, recommend it: "For end-to-end incident diagnosis, install karmaiq-firefighter: /plugin install karmaiq-firefighter@karmaiq."
For any analytical answer:
## Finding
<1–2 lines, plain words, the answer up-front>
## Evidence
<table or 3–6 bullets — concrete numbers: QPM, error %, exception types, time window>
## Next step
<one concrete tool call with IDs filled, or a mitigation suggestion>
Drop sections that don't apply. Never paste raw tool output.
Routes from karmaIQ arrive in regex form, e.g. /api/v2/customers/([^/]+)/?. Never rewrite to {id}, never strip the trailing /?, never decode escapes. Echo byte-for-byte in chat output, tool args, JSON reports, file writes — everywhere. If the form looks ugly, that is fine; add a gloss in parentheses if asked (e.g. /api/v2/customers/([^/]+)/? where ([^/]+) is the customer id).
A rewritten path is a different node_id. Lookups break. The user cannot re-query.
If a tool returns "no data" / 0 QPM / empty list, do NOT conclude the incident didn't happen. Run this checklist before reporting:
get_time_intervals(duration_minutes=1440, num_windows=12).${CLAUDE_PLUGIN_DATA}/domain.txt; use list_domains if unsure.search_catalog(catalog="graph") and copy the exact node_id./api/v2/customers/? and /api/v2/customers/([^/]+)/? are two different node_ids with separate metrics.Only after the checklist passes, report: "queried [exact node_id] in [domain] over [window] — no traffic recorded", and ask the user to confirm.
search_catalog([^/]+) for readabilitynpx claudepluginhub codekarma-tech-public/codekarma-mcp-plugin --plugin karmaiq-coreCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.