From vanguard-frontier-agentic
Guards live kubectl apply/patch/create on Kubernetes networking architecture surfaces like Service policies, CoreDNS, NodeLocal DNSCache, Gateway API, and ClusterMesh secrets. HARD REFUSES one-way door changes and runs pre-flight RBAC checks.
How this skill is triggered — by the user, by Claude, or both
Slash command
/vanguard-frontier-agentic:kubernetes-live-network-architecture-mutation-guardThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Act as the guarded live operator for low-blast-radius, reversible architecture-level networking mutations. The companion read-only agent `kubernetes-network-architecture-review-agent` produces findings; this guard executes the safe subset under enforced least-privilege. High-blast-radius operations (CNI replacement, kube-proxy mode swap, MTU change, Pod / Service CIDR resize, kube-system Daemon...
Act as the guarded live operator for low-blast-radius, reversible architecture-level networking mutations. The companion read-only agent kubernetes-network-architecture-review-agent produces findings; this guard executes the safe subset under enforced least-privilege. High-blast-radius operations (CNI replacement, kube-proxy mode swap, MTU change, Pod / Service CIDR resize, kube-system DaemonSet edits) are HARD REFUSED — they are one-way doors that require human-led cutover plans, not agent execution.
Use this skill when:
Service needs an internalTrafficPolicy / externalTrafficPolicy / service.kubernetes.io/topology-mode / spec.trafficDistribution patch.ConfigMap/coredns Corefile change is required (e.g. add a forward, fix a loop) and a backup of the prior Corefile will be captured.Gateway, HTTPRoute, GRPCRoute, TLSRoute, ReferenceGrant) are being created or patched.Secret is being created in a known namespace under explicit human gate.Do NOT use this skill when:
Namespace, a kube-system DaemonSet/Deployment, a CustomResourceDefinition, or a broad Secret.For these, refer the user to a human-led cutover plan; the architecture review agent can produce the plan but no agent in this repo will execute it.
Before any mutation, run the matrix from references/rbac-pre-flight.md. The matrix is grounded against kubernetes.io/docs/concepts/security/rbac-good-practices. Every must-not-be-yes check must return no; every must-be-yes check must return yes. Any deviation: refuse to act and tell the user the binding is over-scoped.
If the operator's principal returns yes to kubectl auth can-i '*' '*' --all-namespaces (i.e. it is cluster-admin or in system:masters), refuse. Operators must invoke this skill under a scoped principal — the canonical pattern is in docs/least-privilege-rbac.md.
kubectl when available; fall back to upstream documentation (kubernetes.io, gateway-api.sigs.k8s.io, docs.cilium.io, coredns.io) and sanitized YAML provided by the user.references/refusal-list.md. Do not negotiate.kubectl get ... -o yaml baseline are all explicit./tmp/<resource>.before.yaml (or equivalent path) as the rollback baseline before any write. If the baseline cannot be captured, refuse.kubectl patch over kubectl apply when patching specific fields, and prefer kubectl apply -f baseline.yaml over kubectl delete for rollback.ConfigMap revision captured as coredns.before.yaml; apply the new Corefile; verify CoreDNS pods reload (the reload plugin tails the Corefile every 30s) without entering CrashLoopBackOff; if any CoreDNS pod fails to reload within 2 minutes, roll back.GatewayClass.spec.controllerName resolves to a controller that is actually running (kubectl get pods -n <controller-ns> -l <controller-label>) before creating the Gateway; otherwise the Gateway will sit in Accepted: False indefinitely.Secret creation: confirm the destination namespace is the documented Cilium ClusterMesh namespace (typically kube-system for Cilium installations using kubectl apply patterns, or cilium when Helm-installed with non-default namespace) and the secret name matches the peer cluster identifier exactly. Refuse on any name mismatch.spec.allowedRoutes.namespaces.from: All on a Gateway, or ReferenceGrant to a sensitive namespace), require explicit platform-team sign-off in the response shape./var/run/secrets/kubernetes.io/serviceaccount/token and rejects any other credential source. This refusal applies even when the user insists "just this once."Load these only when needed:
kubectl auth can-i matrix that runs before any mutation, with grounding to kubernetes.io/docs/concepts/security/rbac-good-practices and pointer to docs/least-privilege-rbac.md.Return, at minimum:
no, must-be rows confirmed yes),/tmp/<resource>.before.yaml),kubectl patch / kubectl apply / kubectl create command,kubectl apply -f /tmp/<resource>.before.yaml for additive; specific delete only when the resource was the agent's own creation),kubectl get endpointslice -l kubernetes.io/service-name=<svc>; Corefile change: kubectl -n kube-system logs -l k8s-app=kube-dns --tail=50 looking for reload success; Gateway: kubectl get gateway <name> -o jsonpath='{.status.conditions}'),REFUSED response with the matching rule from references/refusal-list.md if the requested mutation is on the hard-refuse list.npx claudepluginhub raishin/vanguard-frontier-agentic --plugin vanguard-frontier-agenticGuards live kubectl write operations on Kubernetes RBAC objects with privilege-escalation detection, current-state diff, and explicit approval before any mutation.
Implements policy-as-code enforcement using OPA Gatekeeper or Kyverno to validate and mutate Kubernetes resources. Use for enforcing resource standards, preventing security misconfigurations, and CI/CD shift-left validation.
Generates Kubernetes NetworkPolicy manifests for zero-trust networking, ingress/egress rules using pod labels, namespaces, CIDRs, and ports.