SkillAgentSearch skills...

whizard-notification

Use when working with WizTelemetry Notification extension for KubeSphere, including installation, configuration, troubleshooting, notification channel setup, alert routing, and silence management.

Install / Use

npx skills add kubesphere/kubesphere --skill whizard-notification

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

98/100

Supported Platforms

Universal

Our assessment of whizard-notification

whizard-notification scores 98/100 on our quality scale, 10th of 168 Communication skills we index (top 6%).

Its SKILL.md is 24 KB long, well organised into 71 sections with 32 code examples: a thorough specification that gives an agent plenty to work with.

With 17,059 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
18/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated about 2 months ago, so whizard-notification is actively maintained.
  • No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
  • Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.

AI review by kimi-k2.7-code on 2026-09-26. Automated pattern scan on 2026-09-26. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

whizard-notification compared with similar skills

All 4 of these similar skills score higher than whizard-notification; compare them before choosing.

SkillScoreStarsUpdatedFormat
whizard-notification (this skill)by kubesphere9817.1k2mo agoSKILL.md
algorithmic-artby anthropics100177.9k3d agoSKILL.md
pptxby anthropics100177.9k3d agoSKILL.md
designby nextlevelbuilder100130.2k4d agoSKILL.md
ui-ux-pro-maxby nextlevelbuilder100130.2k4d agoSKILL.md

Frequently asked questions

How do I install whizard-notification?
Run npx skills add kubesphere/kubesphere --skill whizard-notification. The install tabs above show the steps for each supported agent.
Which AI agents does whizard-notification work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is whizard-notification safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is whizard-notification still maintained?
The repository was last updated about 2 months ago, so whizard-notification is actively maintained.

name: whizard-notification description: Use when working with WizTelemetry Notification extension for KubeSphere, including installation, configuration, troubleshooting, notification channel setup, alert routing, and silence management.

WizTelemetry Notification

Overview

WizTelemetry Notification is the notification component of the KubeSphere observability platform. It receives alerts, cloud events, and audit logs in a multi-tenant Kubernetes environment and distributes notifications to different channels based on tenant labels (e.g., namespace).

Architecture

┌──────────────────────────────────────────────────────────────────────────────┐
│                             Alertmanager                                     │
│      Prometheus  ──▶ metrics alert  ──▶ notification-manager-svc:19093       │
│      K8s Events  ──▶ events alert   ──▶ notification-manager-svc:19093       │
│      Auditing    ──▶ auditing alert ──▶ notification-manager-svc:19093       │
│      Logging     ──▶ logging alert  ──▶ notification-manager-svc:19093       │
└──────────────────────────────────────────────────────────────────────────────┘
                                    │
                    notification-manager (:19093)
                                    │
         ┌──────────────────────────┼──────────────────────────┐
         │                          │                          │
    [Silence Stage]          [Route Stage]             [Filter Stage]
         │                          │                          │
         ▼                          ▼                          ▼
 [Match Silence CRs]         [Match Router CRs]      [alertSelector filtering]
                                 │
                          [Aggregation Stage]
                                 │
                          [Notify Stage]
                                 │
         ┌────────────────────────┼────────────────────────────┐
         │                        │                            │
    Email/Slack              DingTalk/Feishu            WeChat/Webhook
         │
         ▼
  [History Webhook]
         │
         ▼
┌─────────────────────┐
│  Vector Aggregator  │
└────────┬────────────┘
         │
         │
         ▼
     OpenSearch

Components

| Component | Description | Default | |-----------|-------------|---------| | notification-manager | Core notification management, receives alerts, dispatches to channels | true | | alertmanager (v0.27.0) | Alert routing, deduplication, aggregation, silencing | true | | alertmanager-proxy | Alertmanager API proxy, NodePort 31093 | true | | notification-history | Stores sent notifications via Vector to OpenSearch | true |

Dependencies

| Dependency | Type | Required | |------------|------|----------| | whizard-telemetry | extension | Required | | vector (WizTelemetry Data Pipeline) | extension | Required only notification history is enabled | | opensearch | extension | Required only notification history is enabled |

CRDs

