@raishin/vanguard-frontier-agentic 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +369 -322
- package/agents/AGENTS.md +263 -21
- package/agents/argocd/README.md +46 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/AGENT.md +55 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/claude-code.agent.md +35 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/codex.toml +29 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/copilot.agent.md +35 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/cursor.agent.md +35 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/gemini.agent.md +35 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/harnesses/kiro-ide.agent.md +35 -0
- package/agents/argocd/argo-rollouts-progressive-delivery-review-agent/metadata.json +31 -0
- package/agents/argocd/argocd-gitops-review-agent/AGENT.md +55 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/codex.toml +32 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/copilot.agent.md +38 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/cursor.agent.md +38 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/gemini.agent.md +38 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/argocd/argocd-gitops-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/argocd/argocd-gitops-review-agent/metadata.json +30 -0
- package/agents/aws/aws-live-deployment-guarded-operator-agent/metadata.json +10 -1
- package/agents/aws/aws-live-ecs-rollout-guard-agent/metadata.json +10 -1
- package/agents/aws/aws-live-iac-change-guard-agent/metadata.json +10 -1
- package/agents/aws/aws-live-pipeline-approval-operator-agent/metadata.json +10 -1
- package/agents/aws/aws-live-serverless-release-guard-agent/metadata.json +10 -1
- package/agents/aws/aws-maestro-agent/AGENT.md +55 -0
- package/agents/aws/aws-maestro-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/aws/aws-maestro-agent/harnesses/codex.toml +34 -0
- package/agents/aws/aws-maestro-agent/harnesses/copilot.agent.md +51 -0
- package/agents/aws/aws-maestro-agent/harnesses/cursor.agent.md +40 -0
- package/agents/aws/aws-maestro-agent/harnesses/gemini.agent.md +39 -0
- package/agents/aws/aws-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/aws/aws-maestro-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/aws/aws-maestro-agent/metadata.json +37 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/AGENT.md +53 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/claude-code.agent.md +36 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/codex.toml +27 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/copilot.agent.md +36 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/cursor.agent.md +36 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/gemini.agent.md +36 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/harnesses/kiro-ide.agent.md +36 -0
- package/agents/aws/aws-private-ca-issuer-review-agent/metadata.json +37 -0
- package/agents/azure/AGENTS.md +26 -0
- package/agents/azure/README.md +45 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/AGENT.md +53 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/claude-code.agent.md +36 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/codex.toml +27 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/copilot.agent.md +36 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/cursor.agent.md +36 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/gemini.agent.md +36 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/harnesses/kiro-ide.agent.md +36 -0
- package/agents/azure/azure-keyvault-certificate-issuer-review-agent/metadata.json +36 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/AGENT.md +57 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/PERMISSIONS.md +56 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/PREFLIGHT.md +48 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/ROLLBACK.md +36 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/harnesses/codex.toml +32 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/harnesses/copilot.agent.md +53 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/harnesses/cursor.agent.md +40 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/harnesses/gemini.agent.md +40 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/azure/azure-live-aks-rollout-guard-agent/metadata.json +36 -0
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/AGENT.md +57 -0
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/PERMISSIONS.md +43 -0
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/PREFLIGHT.md +50 -0
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/ROLLBACK.md +46 -0
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/harnesses/codex.toml +32 -0
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/harnesses/copilot.agent.md +53 -0
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/harnesses/cursor.agent.md +40 -0
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/harnesses/gemini.agent.md +40 -0
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/metadata.json +35 -0
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/AGENT.md +57 -0
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/PERMISSIONS.md +88 -0
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/PREFLIGHT.md +48 -0
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/ROLLBACK.md +48 -0
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/harnesses/codex.toml +32 -0
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/harnesses/copilot.agent.md +53 -0
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/harnesses/cursor.agent.md +40 -0
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/harnesses/gemini.agent.md +40 -0
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/metadata.json +36 -0
- package/agents/azure/azure-live-cost-budget-action-guard-agent/AGENT.md +57 -0
- package/agents/azure/azure-live-cost-budget-action-guard-agent/PERMISSIONS.md +93 -0
- package/agents/azure/azure-live-cost-budget-action-guard-agent/PREFLIGHT.md +44 -0
- package/agents/azure/azure-live-cost-budget-action-guard-agent/ROLLBACK.md +49 -0
- package/agents/azure/azure-live-cost-budget-action-guard-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/azure/azure-live-cost-budget-action-guard-agent/harnesses/codex.toml +32 -0
- package/agents/azure/azure-live-cost-budget-action-guard-agent/harnesses/copilot.agent.md +53 -0
- package/agents/azure/azure-live-cost-budget-action-guard-agent/harnesses/cursor.agent.md +40 -0
- package/agents/azure/azure-live-cost-budget-action-guard-agent/harnesses/gemini.agent.md +40 -0
- package/agents/azure/azure-live-cost-budget-action-guard-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/azure/azure-live-cost-budget-action-guard-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/azure/azure-live-cost-budget-action-guard-agent/metadata.json +36 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/AGENT.md +59 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/codex.toml +34 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/copilot.agent.md +55 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/cursor.agent.md +44 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/gemini.agent.md +43 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/azure/azure-live-entra-role-assignment-guard-agent/metadata.json +37 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/AGENT.md +57 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/PERMISSIONS.md +68 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/PREFLIGHT.md +46 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/ROLLBACK.md +44 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/harnesses/codex.toml +32 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/harnesses/copilot.agent.md +53 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/harnesses/cursor.agent.md +40 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/harnesses/gemini.agent.md +40 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/azure/azure-live-keyvault-rotation-purge-guard-agent/metadata.json +36 -0
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/AGENT.md +57 -0
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/PERMISSIONS.md +59 -0
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/PREFLIGHT.md +41 -0
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/ROLLBACK.md +48 -0
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/harnesses/codex.toml +32 -0
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/harnesses/copilot.agent.md +53 -0
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/harnesses/cursor.agent.md +40 -0
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/harnesses/gemini.agent.md +40 -0
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/metadata.json +36 -0
- package/agents/azure/azure-maestro-agent/AGENT.md +56 -0
- package/agents/azure/azure-maestro-agent/harnesses/claude-code.agent.md +39 -0
- package/agents/azure/azure-maestro-agent/harnesses/codex.toml +14 -0
- package/agents/azure/azure-maestro-agent/harnesses/copilot.agent.md +52 -0
- package/agents/azure/azure-maestro-agent/harnesses/cursor.agent.md +41 -0
- package/agents/azure/azure-maestro-agent/harnesses/gemini.agent.md +40 -0
- package/agents/azure/azure-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/azure/azure-maestro-agent/harnesses/kiro-ide.agent.md +39 -0
- package/agents/azure/azure-maestro-agent/metadata.json +38 -0
- package/agents/backstage/README.md +36 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/AGENT.md +54 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/claude-code.agent.md +37 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/codex.toml +31 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/copilot.agent.md +37 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/cursor.agent.md +37 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/gemini.agent.md +37 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/harnesses/kiro-ide.agent.md +37 -0
- package/agents/backstage/backstage-scaffolder-template-review-agent/metadata.json +30 -0
- package/agents/cert-manager/README.md +46 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/AGENT.md +55 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/claude-code.agent.md +35 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/codex.toml +29 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/copilot.agent.md +35 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/cursor.agent.md +35 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/gemini.agent.md +35 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/harnesses/kiro-ide.agent.md +35 -0
- package/agents/cert-manager/cert-manager-issuer-trust-review-agent/metadata.json +31 -0
- package/agents/cilium/README.md +46 -0
- package/agents/cilium/cilium-network-policy-review-agent/AGENT.md +55 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/codex.toml +32 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/copilot.agent.md +38 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/cursor.agent.md +38 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/gemini.agent.md +38 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/cilium/cilium-network-policy-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/cilium/cilium-network-policy-review-agent/metadata.json +37 -0
- package/agents/falco/README.md +36 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/AGENT.md +49 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/claude-code.agent.md +33 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/codex.toml +31 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/copilot.agent.md +33 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/cursor.agent.md +33 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/gemini.agent.md +33 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/harnesses/kiro-ide.agent.md +33 -0
- package/agents/falco/falco-runtime-threat-rules-review-agent/metadata.json +31 -0
- package/agents/finops/AGENTS.md +36 -0
- package/agents/finops/README.md +27 -0
- package/agents/finops/finops-cloud-price-advisor-agent/AGENT.md +58 -0
- package/agents/finops/finops-cloud-price-advisor-agent/PERMISSIONS.md +112 -0
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/codex.toml +33 -0
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/copilot.agent.md +53 -0
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/cursor.agent.md +40 -0
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/gemini.agent.md +40 -0
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/finops/finops-cloud-price-advisor-agent/metadata.json +38 -0
- package/agents/fluxcd/README.md +39 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/AGENT.md +55 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/codex.toml +32 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/copilot.agent.md +38 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/cursor.agent.md +38 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/gemini.agent.md +38 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/fluxcd/fluxcd-kustomization-helmrelease-review-agent/metadata.json +31 -0
- package/agents/istio/README.md +46 -0
- package/agents/istio/istio-ambient-mesh-review-agent/AGENT.md +55 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/codex.toml +32 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/copilot.agent.md +38 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/cursor.agent.md +38 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/gemini.agent.md +38 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/istio/istio-ambient-mesh-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/istio/istio-ambient-mesh-review-agent/metadata.json +30 -0
- package/agents/kubernetes/README.md +143 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/AGENT.md +49 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/claude-code.agent.md +33 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/codex.toml +31 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/copilot.agent.md +33 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/cursor.agent.md +33 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/gemini.agent.md +33 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/harnesses/kiro-ide.agent.md +33 -0
- package/agents/kubernetes/external-secrets-operator-review-agent/metadata.json +31 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/AGENT.md +56 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/claude-code.agent.md +39 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/codex.toml +34 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/copilot.agent.md +39 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/cursor.agent.md +39 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/gemini.agent.md +39 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/harnesses/kiro-ide.agent.md +39 -0
- package/agents/kubernetes/kubecost-chargeback-allocation-review-agent/metadata.json +31 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/AGENT.md +59 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/codex.toml +33 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/copilot.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/cursor.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/gemini.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/metadata.json +36 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/AGENT.md +59 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/codex.toml +33 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/copilot.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/cursor.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/gemini.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/metadata.json +36 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/AGENT.md +59 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/codex.toml +33 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/copilot.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/cursor.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/gemini.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/metadata.json +36 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/AGENT.md +59 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/codex.toml +33 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/copilot.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/cursor.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/gemini.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/metadata.json +36 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/AGENT.md +59 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/codex.toml +34 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/copilot.agent.md +55 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/cursor.agent.md +44 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/gemini.agent.md +43 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/metadata.json +36 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/AGENT.md +62 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/claude-code.agent.md +43 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/codex.toml +35 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/copilot.agent.md +43 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/cursor.agent.md +43 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/gemini.agent.md +43 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/kiro-ide.agent.md +43 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/metadata.json +37 -0
- package/agents/kubernetes/kubernetes-maestro-agent/AGENT.md +55 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/codex.toml +34 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/copilot.agent.md +38 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/cursor.agent.md +38 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/gemini.agent.md +38 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-maestro-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/kubernetes/kubernetes-maestro-agent/metadata.json +40 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/AGENT.md +54 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/claude-code.agent.md +37 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/codex.toml +27 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/copilot.agent.md +37 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/cursor.agent.md +37 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/gemini.agent.md +37 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/harnesses/kiro-ide.agent.md +37 -0
- package/agents/kubernetes/kubernetes-pod-spec-review-agent/metadata.json +38 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/AGENT.md +55 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/claude-code.agent.md +36 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/codex.toml +29 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/copilot.agent.md +36 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/cursor.agent.md +36 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/gemini.agent.md +36 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/harnesses/kiro-ide.agent.md +36 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/metadata.json +37 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/AGENT.md +55 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/codex.toml +32 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/copilot.agent.md +51 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/cursor.agent.md +40 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/gemini.agent.md +39 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/kubernetes/kubernetes-rbac-review-agent/metadata.json +36 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/AGENT.md +55 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/claude-code.agent.md +37 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/codex.toml +29 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/copilot.agent.md +37 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/cursor.agent.md +37 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/gemini.agent.md +37 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/harnesses/kiro-ide.agent.md +37 -0
- package/agents/kubernetes/kubernetes-workload-identity-review-agent/metadata.json +37 -0
- package/agents/kyverno/README.md +46 -0
- package/agents/kyverno/kyverno-policy-review-agent/AGENT.md +55 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/codex.toml +32 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/copilot.agent.md +38 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/cursor.agent.md +38 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/gemini.agent.md +38 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kyverno/kyverno-policy-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/kyverno/kyverno-policy-review-agent/metadata.json +30 -0
- package/agents/oci/AGENTS.md +28 -0
- package/agents/oci/README.md +45 -0
- package/agents/oci/oci-certificates-issuer-review-agent/AGENT.md +53 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/claude-code.agent.md +36 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/codex.toml +27 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/copilot.agent.md +36 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/cursor.agent.md +36 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/gemini.agent.md +36 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/oci/oci-certificates-issuer-review-agent/harnesses/kiro-ide.agent.md +36 -0
- package/agents/oci/oci-certificates-issuer-review-agent/metadata.json +36 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/AGENT.md +57 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/PERMISSIONS.md +56 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/PREFLIGHT.md +48 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/ROLLBACK.md +50 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/harnesses/codex.toml +32 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/harnesses/copilot.agent.md +53 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/harnesses/cursor.agent.md +40 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/harnesses/gemini.agent.md +40 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/oci/oci-live-autonomous-db-lifecycle-guard-agent/metadata.json +36 -0
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/AGENT.md +57 -0
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/PERMISSIONS.md +77 -0
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/PREFLIGHT.md +54 -0
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/ROLLBACK.md +53 -0
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/harnesses/codex.toml +32 -0
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/harnesses/copilot.agent.md +53 -0
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/harnesses/cursor.agent.md +40 -0
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/harnesses/gemini.agent.md +40 -0
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/metadata.json +36 -0
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/AGENT.md +57 -0
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/PERMISSIONS.md +87 -0
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/PREFLIGHT.md +49 -0
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/ROLLBACK.md +44 -0
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/harnesses/codex.toml +32 -0
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/harnesses/copilot.agent.md +53 -0
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/harnesses/cursor.agent.md +40 -0
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/harnesses/gemini.agent.md +40 -0
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/metadata.json +36 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/AGENT.md +59 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/codex.toml +34 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/copilot.agent.md +55 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/cursor.agent.md +44 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/gemini.agent.md +43 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/oci/oci-live-network-security-rule-guard-agent/metadata.json +37 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/AGENT.md +57 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/PERMISSIONS.md +92 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/PREFLIGHT.md +49 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/ROLLBACK.md +47 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/harnesses/codex.toml +32 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/harnesses/copilot.agent.md +53 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/harnesses/cursor.agent.md +40 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/harnesses/gemini.agent.md +40 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/oci/oci-live-oke-rollout-guard-agent/metadata.json +36 -0
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/AGENT.md +57 -0
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/PERMISSIONS.md +80 -0
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/PREFLIGHT.md +51 -0
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/ROLLBACK.md +45 -0
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/harnesses/codex.toml +32 -0
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/harnesses/copilot.agent.md +53 -0
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/harnesses/cursor.agent.md +40 -0
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/harnesses/gemini.agent.md +40 -0
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/metadata.json +36 -0
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/AGENT.md +57 -0
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/PERMISSIONS.md +57 -0
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/PREFLIGHT.md +53 -0
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/ROLLBACK.md +49 -0
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/harnesses/codex.toml +32 -0
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/harnesses/copilot.agent.md +53 -0
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/harnesses/cursor.agent.md +40 -0
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/harnesses/gemini.agent.md +40 -0
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/metadata.json +36 -0
- package/agents/oci/oci-maestro-agent/AGENT.md +58 -0
- package/agents/oci/oci-maestro-agent/harnesses/claude-code.agent.md +41 -0
- package/agents/oci/oci-maestro-agent/harnesses/codex.toml +14 -0
- package/agents/oci/oci-maestro-agent/harnesses/copilot.agent.md +54 -0
- package/agents/oci/oci-maestro-agent/harnesses/cursor.agent.md +43 -0
- package/agents/oci/oci-maestro-agent/harnesses/gemini.agent.md +42 -0
- package/agents/oci/oci-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/oci/oci-maestro-agent/harnesses/kiro-ide.agent.md +41 -0
- package/agents/oci/oci-maestro-agent/metadata.json +37 -0
- package/agents/opentelemetry/README.md +37 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/AGENT.md +55 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/codex.toml +32 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/copilot.agent.md +38 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/cursor.agent.md +38 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/gemini.agent.md +38 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/opentelemetry/opentelemetry-collector-config-review-agent/metadata.json +37 -0
- package/agents/prometheus/README.md +36 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/AGENT.md +48 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/claude-code.agent.md +32 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/codex.toml +31 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/copilot.agent.md +32 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/cursor.agent.md +32 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/gemini.agent.md +32 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/harnesses/kiro-ide.agent.md +32 -0
- package/agents/prometheus/prometheus-alerting-cardinality-review-agent/metadata.json +31 -0
- package/agents/sigstore/README.md +38 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/AGENT.md +55 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/claude-code.agent.md +35 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/codex.toml +29 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/copilot.agent.md +35 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/cursor.agent.md +35 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/gemini.agent.md +35 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/harnesses/kiro-ide.agent.md +35 -0
- package/agents/sigstore/sigstore-cosign-supply-chain-review-agent/metadata.json +31 -0
- package/agents/terraform/README.md +29 -0
- package/agents/terraform/terraform-maestro-agent/AGENT.md +58 -0
- package/agents/terraform/terraform-maestro-agent/harnesses/claude-code.agent.md +41 -0
- package/agents/terraform/terraform-maestro-agent/harnesses/codex.toml +14 -0
- package/agents/terraform/terraform-maestro-agent/harnesses/copilot.agent.md +54 -0
- package/agents/terraform/terraform-maestro-agent/harnesses/cursor.agent.md +43 -0
- package/agents/terraform/terraform-maestro-agent/harnesses/gemini.agent.md +42 -0
- package/agents/terraform/terraform-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/terraform/terraform-maestro-agent/harnesses/kiro-ide.agent.md +41 -0
- package/agents/terraform/terraform-maestro-agent/metadata.json +38 -0
- package/agents/terraform/terraform-reviewer/harnesses/claude-code.agent.md +29 -0
- package/agents/terraform/terraform-reviewer/harnesses/codex.toml +29 -0
- package/agents/terraform/terraform-reviewer/harnesses/copilot.agent.md +42 -0
- package/agents/terraform/terraform-reviewer/harnesses/cursor.agent.md +31 -0
- package/agents/terraform/terraform-reviewer/harnesses/gemini.agent.md +30 -0
- package/agents/terraform/terraform-reviewer/harnesses/kiro-cli.agent.json +5 -0
- package/agents/terraform/terraform-reviewer/harnesses/kiro-ide.agent.md +29 -0
- package/agents/terraform/terraform-reviewer/metadata.json +10 -1
- package/agents/velero/README.md +41 -0
- package/assets/logos/vanguard-frontier-agentic-logo.png +0 -0
- package/catalog/agents.json +1347 -27
- package/catalog/install-roles.json +455 -0
- package/catalog/skill-manifest.json +1358 -62
- package/catalog/skills.json +1231 -25
- package/package.json +11 -1
- package/scripts/export-marketplace-agents.mjs +129 -10
- package/scripts/gen_azure_live_guards.py +1424 -0
- package/scripts/gen_oci_live_guards.py +1510 -0
- package/scripts/update-catalog-new-agents.py +88 -0
- package/skills/argocd/README.md +30 -0
- package/skills/argocd/argo-rollouts-progressive-delivery-review/SKILL.md +40 -0
- package/skills/argocd/argo-rollouts-progressive-delivery-review/metadata.json +22 -0
- package/skills/argocd/argo-rollouts-progressive-delivery-review/references/workflow-and-output.md +248 -0
- package/skills/argocd/argocd-gitops-review/SKILL.md +43 -0
- package/skills/argocd/argocd-gitops-review/metadata.json +30 -0
- package/skills/argocd/argocd-gitops-review/references/mcp-and-evidence.md +53 -0
- package/skills/argocd/argocd-gitops-review/references/official-sources.md +32 -0
- package/skills/argocd/argocd-gitops-review/references/workflow-and-output.md +120 -0
- package/skills/aws/README.md +3 -1
- package/skills/aws/aws-maestro/SKILL.md +47 -0
- package/skills/aws/aws-maestro/metadata.json +28 -0
- package/skills/aws/aws-maestro/references/official-sources.md +24 -0
- package/skills/aws/aws-maestro/references/safety-checklist.md +42 -0
- package/skills/aws/aws-maestro/references/workflow-and-output.md +129 -0
- package/skills/aws/aws-private-ca-issuer-review/SKILL.md +39 -0
- package/skills/aws/aws-private-ca-issuer-review/metadata.json +21 -0
- package/skills/aws/aws-private-ca-issuer-review/references/official-sources.md +22 -0
- package/skills/aws/aws-private-ca-issuer-review/references/safety-checklist.md +30 -0
- package/skills/aws/aws-private-ca-issuer-review/references/workflow-and-output.md +214 -0
- package/skills/azure/README.md +3 -1
- package/skills/azure/azure-keyvault-certificate-issuer-review/SKILL.md +37 -0
- package/skills/azure/azure-keyvault-certificate-issuer-review/metadata.json +20 -0
- package/skills/azure/azure-keyvault-certificate-issuer-review/references/workflow-and-output.md +190 -0
- package/skills/azure/azure-live-aks-rollout-guard/SKILL.md +49 -0
- package/skills/azure/azure-live-aks-rollout-guard/metadata.json +27 -0
- package/skills/azure/azure-live-aks-rollout-guard/references/official-sources.md +19 -0
- package/skills/azure/azure-live-aks-rollout-guard/references/permission-model.md +54 -0
- package/skills/azure/azure-live-aks-rollout-guard/references/preflight-commands.md +55 -0
- package/skills/azure/azure-live-aks-rollout-guard/references/rollback-playbook.md +38 -0
- package/skills/azure/azure-live-app-service-slot-swap-guard/SKILL.md +49 -0
- package/skills/azure/azure-live-app-service-slot-swap-guard/metadata.json +26 -0
- package/skills/azure/azure-live-app-service-slot-swap-guard/references/official-sources.md +12 -0
- package/skills/azure/azure-live-app-service-slot-swap-guard/references/permission-model.md +40 -0
- package/skills/azure/azure-live-app-service-slot-swap-guard/references/preflight-commands.md +46 -0
- package/skills/azure/azure-live-app-service-slot-swap-guard/references/rollback-playbook.md +46 -0
- package/skills/azure/azure-live-arm-deployment-stack-guard/SKILL.md +49 -0
- package/skills/azure/azure-live-arm-deployment-stack-guard/metadata.json +27 -0
- package/skills/azure/azure-live-arm-deployment-stack-guard/references/official-sources.md +17 -0
- package/skills/azure/azure-live-arm-deployment-stack-guard/references/permission-model.md +68 -0
- package/skills/azure/azure-live-arm-deployment-stack-guard/references/preflight-commands.md +55 -0
- package/skills/azure/azure-live-arm-deployment-stack-guard/references/rollback-playbook.md +53 -0
- package/skills/azure/azure-live-cost-budget-action-guard/SKILL.md +49 -0
- package/skills/azure/azure-live-cost-budget-action-guard/metadata.json +27 -0
- package/skills/azure/azure-live-cost-budget-action-guard/references/official-sources.md +17 -0
- package/skills/azure/azure-live-cost-budget-action-guard/references/permission-model.md +66 -0
- package/skills/azure/azure-live-cost-budget-action-guard/references/preflight-commands.md +48 -0
- package/skills/azure/azure-live-cost-budget-action-guard/references/rollback-playbook.md +40 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/SKILL.md +56 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/metadata.json +28 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/references/official-sources.md +21 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/references/permission-model.md +70 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/references/preflight-commands.md +69 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/references/rollback-playbook.md +51 -0
- package/skills/azure/azure-live-keyvault-rotation-purge-guard/SKILL.md +49 -0
- package/skills/azure/azure-live-keyvault-rotation-purge-guard/metadata.json +27 -0
- package/skills/azure/azure-live-keyvault-rotation-purge-guard/references/official-sources.md +13 -0
- package/skills/azure/azure-live-keyvault-rotation-purge-guard/references/permission-model.md +64 -0
- package/skills/azure/azure-live-keyvault-rotation-purge-guard/references/preflight-commands.md +48 -0
- package/skills/azure/azure-live-keyvault-rotation-purge-guard/references/rollback-playbook.md +44 -0
- package/skills/azure/azure-live-pim-jit-activation-guard/SKILL.md +49 -0
- package/skills/azure/azure-live-pim-jit-activation-guard/metadata.json +27 -0
- package/skills/azure/azure-live-pim-jit-activation-guard/references/official-sources.md +13 -0
- package/skills/azure/azure-live-pim-jit-activation-guard/references/permission-model.md +56 -0
- package/skills/azure/azure-live-pim-jit-activation-guard/references/preflight-commands.md +46 -0
- package/skills/azure/azure-live-pim-jit-activation-guard/references/rollback-playbook.md +45 -0
- package/skills/azure/azure-maestro/SKILL.md +140 -0
- package/skills/azure/azure-maestro/metadata.json +28 -0
- package/skills/backstage/backstage-scaffolder-template-review/SKILL.md +39 -0
- package/skills/backstage/backstage-scaffolder-template-review/metadata.json +21 -0
- package/skills/backstage/backstage-scaffolder-template-review/references/workflow-and-output.md +179 -0
- package/skills/cert-manager/cert-manager-issuer-trust-review/SKILL.md +40 -0
- package/skills/cert-manager/cert-manager-issuer-trust-review/metadata.json +22 -0
- package/skills/cert-manager/cert-manager-issuer-trust-review/references/workflow-and-output.md +222 -0
- package/skills/cilium/README.md +30 -0
- package/skills/cilium/cilium-network-policy-review/SKILL.md +43 -0
- package/skills/cilium/cilium-network-policy-review/metadata.json +30 -0
- package/skills/cilium/cilium-network-policy-review/references/mcp-and-evidence.md +52 -0
- package/skills/cilium/cilium-network-policy-review/references/official-sources.md +30 -0
- package/skills/cilium/cilium-network-policy-review/references/workflow-and-output.md +130 -0
- package/skills/falco/falco-runtime-threat-rules-review/SKILL.md +37 -0
- package/skills/falco/falco-runtime-threat-rules-review/metadata.json +22 -0
- package/skills/falco/falco-runtime-threat-rules-review/references/workflow-and-output.md +249 -0
- package/skills/finops/README.md +30 -0
- package/skills/finops/finops-cloud-price-advisor/SKILL.md +60 -0
- package/skills/finops/finops-cloud-price-advisor/metadata.json +26 -0
- package/skills/finops/finops-cloud-price-advisor/references/currency-handling.md +100 -0
- package/skills/finops/finops-cloud-price-advisor/references/estimation-workflow.md +145 -0
- package/skills/finops/finops-cloud-price-advisor/references/official-sources.md +64 -0
- package/skills/finops/finops-cloud-price-advisor/references/pricing-apis.md +271 -0
- package/skills/fluxcd/fluxcd-kustomization-helmrelease-review/SKILL.md +40 -0
- package/skills/fluxcd/fluxcd-kustomization-helmrelease-review/metadata.json +22 -0
- package/skills/fluxcd/fluxcd-kustomization-helmrelease-review/references/workflow-and-output.md +243 -0
- package/skills/istio/README.md +28 -0
- package/skills/istio/istio-ambient-mesh-review/SKILL.md +43 -0
- package/skills/istio/istio-ambient-mesh-review/metadata.json +30 -0
- package/skills/istio/istio-ambient-mesh-review/references/mcp-and-evidence.md +59 -0
- package/skills/istio/istio-ambient-mesh-review/references/official-sources.md +32 -0
- package/skills/istio/istio-ambient-mesh-review/references/workflow-and-output.md +128 -0
- package/skills/kubernetes/README.md +30 -0
- package/skills/kubernetes/external-secrets-operator-review/SKILL.md +37 -0
- package/skills/kubernetes/external-secrets-operator-review/metadata.json +22 -0
- package/skills/kubernetes/external-secrets-operator-review/references/workflow-and-output.md +280 -0
- package/skills/kubernetes/kubecost-chargeback-allocation-review/SKILL.md +40 -0
- package/skills/kubernetes/kubecost-chargeback-allocation-review/metadata.json +22 -0
- package/skills/kubernetes/kubecost-chargeback-allocation-review/references/workflow-and-output.md +215 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/SKILL.md +57 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/metadata.json +27 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/references/official-sources.md +18 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/references/permission-model.md +78 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/references/preflight-commands.md +81 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/references/rollback-playbook.md +61 -0
- package/skills/kubernetes/kubernetes-maestro/SKILL.md +45 -0
- package/skills/kubernetes/kubernetes-maestro/metadata.json +24 -0
- package/skills/kubernetes/kubernetes-maestro/references/safety-checklist.md +78 -0
- package/skills/kubernetes/kubernetes-maestro/references/workflow-and-output.md +206 -0
- package/skills/kubernetes/kubernetes-pod-security-admission-review/SKILL.md +43 -0
- package/skills/kubernetes/kubernetes-pod-security-admission-review/metadata.json +28 -0
- package/skills/kubernetes/kubernetes-pod-security-admission-review/references/mcp-and-evidence.md +49 -0
- package/skills/kubernetes/kubernetes-pod-security-admission-review/references/official-sources.md +26 -0
- package/skills/kubernetes/kubernetes-pod-security-admission-review/references/workflow-and-output.md +129 -0
- package/skills/kubernetes/kubernetes-pod-spec-review/SKILL.md +38 -0
- package/skills/kubernetes/kubernetes-pod-spec-review/metadata.json +22 -0
- package/skills/kubernetes/kubernetes-pod-spec-review/references/workflow-and-output.md +229 -0
- package/skills/kubernetes/kubernetes-rbac-review/SKILL.md +38 -0
- package/skills/kubernetes/kubernetes-rbac-review/metadata.json +27 -0
- package/skills/kubernetes/kubernetes-rbac-review/references/mcp-and-evidence.md +34 -0
- package/skills/kubernetes/kubernetes-rbac-review/references/official-sources.md +22 -0
- package/skills/kubernetes/kubernetes-rbac-review/references/workflow-and-output.md +44 -0
- package/skills/kubernetes/kubernetes-workload-identity-review/SKILL.md +43 -0
- package/skills/kubernetes/kubernetes-workload-identity-review/metadata.json +29 -0
- package/skills/kubernetes/kubernetes-workload-identity-review/references/mcp-and-evidence.md +57 -0
- package/skills/kubernetes/kubernetes-workload-identity-review/references/official-sources.md +47 -0
- package/skills/kubernetes/kubernetes-workload-identity-review/references/workflow-and-output.md +166 -0
- package/skills/kyverno/README.md +30 -0
- package/skills/kyverno/kyverno-policy-review/SKILL.md +43 -0
- package/skills/kyverno/kyverno-policy-review/metadata.json +30 -0
- package/skills/kyverno/kyverno-policy-review/references/mcp-and-evidence.md +49 -0
- package/skills/kyverno/kyverno-policy-review/references/official-sources.md +31 -0
- package/skills/kyverno/kyverno-policy-review/references/workflow-and-output.md +106 -0
- package/skills/oci/README.md +63 -0
- package/skills/oci/oci-certificates-issuer-review/SKILL.md +37 -0
- package/skills/oci/oci-certificates-issuer-review/metadata.json +20 -0
- package/skills/oci/oci-certificates-issuer-review/references/workflow-and-output.md +207 -0
- package/skills/oci/oci-live-autonomous-db-lifecycle-guard/SKILL.md +49 -0
- package/skills/oci/oci-live-autonomous-db-lifecycle-guard/metadata.json +27 -0
- package/skills/oci/oci-live-autonomous-db-lifecycle-guard/references/official-sources.md +13 -0
- package/skills/oci/oci-live-autonomous-db-lifecycle-guard/references/permission-model.md +49 -0
- package/skills/oci/oci-live-autonomous-db-lifecycle-guard/references/preflight-commands.md +58 -0
- package/skills/oci/oci-live-autonomous-db-lifecycle-guard/references/rollback-playbook.md +44 -0
- package/skills/oci/oci-live-cost-budget-runaway-guard/SKILL.md +49 -0
- package/skills/oci/oci-live-cost-budget-runaway-guard/metadata.json +27 -0
- package/skills/oci/oci-live-cost-budget-runaway-guard/references/official-sources.md +17 -0
- package/skills/oci/oci-live-cost-budget-runaway-guard/references/permission-model.md +59 -0
- package/skills/oci/oci-live-cost-budget-runaway-guard/references/preflight-commands.md +42 -0
- package/skills/oci/oci-live-cost-budget-runaway-guard/references/rollback-playbook.md +44 -0
- package/skills/oci/oci-live-iam-policy-compartment-guard/SKILL.md +49 -0
- package/skills/oci/oci-live-iam-policy-compartment-guard/metadata.json +27 -0
- package/skills/oci/oci-live-iam-policy-compartment-guard/references/official-sources.md +13 -0
- package/skills/oci/oci-live-iam-policy-compartment-guard/references/permission-model.md +71 -0
- package/skills/oci/oci-live-iam-policy-compartment-guard/references/preflight-commands.md +49 -0
- package/skills/oci/oci-live-iam-policy-compartment-guard/references/rollback-playbook.md +62 -0
- package/skills/oci/oci-live-network-security-rule-guard/SKILL.md +57 -0
- package/skills/oci/oci-live-network-security-rule-guard/metadata.json +28 -0
- package/skills/oci/oci-live-network-security-rule-guard/references/official-sources.md +21 -0
- package/skills/oci/oci-live-network-security-rule-guard/references/permission-model.md +65 -0
- package/skills/oci/oci-live-network-security-rule-guard/references/preflight-commands.md +69 -0
- package/skills/oci/oci-live-network-security-rule-guard/references/rollback-playbook.md +79 -0
- package/skills/oci/oci-live-oke-rollout-guard/SKILL.md +49 -0
- package/skills/oci/oci-live-oke-rollout-guard/metadata.json +27 -0
- package/skills/oci/oci-live-oke-rollout-guard/references/official-sources.md +18 -0
- package/skills/oci/oci-live-oke-rollout-guard/references/permission-model.md +80 -0
- package/skills/oci/oci-live-oke-rollout-guard/references/preflight-commands.md +55 -0
- package/skills/oci/oci-live-oke-rollout-guard/references/rollback-playbook.md +45 -0
- package/skills/oci/oci-live-resource-manager-stack-guard/SKILL.md +49 -0
- package/skills/oci/oci-live-resource-manager-stack-guard/metadata.json +27 -0
- package/skills/oci/oci-live-resource-manager-stack-guard/references/official-sources.md +12 -0
- package/skills/oci/oci-live-resource-manager-stack-guard/references/permission-model.md +70 -0
- package/skills/oci/oci-live-resource-manager-stack-guard/references/preflight-commands.md +57 -0
- package/skills/oci/oci-live-resource-manager-stack-guard/references/rollback-playbook.md +51 -0
- package/skills/oci/oci-live-vault-key-destruction-guard/SKILL.md +49 -0
- package/skills/oci/oci-live-vault-key-destruction-guard/metadata.json +27 -0
- package/skills/oci/oci-live-vault-key-destruction-guard/references/official-sources.md +13 -0
- package/skills/oci/oci-live-vault-key-destruction-guard/references/permission-model.md +55 -0
- package/skills/oci/oci-live-vault-key-destruction-guard/references/preflight-commands.md +62 -0
- package/skills/oci/oci-live-vault-key-destruction-guard/references/rollback-playbook.md +55 -0
- package/skills/oci/oci-maestro/SKILL.md +163 -0
- package/skills/oci/oci-maestro/metadata.json +27 -0
- package/skills/opentelemetry/README.md +31 -0
- package/skills/opentelemetry/opentelemetry-collector-config-review/SKILL.md +44 -0
- package/skills/opentelemetry/opentelemetry-collector-config-review/metadata.json +30 -0
- package/skills/opentelemetry/opentelemetry-collector-config-review/references/mcp-and-evidence.md +49 -0
- package/skills/opentelemetry/opentelemetry-collector-config-review/references/official-sources.md +31 -0
- package/skills/opentelemetry/opentelemetry-collector-config-review/references/workflow-and-output.md +155 -0
- package/skills/prometheus/prometheus-alerting-cardinality-review/SKILL.md +38 -0
- package/skills/prometheus/prometheus-alerting-cardinality-review/metadata.json +22 -0
- package/skills/prometheus/prometheus-alerting-cardinality-review/references/workflow-and-output.md +221 -0
- package/skills/sigstore/sigstore-cosign-supply-chain-review/SKILL.md +39 -0
- package/skills/sigstore/sigstore-cosign-supply-chain-review/metadata.json +22 -0
- package/skills/sigstore/sigstore-cosign-supply-chain-review/references/workflow-and-output.md +196 -0
- package/skills/terraform/README.md +29 -0
- package/skills/terraform/terraform-maestro/SKILL.md +123 -0
- package/skills/terraform/terraform-maestro/metadata.json +30 -0
- package/skills/terraform/terraform-maestro/references/official-sources.md +59 -0
- package/skills/terraform/terraform-maestro/references/safety-checklist.md +53 -0
- package/skills/terraform/terraform-maestro/references/workflow-and-output.md +108 -0
- package/skills/velero/velero-backup-restore-guard/SKILL.md +41 -0
- package/skills/velero/velero-backup-restore-guard/metadata.json +21 -0
- package/skills/velero/velero-backup-restore-guard/references/safety-checklist.md +40 -0
- package/skills/velero/velero-backup-restore-guard/references/workflow-and-output.md +202 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 🔭 OpenTelemetry Skills
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<!-- 🖼️ Add an OpenTelemetry logo to assets/logos/cnative/opentelemetry/ and update this path -->
|
|
5
|
+
<span style="font-size:3.5em">🔭</span>
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
This folder contains OpenTelemetry-focused skills curated for this marketplace.
|
|
9
|
+
|
|
10
|
+
## Local marketplace portfolio
|
|
11
|
+
|
|
12
|
+
This folder contains **1** local OpenTelemetry skill:
|
|
13
|
+
|
|
14
|
+
- `opentelemetry-collector-config-review`
|
|
15
|
+
|
|
16
|
+
## Portfolio posture
|
|
17
|
+
|
|
18
|
+
OpenTelemetry skills for evidence-backed observability pipeline review covering the four `OpenTelemetryCollector` deployment modes (`deployment`, `statefulset`, `daemonset`, `sidecar`), the `Instrumentation` CR for auto-instrumentation across Java/Node/Python/.NET/Go, the Target Allocator for distributed Prometheus scraping, and exporter/processor/receiver pipeline correctness.
|
|
19
|
+
|
|
20
|
+
These skills are intentionally conservative:
|
|
21
|
+
|
|
22
|
+
- prefer `kubectl get opentelemetrycollectors,instrumentations -A -o yaml` for live collector state grounding before any review
|
|
23
|
+
- treat **collector pipeline with no exporter** as a critical finding — telemetry is silently dropped at collector boundary
|
|
24
|
+
- treat **removal of `memory_limiter` processor** as a critical finding — collector OOMs and loses spans/metrics
|
|
25
|
+
- challenge tail sampling rule changes — past spans are not re-evaluated, sampling drift is permanent for already-collected windows
|
|
26
|
+
- challenge `Instrumentation` CR removal from a running namespace — auto-instrumented pods stop emitting telemetry on next restart
|
|
27
|
+
- challenge collector `service.pipelines` lacking the `k8sattributes` processor — telemetry loses Kubernetes context (namespace, pod, deployment)
|
|
28
|
+
- challenge TLS `insecure: true` on production exporters — telemetry data flows in plaintext, often containing PII
|
|
29
|
+
- use official OpenTelemetry documentation (opentelemetry.io, opentelemetry-operator) for Collector/Instrumentation CRD syntax, processor pipelines, and Target Allocator semantics
|
|
30
|
+
|
|
31
|
+
Run `npm run validate` after changing cataloged OpenTelemetry skills.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: opentelemetry-collector-config-review
|
|
3
|
+
description: Use this skill for OpenTelemetry Operator review covering OpenTelemetryCollector deployment modes (Deployment, StatefulSet, DaemonSet, Sidecar), Instrumentation CR auto-instrumentation across Java/Node/Python/.NET/Go, Target Allocator for distributed Prometheus scraping, and pipeline correctness across receivers, processors, and exporters. Trigger when the user asks whether a collector configuration will lose telemetry, whether the right deployment mode is used, whether memory_limiter and batch are present, whether tail_sampling is safe to change, or whether auto-instrumentation will cover a workload after restart.
|
|
4
|
+
metadata:
|
|
5
|
+
author: "github: Raishin"
|
|
6
|
+
version: "0.1.0"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# OpenTelemetry Collector Config Review
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
Review OpenTelemetry Operator-managed `OpenTelemetryCollector` and `Instrumentation` resources against pipeline correctness, deployment-mode appropriateness, memory safety, sampling integrity, exporter security, and Kubernetes-attribute enrichment. Telemetry pipelines fail silently — a misconfigured exporter drops every span; a missing `memory_limiter` OOMs the collector; a deleted `Instrumentation` resource stops auto-instrumentation on next pod restart.
|
|
14
|
+
|
|
15
|
+
## Lean operating rules
|
|
16
|
+
|
|
17
|
+
- Prefer live cluster evidence (`kubectl get opentelemetrycollectors,instrumentations -A -o yaml` plus collector logs and metrics) when the active client exposes it; otherwise fall back to official OpenTelemetry documentation (opentelemetry.io, opentelemetry-operator) and sanitized YAML.
|
|
18
|
+
- Separate confirmed facts from inference. If collector pipeline state, exporter health, or `Instrumentation` propagation was not queried, say so.
|
|
19
|
+
- Treat **a pipeline with no exporter** (or with only `debug` exporter in production) as a critical finding — telemetry is dropped at the collector.
|
|
20
|
+
- Treat **removal of the `memory_limiter` processor** as a critical finding — collector OOMs and loses spans/metrics on burst traffic.
|
|
21
|
+
- Treat **removal of the `k8sattributes` processor** as a high finding — telemetry loses `k8s.namespace.name`, `k8s.pod.name`, `k8s.deployment.name`, and SLO dashboards lose context.
|
|
22
|
+
- Challenge tail sampling rule changes — past spans are not re-evaluated; sampling drift is permanent for already-collected windows.
|
|
23
|
+
- Challenge `Instrumentation` CR removal in a running namespace — auto-instrumented pods stop emitting telemetry after their next restart.
|
|
24
|
+
- Challenge collector exporters with `tls.insecure: true` in production — telemetry data flows in plaintext, often containing PII/PHI.
|
|
25
|
+
- Keep the answer scoped, reversible, least-privilege, and explicit about blockers or unknowns.
|
|
26
|
+
|
|
27
|
+
## References
|
|
28
|
+
|
|
29
|
+
Load these only when needed:
|
|
30
|
+
|
|
31
|
+
- [Evidence path and tooling](references/mcp-and-evidence.md) — use when choosing live evidence, confirming Operator version and Collector pipeline state, or switching to documentation mode.
|
|
32
|
+
- [Workflow and output contract](references/workflow-and-output.md) — use when executing the full review, applying stress checks per deployment mode, or formatting the final answer.
|
|
33
|
+
- [Official sources](references/official-sources.md) — use when you need the detailed OpenTelemetry documentation list, processor pipeline references, and grounded insights.
|
|
34
|
+
|
|
35
|
+
## Response minimum
|
|
36
|
+
|
|
37
|
+
Return, at minimum:
|
|
38
|
+
|
|
39
|
+
- the scoped target (`OpenTelemetryCollector` of which mode, `Instrumentation` CR, or pipeline element) and evidence level,
|
|
40
|
+
- the deployment-mode appropriateness (Deployment / StatefulSet / DaemonSet / Sidecar) for the use case,
|
|
41
|
+
- the pipeline correctness (receivers, processors, exporters all present and ordered safely),
|
|
42
|
+
- the failure mode if exporter is unreachable or downstream is full (queue, drop, retry semantics),
|
|
43
|
+
- the safest next actions and rollback plan,
|
|
44
|
+
- the assumptions or blockers that prevent stronger conclusions.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "opentelemetry-collector-config-review",
|
|
3
|
+
"name": "OpenTelemetry Collector Config Review",
|
|
4
|
+
"type": "skill",
|
|
5
|
+
"provider": "opentelemetry",
|
|
6
|
+
"harnesses": [
|
|
7
|
+
"codex",
|
|
8
|
+
"claude-code",
|
|
9
|
+
"cursor",
|
|
10
|
+
"gemini",
|
|
11
|
+
"kiro",
|
|
12
|
+
"other"
|
|
13
|
+
],
|
|
14
|
+
"summary": "Review OpenTelemetry Operator OpenTelemetryCollector and Instrumentation resources for deployment-mode appropriateness, pipeline correctness, memory_limiter and k8sattributes presence, exporter security, and sampling integrity.",
|
|
15
|
+
"source_type": "original",
|
|
16
|
+
"official_docs": [
|
|
17
|
+
"https://opentelemetry.io/docs/",
|
|
18
|
+
"https://opentelemetry.io/docs/collector/",
|
|
19
|
+
"https://opentelemetry.io/docs/collector/configuration/",
|
|
20
|
+
"https://opentelemetry.io/docs/kubernetes/operator/",
|
|
21
|
+
"https://opentelemetry.io/docs/kubernetes/operator/automatic/",
|
|
22
|
+
"https://opentelemetry.io/docs/kubernetes/operator/target-allocator/",
|
|
23
|
+
"https://github.com/open-telemetry/opentelemetry-operator"
|
|
24
|
+
],
|
|
25
|
+
"security_notes": "Pipeline with no exporter silently drops telemetry. Missing memory_limiter causes collector OOM under burst. Missing k8sattributes drops Kubernetes context. Tail sampling changes are not retroactive. Removing Instrumentation CR stops auto-instrumentation on next pod restart.",
|
|
26
|
+
"last_verified": "2026-05-01",
|
|
27
|
+
"path": "skills/opentelemetry/opentelemetry-collector-config-review",
|
|
28
|
+
"author": "github: Raishin",
|
|
29
|
+
"version": "0.1.0"
|
|
30
|
+
}
|
package/skills/opentelemetry/opentelemetry-collector-config-review/references/mcp-and-evidence.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Evidence Path and Tooling
|
|
2
|
+
|
|
3
|
+
## Evidence path
|
|
4
|
+
|
|
5
|
+
1. Prefer live cluster evidence when a Kubernetes MCP server, `kubectl`, and access to the OpenTelemetry Operator namespace are available.
|
|
6
|
+
2. Fall back to official OpenTelemetry documentation (opentelemetry.io, opentelemetry-operator GitHub) when live inspection is unavailable.
|
|
7
|
+
3. Ask only for sanitized `OpenTelemetryCollector` / `Instrumentation` YAML, collector logs, and target backend reachability evidence when current-state proof matters.
|
|
8
|
+
4. Label conclusions as `live evidence`, `documentation-based`, `sanitized user evidence`, or `inference`.
|
|
9
|
+
|
|
10
|
+
## Useful live-evidence commands
|
|
11
|
+
|
|
12
|
+
```shell
|
|
13
|
+
# All Collectors and Instrumentation CRs across the cluster
|
|
14
|
+
kubectl get opentelemetrycollectors,instrumentations -A -o yaml
|
|
15
|
+
|
|
16
|
+
# Detailed Collector status — replicas, mode, generated config map
|
|
17
|
+
kubectl -n <ns> get opentelemetrycollector <name> -o yaml
|
|
18
|
+
kubectl -n <ns> get configmap <collector-name>-collector -o yaml
|
|
19
|
+
|
|
20
|
+
# Operator state
|
|
21
|
+
kubectl -n opentelemetry-operator-system get deploy,svc,validatingwebhookconfiguration
|
|
22
|
+
|
|
23
|
+
# Collector pod logs — confirm pipeline is processing data
|
|
24
|
+
kubectl -n <ns> logs deploy/<collector-name>-collector --tail=200 -f
|
|
25
|
+
|
|
26
|
+
# Collector internal metrics (Prometheus on :8888 by default)
|
|
27
|
+
kubectl -n <ns> port-forward svc/<collector-name>-collector 8888:8888
|
|
28
|
+
curl http://localhost:8888/metrics | grep otelcol_
|
|
29
|
+
|
|
30
|
+
# Auto-instrumentation propagation — which pods received the init container?
|
|
31
|
+
kubectl get pods -A -o jsonpath='{range .items[?(@.metadata.annotations.instrumentation\.opentelemetry\.io/inject-java=="true")]}{.metadata.namespace}/{.metadata.name}{"\n"}{end}'
|
|
32
|
+
|
|
33
|
+
# Verify exporter reachability from within the collector pod
|
|
34
|
+
kubectl -n <ns> exec -it deploy/<collector-name>-collector -- nc -zv <exporter-host> <exporter-port>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Operator and Collector state to confirm before review
|
|
38
|
+
|
|
39
|
+
- Operator version (`kubectl -n opentelemetry-operator-system get deploy opentelemetry-operator-controller-manager -o jsonpath='{.spec.template.spec.containers[*].image}'`) — `OpenTelemetryCollector` API has evolved; `v1beta1` is the current stable.
|
|
40
|
+
- Collector image and version — different versions support different receivers/processors/exporters. The contrib distribution has a much wider set than the core distribution.
|
|
41
|
+
- Whether Target Allocator is deployed — required for `mode: statefulset` Prometheus scraping at scale.
|
|
42
|
+
- Whether `Instrumentation` CRs exist and which language images are pinned (Java, Node, Python, .NET, Go) — version drift between auto-instrumentation images and application runtimes is a common silent failure mode.
|
|
43
|
+
- Backend reachability — the actual telemetry destination (vendor SaaS, Tempo, Jaeger, Prometheus remote write, Loki) must accept the collector's data; check from inside the pod.
|
|
44
|
+
|
|
45
|
+
## Sanitization rules
|
|
46
|
+
|
|
47
|
+
- Never request kubeconfig contents, vendor API keys, OTLP bearer tokens, or backend authentication secrets.
|
|
48
|
+
- Replace identifiable backend hostnames, vendor URLs, and tenant IDs with placeholders unless the user provides them.
|
|
49
|
+
- Do not print the collector's `Authorization` header values; reference them by configuration key only.
|
package/skills/opentelemetry/opentelemetry-collector-config-review/references/official-sources.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Official Sources
|
|
2
|
+
|
|
3
|
+
Load these only when needed:
|
|
4
|
+
|
|
5
|
+
- [OpenTelemetry documentation home](https://opentelemetry.io/docs/) — use as the entry point for any OTEL question.
|
|
6
|
+
- [Collector overview](https://opentelemetry.io/docs/collector/) — use for collector architecture, distributions (core vs contrib), and component model.
|
|
7
|
+
- [Collector configuration](https://opentelemetry.io/docs/collector/configuration/) — use for receivers, processors, exporters, extensions, and `service.pipelines` syntax.
|
|
8
|
+
- [Operator overview](https://opentelemetry.io/docs/kubernetes/operator/) — use for `OpenTelemetryCollector` CRD, deployment modes, and Operator behavior.
|
|
9
|
+
- [Operator automatic instrumentation](https://opentelemetry.io/docs/kubernetes/operator/automatic/) — use for `Instrumentation` CR, language-specific init containers, annotation-based pod injection.
|
|
10
|
+
- [Target Allocator](https://opentelemetry.io/docs/kubernetes/operator/target-allocator/) — use for sharding Prometheus scrape jobs across collector replicas.
|
|
11
|
+
- [opentelemetry-operator GitHub](https://github.com/open-telemetry/opentelemetry-operator) — use for CRD source, examples, and recent feature notes.
|
|
12
|
+
- [opentelemetry-collector-contrib processors](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor) — use for `k8sattributes`, `resourcedetection`, `tail_sampling`, `transform`, `filter`, `routing` processor configs.
|
|
13
|
+
- [opentelemetry-collector-contrib receivers](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver) — use for `kubeletstats`, `k8s_cluster`, `prometheus`, `filelog` receiver configs.
|
|
14
|
+
- [opentelemetry-collector-contrib exporters](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter) — use for vendor exporters and queue/retry semantics.
|
|
15
|
+
- [Sampling guide](https://opentelemetry.io/docs/concepts/sampling/) — use when designing tail sampling vs probabilistic sampling vs head sampling.
|
|
16
|
+
- [Semantic conventions for Kubernetes](https://opentelemetry.io/docs/specs/semconv/resource/k8s/) — use for the canonical `k8s.*` attribute names that `k8sattributes` populates.
|
|
17
|
+
- [Collector internal observability](https://opentelemetry.io/docs/collector/internal-telemetry/) — use for `otelcol_*` self-metrics that diagnose collector health.
|
|
18
|
+
|
|
19
|
+
## Grounded insights worth carrying into the skill
|
|
20
|
+
|
|
21
|
+
- The OpenTelemetry Operator manages `OpenTelemetryCollector` and `Instrumentation` CRs and supports four deployment modes: `deployment`, `statefulset`, `daemonset`, and `sidecar`. Each is appropriate for a different use case and the wrong mode silently produces incomplete or duplicate data.
|
|
22
|
+
- A pipeline with **no exporter** is valid YAML and silently drops every span/metric/log. The collector emits an internal warning at startup but otherwise behaves as if data is being processed.
|
|
23
|
+
- `memory_limiter` is the only protection against OOM under burst load. Without it, the collector consumes memory until the kernel kills the pod and loses everything in flight. It is recommended as the **first processor** in every pipeline.
|
|
24
|
+
- `batch` is recommended **last before exporters** because batching drops in-flight individual signals into batched export calls. Without it, every span is a separate export, which destroys throughput at any meaningful volume.
|
|
25
|
+
- `k8sattributes` enriches signals with Kubernetes object names. Without it, traces and metrics cannot be grouped by namespace/pod/deployment, breaking SLO dashboards and alerting. It requires RBAC: `pods/get,list,watch`, `namespaces/get,list,watch`, `replicasets/get,list,watch`.
|
|
26
|
+
- `tail_sampling` is the most common production sampling mode because it samples on complete trace properties (root span attributes, total duration). The critical caveat: **changes are not retroactive** — already-collected windows do not re-sample, so a sampling change creates a discontinuity in observed trace counts.
|
|
27
|
+
- `Instrumentation` CR removal is invisible to running pods; the next pod restart silently starts without auto-instrumentation. Many silent SLO regressions trace back to an `Instrumentation` CR being removed during a "cleanup".
|
|
28
|
+
- The Target Allocator is required for any `mode: statefulset` Prometheus collector serving more than a handful of scrape targets. Without it, every replica scrapes every target and the data is duplicated.
|
|
29
|
+
- Auto-instrumentation images are pinned per language (Java, Node.js, Python, .NET, Go). When the application's runtime version moves ahead of the instrumentation image, instrumentation can fail to load silently. Treat the auto-instrumentation image versions as a cataloged dependency.
|
|
30
|
+
- The collector exposes its own metrics on `:8888/metrics`. The most useful Prometheus series for diagnosing pipeline health: `otelcol_exporter_send_failed_spans`, `otelcol_processor_dropped_spans`, `otelcol_receiver_refused_spans`, `otelcol_processor_batch_send_size`. Any non-zero value on the failure counters is a finding.
|
|
31
|
+
- The `debug` exporter (formerly `logging` exporter) prints to the collector's stdout and is meant for development. It is a frequent silent failure mode in production when someone replaced a real exporter with `debug` for debugging and forgot to restore it.
|
package/skills/opentelemetry/opentelemetry-collector-config-review/references/workflow-and-output.md
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Workflow and Output Contract
|
|
2
|
+
|
|
3
|
+
## Workflow
|
|
4
|
+
|
|
5
|
+
### Step 1 — Identify the deployment mode
|
|
6
|
+
|
|
7
|
+
`OpenTelemetryCollector` supports four deployment modes, each appropriate for different use cases:
|
|
8
|
+
|
|
9
|
+
1. **`mode: deployment`** — collector runs as a stateless `Deployment`, multiple replicas. Use for OTLP gateway / aggregation; NOT for hostmetrics.
|
|
10
|
+
2. **`mode: statefulset`** — ordered, stable identity. Required for Target Allocator (sharding Prometheus scrape jobs across collectors).
|
|
11
|
+
3. **`mode: daemonset`** — one collector per node. Use for hostmetrics, filelog (node-local logs), and per-node OTLP receiver.
|
|
12
|
+
4. **`mode: sidecar`** — injected into application pods via annotation `sidecar.opentelemetry.io/inject: <name>`. Use for short-lived workloads or when application cannot reach a cluster-wide collector.
|
|
13
|
+
|
|
14
|
+
Common mismatches that are findings:
|
|
15
|
+
|
|
16
|
+
- `mode: deployment` with `hostmetrics` receiver — only one replica gets host data; data is incomplete.
|
|
17
|
+
- `mode: daemonset` with HTTP receiver bound to `0.0.0.0:4318` — every node opens a port; verify network policy.
|
|
18
|
+
- `mode: statefulset` without Target Allocator — wastes the ordered identity.
|
|
19
|
+
- `mode: sidecar` for high-volume workloads — every pod runs a collector; CPU/memory cost multiplies.
|
|
20
|
+
|
|
21
|
+
Reference: [Operator Modes](https://opentelemetry.io/docs/kubernetes/operator/) and the operator README in [open-telemetry/opentelemetry-operator](https://github.com/open-telemetry/opentelemetry-operator).
|
|
22
|
+
|
|
23
|
+
### Step 2 — Audit the receivers
|
|
24
|
+
|
|
25
|
+
Receivers ingest telemetry. Common patterns:
|
|
26
|
+
|
|
27
|
+
- **`otlp`** — gRPC (`:4317`) and HTTP (`:4318`). Standard. Verify both protocols are needed; otherwise narrow.
|
|
28
|
+
- **`prometheus`** — scrapes Prometheus endpoints. Pair with Target Allocator at scale.
|
|
29
|
+
- **`hostmetrics`** — node CPU, memory, disk, network. Requires `hostNetwork` or volume mounts (`/hostfs`).
|
|
30
|
+
- **`filelog`** — reads pod/container logs. Requires `/var/log/pods` mount.
|
|
31
|
+
- **`k8s_cluster`** — cluster-level metrics (deployment status, node conditions). Requires RBAC.
|
|
32
|
+
- **`kubeletstats`** — kubelet per-node stats. Requires kubelet TLS configuration.
|
|
33
|
+
|
|
34
|
+
Findings to flag:
|
|
35
|
+
|
|
36
|
+
- `otlp` receiver with `tls.insecure: true` and inbound traffic from untrusted networks — telemetry can be tampered.
|
|
37
|
+
- `prometheus` receiver scraping endpoints with secrets in the response (rare; some vendor exporters do this) — sensitive data flows into the pipeline.
|
|
38
|
+
- `filelog` without a `multiline` config for stack traces — multi-line logs split into single-line entries.
|
|
39
|
+
|
|
40
|
+
### Step 3 — Audit the processors (the safety net)
|
|
41
|
+
|
|
42
|
+
Processors transform data between receiver and exporter. **Two are essentially mandatory in production**:
|
|
43
|
+
|
|
44
|
+
1. **`memory_limiter`** — drops data when collector memory exceeds a threshold. Without it, collector OOMs under load and loses everything in flight. Recommended position: **first** in the pipeline.
|
|
45
|
+
2. **`batch`** — batches data before export. Without it, every span/metric is a separate export call; backend rate limits or network overhead destroy throughput. Recommended position: **last** before export.
|
|
46
|
+
|
|
47
|
+
Other commonly required processors:
|
|
48
|
+
|
|
49
|
+
- **`k8sattributes`** — enriches data with `k8s.namespace.name`, `k8s.pod.name`, `k8s.deployment.name`, `k8s.node.name`. Without it, dashboards and SLOs cannot group by Kubernetes object.
|
|
50
|
+
- **`resource`** — sets static resource attributes (e.g., `cluster.name`, `deployment.environment`).
|
|
51
|
+
- **`resourcedetection`** — auto-detects from environment, system, docker, kubernetes, GCP, AWS, Azure metadata services.
|
|
52
|
+
- **`tail_sampling`** — keeps a sample of complete traces. **Critical caveat: changes are not retroactive — already-collected windows do not get re-sampled.**
|
|
53
|
+
- **`filter`** — drops spans/metrics by attribute. Risk: a typo can drop everything.
|
|
54
|
+
- **`transform`** — modifies attribute values via OTTL. Risk: a bad OTTL expression can corrupt every signal.
|
|
55
|
+
- **`probabilistic_sampler`** — randomly samples a percentage. Simpler than tail sampling but loses correlated traces.
|
|
56
|
+
|
|
57
|
+
Stress-tests:
|
|
58
|
+
|
|
59
|
+
- Pipeline with no `memory_limiter` and high-volume traces — collector OOMs on burst, loses everything.
|
|
60
|
+
- Pipeline with `memory_limiter` placed **after** other processors — those processors run on data that should have been dropped, wasting CPU.
|
|
61
|
+
- Pipeline with `batch` placed **before** `tail_sampling` — sampling decisions are made per-batch, breaking trace coherence.
|
|
62
|
+
- Pipeline with `k8sattributes` `auth_type: serviceAccount` but no RBAC granting `pods/get,list,watch` — enrichment fails silently.
|
|
63
|
+
|
|
64
|
+
Reference: [Collector configuration](https://opentelemetry.io/docs/collector/configuration/) and [Collector processors](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor).
|
|
65
|
+
|
|
66
|
+
### Step 4 — Audit the exporters
|
|
67
|
+
|
|
68
|
+
Exporters send data to backends. Findings:
|
|
69
|
+
|
|
70
|
+
- **No exporter on a pipeline** — the pipeline silently drops everything. Confirm at least one non-`debug` exporter per pipeline.
|
|
71
|
+
- **Only `debug` exporter** in production — data prints to collector logs and is not sent anywhere. Useful for testing only.
|
|
72
|
+
- **`tls.insecure: true`** on a production exporter — telemetry flows in plaintext. PII/PHI leak path.
|
|
73
|
+
- **Missing `sending_queue`** — exporter blocks the pipeline when backend is slow; backpressure cascades.
|
|
74
|
+
- **`sending_queue.enabled: false`** explicitly — telemetry is lost on any backend hiccup.
|
|
75
|
+
- **`retry_on_failure.enabled: false`** — temporary network failures lose data.
|
|
76
|
+
- **`prometheusremotewrite` exporter without `external_labels`** — multiple collectors write to the same Prometheus, time series collide.
|
|
77
|
+
|
|
78
|
+
Reference: [Exporter configuration patterns](https://opentelemetry.io/docs/collector/configuration/#exporters).
|
|
79
|
+
|
|
80
|
+
### Step 5 — Audit the `service.pipelines` ordering
|
|
81
|
+
|
|
82
|
+
Three signal pipelines (`traces`, `metrics`, `logs`) compose receivers → processors → exporters. Order in the `processors` list **matters** — it is the execution order.
|
|
83
|
+
|
|
84
|
+
Recommended order for a traces pipeline:
|
|
85
|
+
|
|
86
|
+
```yaml
|
|
87
|
+
service:
|
|
88
|
+
pipelines:
|
|
89
|
+
traces:
|
|
90
|
+
receivers: [otlp]
|
|
91
|
+
processors:
|
|
92
|
+
- memory_limiter # 1. drop early under pressure
|
|
93
|
+
- resourcedetection # 2. detect environment
|
|
94
|
+
- k8sattributes # 3. enrich with K8s context
|
|
95
|
+
- resource # 4. add static attributes
|
|
96
|
+
- tail_sampling # 5. sample after enrichment
|
|
97
|
+
- batch # 6. batch last
|
|
98
|
+
exporters: [otlp, debug]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Common findings: `batch` not last, `memory_limiter` not first, `k8sattributes` after `tail_sampling` (sampling on un-enriched data, then enriching what survived = wasted).
|
|
102
|
+
|
|
103
|
+
### Step 6 — Audit the `Instrumentation` CR
|
|
104
|
+
|
|
105
|
+
The `Instrumentation` CR (`opentelemetry.io/v1alpha1`) drives auto-instrumentation. Pods are instrumented when they have one of the annotations: `instrumentation.opentelemetry.io/inject-java`, `inject-nodejs`, `inject-python`, `inject-dotnet`, `inject-go`, or `inject-sdk`.
|
|
106
|
+
|
|
107
|
+
Critical concerns:
|
|
108
|
+
|
|
109
|
+
- **Removing an `Instrumentation` CR while pods reference it** — running pods continue working, but on next restart the init container injection fails, and the pod starts without instrumentation. Telemetry stops silently.
|
|
110
|
+
- **Image tag drift** — auto-instrumentation images are pinned per language. If the application moves to a newer runtime (e.g., Java 21) but the auto-instrumentation image hasn't been updated, instrumentation may not load.
|
|
111
|
+
- **`exporter.endpoint` pointing to a collector that no longer exists** — telemetry calls fail; application logs may show OTLP export errors.
|
|
112
|
+
- **`sampler.type: parentbased_traceidratio` with `argument: "0.0"`** — samples nothing.
|
|
113
|
+
- **Missing `propagators`** — distributed traces don't link across services.
|
|
114
|
+
- **`resource.resourceAttributes.deployment.environment` not set** — every environment looks the same in dashboards.
|
|
115
|
+
|
|
116
|
+
Reference: [Operator auto-instrumentation](https://opentelemetry.io/docs/kubernetes/operator/automatic/).
|
|
117
|
+
|
|
118
|
+
### Step 7 — Audit the Target Allocator (StatefulSet mode)
|
|
119
|
+
|
|
120
|
+
When `targetAllocator.enabled: true`, Prometheus scrape jobs are sharded across the StatefulSet replicas. Findings:
|
|
121
|
+
|
|
122
|
+
- `targetAllocator.allocationStrategy: least-weighted` (default) is good for even distribution; `consistent-hashing` is better for re-shard stability.
|
|
123
|
+
- `targetAllocator.prometheusCR.enabled: true` requires `ServiceMonitor`/`PodMonitor` selectors. An empty selector matches everything; a too-narrow selector matches nothing.
|
|
124
|
+
- Missing RBAC for the Target Allocator — it cannot list ServiceMonitors and silently scrapes nothing.
|
|
125
|
+
|
|
126
|
+
Reference: [Target Allocator](https://opentelemetry.io/docs/kubernetes/operator/target-allocator/).
|
|
127
|
+
|
|
128
|
+
### Step 8 — Stress-test operational hygiene
|
|
129
|
+
|
|
130
|
+
- Prefer `v1beta1` `OpenTelemetryCollector` over `v1alpha1` — current stable.
|
|
131
|
+
- Prefer named pipelines that match the source data shape (`traces/api`, `metrics/host`, `logs/app`) when one collector handles multiple streams.
|
|
132
|
+
- Prefer `debug` exporter only in non-production.
|
|
133
|
+
- Prefer `OTEL_RESOURCE_ATTRIBUTES` env propagation in `Instrumentation` over hardcoded values — makes the CR portable across environments.
|
|
134
|
+
- Test pipeline changes by sending synthetic OTLP and watching the collector's `otelcol_` self-metrics — `otelcol_exporter_send_failed_spans` should be zero.
|
|
135
|
+
|
|
136
|
+
## Output
|
|
137
|
+
|
|
138
|
+
Return:
|
|
139
|
+
|
|
140
|
+
- **target**: which `OpenTelemetryCollector` (and mode) or `Instrumentation` CR,
|
|
141
|
+
- **evidence level**: `live evidence` / `documentation-based` / `sanitized user evidence` / `inference`,
|
|
142
|
+
- **deployment-mode appropriateness** for the use case,
|
|
143
|
+
- **pipeline correctness**: receivers, processors (with explicit `memory_limiter` and `batch` audit), exporters,
|
|
144
|
+
- **failure mode**: what happens when backend is unreachable or backed up,
|
|
145
|
+
- **risk findings** (with severity: high / medium / low),
|
|
146
|
+
- **safest next actions** with sample manifest changes and self-metric expectations,
|
|
147
|
+
- **rollback plan**: how to revert without losing the in-flight buffer,
|
|
148
|
+
- **assumptions and missing facts**.
|
|
149
|
+
|
|
150
|
+
## Security notes
|
|
151
|
+
|
|
152
|
+
- Never recommend removing `memory_limiter` from a production pipeline.
|
|
153
|
+
- Never recommend `tls.insecure: true` on a production exporter shipping data outside the cluster.
|
|
154
|
+
- Never recommend deleting an `Instrumentation` CR without first confirming no running deployments reference it via annotation.
|
|
155
|
+
- Do not print collector authentication tokens or vendor API keys; reference them by configuration key only.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prometheus-alerting-cardinality-review
|
|
3
|
+
description: Use this skill when reviewing Prometheus or AlertManager configuration for cardinality, alerting correctness, scrape security, remote_write safety, or retention adequacy. Trigger when a user provides prometheus.yml, alertmanager.yml, recording rules YAML, alerting rules YAML, or asks whether their Prometheus setup is production-ready.
|
|
4
|
+
metadata:
|
|
5
|
+
author: "github: Raishin"
|
|
6
|
+
version: "0.1.0"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Prometheus Alerting and Cardinality Review
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
This skill reviews Prometheus and AlertManager configuration for cardinality explosion risks, recording rule adequacy, alert expression correctness, routing tree safety, scrape configuration security, and retention posture. Cardinality explosion is the leading cause of Prometheus OOM crashes in production, and flapping alerts from missing `for:` durations erode on-call trust faster than any other alerting defect.
|
|
13
|
+
|
|
14
|
+
## Lean operating rules
|
|
15
|
+
- Flag any label dimension that is unbounded at the application level (e.g., `user_id`, `request_id`, `session_id`, `url_path`, `pod_hash`) — these cause cardinality explosion and must be moved off the label set or aggregated away.
|
|
16
|
+
- Treat `prometheus_tsdb_head_series` exceeding 5 million as a cardinality warning threshold; note it if the user reports series counts or if the config makes it likely.
|
|
17
|
+
- Treat any alert rule with `for: 0m`, `for: 0s`, or no `for:` field as HIGH — bare threshold alerts flap on every scrape jitter.
|
|
18
|
+
- Treat `honor_labels: true` on any scrape target that is not a trusted federation endpoint as HIGH — it allows the scraped workload to override `job` and `instance` labels.
|
|
19
|
+
- Treat any scrape config with a non-cluster HTTP scheme (`http://external-host`) as a potential SSRF candidate and flag it.
|
|
20
|
+
- Recording rules are required for any PromQL expression used in dashboards or SLO burn-rate calculations; flag their absence as MEDIUM.
|
|
21
|
+
- Multi-window multi-burn-rate (MWMB) alerting is the correct pattern for SLO breach detection; flag single-window SLO alerts as MEDIUM.
|
|
22
|
+
- Flag `remote_write` configs where `write_relabel_configs` drop non-`__` metric labels — data loss is silent.
|
|
23
|
+
- Flag retention under 30 days with no `remote_write` or Thanos/Cortex integration as MEDIUM compliance risk.
|
|
24
|
+
- Do not recommend disabling any existing alert or recording rule without stating the specific reason and risk trade-off.
|
|
25
|
+
|
|
26
|
+
## References
|
|
27
|
+
Load these only when needed:
|
|
28
|
+
- [Workflow and output contract](references/workflow-and-output.md) — use when executing the full review or formatting the final answer.
|
|
29
|
+
|
|
30
|
+
## Response minimum
|
|
31
|
+
Return, at minimum:
|
|
32
|
+
- Cardinality risk assessment (label audit findings)
|
|
33
|
+
- Alert expression correctness findings (for: duration, absent() misuse, MWMB posture)
|
|
34
|
+
- AlertManager routing and inhibition findings
|
|
35
|
+
- Scrape config security findings
|
|
36
|
+
- Retention and remote_write findings
|
|
37
|
+
- Severity-labelled finding list (critical / high / medium / low)
|
|
38
|
+
- Safe next actions
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "prometheus-alerting-cardinality-review",
|
|
3
|
+
"name": "Prometheus Alerting and Cardinality Review",
|
|
4
|
+
"type": "skill",
|
|
5
|
+
"provider": "prometheus",
|
|
6
|
+
"harnesses": ["codex", "claude-code", "cursor", "gemini", "kiro", "other"],
|
|
7
|
+
"summary": "Review Prometheus and AlertManager configuration for cardinality explosion, recording rules, alert expression correctness, routing, scrape security, and retention.",
|
|
8
|
+
"source_type": "original",
|
|
9
|
+
"official_docs": [
|
|
10
|
+
"https://prometheus.io/docs/prometheus/latest/querying/basics/",
|
|
11
|
+
"https://prometheus.io/docs/practices/naming/",
|
|
12
|
+
"https://prometheus.io/docs/practices/alerting/",
|
|
13
|
+
"https://prometheus.io/docs/alerting/latest/alertmanager/",
|
|
14
|
+
"https://prometheus.io/docs/prometheus/latest/storage/",
|
|
15
|
+
"https://prometheus.io/docs/practices/remote_write/"
|
|
16
|
+
],
|
|
17
|
+
"security_notes": "honor_labels: true on untrusted scrape targets allows the scraped workload to override job/instance labels, enabling metric spoofing. Scrape configs pointing to external HTTP endpoints are SSRF candidates.",
|
|
18
|
+
"last_verified": "2026-05-02",
|
|
19
|
+
"path": "skills/prometheus/prometheus-alerting-cardinality-review",
|
|
20
|
+
"author": "github: Raishin",
|
|
21
|
+
"version": "0.1.0"
|
|
22
|
+
}
|
package/skills/prometheus/prometheus-alerting-cardinality-review/references/workflow-and-output.md
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# Workflow and Output Contract
|
|
2
|
+
|
|
3
|
+
## Workflow
|
|
4
|
+
|
|
5
|
+
### Step 1 — Collect inputs
|
|
6
|
+
|
|
7
|
+
Ask the user to provide one or more of the following as sanitized YAML snippets (no real endpoints, no auth tokens):
|
|
8
|
+
- `prometheus.yml` (global, scrape_configs, rule_files, remote_write, alerting)
|
|
9
|
+
- Alerting rules YAML (`groups[].rules[]` with `alert:`, `expr:`, `for:`, `labels:`, `annotations:`)
|
|
10
|
+
- Recording rules YAML (`groups[].rules[]` with `record:`, `expr:`)
|
|
11
|
+
- `alertmanager.yml` (route, inhibit_rules, receivers)
|
|
12
|
+
- Optional: current `prometheus_tsdb_head_series` metric value or approximate series count
|
|
13
|
+
|
|
14
|
+
If the user provides only a partial config, note which sections are absent and limit findings to the provided scope.
|
|
15
|
+
|
|
16
|
+
### Step 2 — Cardinality audit
|
|
17
|
+
|
|
18
|
+
Scan every `scrape_configs` job and every metric label dimension referenced in alerting and recording rules.
|
|
19
|
+
|
|
20
|
+
Check for:
|
|
21
|
+
- Labels sourced from high-cardinality application dimensions:
|
|
22
|
+
- `user_id`, `request_id`, `session_id`, `transaction_id`, `trace_id`
|
|
23
|
+
- `url_path`, `uri`, `endpoint` (unless aggressively normalized)
|
|
24
|
+
- `pod` or `container` labels used as primary grouping in `sum by()` without aggregation
|
|
25
|
+
- Use of `__` internal labels in user-facing metric names
|
|
26
|
+
|
|
27
|
+
Example cardinality risk:
|
|
28
|
+
```yaml
|
|
29
|
+
# HIGH — request_id is unbounded; this creates one series per request
|
|
30
|
+
http_requests_total{method="GET", path="/api/v1/items", request_id="abc-123"} 1
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Correct pattern:
|
|
34
|
+
```yaml
|
|
35
|
+
# CORRECT — drop high-cardinality label before exposition
|
|
36
|
+
http_requests_total{method="GET", path="/api/v1/items"} 1
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Note the `prometheus_tsdb_head_series` threshold: above 5 million series, TSDB memory pressure becomes significant. Above 10 million, OOM risk is high without explicit memory tuning (`--storage.tsdb.max-block-duration`, chunk encoding).
|
|
40
|
+
|
|
41
|
+
### Step 3 — Recording rules audit
|
|
42
|
+
|
|
43
|
+
Check whether recording rules exist for:
|
|
44
|
+
- SLO error-rate expressions that appear in alerting rules
|
|
45
|
+
- High-cardinality aggregation queries used in Grafana dashboards
|
|
46
|
+
- Any `rate()` or `increase()` expression over a window longer than 5 minutes that is queried at sub-minute dashboard refresh
|
|
47
|
+
|
|
48
|
+
Flag absence of recording rules for any expression that appears more than once across rules files as MEDIUM.
|
|
49
|
+
|
|
50
|
+
Example correct recording rule:
|
|
51
|
+
```yaml
|
|
52
|
+
groups:
|
|
53
|
+
- name: slo_recordings
|
|
54
|
+
rules:
|
|
55
|
+
- record: job:http_requests_total:rate5m
|
|
56
|
+
expr: sum(rate(http_requests_total[5m])) by (job)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Step 4 — Alert expression correctness audit
|
|
60
|
+
|
|
61
|
+
For every `alert:` rule, check:
|
|
62
|
+
|
|
63
|
+
**4a. `for:` duration**
|
|
64
|
+
- Missing `for:` or `for: 0m` → HIGH (bare threshold, flapping)
|
|
65
|
+
- `for:` less than two scrape intervals → flag as LOW (alert may still flap)
|
|
66
|
+
- Recommended minimum: `for: 5m` for infrastructure alerts, `for: 1m` for latency SLOs
|
|
67
|
+
|
|
68
|
+
```yaml
|
|
69
|
+
# HIGH — missing for:
|
|
70
|
+
- alert: HighErrorRate
|
|
71
|
+
expr: rate(http_errors_total[5m]) > 0.05
|
|
72
|
+
|
|
73
|
+
# CORRECT
|
|
74
|
+
- alert: HighErrorRate
|
|
75
|
+
expr: rate(http_errors_total[5m]) > 0.05
|
|
76
|
+
for: 5m
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**4b. `absent()` usage**
|
|
80
|
+
- `absent(some_metric)` fires if `some_metric` was never scraped — review whether the metric is always expected to exist
|
|
81
|
+
- If the metric only appears when the condition is active (e.g., an error counter), `absent()` fires in the absence of errors, which is a false positive
|
|
82
|
+
|
|
83
|
+
**4c. SLO alerting pattern**
|
|
84
|
+
- MWMB (multi-window multi-burn-rate) is the Google SRE-recommended SLO alerting pattern
|
|
85
|
+
- Single-window SLO alerts miss slow burns → MEDIUM finding
|
|
86
|
+
|
|
87
|
+
Example MWMB pattern:
|
|
88
|
+
```yaml
|
|
89
|
+
# MWMB — fast burn (1h + 5m windows) and slow burn (6h + 30m windows)
|
|
90
|
+
- alert: SLOFastBurn
|
|
91
|
+
expr: >
|
|
92
|
+
(
|
|
93
|
+
job:slo_error_rate:rate1h > (14.4 * 0.001)
|
|
94
|
+
and
|
|
95
|
+
job:slo_error_rate:rate5m > (14.4 * 0.001)
|
|
96
|
+
)
|
|
97
|
+
for: 1m
|
|
98
|
+
labels:
|
|
99
|
+
severity: page
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Step 5 — AlertManager routing audit
|
|
103
|
+
|
|
104
|
+
Parse the `route:` tree and check:
|
|
105
|
+
|
|
106
|
+
**5a. Duplicate alert routing**
|
|
107
|
+
- Routes that lack `continue: false` on a catch-all receiver may send alerts to multiple receivers unexpectedly
|
|
108
|
+
- Verify whether `continue: true` on intermediate routes is intentional
|
|
109
|
+
|
|
110
|
+
**5b. Inhibition rules**
|
|
111
|
+
- `inhibit_rules[].source_matchers` and `target_matchers` must reference labels that actually appear on alerts
|
|
112
|
+
- Overly broad inhibition (e.g., `source_matchers: [severity="critical"]` without namespace scope) can suppress alerts across unrelated services
|
|
113
|
+
|
|
114
|
+
Example inhibition rule review:
|
|
115
|
+
```yaml
|
|
116
|
+
# RISKY — inhibits all warnings when any critical fires, across all namespaces
|
|
117
|
+
inhibit_rules:
|
|
118
|
+
- source_matchers: [severity="critical"]
|
|
119
|
+
target_matchers: [severity="warning"]
|
|
120
|
+
equal: [alertname]
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**5c. Receiver configuration**
|
|
124
|
+
- Slack/PagerDuty receivers must have `api_url` or `routing_key` from environment variables or Kubernetes secrets — never hardcoded in the YAML
|
|
125
|
+
- Check for hardcoded webhook URLs or tokens as a CRITICAL security finding
|
|
126
|
+
|
|
127
|
+
### Step 6 — Scrape config security audit
|
|
128
|
+
|
|
129
|
+
For every `scrape_configs` entry check:
|
|
130
|
+
|
|
131
|
+
**6a. `honor_labels`**
|
|
132
|
+
```yaml
|
|
133
|
+
# HIGH — untrusted workload can override job/instance labels
|
|
134
|
+
scrape_configs:
|
|
135
|
+
- job_name: user-app
|
|
136
|
+
honor_labels: true
|
|
137
|
+
```
|
|
138
|
+
Only `honor_labels: true` on trusted federation endpoints is acceptable.
|
|
139
|
+
|
|
140
|
+
**6b. External HTTP targets**
|
|
141
|
+
- Any target with a scheme pointing outside the cluster (e.g., `http://api.external.com`) is an SSRF candidate
|
|
142
|
+
- Flag all non-cluster targets for review
|
|
143
|
+
|
|
144
|
+
**6c. `job_name` uniqueness**
|
|
145
|
+
- Duplicate `job_name` values cause target label collisions — flag as HIGH
|
|
146
|
+
|
|
147
|
+
### Step 7 — remote_write and retention audit
|
|
148
|
+
|
|
149
|
+
**7a. remote_write queue memory**
|
|
150
|
+
```yaml
|
|
151
|
+
remote_write:
|
|
152
|
+
- url: https://metrics.example.com/api/v1/write
|
|
153
|
+
queue_config:
|
|
154
|
+
capacity: 100000 # HIGH memory if series count is large
|
|
155
|
+
max_samples_per_send: 10000
|
|
156
|
+
```
|
|
157
|
+
Flag `capacity` values above 10,000 combined with high series counts as a memory risk.
|
|
158
|
+
|
|
159
|
+
**7b. write_relabel_configs label drops**
|
|
160
|
+
```yaml
|
|
161
|
+
# MEDIUM — silently drops 'region' label before remote_write; data loss
|
|
162
|
+
write_relabel_configs:
|
|
163
|
+
- source_labels: [region]
|
|
164
|
+
action: labeldrop
|
|
165
|
+
```
|
|
166
|
+
Flag any `labeldrop` or `labelmap` action that targets non-`__` labels without explicit justification.
|
|
167
|
+
|
|
168
|
+
**7c. Retention**
|
|
169
|
+
- Default Prometheus retention is 15 days (`--storage.tsdb.retention.time=15d`)
|
|
170
|
+
- No remote_write + retention < 30d → MEDIUM (compliance gap for most regulated environments)
|
|
171
|
+
- Recommend Thanos, Cortex, or Grafana Mimir for long-term storage
|
|
172
|
+
|
|
173
|
+
### Step 8 — Produce the output
|
|
174
|
+
|
|
175
|
+
Format findings using the Output section below.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Output
|
|
180
|
+
|
|
181
|
+
Return findings in this structure:
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
## Verdict
|
|
185
|
+
<one sentence summary: pass / needs work / critical issues found>
|
|
186
|
+
|
|
187
|
+
## Evidence level
|
|
188
|
+
<live evidence | user-provided sanitized config | documentation-based | inference>
|
|
189
|
+
|
|
190
|
+
## Findings
|
|
191
|
+
|
|
192
|
+
### CRITICAL
|
|
193
|
+
- [C1] <finding title>: <description> — <remediation>
|
|
194
|
+
|
|
195
|
+
### HIGH
|
|
196
|
+
- [H1] <finding title>: <description> — <remediation>
|
|
197
|
+
|
|
198
|
+
### MEDIUM
|
|
199
|
+
- [M1] <finding title>: <description> — <remediation>
|
|
200
|
+
|
|
201
|
+
### LOW
|
|
202
|
+
- [L1] <finding title>: <description> — <remediation>
|
|
203
|
+
|
|
204
|
+
## Safe next actions
|
|
205
|
+
1. <action>
|
|
206
|
+
2. <action>
|
|
207
|
+
...
|
|
208
|
+
|
|
209
|
+
## Open questions
|
|
210
|
+
- <question requiring user clarification>
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Security notes
|
|
216
|
+
|
|
217
|
+
- Never recommend setting `honor_labels: true` on any scrape target unless the user explicitly confirms it is a trusted Prometheus federation endpoint.
|
|
218
|
+
- Treat hardcoded webhook URLs, API keys, or tokens in `alertmanager.yml` receivers as CRITICAL — they must be moved to Kubernetes Secrets or environment variable references.
|
|
219
|
+
- Do not recommend disabling scrape TLS verification (`tls_config.insecure_skip_verify: true`) without flagging it as a security regression.
|
|
220
|
+
- Treat any recording rule or alert rule that references a metric with unbounded label cardinality as HIGH, even if the immediate symptom (OOM) has not yet occurred.
|
|
221
|
+
- Flag the absence of alerting on `prometheus_tsdb_head_series` itself — teams often have no alert for their own Prometheus health.
|