@raishin/vanguard-frontier-agentic 1.2.0 → 1.4.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 +250 -110
- 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-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/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/metadata.json +10 -1
- package/agents/azure/azure-live-app-service-slot-swap-guard-agent/metadata.json +10 -1
- package/agents/azure/azure-live-arm-deployment-stack-guard-agent/metadata.json +10 -1
- package/agents/azure/azure-live-cost-budget-action-guard-agent/metadata.json +10 -1
- 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/metadata.json +10 -1
- package/agents/azure/azure-live-pim-jit-activation-guard-agent/metadata.json +11 -2
- 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/README.md +27 -0
- package/agents/finops/finops-cloud-price-advisor-agent/metadata.json +10 -1
- 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 +37 -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 +37 -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 +37 -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 +37 -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 +38 -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 +38 -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/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/metadata.json +11 -2
- package/agents/oci/oci-live-cost-budget-runaway-guard-agent/metadata.json +11 -2
- package/agents/oci/oci-live-iam-policy-compartment-guard-agent/metadata.json +10 -1
- 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/metadata.json +11 -2
- package/agents/oci/oci-live-resource-manager-stack-guard-agent/metadata.json +10 -1
- package/agents/oci/oci-live-vault-key-destruction-guard-agent/metadata.json +10 -1
- 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-reviewer/AGENT.md +2 -1
- 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 +1452 -634
- package/catalog/install-roles.json +455 -0
- package/catalog/skill-manifest.json +1089 -335
- package/catalog/skills.json +1298 -528
- package/package.json +32 -3
- package/schemas/AGENTS.md +14 -0
- package/schemas/agent.frontmatter.schema.json +89 -0
- package/schemas/agent.schema.json +8 -0
- package/schemas/skill.frontmatter.schema.json +95 -0
- package/scripts/apply-skill-allowed-tools.py +142 -0
- package/scripts/backfill-skill-metadata.py +410 -0
- package/scripts/export-marketplace-agents.mjs +275 -9
- 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 +43 -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 +46 -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-agentcore/SKILL.md +3 -0
- package/skills/aws/aws-api-edge-delivery-review/SKILL.md +3 -0
- package/skills/aws/aws-bedrock-agent-security-governor/SKILL.md +3 -0
- package/skills/aws/aws-change-impact-advisor/SKILL.md +3 -0
- package/skills/aws/aws-ci-cd-release-engineer/SKILL.md +3 -0
- package/skills/aws/aws-compliance-evidence-mapper/SKILL.md +3 -0
- package/skills/aws/aws-cost-anomaly-watch-coordinator/SKILL.md +3 -0
- package/skills/aws/aws-cost-optimization-governor/SKILL.md +3 -0
- package/skills/aws/aws-daily-operations-briefing-coordinator/SKILL.md +3 -0
- package/skills/aws/aws-data-protection-backup-steward/SKILL.md +3 -0
- package/skills/aws/aws-deployment-hotfix-operator/SKILL.md +3 -0
- package/skills/aws/aws-devops-agent-skill-designer/SKILL.md +3 -0
- package/skills/aws/aws-dynamodb-data-modeling-performance-review/SKILL.md +3 -0
- package/skills/aws/aws-ec2-compute-operations-steward/SKILL.md +3 -0
- package/skills/aws/aws-ecs-fargate-platform-operator/SKILL.md +3 -0
- package/skills/aws/aws-ecs-service-remediation-operator/SKILL.md +3 -0
- package/skills/aws/aws-eks-platform-operator/SKILL.md +3 -0
- package/skills/aws/aws-event-driven-architecture-review/SKILL.md +3 -0
- package/skills/aws/aws-generative-ai-developer/SKILL.md +3 -0
- package/skills/aws/aws-iac-change-safety-review/SKILL.md +3 -0
- package/skills/aws/aws-iac-patch-executor/SKILL.md +3 -0
- package/skills/aws/aws-iam-least-privilege-review/SKILL.md +3 -0
- package/skills/aws/aws-kms-secrets-lifecycle-steward/SKILL.md +3 -0
- package/skills/aws/aws-landing-zone-governor/SKILL.md +3 -0
- package/skills/aws/aws-live-deployment-guarded-operator/SKILL.md +3 -0
- package/skills/aws/aws-live-ecs-rollout-guard/SKILL.md +3 -0
- package/skills/aws/aws-live-iac-change-guard/SKILL.md +3 -0
- package/skills/aws/aws-live-pipeline-approval-operator/SKILL.md +3 -0
- package/skills/aws/aws-live-serverless-release-guard/SKILL.md +3 -0
- package/skills/aws/aws-maestro/SKILL.md +3 -0
- package/skills/aws/aws-maestro/references/workflow-and-output.md +2 -0
- package/skills/aws/aws-migration-cutover-architect/SKILL.md +3 -0
- package/skills/aws/aws-network-architect/SKILL.md +3 -0
- package/skills/aws/aws-non-destructive-task-automation-advisor/SKILL.md +3 -0
- package/skills/aws/aws-observability-incident-responder/SKILL.md +3 -0
- package/skills/aws/aws-pipeline-fix-operator/SKILL.md +3 -0
- package/skills/aws/aws-private-ca-issuer-review/SKILL.md +42 -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/aws/aws-rds-aurora-performance-investigator/SKILL.md +3 -0
- package/skills/aws/aws-resilience-bcdr-review/SKILL.md +3 -0
- package/skills/aws/aws-s3-data-perimeter-governor/SKILL.md +3 -0
- package/skills/aws/aws-security-posture-hardening/SKILL.md +3 -0
- package/skills/aws/aws-serverless-production-readiness/SKILL.md +3 -0
- package/skills/aws/aws-serverless-rollout-corrector/SKILL.md +3 -0
- package/skills/aws/aws-solution-architect/SKILL.md +3 -0
- package/skills/aws/aws-ticket-triage-escalation-coordinator/SKILL.md +3 -0
- package/skills/azure/README.md +3 -1
- package/skills/azure/azure-ai-foundry-ops-governor/SKILL.md +3 -0
- package/skills/azure/azure-aks-platform-operator/SKILL.md +3 -0
- package/skills/azure/azure-app-service-production-readiness/SKILL.md +3 -0
- package/skills/azure/azure-cosmosdb-application-developer/SKILL.md +3 -0
- package/skills/azure/azure-cosmosdb-performance-investigator/SKILL.md +3 -0
- package/skills/azure/azure-cosmosdb-platform-operator/SKILL.md +3 -0
- package/skills/azure/azure-cost-estimation-review/SKILL.md +3 -0
- package/skills/azure/azure-cost-optimization-governor/SKILL.md +3 -0
- package/skills/azure/azure-entra-id-specialist/SKILL.md +3 -0
- package/skills/azure/azure-governance-policy-guardrails/SKILL.md +3 -0
- package/skills/azure/azure-identity-governance-review/SKILL.md +3 -0
- package/skills/azure/azure-key-vault-secret-lifecycle-auditor/SKILL.md +3 -0
- package/skills/azure/azure-keyvault-certificate-issuer-review/SKILL.md +40 -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-landing-zone-architect/SKILL.md +3 -0
- package/skills/azure/azure-live-aks-rollout-guard/SKILL.md +3 -0
- package/skills/azure/azure-live-app-service-slot-swap-guard/SKILL.md +3 -0
- package/skills/azure/azure-live-arm-deployment-stack-guard/SKILL.md +3 -0
- package/skills/azure/azure-live-cost-budget-action-guard/SKILL.md +3 -0
- package/skills/azure/azure-live-entra-role-assignment-guard/SKILL.md +59 -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 +3 -0
- package/skills/azure/azure-live-pim-jit-activation-guard/SKILL.md +3 -0
- package/skills/azure/azure-maestro/SKILL.md +3 -0
- package/skills/azure/azure-migrate-landing-zone-cutover/SKILL.md +3 -0
- package/skills/azure/azure-network-topology-review/SKILL.md +3 -0
- package/skills/azure/azure-observability-investigator/SKILL.md +3 -0
- package/skills/azure/azure-platform-automation-devops/SKILL.md +3 -0
- package/skills/azure/azure-private-endpoint-adoption-planner/SKILL.md +3 -0
- package/skills/azure/azure-rbac-review/SKILL.md +3 -0
- package/skills/azure/azure-resilience-bcdr-review/SKILL.md +3 -0
- package/skills/azure/azure-resource-health-incident-triage/SKILL.md +3 -0
- package/skills/azure/azure-role-selector/SKILL.md +3 -0
- package/skills/azure/azure-security-posture-hardening/SKILL.md +3 -0
- package/skills/azure/azure-subscription-resource-organization/SKILL.md +3 -0
- package/skills/backstage/backstage-scaffolder-template-review/SKILL.md +42 -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 +43 -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 +46 -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 +40 -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 +3 -0
- package/skills/fluxcd/fluxcd-kustomization-helmrelease-review/SKILL.md +43 -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 +46 -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 +40 -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 +43 -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 +60 -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 +48 -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 +46 -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 +41 -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 +41 -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 +46 -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 +46 -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-autonomous-database-architect/SKILL.md +3 -0
- package/skills/oci/oci-certificates-issuer-review/SKILL.md +40 -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-cloud-guard-responder/SKILL.md +3 -0
- package/skills/oci/oci-compute-instance-agent-operator/SKILL.md +3 -0
- package/skills/oci/oci-compute-platform-operator/SKILL.md +3 -0
- package/skills/oci/oci-cost-finops-analyst/SKILL.md +3 -0
- package/skills/oci/oci-database-platform-dba/SKILL.md +3 -0
- package/skills/oci/oci-dbtools-sql-analyst/SKILL.md +3 -0
- package/skills/oci/oci-devops-container-platform-engineer/SKILL.md +3 -0
- package/skills/oci/oci-exadata-database-architect/SKILL.md +3 -0
- package/skills/oci/oci-exadata-platform-architect/SKILL.md +3 -0
- package/skills/oci/oci-fusion-apps-environment-operator/SKILL.md +3 -0
- package/skills/oci/oci-goldengate-replication-operator/SKILL.md +3 -0
- package/skills/oci/oci-identity-access-governor/SKILL.md +3 -0
- package/skills/oci/oci-iot-digital-twin-engineer/SKILL.md +3 -0
- package/skills/oci/oci-limits-capacity-planner/SKILL.md +3 -0
- package/skills/oci/oci-live-autonomous-db-lifecycle-guard/SKILL.md +3 -0
- package/skills/oci/oci-live-cost-budget-runaway-guard/SKILL.md +3 -0
- package/skills/oci/oci-live-iam-policy-compartment-guard/SKILL.md +3 -0
- package/skills/oci/oci-live-network-security-rule-guard/SKILL.md +60 -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 +3 -0
- package/skills/oci/oci-live-resource-manager-stack-guard/SKILL.md +3 -0
- package/skills/oci/oci-live-vault-key-destruction-guard/SKILL.md +3 -0
- package/skills/oci/oci-load-balancer-traffic-engineer/SKILL.md +3 -0
- package/skills/oci/oci-maestro/SKILL.md +3 -0
- package/skills/oci/oci-migration-cutover-architect/SKILL.md +3 -0
- package/skills/oci/oci-multi-cloud-architect/SKILL.md +3 -0
- package/skills/oci/oci-mysql-heatwave-ai-specialist/SKILL.md +3 -0
- package/skills/oci/oci-network-architect/SKILL.md +3 -0
- package/skills/oci/oci-observability-incident-responder/SKILL.md +3 -0
- package/skills/oci/oci-recovery-service-operator/SKILL.md +3 -0
- package/skills/oci/oci-registry-artifact-governor/SKILL.md +3 -0
- package/skills/oci/oci-resource-search-inventory-analyst/SKILL.md +3 -0
- package/skills/oci/oci-security-compliance-reviewer/SKILL.md +3 -0
- package/skills/oci/oci-solution-architect/SKILL.md +3 -0
- package/skills/oci/oci-storage-backup-steward/SKILL.md +3 -0
- package/skills/oci/oci-support-incident-coordinator/SKILL.md +3 -0
- package/skills/oci/oracle-oci-mcp-grounded-advisor/SKILL.md +3 -0
- package/skills/opentelemetry/README.md +31 -0
- package/skills/opentelemetry/opentelemetry-collector-config-review/SKILL.md +47 -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 +41 -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 +42 -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 +3 -0
- package/skills/velero/velero-backup-restore-guard/SKILL.md +44 -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
|
@@ -43,21 +43,86 @@ const PLATFORM_ALIASES = {
|
|
|
43
43
|
kirocli: "kiro-cli",
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
+
const SKILLS_PLATFORM_CONFIG = {
|
|
47
|
+
"claude-code": ".claude/skills",
|
|
48
|
+
copilot: ".github/skills",
|
|
49
|
+
gemini: ".gemini/skills",
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Platforms that will NEVER support skill bundling because they have no native
|
|
54
|
+
* skill primitive. The value is an explicit notice that replaces the generic
|
|
55
|
+
* "not yet supported" fallback for these platforms.
|
|
56
|
+
*
|
|
57
|
+
* Design rationale: docs/cross-harness-skills.md
|
|
58
|
+
* Cursor — uses Project Rules (.cursor/rules/*.mdc), not skills.
|
|
59
|
+
* Kiro — uses Steering files (.kiro/steering/*.md), not skills.
|
|
60
|
+
* Both mismatches are large enough that skill export is intentionally omitted
|
|
61
|
+
* as a permanent design decision, not a pending TODO.
|
|
62
|
+
*/
|
|
63
|
+
const SKIP_SKILLS_PLATFORM_NOTICES = {
|
|
64
|
+
cursor:
|
|
65
|
+
"[vfa] Skill export is not supported on Cursor. Cursor uses Project Rules " +
|
|
66
|
+
"(.cursor/rules/*.mdc), not skills. The semantics (style guides, glob-based " +
|
|
67
|
+
"triggers) differ significantly from our multi-section operating playbooks; " +
|
|
68
|
+
"this is a permanent design decision, not a pending TODO. " +
|
|
69
|
+
"See docs/cross-harness-skills.md for the full rationale.\n",
|
|
70
|
+
kiro:
|
|
71
|
+
"[vfa] Skill export is not supported on Kiro. Kiro uses Steering files " +
|
|
72
|
+
"(.kiro/steering/*.md), not skills. Steering is single-file guidance with " +
|
|
73
|
+
"plural-by-default inclusion; our SKILL packages bundle scripts/ and " +
|
|
74
|
+
"references/ siblings that Steering cannot accommodate. " +
|
|
75
|
+
"This is a permanent design decision, not a pending TODO. " +
|
|
76
|
+
"See docs/cross-harness-skills.md for the full rationale.\n",
|
|
77
|
+
"kiro-ide":
|
|
78
|
+
"[vfa] Skill export is not supported on Kiro. Kiro uses Steering files " +
|
|
79
|
+
"(.kiro/steering/*.md), not skills. Steering is single-file guidance with " +
|
|
80
|
+
"plural-by-default inclusion; our SKILL packages bundle scripts/ and " +
|
|
81
|
+
"references/ siblings that Steering cannot accommodate. " +
|
|
82
|
+
"This is a permanent design decision, not a pending TODO. " +
|
|
83
|
+
"See docs/cross-harness-skills.md for the full rationale.\n",
|
|
84
|
+
"kiro-cli":
|
|
85
|
+
"[vfa] Skill export is not supported on Kiro. Kiro uses Steering files " +
|
|
86
|
+
"(.kiro/steering/*.md), not skills. Steering is single-file guidance with " +
|
|
87
|
+
"plural-by-default inclusion; our SKILL packages bundle scripts/ and " +
|
|
88
|
+
"references/ siblings that Steering cannot accommodate. " +
|
|
89
|
+
"This is a permanent design decision, not a pending TODO. " +
|
|
90
|
+
"See docs/cross-harness-skills.md for the full rationale.\n",
|
|
91
|
+
};
|
|
92
|
+
|
|
46
93
|
function usage(exitCode = 0) {
|
|
47
94
|
const message = `
|
|
48
95
|
Export selected marketplace agents into a consumer repository.
|
|
49
96
|
|
|
50
97
|
Usage:
|
|
51
98
|
vfa-export-agents --platform <platform> --agents <agent-id[,agent-id...]> [--repo <path>] [--force]
|
|
99
|
+
vfa-export-agents --platform <platform> --role <role-id> [--provider <provider>] [--repo <path>] [--force]
|
|
52
100
|
vfa-export-agents --platform <platform> --all [--repo <path>] [--force]
|
|
53
101
|
vfa-export-agents --list
|
|
102
|
+
vfa-export-agents --list-roles
|
|
54
103
|
|
|
55
104
|
Platforms:
|
|
56
105
|
codex, copilot, claude-code, cursor, gemini, kiro, kiro-ide, kiro-cli
|
|
57
106
|
|
|
107
|
+
Roles:
|
|
108
|
+
cloud-security-engineer, cloud-platform-engineer, cloud-dba,
|
|
109
|
+
cloud-finops-analyst, cloud-solutions-architect, cloud-devops-engineer
|
|
110
|
+
|
|
111
|
+
Companion skills:
|
|
112
|
+
By default, when --platform supports skill bundling (claude-code, copilot, gemini),
|
|
113
|
+
each agent's same-named SKILL.md companion is also exported into the
|
|
114
|
+
platform skill directory (e.g. <repo>/.claude/skills/, <repo>/.github/skills/,
|
|
115
|
+
or <repo>/.gemini/skills/).
|
|
116
|
+
Pairing rule: agent id '<name>-agent' bundles skill '<name>' if it exists.
|
|
117
|
+
Use --no-skills to export agents only.
|
|
118
|
+
|
|
58
119
|
Examples:
|
|
59
120
|
vfa-export-agents --list
|
|
121
|
+
vfa-export-agents --list-roles
|
|
60
122
|
vfa-export-agents --platform claude-code --agents azure-cosmosdb-platform-operator-agent
|
|
123
|
+
vfa-export-agents --platform claude-code --role cloud-security-engineer
|
|
124
|
+
vfa-export-agents --platform claude-code --role cloud-security-engineer --provider azure
|
|
125
|
+
vfa-export-agents --platform claude-code --all --no-skills --repo /path/to/project
|
|
61
126
|
vfa-export-agents --platform kiro --agents azure-cosmosdb-platform-operator-agent --repo ../consumer-repo
|
|
62
127
|
vfa-export-agents --platform copilot --all --repo /path/to/project --force
|
|
63
128
|
`.trim();
|
|
@@ -70,9 +135,13 @@ function parseArgs(argv) {
|
|
|
70
135
|
repo: process.cwd(),
|
|
71
136
|
force: false,
|
|
72
137
|
list: false,
|
|
138
|
+
listRoles: false,
|
|
73
139
|
all: false,
|
|
74
140
|
agents: [],
|
|
75
141
|
platform: null,
|
|
142
|
+
role: null,
|
|
143
|
+
provider: null,
|
|
144
|
+
noSkills: false,
|
|
76
145
|
};
|
|
77
146
|
|
|
78
147
|
for (let i = 0; i < argv.length; i += 1) {
|
|
@@ -82,6 +151,10 @@ function parseArgs(argv) {
|
|
|
82
151
|
args.list = true;
|
|
83
152
|
continue;
|
|
84
153
|
}
|
|
154
|
+
if (arg === "--list-roles") {
|
|
155
|
+
args.listRoles = true;
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
85
158
|
if (arg === "--force") {
|
|
86
159
|
args.force = true;
|
|
87
160
|
continue;
|
|
@@ -90,6 +163,10 @@ function parseArgs(argv) {
|
|
|
90
163
|
args.all = true;
|
|
91
164
|
continue;
|
|
92
165
|
}
|
|
166
|
+
if (arg === "--no-skills") {
|
|
167
|
+
args.noSkills = true;
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
93
170
|
if (arg === "--repo") {
|
|
94
171
|
args.repo = path.resolve(argv[++i] ?? "");
|
|
95
172
|
continue;
|
|
@@ -105,6 +182,14 @@ function parseArgs(argv) {
|
|
|
105
182
|
.filter(Boolean);
|
|
106
183
|
continue;
|
|
107
184
|
}
|
|
185
|
+
if (arg === "--role") {
|
|
186
|
+
args.role = argv[++i] ?? "";
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
if (arg === "--provider") {
|
|
190
|
+
args.provider = argv[++i] ?? "";
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
108
193
|
usage(1);
|
|
109
194
|
}
|
|
110
195
|
|
|
@@ -137,6 +222,7 @@ function loadAgents() {
|
|
|
137
222
|
provider: metadata.provider,
|
|
138
223
|
summary: metadata.summary,
|
|
139
224
|
harness_variants: metadata.harness_variants ?? {},
|
|
225
|
+
companion_skills: Array.isArray(metadata.companion_skills) ? metadata.companion_skills : undefined,
|
|
140
226
|
metadataPath,
|
|
141
227
|
};
|
|
142
228
|
});
|
|
@@ -173,7 +259,81 @@ function assertWithin(parent, child, label) {
|
|
|
173
259
|
}
|
|
174
260
|
}
|
|
175
261
|
|
|
262
|
+
function loadSkills() {
|
|
263
|
+
const skillsRoot = path.join(repoRoot, "skills");
|
|
264
|
+
if (!fs.existsSync(skillsRoot)) return new Map();
|
|
265
|
+
const byName = new Map();
|
|
266
|
+
for (const provider of fs.readdirSync(skillsRoot, { withFileTypes: true })) {
|
|
267
|
+
if (!provider.isDirectory()) continue;
|
|
268
|
+
const providerDir = path.join(skillsRoot, provider.name);
|
|
269
|
+
for (const skill of fs.readdirSync(providerDir, { withFileTypes: true })) {
|
|
270
|
+
if (!skill.isDirectory()) continue;
|
|
271
|
+
const skillDir = path.join(providerDir, skill.name);
|
|
272
|
+
if (fs.existsSync(path.join(skillDir, "SKILL.md"))) {
|
|
273
|
+
byName.set(skill.name, skillDir);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return byName;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
function copySkillTree(sourceDir, destDir, force) {
|
|
281
|
+
assertWithin(repoRoot, sourceDir, "read skill source");
|
|
282
|
+
for (const entry of fs.readdirSync(sourceDir, { withFileTypes: true })) {
|
|
283
|
+
const src = path.join(sourceDir, entry.name);
|
|
284
|
+
const dst = path.join(destDir, entry.name);
|
|
285
|
+
if (entry.isSymbolicLink()) {
|
|
286
|
+
throw new Error(`Refusing to copy symbolic link in skill tree: ${src}`);
|
|
287
|
+
}
|
|
288
|
+
if (entry.isDirectory()) {
|
|
289
|
+
copySkillTree(src, dst, force);
|
|
290
|
+
continue;
|
|
291
|
+
}
|
|
292
|
+
if (!entry.isFile()) continue;
|
|
293
|
+
if (!force && fs.existsSync(dst)) {
|
|
294
|
+
throw new Error(`Refusing to overwrite existing file without --force: ${dst}`);
|
|
295
|
+
}
|
|
296
|
+
fs.mkdirSync(path.dirname(dst), { recursive: true });
|
|
297
|
+
fs.copyFileSync(src, dst);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
function resolveCompanionSkills(selectedAgents, skillsByName, role, includeAll) {
|
|
302
|
+
const skillNames = new Set();
|
|
303
|
+
if (includeAll) {
|
|
304
|
+
for (const name of skillsByName.keys()) skillNames.add(name);
|
|
305
|
+
}
|
|
306
|
+
if (role && Array.isArray(role.skills)) {
|
|
307
|
+
for (const id of role.skills) skillNames.add(id);
|
|
308
|
+
}
|
|
309
|
+
const orphans = [];
|
|
310
|
+
for (const agent of selectedAgents) {
|
|
311
|
+
// Prefer explicit companion_skills if declared (even if empty — that means intentional no-pair)
|
|
312
|
+
if (Array.isArray(agent.companion_skills)) {
|
|
313
|
+
for (const skillId of agent.companion_skills) {
|
|
314
|
+
if (skillsByName.has(skillId)) skillNames.add(skillId);
|
|
315
|
+
}
|
|
316
|
+
// companion_skills: [] is intentional no-pair — do NOT count as orphan
|
|
317
|
+
continue;
|
|
318
|
+
}
|
|
319
|
+
// Fall back to name-stripping convention
|
|
320
|
+
const skillName = agent.id.endsWith("-agent")
|
|
321
|
+
? agent.id.slice(0, -"-agent".length)
|
|
322
|
+
: agent.id;
|
|
323
|
+
if (skillsByName.has(skillName)) {
|
|
324
|
+
skillNames.add(skillName);
|
|
325
|
+
} else if (!role) {
|
|
326
|
+
orphans.push(agent.id);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return { skillNames: [...skillNames].sort(), orphans };
|
|
330
|
+
}
|
|
331
|
+
|
|
176
332
|
function copyFile(source, destination, force) {
|
|
333
|
+
const sourceStat = fs.lstatSync(source);
|
|
334
|
+
if (sourceStat.isSymbolicLink()) {
|
|
335
|
+
throw new Error(`Refusing to copy symbolic link as harness source: ${source}`);
|
|
336
|
+
}
|
|
177
337
|
if (!force && fs.existsSync(destination)) {
|
|
178
338
|
throw new Error(`Refusing to overwrite existing file without --force: ${destination}`);
|
|
179
339
|
}
|
|
@@ -181,12 +341,28 @@ function copyFile(source, destination, force) {
|
|
|
181
341
|
fs.copyFileSync(source, destination);
|
|
182
342
|
}
|
|
183
343
|
|
|
344
|
+
function loadRoles() {
|
|
345
|
+
const rolesPath = path.join(repoRoot, "catalog", "install-roles.json");
|
|
346
|
+
if (!fs.existsSync(rolesPath)) {
|
|
347
|
+
throw new Error("catalog/install-roles.json not found. Ensure the package is correctly installed.");
|
|
348
|
+
}
|
|
349
|
+
return JSON.parse(fs.readFileSync(rolesPath, "utf8"));
|
|
350
|
+
}
|
|
351
|
+
|
|
184
352
|
function listAgents(agents) {
|
|
185
353
|
for (const agent of agents.sort((a, b) => a.id.localeCompare(b.id))) {
|
|
186
354
|
console.log(`${agent.id}\t${agent.provider}\t${agent.name}`);
|
|
187
355
|
}
|
|
188
356
|
}
|
|
189
357
|
|
|
358
|
+
function listRoles(rolesData) {
|
|
359
|
+
for (const [roleId, role] of Object.entries(rolesData.roles)) {
|
|
360
|
+
const agentCount = role.agents.length;
|
|
361
|
+
const skillCount = (role.skills ?? []).length;
|
|
362
|
+
console.log(`${roleId}\t${role.label}\t${agentCount} agents, ${skillCount} skills`);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
190
366
|
function buildDestinations(agent, platform) {
|
|
191
367
|
const config = PLATFORM_CONFIG[platform];
|
|
192
368
|
const destinations = [];
|
|
@@ -222,6 +398,16 @@ function buildDestinations(agent, platform) {
|
|
|
222
398
|
|
|
223
399
|
function main() {
|
|
224
400
|
const args = parseArgs(process.argv.slice(2));
|
|
401
|
+
|
|
402
|
+
const cwd = process.cwd();
|
|
403
|
+
const cwdWithSep = cwd.endsWith(path.sep) ? cwd : cwd + path.sep;
|
|
404
|
+
if (args.repo !== cwd && !args.repo.startsWith(cwdWithSep)) {
|
|
405
|
+
process.stderr.write(
|
|
406
|
+
`[vfa] Warning: --repo '${args.repo}' is outside the current working directory.\n` +
|
|
407
|
+
`[vfa] Verify this is the intended target before continuing.\n`
|
|
408
|
+
);
|
|
409
|
+
}
|
|
410
|
+
|
|
225
411
|
const { agents, byId } = loadAgents();
|
|
226
412
|
|
|
227
413
|
if (args.list) {
|
|
@@ -229,19 +415,58 @@ function main() {
|
|
|
229
415
|
return;
|
|
230
416
|
}
|
|
231
417
|
|
|
418
|
+
if (args.listRoles) {
|
|
419
|
+
const rolesData = loadRoles();
|
|
420
|
+
listRoles(rolesData);
|
|
421
|
+
return;
|
|
422
|
+
}
|
|
423
|
+
|
|
232
424
|
const platform = ensurePlatform(args.platform);
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
425
|
+
|
|
426
|
+
let selectedAgents;
|
|
427
|
+
let selectedRole = null;
|
|
428
|
+
if (args.role) {
|
|
429
|
+
const rolesData = loadRoles();
|
|
430
|
+
const role = Object.hasOwn(rolesData.roles, args.role) ? rolesData.roles[args.role] : undefined;
|
|
431
|
+
selectedRole = role;
|
|
432
|
+
if (!role) {
|
|
433
|
+
const validRoles = Object.keys(rolesData.roles).join(", ");
|
|
434
|
+
throw new Error(`Unknown role: ${args.role}. Valid roles: ${validRoles}`);
|
|
435
|
+
}
|
|
436
|
+
let roleAgentIds = role.agents;
|
|
437
|
+
if (args.provider) {
|
|
438
|
+
if (!/^[a-z0-9][a-z0-9-]*$/.test(args.provider)) {
|
|
439
|
+
throw new Error(`Invalid --provider value. Must match /^[a-z0-9][a-z0-9-]*$/.`);
|
|
440
|
+
}
|
|
441
|
+
roleAgentIds = roleAgentIds.filter((id) => {
|
|
442
|
+
const agent = byId.get(id);
|
|
443
|
+
return agent && agent.provider === args.provider;
|
|
241
444
|
});
|
|
445
|
+
if (roleAgentIds.length === 0) {
|
|
446
|
+
throw new Error(`No agents found for role '${args.role}' with the requested provider.`);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
selectedAgents = roleAgentIds.map((agentId) => {
|
|
450
|
+
const agent = byId.get(agentId);
|
|
451
|
+
if (!agent) {
|
|
452
|
+
throw new Error(`Role '${args.role}' references unknown agent id: ${agentId}. Run npm run validate to check catalog integrity.`);
|
|
453
|
+
}
|
|
454
|
+
return agent;
|
|
455
|
+
});
|
|
456
|
+
} else if (args.all) {
|
|
457
|
+
selectedAgents = agents;
|
|
458
|
+
} else {
|
|
459
|
+
selectedAgents = args.agents.map((agentId) => {
|
|
460
|
+
const agent = byId.get(agentId);
|
|
461
|
+
if (!agent) {
|
|
462
|
+
throw new Error(`Unknown agent id: ${agentId}`);
|
|
463
|
+
}
|
|
464
|
+
return agent;
|
|
465
|
+
});
|
|
466
|
+
}
|
|
242
467
|
|
|
243
468
|
if (selectedAgents.length === 0) {
|
|
244
|
-
throw new Error("No agents selected. Use --agents or --all.");
|
|
469
|
+
throw new Error("No agents selected. Use --agents, --role, or --all.");
|
|
245
470
|
}
|
|
246
471
|
|
|
247
472
|
const operations = [];
|
|
@@ -262,6 +487,47 @@ function main() {
|
|
|
262
487
|
`installed\t${operation.agentId}\t${operation.variantKey}\t${path.relative(args.repo, operation.dest)}`
|
|
263
488
|
);
|
|
264
489
|
}
|
|
490
|
+
|
|
491
|
+
const skillsDestRoot = SKILLS_PLATFORM_CONFIG[platform];
|
|
492
|
+
if (args.noSkills) {
|
|
493
|
+
process.stderr.write(`[vfa] --no-skills: companion skills not bundled.\n`);
|
|
494
|
+
} else if (!skillsDestRoot) {
|
|
495
|
+
const specificNotice = SKIP_SKILLS_PLATFORM_NOTICES[platform];
|
|
496
|
+
if (specificNotice) {
|
|
497
|
+
process.stderr.write(specificNotice);
|
|
498
|
+
} else {
|
|
499
|
+
process.stderr.write(
|
|
500
|
+
`[vfa] Note: skills bundling is not yet supported on platform '${platform}'. ` +
|
|
501
|
+
`Agents exported only. Pass --no-skills to silence.\n`
|
|
502
|
+
);
|
|
503
|
+
}
|
|
504
|
+
} else {
|
|
505
|
+
const skillsByName = loadSkills();
|
|
506
|
+
const { skillNames, orphans } = resolveCompanionSkills(
|
|
507
|
+
selectedAgents,
|
|
508
|
+
skillsByName,
|
|
509
|
+
selectedRole,
|
|
510
|
+
args.all
|
|
511
|
+
);
|
|
512
|
+
let bundled = 0;
|
|
513
|
+
for (const skillName of skillNames) {
|
|
514
|
+
const sourceDir = skillsByName.get(skillName);
|
|
515
|
+
if (!sourceDir) continue;
|
|
516
|
+
const destDir = path.join(args.repo, skillsDestRoot, skillName);
|
|
517
|
+
assertWithin(args.repo, destDir, "write skill destination");
|
|
518
|
+
copySkillTree(sourceDir, destDir, args.force);
|
|
519
|
+
console.log(`installed\tskill:${skillName}\t${platform}\t${path.relative(args.repo, destDir)}`);
|
|
520
|
+
bundled += 1;
|
|
521
|
+
}
|
|
522
|
+
process.stderr.write(
|
|
523
|
+
`[vfa] Bundled ${bundled} companion skill(s) alongside ${selectedAgents.length} agent(s)` +
|
|
524
|
+
(orphans.length ? ` (no-skill agents: ${orphans.length})` : "") +
|
|
525
|
+
`. Use --no-skills to opt out.\n`
|
|
526
|
+
);
|
|
527
|
+
if (orphans.length && orphans.length <= 10) {
|
|
528
|
+
process.stderr.write(`[vfa] Agents without companion skill: ${orphans.join(", ")}\n`);
|
|
529
|
+
}
|
|
530
|
+
}
|
|
265
531
|
}
|
|
266
532
|
|
|
267
533
|
try {
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Add all new agent and skill metadata.json entries to catalog JSON files."""
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import json
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
|
|
9
|
+
ROOT = Path(__file__).resolve().parents[1]
|
|
10
|
+
|
|
11
|
+
CATALOG_AGENTS = ROOT / "catalog" / "agents.json"
|
|
12
|
+
CATALOG_SKILLS = ROOT / "catalog" / "skills.json"
|
|
13
|
+
|
|
14
|
+
CATALOG_FIELDS_AGENT = {
|
|
15
|
+
"id", "name", "type", "provider", "summary", "path",
|
|
16
|
+
"harnesses", "last_verified", "official_docs", "security_notes",
|
|
17
|
+
"source_type", "version",
|
|
18
|
+
}
|
|
19
|
+
CATALOG_FIELDS_SKILL = CATALOG_FIELDS_AGENT | {"author"}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def metadata_to_catalog_entry(m: dict, kind: str) -> dict:
|
|
23
|
+
entry: dict = {}
|
|
24
|
+
for key in ("id", "name", "type", "provider", "harnesses", "summary",
|
|
25
|
+
"source_type", "official_docs", "security_notes",
|
|
26
|
+
"last_verified", "path", "version"):
|
|
27
|
+
if key in m:
|
|
28
|
+
entry[key] = m[key]
|
|
29
|
+
# Normalise path — strip trailing slash
|
|
30
|
+
if "path" in entry and isinstance(entry["path"], str):
|
|
31
|
+
entry["path"] = entry["path"].rstrip("/")
|
|
32
|
+
if kind == "skill" and "author" in m:
|
|
33
|
+
entry["author"] = m["author"]
|
|
34
|
+
return entry
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def main() -> None:
|
|
38
|
+
agents_catalog: list[dict] = json.loads(CATALOG_AGENTS.read_text(encoding="utf-8"))
|
|
39
|
+
skills_catalog: list[dict] = json.loads(CATALOG_SKILLS.read_text(encoding="utf-8"))
|
|
40
|
+
|
|
41
|
+
existing_agent_ids = {e["id"] for e in agents_catalog}
|
|
42
|
+
existing_skill_ids = {e["id"] for e in skills_catalog}
|
|
43
|
+
|
|
44
|
+
new_agents: list[dict] = []
|
|
45
|
+
for meta_path in sorted(ROOT.glob("agents/**/metadata.json")):
|
|
46
|
+
m = json.loads(meta_path.read_text(encoding="utf-8"))
|
|
47
|
+
if m.get("type") != "agent":
|
|
48
|
+
continue
|
|
49
|
+
if m["id"] not in existing_agent_ids:
|
|
50
|
+
entry = metadata_to_catalog_entry(m, "agent")
|
|
51
|
+
new_agents.append(entry)
|
|
52
|
+
print(f" + agent: {entry['id']}")
|
|
53
|
+
|
|
54
|
+
new_skills: list[dict] = []
|
|
55
|
+
for meta_path in sorted(ROOT.glob("skills/**/metadata.json")):
|
|
56
|
+
m = json.loads(meta_path.read_text(encoding="utf-8"))
|
|
57
|
+
if m.get("type") != "skill":
|
|
58
|
+
continue
|
|
59
|
+
if m["id"] not in existing_skill_ids:
|
|
60
|
+
entry = metadata_to_catalog_entry(m, "skill")
|
|
61
|
+
new_skills.append(entry)
|
|
62
|
+
print(f" + skill: {entry['id']}")
|
|
63
|
+
|
|
64
|
+
if new_agents:
|
|
65
|
+
agents_catalog.extend(new_agents)
|
|
66
|
+
agents_catalog.sort(key=lambda x: x["id"])
|
|
67
|
+
CATALOG_AGENTS.write_text(
|
|
68
|
+
json.dumps(agents_catalog, indent=2, ensure_ascii=False) + "\n",
|
|
69
|
+
encoding="utf-8",
|
|
70
|
+
)
|
|
71
|
+
print(f"\nWrote {len(agents_catalog)} agents to {CATALOG_AGENTS.relative_to(ROOT)}")
|
|
72
|
+
else:
|
|
73
|
+
print("No new agents to add.")
|
|
74
|
+
|
|
75
|
+
if new_skills:
|
|
76
|
+
skills_catalog.extend(new_skills)
|
|
77
|
+
skills_catalog.sort(key=lambda x: x["id"])
|
|
78
|
+
CATALOG_SKILLS.write_text(
|
|
79
|
+
json.dumps(skills_catalog, indent=2, ensure_ascii=False) + "\n",
|
|
80
|
+
encoding="utf-8",
|
|
81
|
+
)
|
|
82
|
+
print(f"Wrote {len(skills_catalog)} skills to {CATALOG_SKILLS.relative_to(ROOT)}")
|
|
83
|
+
else:
|
|
84
|
+
print("No new skills to add.")
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
if __name__ == "__main__":
|
|
88
|
+
main()
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# 🚢 Argo CD Skills
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<!-- 🖼️ Add an Argo CD logo to assets/logos/cnative/argocd/ and update this path -->
|
|
5
|
+
<span style="font-size:3.5em">🚢</span>
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
This folder contains Argo CD-focused skills curated for this marketplace.
|
|
9
|
+
|
|
10
|
+
## Local marketplace portfolio
|
|
11
|
+
|
|
12
|
+
This folder contains **1** local Argo CD skill:
|
|
13
|
+
|
|
14
|
+
- `argocd-gitops-review`
|
|
15
|
+
|
|
16
|
+
## Portfolio posture
|
|
17
|
+
|
|
18
|
+
Argo CD skills for evidence-backed GitOps delivery review across `Application`, `AppProject`, `ApplicationSet`, sync windows, RBAC, sync impersonation, and multi-cluster (Argo CD Agent) topologies.
|
|
19
|
+
|
|
20
|
+
These skills are intentionally conservative:
|
|
21
|
+
|
|
22
|
+
- prefer `kubectl get applications,appprojects,applicationsets -n argocd -o yaml` and `argocd-cm` configmap state for live grounding before any review
|
|
23
|
+
- treat `application.sync.impersonation.enabled: false` in production as a critical finding — the controller's cluster-admin ServiceAccount is the sync identity
|
|
24
|
+
- treat `AppProject` with `sourceRepos: ['*']` and `destinations: ['*']` as a wide-blast-radius finding requiring explicit justification
|
|
25
|
+
- challenge `automated.prune: true` + `automated.selfHeal: true` on production Applications — Git divergence becomes irreversible deletion
|
|
26
|
+
- challenge `ApplicationSet` generators that include unbounded clusters or label selectors — one mis-labeled cluster joins the rollout
|
|
27
|
+
- prefer `destinationServiceAccounts` (per-Application impersonation) over the controller's default cluster-admin
|
|
28
|
+
- use official Argo CD documentation (argo-cd.readthedocs.io) for sync semantics, RBAC syntax, ApplicationSet strategies, and Argo CD Agent hub-and-spoke topology
|
|
29
|
+
|
|
30
|
+
Run `npm run validate` after changing cataloged Argo CD skills.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: argo-rollouts-progressive-delivery-review
|
|
3
|
+
description: Use this skill when reviewing Argo Rollouts progressive delivery configuration. Trigger when the user asks about canary or blue-green Rollout strategy correctness, AnalysisTemplate success/failure conditions, traffic weighting provider alignment, canaryService isolation, PDB deadlock risk with Rollout maxSurge settings, automated rollback posture, or manual vs automated promotion configuration.
|
|
4
|
+
allowed-tools: Read Grep Glob
|
|
5
|
+
metadata:
|
|
6
|
+
author: "github: Raishin"
|
|
7
|
+
version: "0.1.0"
|
|
8
|
+
updated: "2026-05-05"
|
|
9
|
+
category: delivery
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Argo Rollouts Progressive Delivery Review
|
|
13
|
+
|
|
14
|
+
## Purpose
|
|
15
|
+
|
|
16
|
+
Review Argo Rollouts canary and blue-green strategy configuration, AnalysisTemplate success and failure condition correctness, traffic management provider alignment, canaryService vs stableService isolation, PDB compatibility with Rollout surge settings, and automated rollback posture. Argo Rollouts' safety depends entirely on AnalysisTemplate conditions that actually fail — an always-true successCondition means automated rollback never fires, regardless of actual error rates.
|
|
17
|
+
|
|
18
|
+
## Lean operating rules
|
|
19
|
+
|
|
20
|
+
- Prefer live evidence (`kubectl get rollout -A -o yaml`, `kubectl get analysistemplate -A -o yaml`, `kubectl argo rollouts status <name>`) when the active client exposes it; otherwise fall back to official Argo Rollouts documentation and sanitized YAML from the user.
|
|
21
|
+
- Separate confirmed facts from inference. If AnalysisTemplate metric query results, traffic provider actual behavior, or PDB state was not directly queried, say so.
|
|
22
|
+
- Treat an AnalysisTemplate with a successCondition that always evaluates to true (e.g., `result >= 0`, `true`) as a critical finding — automated rollback can never fire.
|
|
23
|
+
- Treat a Rollout with no separate `canaryService` from `stableService` as a high finding — canary traffic isolation is broken.
|
|
24
|
+
- Treat a production Rollout using `pause: {}` (manual promotion) with no AnalysisTemplate as a high finding — there is no automated quality gate.
|
|
25
|
+
- Treat a traffic provider in `spec.strategy.canary.trafficRouting` that does not match the actual ingress controller installed in the cluster as a high finding — weight changes are silently ignored.
|
|
26
|
+
- Treat `failureLimit: 100` or higher on an error-rate metric as a medium finding — the analysis tolerates far too many errors before marking Degraded.
|
|
27
|
+
- Keep the answer scoped, evidence-labeled, and explicit about what was not queried.
|
|
28
|
+
|
|
29
|
+
## References
|
|
30
|
+
|
|
31
|
+
Load these only when needed:
|
|
32
|
+
- [Workflow and output contract](references/workflow-and-output.md)
|
|
33
|
+
|
|
34
|
+
## Response minimum
|
|
35
|
+
|
|
36
|
+
Return, at minimum:
|
|
37
|
+
- the scoped target (Rollout name, AnalysisTemplate name, or traffic provider config) and evidence level,
|
|
38
|
+
- the deployment strategy (canary with steps vs canary without steps, blue-green) and whether steps include AnalysisRun gates,
|
|
39
|
+
- AnalysisTemplate successCondition and failureCondition correctness,
|
|
40
|
+
- canaryService vs stableService isolation posture,
|
|
41
|
+
- traffic provider alignment with the actual cluster ingress,
|
|
42
|
+
- PDB compatibility with Rollout maxSurge/maxUnavailable,
|
|
43
|
+
- the safest next actions and any assumptions or blockers.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "argo-rollouts-progressive-delivery-review",
|
|
3
|
+
"name": "Argo Rollouts Progressive Delivery Review",
|
|
4
|
+
"type": "skill",
|
|
5
|
+
"provider": "argocd",
|
|
6
|
+
"harnesses": ["codex", "claude-code", "cursor", "gemini", "kiro", "other"],
|
|
7
|
+
"summary": "Review Argo Rollouts canary and blue-green strategy configuration, AnalysisTemplate success/failure conditions, traffic management provider alignment, canaryService isolation, PDB deadlock risk, and automated rollback posture for progressive delivery safety.",
|
|
8
|
+
"source_type": "original",
|
|
9
|
+
"official_docs": [
|
|
10
|
+
"https://argoproj.github.io/argo-rollouts/",
|
|
11
|
+
"https://argoproj.github.io/argo-rollouts/features/canary/",
|
|
12
|
+
"https://argoproj.github.io/argo-rollouts/features/analysis/",
|
|
13
|
+
"https://argoproj.github.io/argo-rollouts/features/traffic-management/",
|
|
14
|
+
"https://argoproj.github.io/argo-rollouts/features/bluegreen/",
|
|
15
|
+
"https://argoproj.github.io/argo-rollouts/generated/kubectl-argo-rollouts/kubectl-argo-rollouts_promote/"
|
|
16
|
+
],
|
|
17
|
+
"security_notes": "AnalysisTemplates with always-true success conditions defeat automated rollback entirely. A canary that never fails analysis will silently promote a broken release to 100% production traffic.",
|
|
18
|
+
"last_verified": "2026-05-02",
|
|
19
|
+
"path": "skills/argocd/argo-rollouts-progressive-delivery-review",
|
|
20
|
+
"author": "github: Raishin",
|
|
21
|
+
"version": "0.1.0"
|
|
22
|
+
}
|