All CRDs belong to notification.kubesphere.io/v2beta2, scope is Cluster.

| CRD | Kind | Description | |-----|------|-------------| | notificationmanagers.notification.kubesphere.io | NotificationManager | Notification manager deployment spec (image, replicas, resources, sidecar, receiver config) | | receivers.notification.kubesphere.io | Receiver | Tenant-level notification receiver, references Config | | configs.notification.kubesphere.io | Config | Credential references (via Secret selectors), independent per channel | | routers.notification.kubesphere.io | Router | Route alerts to receivers based on label matchers | | silences.notification.kubesphere.io | Silence | Time-bounded silencing, supports matchers |

Supported Notification Channels (11 channels)

| Channel | Receiver Field | Config Field | Description | |---------|---------------|--------------|-------------| | Email | spec.email | spec.email | SMTP with TLS/STARTTLS support | | Slack | spec.slack | spec.slack | Slack webhook + token | | DingTalk | spec.dingtalk | spec.dingtalk | ChatBot + group conversation | | WeChat | spec.wechat | spec.wechat | ChatBot + group conversation | | Feishu | spec.feishu | spec.feishu | ChatBot + group conversation | | Webhook | spec.webhook | spec.webhook | Generic HTTP / HTTPS POST |

Config → Receiver Association Mechanism

Config (credentials) --labels--> Receiver (via label selector) --labels--> Router (route matching)
                        │
                        └── namespace for multi-tenant isolation

Config's labels are used by Receiver's *ConfigSelector. Receiver's labels are used by Router's receiverSelector.

Installation

Prerequisites

REQUIRED: Complete all steps in order before generating InstallPlan.

Step 1: Get Latest Version (if not provided by user)

kubectl get extensionversions -l kubesphere.io/extension-ref=whizard-notification -o jsonpath='{range .items[*]}{.spec.version}{"\n"}{end}' | sort -V | tail -1

This outputs the latest version (e.g., 2.7.0). Note this down.

Step 2: Create InstallPlan

CRITICAL:

  • metadata.name MUST be whizard-notification
  • config field is YAML format
  • DO NOT add fields not shown in the template
  • Replace all placeholders with actual values

Basic installation:

apiVersion: kubesphere.io/v1alpha1
kind: InstallPlan
metadata:
  name: whizard-notification
spec:
  extension:
    name: whizard-notification
    version: <VERSION>  # From Step 1
  enabled: true
  upgradeStrategy: Manual

Disable notification history:

apiVersion: kubesphere.io/v1alpha1
kind: InstallPlan
metadata:
  name: whizard-notification
spec:
  extension:
    name: whizard-notification
    version: <VERSION>
  enabled: true
  upgradeStrategy: Manual
  config: |
    notification-history:
      enabled: false

Custom index format (monthly):

notification-history:
  sinks:
    opensearch:
      index:
        prefix: "{{ .cluster }}-notification-history"
        timestring: "%Y.%m"

Configuration Parameters

Notification History

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | notification-history.enabled | bool | true | Enable notification history storage | | notification-history.sinks.opensearch.enabled | bool | true | Enable OpenSearch sink | | notification-history.sinks.opensearch.index.prefix | string | {{ .cluster }}-notification-history | Index prefix, supports template | | notification-history.sinks.opensearch.index.timestring | string | %Y.%m.%d | strftime format | | notification-history.ism_policy.enable | bool | false | Enable ISM policy | | notification-history.ism_policy.min_index_age | string | 7d | Minimum index retention |

Alertmanager

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | alertmanager.replicaCount | int | 1 | Replica count | | alertmanager.replicaAutoSet | bool | true | Auto set replicas by node count (<3=1, >=3=3) | | alertmanager.service.nodePort | int | 31093 | NodePort (alertmanager-proxy) | | alertmanager.config.group_wait | string | 30s | Alert aggregation wait time | | alertmanager.config.repeat_interval | string | 12h | Repeat alert interval | | alertmanager.config.route.receiver | string | Default | Default receiver | | alertmanager.config.inhibit_rules | list | see below | Inhibition rules (critical→warning→info) |

Default inhibit_rules:

  • critical alerts silence warning and info with same labels
  • warning alerts silence info with same labels
  • InfoInhibitor silences all info level alerts

Notification Manager

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | notification-manager.notificationmanager.sidecar.tenant.resources.limits.cpu | string | 200m | Sidecar CPU limit | | notification-manager.notificationmanager.sidecar.tenant.resources.limits.memory | string | 512Mi | Sidecar memory limit | | notification-manager.notificationmanager.sidecar.tenant.resources.requests.cpu | string | 200m | Sidecar CPU request | | notification-manager.notificationmanager.sidecar.tenant.resources.requests.memory | string | 256Mi | Sidecar memory request | | notification-manager.operator.containers.operator.resources.limits.cpu | string | 50m | notification manager operator CPU limit | | notification-manager.operator.containers.operator.resources.limits.memory | string | 50Mi | notification manager operator memory limit | | notification-manager.operator.containers.operator.resources.requests.cpu | string | 5m | notification manager operator CPU request | | notification-manager.operator.containers.operator.resources.requests.memory | string | 20Mi | notification manager operator memory request | | notification-manager.notificationmanager.resources.limits.cpu | string | 500m | notification manager CPU limit | | notification-manager.notificationmanager.resources.limits.memory | string | 500Mi | notification manager memory limit | | notification-manager.notificationmanager.resources.requests.cpu | string | 5m | notification manager CPU request | | notification-manager.notificationmanager.resources.requests.memory | string | 20Mi | notification manager memory request | | notification-manager.notificationmanager.replicas | int | 1 | notification manager replicas |

Alertmanager-Proxy

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | alertmanager-proxy.service.nodePort | int | 31093 | NodePort | | alertmanager-proxy.resources.limits.cpu | string | 500m | CPU limit | | alertmanager-proxy.resources.limits.memory | string | 500Mi | Memory limit | | alertmanager-proxy.resources.requests.cpu | string | 100m | CPU request | | alertmanager-proxy.resources.requests.memory | string | 100Mi | Memory request |

Notification API

All APIs are at /kapis/notification.kubesphere.io/v2beta2/, routed through whizard-telemetry-apiserver.extension-whizard-telemetry.svc:80. No authentication token is required.

API Patterns

The API supports two levels of resources:

| Level | URL Pattern | Resources | |-------|-------------|-----------| | Global | /{resources} | notificationmanagers, configs, receivers, routers, silences, secrets, configmaps | | Tenant | /users/{user}/{resources} | configs, receivers, silences, secrets, configmaps (NOT notificationmanagers or routers) |

Supported HTTP methods: GET (list/detail), POST (create), PUT (update), PATCH (patch), DELETE (delete).

Query parameters for list endpoints: name, labelSelector, type, page, limit, ascending, orderBy.

List Global Receivers

curl -X GET "http://whizard-telemetry-apiserver.extension-whizard-telemetry.svc:80/kapis/notification.kubesphere.io/v2beta2/receivers" \

List Global Receivers (filtered by type)

curl -X GET "http://whizard-telemetry-apiserver.extension-whizard-telemetry.svc:80/kapis/notification.kubesphere.io/v2beta2/receivers?type=email" \

List Tenant Receivers

curl -X GET "http://whizard-telemetry-apiserver.extension-whizard-telemetry.svc:80/kapis/notification.kubesphere.io/v2beta2/users/admin/receivers" \

Create Receiver — Email (Global)

curl -X POST "http://whizard-telemetry-apiserver.extension-whizard-telemetry.svc:80/kapis/notification.kubesphere.io/v2beta2/receivers" \
  -H "Content-Type: application/json" \
  -d '{
    "apiVersion": "notification.kubesphere.io/v2beta2",
    "kind": "Receiver",
    "metadata": {
      "name": "email-receiver",
      "labels": {
        "type": "default"
      }
    },
    "spec": {
      "email": {
        "emailConfigSelector": {
          "matchLabels": { "type": "default" }
        },

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars17.1k
CategoryCommunication
Updated2mo ago
Forks2.8k

Languages

Go

Trust signals

88/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 medium