@raishin/vanguard-frontier-agentic 1.4.0 → 1.5.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.
Files changed (114) hide show
  1. package/agents/kubernetes/README.md +10 -1
  2. package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/AGENT.md +12 -0
  3. package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/claude-code.agent.md +12 -0
  4. package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/copilot.agent.md +12 -0
  5. package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/cursor.agent.md +12 -0
  6. package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/gemini.agent.md +12 -0
  7. package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/kiro-cli.agent.json +1 -1
  8. package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/kiro-ide.agent.md +12 -0
  9. package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/metadata.json +5 -3
  10. package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/references/least-privilege-rbac.yaml +98 -0
  11. package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/references/rbac-pre-flight.md +108 -0
  12. package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/references/refusal-list.md +112 -0
  13. package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/AGENT.md +13 -1
  14. package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/claude-code.agent.md +12 -0
  15. package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/copilot.agent.md +12 -0
  16. package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/cursor.agent.md +12 -0
  17. package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/gemini.agent.md +12 -0
  18. package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/kiro-cli.agent.json +1 -1
  19. package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/kiro-ide.agent.md +12 -0
  20. package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/metadata.json +5 -3
  21. package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/references/least-privilege-rbac.yaml +92 -0
  22. package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/references/rbac-pre-flight.md +108 -0
  23. package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/references/refusal-list.md +112 -0
  24. package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/AGENT.md +13 -1
  25. package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/claude-code.agent.md +12 -0
  26. package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/copilot.agent.md +12 -0
  27. package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/cursor.agent.md +12 -0
  28. package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/gemini.agent.md +12 -0
  29. package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/kiro-cli.agent.json +1 -1
  30. package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/kiro-ide.agent.md +12 -0
  31. package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/metadata.json +5 -3
  32. package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/references/least-privilege-rbac.yaml +101 -0
  33. package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/references/rbac-pre-flight.md +106 -0
  34. package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/references/refusal-list.md +102 -0
  35. package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/AGENT.md +71 -0
  36. package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/claude-code.agent.md +54 -0
  37. package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/codex.toml +38 -0
  38. package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/copilot.agent.md +54 -0
  39. package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/cursor.agent.md +54 -0
  40. package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/gemini.agent.md +54 -0
  41. package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/kiro-cli.agent.json +5 -0
  42. package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/kiro-ide.agent.md +54 -0
  43. package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/metadata.json +44 -0
  44. package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/AGENT.md +14 -2
  45. package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/claude-code.agent.md +13 -1
  46. package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/copilot.agent.md +13 -1
  47. package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/cursor.agent.md +13 -1
  48. package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/gemini.agent.md +13 -1
  49. package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/kiro-cli.agent.json +1 -1
  50. package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/kiro-ide.agent.md +13 -1
  51. package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/metadata.json +5 -3
  52. package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/references/least-privilege-rbac.yaml +101 -0
  53. package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/references/rbac-pre-flight.md +106 -0
  54. package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/references/refusal-list.md +102 -0
  55. package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/AGENT.md +12 -0
  56. package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/claude-code.agent.md +12 -0
  57. package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/copilot.agent.md +12 -0
  58. package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/cursor.agent.md +12 -0
  59. package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/gemini.agent.md +12 -0
  60. package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/kiro-cli.agent.json +1 -1
  61. package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/kiro-ide.agent.md +12 -0
  62. package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/metadata.json +6 -3
  63. package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/references/least-privilege-rbac.yaml +92 -0
  64. package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/references/rbac-pre-flight.md +115 -0
  65. package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/references/refusal-list.md +132 -0
  66. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/AGENT.md +15 -3
  67. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/claude-code.agent.md +15 -3
  68. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/codex.toml +2 -2
  69. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/copilot.agent.md +15 -3
  70. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/cursor.agent.md +15 -3
  71. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/gemini.agent.md +15 -3
  72. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/kiro-cli.agent.json +1 -1
  73. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/kiro-ide.agent.md +15 -3
  74. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/metadata.json +6 -4
  75. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/references/least-privilege-rbac.yaml +92 -0
  76. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/references/rbac-pre-flight.md +109 -0
  77. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/references/refusal-list.md +122 -0
  78. package/agents/kubernetes/kubernetes-network-architecture-review-agent/AGENT.md +65 -0
  79. package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/claude-code.agent.md +48 -0
  80. package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/codex.toml +37 -0
  81. package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/copilot.agent.md +48 -0
  82. package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/cursor.agent.md +48 -0
  83. package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/gemini.agent.md +48 -0
  84. package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/kiro-cli.agent.json +5 -0
  85. package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/kiro-ide.agent.md +48 -0
  86. package/agents/kubernetes/kubernetes-network-architecture-review-agent/metadata.json +44 -0
  87. package/catalog/agents.json +78 -12
  88. package/catalog/install-roles.json +8 -4
  89. package/catalog/skill-manifest.json +111 -12
  90. package/catalog/skills.json +67 -0
  91. package/package.json +1 -1
  92. package/skills/kubernetes/README.md +5 -1
  93. package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/SKILL.md +82 -0
  94. package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/metadata.json +33 -0
  95. package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/least-privilege-rbac.yaml +210 -0
  96. package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/official-sources.md +41 -0
  97. package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/permitted-mutations.md +173 -0
  98. package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/rbac-pre-flight.md +252 -0
  99. package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/refusal-list.md +313 -0
  100. package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/rollback-patterns.md +103 -0
  101. package/skills/kubernetes/kubernetes-maestro/references/safety-checklist.md +1 -1
  102. package/skills/kubernetes/kubernetes-maestro/references/workflow-and-output.md +57 -5
  103. package/skills/kubernetes/kubernetes-network-architecture-review/SKILL.md +84 -0
  104. package/skills/kubernetes/kubernetes-network-architecture-review/metadata.json +34 -0
  105. package/skills/kubernetes/kubernetes-network-architecture-review/references/dataplane-and-cni.md +89 -0
  106. package/skills/kubernetes/kubernetes-network-architecture-review/references/dns-and-discovery.md +120 -0
  107. package/skills/kubernetes/kubernetes-network-architecture-review/references/mcp-and-evidence.md +53 -0
  108. package/skills/kubernetes/kubernetes-network-architecture-review/references/multi-cluster-and-egress.md +69 -0
  109. package/skills/kubernetes/kubernetes-network-architecture-review/references/official-sources.md +54 -0
  110. package/skills/kubernetes/kubernetes-network-architecture-review/references/service-gateway-routing.md +108 -0
  111. package/skills/kubernetes/kubernetes-network-architecture-review/references/troubleshooting-playbook.md +100 -0
  112. package/skills/velero/velero-backup-restore-guard/SKILL.md +2 -2
  113. package/skills/velero/velero-backup-restore-guard/references/safety-checklist.md +1 -1
  114. package/skills/velero/velero-backup-restore-guard/references/workflow-and-output.md +17 -8
@@ -2594,14 +2594,14 @@
2594
2594
  "gemini",
2595
2595
  "kiro"
2596
2596
  ],
2597
- "last_verified": "2026-05-01",
2597
+ "last_verified": "2026-05-08",
2598
2598
  "official_docs": [
2599
2599
  "https://kyverno.io/docs/",
2600
2600
  "https://kyverno.io/docs/writing-policies/validate/",
2601
2601
  "https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/",
2602
2602
  "https://kubernetes.io/docs/concepts/security/pod-security-admission/"
2603
2603
  ],
2604
- "security_notes": "Changing failureAction from Enforce to Audit in production silently unblocks violations. Deleting a ClusterPolicy removes admission control for ALL namespaces simultaneously. PolicyException without expiry is permanent.",
2604
+ "security_notes": "Changing failureAction from Enforce to Audit in production silently unblocks violations. Deleting a ClusterPolicy removes admission control for ALL namespaces simultaneously. PolicyException without expiry is permanent. Per docs/least-privilege-rbac.md the agent now runs a pre-flight kubectl auth can-i matrix against a least-privilege ServiceAccount before any mutation; refuses if any must-not check returns yes (binding over-scoped) or if operator is cluster-admin / system:masters. References shipped: least-privilege-rbac.yaml (deny-by-default ClusterRole), rbac-pre-flight.md (positive + negative resourceName tests), refusal-list.md (universal one-way doors plus domain-specific HARD REFUSE list). Refuses to read or process credentials volunteered by the operator; uses only the in-pod ServiceAccount token at /var/run/secrets/kubernetes.io/serviceaccount/token.",
2605
2605
  "source_type": "original",
2606
2606
  "version": "0.1.0"
2607
2607
  },
@@ -2620,14 +2620,14 @@
2620
2620
  "gemini",
2621
2621
  "kiro"
2622
2622
  ],
2623
- "last_verified": "2026-05-01",
2623
+ "last_verified": "2026-05-08",
2624
2624
  "official_docs": [
2625
2625
  "https://argo-cd.readthedocs.io/en/stable/",
2626
2626
  "https://argo-cd.readthedocs.io/en/stable/user-guide/projects/",
2627
2627
  "https://argo-cd.readthedocs.io/en/stable/operator-manual/sync-windows/",
2628
2628
  "https://argo-cd.readthedocs.io/en/stable/operator-manual/sync-impersonation/"
2629
2629
  ],
2630
- "security_notes": "Deleting or disabling a sync-window removes the last gate blocking unreviewed changes to production. Expanding AppProject clusterResourceWhitelist to ['*/*'] grants full cluster write. RollingSync requires auto-sync disabled.",
2630
+ "security_notes": "Deleting or disabling a sync-window removes the last gate blocking unreviewed changes to production. Expanding AppProject clusterResourceWhitelist to ['*/*'] grants full cluster write. RollingSync requires auto-sync disabled. Per docs/least-privilege-rbac.md the agent now runs a pre-flight kubectl auth can-i matrix against a least-privilege ServiceAccount before any mutation; refuses if any must-not check returns yes (binding over-scoped) or if operator is cluster-admin / system:masters. References shipped: least-privilege-rbac.yaml (deny-by-default ClusterRole), rbac-pre-flight.md (positive + negative resourceName tests), refusal-list.md (universal one-way doors plus domain-specific HARD REFUSE list). Refuses to read or process credentials volunteered by the operator; uses only the in-pod ServiceAccount token at /var/run/secrets/kubernetes.io/serviceaccount/token.",
2631
2631
  "source_type": "original",
2632
2632
  "version": "0.1.0"
2633
2633
  },
@@ -2646,14 +2646,47 @@
2646
2646
  "gemini",
2647
2647
  "kiro"
2648
2648
  ],
2649
- "last_verified": "2026-05-01",
2649
+ "last_verified": "2026-05-08",
2650
2650
  "official_docs": [
2651
2651
  "https://istio.io/latest/docs/ambient/",
2652
2652
  "https://istio.io/latest/docs/reference/config/security/authorization-policy/",
2653
2653
  "https://istio.io/latest/docs/reference/config/security/peer_authentication/",
2654
2654
  "https://istio.io/latest/docs/ops/diagnostic-tools/istioctl-analyze/"
2655
2655
  ],
2656
- "security_notes": "Changing PeerAuthentication from STRICT to PERMISSIVE disables mTLS for all traffic to matched workloads. Deleting the only DENY AuthorizationPolicy removes the default-deny posture. L7 AuthorizationPolicy in ambient without waypoint is silently bypassed.",
2656
+ "security_notes": "Changing PeerAuthentication from STRICT to PERMISSIVE disables mTLS for all traffic to matched workloads. Deleting the only DENY AuthorizationPolicy removes the default-deny posture. L7 AuthorizationPolicy in ambient without waypoint is silently bypassed. Per docs/least-privilege-rbac.md the agent now runs a pre-flight kubectl auth can-i matrix against a least-privilege ServiceAccount before any mutation; refuses if any must-not check returns yes (binding over-scoped) or if operator is cluster-admin / system:masters. References shipped: least-privilege-rbac.yaml (deny-by-default ClusterRole), rbac-pre-flight.md (positive + negative resourceName tests), refusal-list.md (universal one-way doors plus domain-specific HARD REFUSE list). Refuses to read or process credentials volunteered by the operator; uses only the in-pod ServiceAccount token at /var/run/secrets/kubernetes.io/serviceaccount/token.",
2657
+ "source_type": "original",
2658
+ "version": "0.1.0"
2659
+ },
2660
+ {
2661
+ "id": "kubernetes-live-network-architecture-mutation-guard-agent",
2662
+ "name": "Kubernetes Live Network Architecture Mutation Guard",
2663
+ "type": "agent",
2664
+ "provider": "kubernetes",
2665
+ "summary": "Guard live kubectl apply/patch/create operations on networking architecture surface (Service spec, CoreDNS Corefile, NodeLocal DNSCache install, Gateway API resources, ClusterMesh peer Secrets). HARD REFUSE one-way doors (CNI replacement, kube-proxy mode swap, MTU change, Pod/Service CIDR resize, namespace deletion, kube-system DaemonSet writes). Pre-flight kubectl auth can-i matrix against a least-privilege ServiceAccount before any write.",
2666
+ "path": "agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent",
2667
+ "harnesses": [
2668
+ "codex",
2669
+ "copilot",
2670
+ "claude-code",
2671
+ "cursor",
2672
+ "gemini",
2673
+ "kiro"
2674
+ ],
2675
+ "last_verified": "2026-05-08",
2676
+ "official_docs": [
2677
+ "https://kubernetes.io/docs/concepts/security/rbac-good-practices/",
2678
+ "https://kubernetes.io/docs/reference/access-authn-authz/rbac/",
2679
+ "https://kubernetes.io/docs/reference/kubectl/generated/kubectl_auth/kubectl_auth_can-i/",
2680
+ "https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/",
2681
+ "https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/",
2682
+ "https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/",
2683
+ "https://gateway-api.sigs.k8s.io/api-types/gateway/",
2684
+ "https://gateway-api.sigs.k8s.io/api-types/httproute/",
2685
+ "https://gateway-api.sigs.k8s.io/api-types/grpcroute/",
2686
+ "https://coredns.io/plugins/reload/",
2687
+ "https://docs.cilium.io/en/stable/network/clustermesh/clustermesh/"
2688
+ ],
2689
+ "security_notes": "Cluster-side enforcement via least-privilege ServiceAccount per docs/least-privilege-rbac.md. Deliberately omitted: namespaces (any verb), pods (any verb), broad secrets, kube-system DaemonSets/Deployments writes, CRDs, any cluster-wide delete verb, any wildcard. Pre-flight kubectl auth can-i matrix MUST run before any mutation; refuses if any must-not check returns yes or operator is cluster-admin / system:masters. HARD REFUSE list covers one-way doors no agent in this repo will execute.",
2657
2690
  "source_type": "original",
2658
2691
  "version": "0.1.0"
2659
2692
  },
@@ -2672,14 +2705,14 @@
2672
2705
  "gemini",
2673
2706
  "kiro"
2674
2707
  ],
2675
- "last_verified": "2026-05-01",
2708
+ "last_verified": "2026-05-08",
2676
2709
  "official_docs": [
2677
2710
  "https://docs.cilium.io/en/stable/network/kubernetes/policy/",
2678
2711
  "https://docs.cilium.io/en/stable/network/egress-gateway/",
2679
2712
  "https://docs.cilium.io/en/stable/observability/hubble/",
2680
2713
  "https://kubernetes.io/docs/concepts/services-networking/network-policies/"
2681
2714
  ],
2682
- "security_notes": "Deleting a default-deny CiliumNetworkPolicy removes all ingress/egress restrictions for matched workloads. toCIDRSet change to include 0.0.0.0/0 without excluding 169.254.169.254/32 opens the cloud metadata service. CiliumClusterwideNetworkPolicy changes affect all namespaces simultaneously.",
2715
+ "security_notes": "Deleting a default-deny CiliumNetworkPolicy removes all ingress/egress restrictions for matched workloads. toCIDRSet change to include 0.0.0.0/0 without excluding 169.254.169.254/32 opens the cloud metadata service. CiliumClusterwideNetworkPolicy changes affect all namespaces simultaneously. Per docs/least-privilege-rbac.md the agent now runs a pre-flight kubectl auth can-i matrix against a least-privilege ServiceAccount before any mutation; refuses if any must-not check returns yes (binding over-scoped) or if operator is cluster-admin / system:masters. References shipped: least-privilege-rbac.yaml (deny-by-default ClusterRole), rbac-pre-flight.md (positive + negative resourceName tests), refusal-list.md (universal one-way doors plus domain-specific HARD REFUSE list). Refuses to read or process credentials volunteered by the operator; uses only the in-pod ServiceAccount token at /var/run/secrets/kubernetes.io/serviceaccount/token.",
2683
2716
  "source_type": "original",
2684
2717
  "version": "0.1.0"
2685
2718
  },
@@ -2704,8 +2737,8 @@
2704
2737
  "https://kubernetes.io/docs/reference/kubectl/generated/kubectl_auth/",
2705
2738
  "https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/"
2706
2739
  ],
2707
- "security_notes": "Capture current RBAC state before every mutation — no built-in rollback. Block escalate, bind, and impersonate verbs without platform-team approval. Never approve wildcard grants. Cached tokens remain valid after binding deletion until expiry.",
2708
- "last_verified": "2026-05-01",
2740
+ "security_notes": "Capture current RBAC state before every mutation — no built-in rollback. Block escalate, bind, and impersonate verbs without platform-team approval. Never approve wildcard grants. Cached tokens remain valid after binding deletion until expiry. Per docs/least-privilege-rbac.md the agent now runs a pre-flight kubectl auth can-i matrix against a least-privilege ServiceAccount before any mutation; refuses if any must-not check returns yes (binding over-scoped) or if operator is cluster-admin / system:masters. References shipped: least-privilege-rbac.yaml (deny-by-default ClusterRole), rbac-pre-flight.md (positive + negative resourceName tests), refusal-list.md (universal one-way doors plus domain-specific HARD REFUSE list). Refuses to read or process credentials volunteered by the operator; uses only the in-pod ServiceAccount token at /var/run/secrets/kubernetes.io/serviceaccount/token.",
2741
+ "last_verified": "2026-05-08",
2709
2742
  "path": "agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent",
2710
2743
  "author": "github: Raishin",
2711
2744
  "version": "0.1.0"
@@ -2732,8 +2765,8 @@
2732
2765
  "https://velero.io/docs/latest/locations/",
2733
2766
  "https://velero.io/docs/latest/hooks/"
2734
2767
  ],
2735
- "security_notes": "Velero restore with existingResourcePolicy:update can overwrite live RBAC resources, Secrets, and ServiceAccounts — equivalent to a partial cluster wipe. BSL credentials with write-only access prevent listing/deleting old backups, causing runaway storage costs. Never proceed with cluster-wide restores without explicit platform-team sign-off.",
2736
- "last_verified": "2026-05-02",
2768
+ "security_notes": "Velero restore with existingResourcePolicy:update can overwrite live RBAC resources, Secrets, and ServiceAccounts — equivalent to a partial cluster wipe. BSL credentials with write-only access prevent listing/deleting old backups, causing runaway storage costs. Never proceed with cluster-wide restores without explicit platform-team sign-off. Per docs/least-privilege-rbac.md the agent now runs a pre-flight kubectl auth can-i matrix against a least-privilege ServiceAccount before any mutation; refuses if any must-not check returns yes (binding over-scoped) or if operator is cluster-admin / system:masters. References shipped: least-privilege-rbac.yaml (deny-by-default ClusterRole), rbac-pre-flight.md (positive + negative resourceName tests), refusal-list.md (universal one-way doors plus domain-specific HARD REFUSE list). Refuses to read or process credentials volunteered by the operator; uses only the in-pod ServiceAccount token at /var/run/secrets/kubernetes.io/serviceaccount/token.",
2769
+ "last_verified": "2026-05-08",
2737
2770
  "path": "agents/kubernetes/kubernetes-live-velero-restore-guard-agent",
2738
2771
  "version": "0.1.0"
2739
2772
  },
@@ -2767,6 +2800,39 @@
2767
2800
  "source_type": "original",
2768
2801
  "version": "0.1.0"
2769
2802
  },
2803
+ {
2804
+ "id": "kubernetes-network-architecture-review-agent",
2805
+ "name": "Kubernetes Network Architecture Review",
2806
+ "type": "agent",
2807
+ "provider": "kubernetes",
2808
+ "summary": "Agent for kubernetes-network-architecture-review. Review Kubernetes cluster network architecture: CNI and dataplane (kube-proxy mode, IPAM, MTU, encapsulation, dual-stack), Service surface (EndpointSlices, internalTrafficPolicy, externalTrafficPolicy, topology-aware routing), Ingress to Gateway API migration, CoreDNS and NodeLocal DNSCache, multi-cluster topology (ClusterMesh, Submariner, MCS-API), egress topology, and connectivity observability and troubleshooting. Read-only; delegates NetworkPolicy content and live mutations to companion agents.",
2809
+ "path": "agents/kubernetes/kubernetes-network-architecture-review-agent",
2810
+ "harnesses": [
2811
+ "codex",
2812
+ "copilot",
2813
+ "claude-code",
2814
+ "cursor",
2815
+ "gemini",
2816
+ "kiro"
2817
+ ],
2818
+ "last_verified": "2026-05-07",
2819
+ "official_docs": [
2820
+ "https://kubernetes.io/docs/concepts/services-networking/",
2821
+ "https://kubernetes.io/docs/reference/networking/virtual-ips/",
2822
+ "https://kubernetes.io/docs/concepts/services-networking/endpoint-slices/",
2823
+ "https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/",
2824
+ "https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/",
2825
+ "https://kubernetes.io/docs/concepts/services-networking/dual-stack/",
2826
+ "https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/",
2827
+ "https://gateway-api.sigs.k8s.io/",
2828
+ "https://docs.cilium.io/en/stable/network/concepts/",
2829
+ "https://docs.cilium.io/en/stable/network/kube-proxy-replacement/",
2830
+ "https://coredns.io/plugins/kubernetes/"
2831
+ ],
2832
+ "security_notes": "Pod and Service CIDR sizing are one-way architectural doors on most stacks. kube-proxy mode swap and CNI replacement are connectivity-affecting rollouts requiring an explicit cutover plan. MTU mismatch between underlay and overlay is a silent payload-stall failure mode. externalTrafficPolicy: Local black-holes traffic when no local endpoint exists. NodeLocal DNSCache OOM produces a node-wide DNS outage via stale packet-filter redirect to an unhealthy pod. Multi-cluster pod CIDR collisions break any cross-cluster scheme regardless of policy correctness. Linux Foundation CKNE program curriculum is not yet published as of last_verified; this agent is grounded in upstream Kubernetes, Gateway API, Cilium, and CoreDNS documentation.",
2833
+ "source_type": "original",
2834
+ "version": "0.1.0"
2835
+ },
2770
2836
  {
2771
2837
  "id": "kubernetes-pod-spec-review-agent",
2772
2838
  "name": "Kubernetes Pod Spec Review",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "0.1.0",
3
- "description": "Role-based agent and skill selections for vfa-export-agents --role installs. Each role maps to the minimal, high-value agent and skill IDs a practitioner in that function needs across all supported cloud providers. Roles are intentionally overlapping \u2014 a single agent may serve multiple roles.",
3
+ "description": "Role-based agent and skill selections for vfa-export-agents --role installs. Each role maps to the minimal, high-value agent and skill IDs a practitioner in that function needs across all supported cloud providers. Roles are intentionally overlapping a single agent may serve multiple roles.",
4
4
  "roles": {
5
5
  "cloud-security-engineer": {
6
6
  "label": "Cloud Security Engineer",
@@ -314,18 +314,22 @@
314
314
  },
315
315
  "kubernetes-network-engineer": {
316
316
  "label": "Kubernetes Network Engineer",
317
- "description": "CNI, service mesh, ingress, egress: Cilium NetworkPolicy and CiliumClusterwideNetworkPolicy, Cilium ClusterMesh, CiliumEgressGatewayPolicy, Hubble flow observability, and Istio mesh in both sidecar and ambient modes including the L7-AuthorizationPolicy-without-waypoint trap.",
317
+ "description": "Cluster network architecture and policy: CNI selection and dataplane (kube-proxy mode, IPAM, Pod and Service CIDR sizing, MTU, encapsulation, dual-stack), Service surface (EndpointSlices, internalTrafficPolicy, externalTrafficPolicy, topology-aware routing), Ingress to Gateway API migration, CoreDNS and NodeLocal DNSCache, multi-cluster topology (ClusterMesh, Submariner, MCS-API), egress topology and connectivity troubleshooting, plus Cilium NetworkPolicy and CiliumClusterwideNetworkPolicy review, CiliumEgressGatewayPolicy, Hubble flow observability, and Istio mesh in both sidecar and ambient modes including the L7-AuthorizationPolicy-without-waypoint trap.",
318
318
  "agents": [
319
319
  "cilium-network-policy-review-agent",
320
320
  "istio-ambient-mesh-review-agent",
321
321
  "kubernetes-live-mesh-policy-guard-agent",
322
+ "kubernetes-live-network-architecture-mutation-guard-agent",
322
323
  "kubernetes-live-network-policy-guard-agent",
323
- "kubernetes-maestro-agent"
324
+ "kubernetes-maestro-agent",
325
+ "kubernetes-network-architecture-review-agent"
324
326
  ],
325
327
  "skills": [
326
328
  "cilium-network-policy-review",
327
329
  "istio-ambient-mesh-review",
328
- "kubernetes-maestro"
330
+ "kubernetes-live-network-architecture-mutation-guard",
331
+ "kubernetes-maestro",
332
+ "kubernetes-network-architecture-review"
329
333
  ]
330
334
  },
331
335
  "kubernetes-application-platform-engineer": {
@@ -2824,6 +2824,53 @@
2824
2824
  }
2825
2825
  ]
2826
2826
  },
2827
+ {
2828
+ "id": "kubernetes-live-network-architecture-mutation-guard",
2829
+ "path": "skills/kubernetes/kubernetes-live-network-architecture-mutation-guard",
2830
+ "aggregate_sha256": "9294fe72b638c68bea5548c83691c834a92902ba9ac5367d22743f2dc7667ff2",
2831
+ "files": [
2832
+ {
2833
+ "path": "skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/SKILL.md",
2834
+ "sha256": "af2177c9b3160f5cbf5056827357bb60a1353a61e6078c6906e50bfc28eeefbb",
2835
+ "bytes": 8238
2836
+ },
2837
+ {
2838
+ "path": "skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/metadata.json",
2839
+ "sha256": "398983ada016380db9bdfcd7afe0c35ded4085bb4e4a126d81292e45f907e97a",
2840
+ "bytes": 2586
2841
+ },
2842
+ {
2843
+ "path": "skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/least-privilege-rbac.yaml",
2844
+ "sha256": "76ec7f5ceb154e6d4246ac78f13f12ba57af90dc6d513e814d790e11cd71a9ba",
2845
+ "bytes": 10971
2846
+ },
2847
+ {
2848
+ "path": "skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/official-sources.md",
2849
+ "sha256": "cce904ec2225f5200c212d1a5b33b2a50290c75c5f1839fc0b1a8d0ae48a168d",
2850
+ "bytes": 3443
2851
+ },
2852
+ {
2853
+ "path": "skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/permitted-mutations.md",
2854
+ "sha256": "f78969970bc8f6233be04fc5b3075eef0a0c78cbe98dd4f462328e68ff08b3a1",
2855
+ "bytes": 7395
2856
+ },
2857
+ {
2858
+ "path": "skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/rbac-pre-flight.md",
2859
+ "sha256": "b9b911836084dfdf9dcfc61614f1e7a8e482e0989f6a6876798997d56ccfab28",
2860
+ "bytes": 12146
2861
+ },
2862
+ {
2863
+ "path": "skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/refusal-list.md",
2864
+ "sha256": "299e6d5ff939f14ac97e6949016193ba0d122d2c807382f839a7066498348dc8",
2865
+ "bytes": 26559
2866
+ },
2867
+ {
2868
+ "path": "skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/rollback-patterns.md",
2869
+ "sha256": "469b1b2fc8d19622c2cb6535a7c334f377570d24d40639e2d60f4d50420091a6",
2870
+ "bytes": 5382
2871
+ }
2872
+ ]
2873
+ },
2827
2874
  {
2828
2875
  "id": "kubernetes-live-rbac-mutation-guard",
2829
2876
  "path": "skills/kubernetes/kubernetes-live-rbac-mutation-guard",
@@ -2864,7 +2911,7 @@
2864
2911
  {
2865
2912
  "id": "kubernetes-maestro",
2866
2913
  "path": "skills/kubernetes/kubernetes-maestro",
2867
- "aggregate_sha256": "563571c3827cbb4b427ba81677e2afde3ad41989181ecb9662d762a6de8c71c8",
2914
+ "aggregate_sha256": "bdc199ee8b6001a0b6c1d8eb426f47502bef1172d0e6717a982ebf3d5d537ab0",
2868
2915
  "files": [
2869
2916
  {
2870
2917
  "path": "skills/kubernetes/kubernetes-maestro/SKILL.md",
@@ -2878,13 +2925,65 @@
2878
2925
  },
2879
2926
  {
2880
2927
  "path": "skills/kubernetes/kubernetes-maestro/references/safety-checklist.md",
2881
- "sha256": "d12e768a7dac5a07c3c37d09e1eef08ec614a1f728b0eaec41064ca48b03fdbc",
2882
- "bytes": 4864
2928
+ "sha256": "d5a772d42f00d6f24b375cfc9e9c75ce59bbf66d107bc839479e9406114a0e1b",
2929
+ "bytes": 4908
2883
2930
  },
2884
2931
  {
2885
2932
  "path": "skills/kubernetes/kubernetes-maestro/references/workflow-and-output.md",
2886
- "sha256": "470f4a94fabfe674fc9a34e8280d7dbad324fbf94a1bdc92a3561bd8f8284ded",
2887
- "bytes": 14156
2933
+ "sha256": "a2076ac8200a38e43cd3a61d5b33c002f56d1be4dea282b794c08940f294fcdd",
2934
+ "bytes": 22476
2935
+ }
2936
+ ]
2937
+ },
2938
+ {
2939
+ "id": "kubernetes-network-architecture-review",
2940
+ "path": "skills/kubernetes/kubernetes-network-architecture-review",
2941
+ "aggregate_sha256": "120a0df8d6992580e765101dd1bf53035c6460b1ee53f448840923e2d3842a50",
2942
+ "files": [
2943
+ {
2944
+ "path": "skills/kubernetes/kubernetes-network-architecture-review/SKILL.md",
2945
+ "sha256": "f35d8fce84a619b1241a529e79cc6a84ce696355401aac71c1595b52951639f4",
2946
+ "bytes": 9919
2947
+ },
2948
+ {
2949
+ "path": "skills/kubernetes/kubernetes-network-architecture-review/metadata.json",
2950
+ "sha256": "ab8fb40b8e60b00ee7f58c41a7a78b34861d38473014570392e722941704b4cb",
2951
+ "bytes": 2428
2952
+ },
2953
+ {
2954
+ "path": "skills/kubernetes/kubernetes-network-architecture-review/references/dataplane-and-cni.md",
2955
+ "sha256": "bcf6b5b2abf0ca7ee95cb0f0195e3f5d23b94bd9b7112c97fdb3e3da2657430e",
2956
+ "bytes": 8371
2957
+ },
2958
+ {
2959
+ "path": "skills/kubernetes/kubernetes-network-architecture-review/references/dns-and-discovery.md",
2960
+ "sha256": "204b1b5221d80c1432008bbf6fd5555979b1c9784380d228ac5e53f25c368e60",
2961
+ "bytes": 8686
2962
+ },
2963
+ {
2964
+ "path": "skills/kubernetes/kubernetes-network-architecture-review/references/mcp-and-evidence.md",
2965
+ "sha256": "1ddc5d55da13db19b0c42afb174d7b9e2fe258dfca9f82c69a0dc77d8f55edfa",
2966
+ "bytes": 3871
2967
+ },
2968
+ {
2969
+ "path": "skills/kubernetes/kubernetes-network-architecture-review/references/multi-cluster-and-egress.md",
2970
+ "sha256": "eee58ff69bf4746c2a2c4b736a7a67fea1d809fcaff65c8f36ea8bf9bdb5c10a",
2971
+ "bytes": 7444
2972
+ },
2973
+ {
2974
+ "path": "skills/kubernetes/kubernetes-network-architecture-review/references/official-sources.md",
2975
+ "sha256": "ec4e7e9de98ca7552d0af9673cced98570b7fa255dee735802ed94fec9a8c516",
2976
+ "bytes": 4741
2977
+ },
2978
+ {
2979
+ "path": "skills/kubernetes/kubernetes-network-architecture-review/references/service-gateway-routing.md",
2980
+ "sha256": "42cfc5be5df07d90e35449ba5701c978f609646fe22a9757e6bce5037b8cb093",
2981
+ "bytes": 9814
2982
+ },
2983
+ {
2984
+ "path": "skills/kubernetes/kubernetes-network-architecture-review/references/troubleshooting-playbook.md",
2985
+ "sha256": "887499a75082dbebde2926225ad815979a17ba319b3bb77d4ceae87c7d063527",
2986
+ "bytes": 7491
2888
2987
  }
2889
2988
  ]
2890
2989
  },
@@ -4365,12 +4464,12 @@
4365
4464
  {
4366
4465
  "id": "velero-backup-restore-guard",
4367
4466
  "path": "skills/velero/velero-backup-restore-guard",
4368
- "aggregate_sha256": "6a3ef7e50bc1bd42db30acb712f127a654ab3ff5096d2360d553352b27f0994d",
4467
+ "aggregate_sha256": "9db64c28ffef9839a0bfae3ac9353349c1119f5f530bfb5bf3778d48132c5b9a",
4369
4468
  "files": [
4370
4469
  {
4371
4470
  "path": "skills/velero/velero-backup-restore-guard/SKILL.md",
4372
- "sha256": "4e2776d5261e1bd766bb29df45d1f13b563f422656f7e3197c141db28bab1a81",
4373
- "bytes": 2595
4471
+ "sha256": "28b3586ffbdeb3feea8a9e42171f52b8a736cd09a6bdbb5508bafc58d5394f7b",
4472
+ "bytes": 2758
4374
4473
  },
4375
4474
  {
4376
4475
  "path": "skills/velero/velero-backup-restore-guard/metadata.json",
@@ -4379,13 +4478,13 @@
4379
4478
  },
4380
4479
  {
4381
4480
  "path": "skills/velero/velero-backup-restore-guard/references/safety-checklist.md",
4382
- "sha256": "ef35cda68bbcdbd06df5c023b753904cc3727e7b611767aa7c2f2fa24eedf07e",
4383
- "bytes": 4595
4481
+ "sha256": "9d8724b63c6bd8c1566619f14be75cdc1564f9db70b315d6248a069f331b24d3",
4482
+ "bytes": 4869
4384
4483
  },
4385
4484
  {
4386
4485
  "path": "skills/velero/velero-backup-restore-guard/references/workflow-and-output.md",
4387
- "sha256": "7edb0ed3d8b6f95ee47bedcbd5a526fe905c438780743b46f88dcb8452b7be21",
4388
- "bytes": 5968
4486
+ "sha256": "f3f8d2080d5e35ffc6067951b8b2c850aaad1c70c0a2d8eced0a4f7554d6a9f3",
4487
+ "bytes": 6704
4389
4488
  }
4390
4489
  ]
4391
4490
  }
@@ -2559,6 +2559,39 @@
2559
2559
  "author": "github: Raishin",
2560
2560
  "version": "0.1.0"
2561
2561
  },
2562
+ {
2563
+ "id": "kubernetes-live-network-architecture-mutation-guard",
2564
+ "name": "Kubernetes Live Network Architecture Mutation Guard",
2565
+ "type": "skill",
2566
+ "provider": "kubernetes",
2567
+ "harnesses": [
2568
+ "codex",
2569
+ "claude-code",
2570
+ "cursor",
2571
+ "gemini",
2572
+ "kiro",
2573
+ "other"
2574
+ ],
2575
+ "summary": "Guard live kubectl apply/patch/create operations on networking architecture surface (Service spec, CoreDNS Corefile, NodeLocal DNSCache, Gateway API resources, ClusterMesh peer Secrets). HARD REFUSE one-way doors. Pre-flight kubectl auth can-i matrix before any write.",
2576
+ "source_type": "original",
2577
+ "official_docs": [
2578
+ "https://kubernetes.io/docs/concepts/security/rbac-good-practices/",
2579
+ "https://kubernetes.io/docs/reference/access-authn-authz/rbac/",
2580
+ "https://kubernetes.io/docs/reference/kubectl/generated/kubectl_auth/kubectl_auth_can-i/",
2581
+ "https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/",
2582
+ "https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/",
2583
+ "https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/",
2584
+ "https://gateway-api.sigs.k8s.io/api-types/gateway/",
2585
+ "https://gateway-api.sigs.k8s.io/api-types/httproute/",
2586
+ "https://coredns.io/plugins/reload/",
2587
+ "https://docs.cilium.io/en/stable/network/clustermesh/clustermesh/"
2588
+ ],
2589
+ "security_notes": "Pre-flight kubectl auth can-i matrix runs before any mutation against a least-privilege ServiceAccount. Refuses if binding is over-scoped or operator is cluster-admin / system:masters. HARD REFUSE: CNI replacement, kube-proxy mode swap, MTU change, Pod / Service CIDR resize, namespace deletion, kube-system DaemonSet writes, CRD operations, broad Secret access. CoreDNS Corefile changes require backup and reload verification within 2 minutes.",
2590
+ "last_verified": "2026-05-08",
2591
+ "path": "skills/kubernetes/kubernetes-live-network-architecture-mutation-guard",
2592
+ "author": "github: Raishin",
2593
+ "version": "0.1.0"
2594
+ },
2562
2595
  {
2563
2596
  "id": "kubernetes-maestro",
2564
2597
  "name": "Kubernetes Maestro",
@@ -2587,6 +2620,40 @@
2587
2620
  "source_type": "original",
2588
2621
  "version": "0.1.0"
2589
2622
  },
2623
+ {
2624
+ "id": "kubernetes-network-architecture-review",
2625
+ "name": "Kubernetes Network Architecture Review",
2626
+ "type": "skill",
2627
+ "provider": "kubernetes",
2628
+ "harnesses": [
2629
+ "codex",
2630
+ "claude-code",
2631
+ "cursor",
2632
+ "gemini",
2633
+ "kiro",
2634
+ "other"
2635
+ ],
2636
+ "summary": "Review Kubernetes cluster network architecture: CNI and dataplane selection, kube-proxy mode and replacement, IPAM and CIDR sizing, MTU and encapsulation, dual-stack and IPv6, Service surface (EndpointSlices, internalTrafficPolicy, externalTrafficPolicy, topology-aware routing), Ingress to Gateway API migration, CoreDNS and NodeLocal DNSCache, multi-cluster topology, and connectivity observability and troubleshooting. Excludes NetworkPolicy content review and live mutations — those are delegated to cilium-network-policy-review and the live-guard agents.",
2637
+ "source_type": "original",
2638
+ "official_docs": [
2639
+ "https://kubernetes.io/docs/concepts/services-networking/",
2640
+ "https://kubernetes.io/docs/reference/networking/virtual-ips/",
2641
+ "https://kubernetes.io/docs/concepts/services-networking/endpoint-slices/",
2642
+ "https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/",
2643
+ "https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/",
2644
+ "https://kubernetes.io/docs/concepts/services-networking/dual-stack/",
2645
+ "https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/",
2646
+ "https://gateway-api.sigs.k8s.io/",
2647
+ "https://docs.cilium.io/en/stable/network/concepts/",
2648
+ "https://docs.cilium.io/en/stable/network/kube-proxy-replacement/",
2649
+ "https://coredns.io/plugins/kubernetes/"
2650
+ ],
2651
+ "security_notes": "CNI and Pod CIDR are one-way architectural choices on most stacks — resizing requires cluster rebuild. kube-proxy mode swap can break in-flight connections. MTU mismatch between underlay and overlay is a silent payload-stall failure. externalTrafficPolicy: Local preserves source IP but black-holes traffic when no local endpoint exists. NodeLocal DNSCache OOM produces a node-wide DNS outage via stale packet-filter redirect. Multi-cluster pod CIDR collisions break any cross-cluster scheme regardless of policy correctness. ndots:5 plus search path is the dominant cluster DNS load on most installations.",
2652
+ "last_verified": "2026-05-07",
2653
+ "path": "skills/kubernetes/kubernetes-network-architecture-review",
2654
+ "author": "github: Raishin",
2655
+ "version": "0.1.0"
2656
+ },
2590
2657
  {
2591
2658
  "id": "kubernetes-pod-security-admission-review",
2592
2659
  "name": "Kubernetes Pod Security Admission Review",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raishin/vanguard-frontier-agentic",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Cloud and zero-trust agentic workflow marketplace for skills, agents, rules, MCP references, and compliance-aware architecture.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -9,10 +9,12 @@ This folder contains Kubernetes-focused skills curated for this marketplace.
9
9
 
10
10
  ## Local marketplace portfolio
11
11
 
12
- This folder contains **2** local Kubernetes skills:
12
+ This folder contains **4** local Kubernetes skills:
13
13
 
14
14
  - `kubernetes-rbac-review`
15
15
  - `kubernetes-live-rbac-mutation-guard`
16
+ - `kubernetes-network-architecture-review`
17
+ - `kubernetes-live-network-architecture-mutation-guard`
16
18
 
17
19
  ## Portfolio posture
18
20
 
@@ -27,4 +29,6 @@ These skills are intentionally conservative:
27
29
  - always assess cluster-scope vs namespace-scope necessity — prefer a Role over a ClusterRole when namespace scope is sufficient
28
30
  - use official Kubernetes documentation for RBAC behavior and policy
29
31
 
32
+ Network architecture review covers the cluster's dataplane, Service surface, Ingress and Gateway API, DNS, and multi-cluster topology — it stays read-only and delegates NetworkPolicy content review and live mutations to dedicated agents.
33
+
30
34
  Run `npm run validate` after changing cataloged Kubernetes skills.
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: kubernetes-live-network-architecture-mutation-guard
3
+ description: Guard live kubectl apply, patch, or create operations on Kubernetes networking *architecture* surface — Service spec (`internalTrafficPolicy`, `externalTrafficPolicy`, `topology-mode`, `trafficDistribution`), CoreDNS Corefile, NodeLocal DNSCache install, Gateway API resources (Gateway / HTTPRoute / GRPCRoute / TLSRoute / ReferenceGrant), and ClusterMesh peer Secrets. HARD REFUSE one-way doors (CNI replacement, kube-proxy mode swap, MTU change, Pod / Service CIDR resize, namespace deletion). Pre-flight `kubectl auth can-i` matrix against a least-privilege ServiceAccount before any write. Use only when an intentional architecture-level networking mutation is requested against a confirmed cluster target with a documented rollback path.
4
+ allowed-tools: Bash Read Edit Grep Glob WebFetch
5
+ metadata:
6
+ author: "github: Raishin"
7
+ version: "0.1.0"
8
+ updated: "2026-05-08"
9
+ category: networking
10
+ ---
11
+
12
+ # Kubernetes Live Network Architecture Mutation Guard
13
+
14
+ ## Purpose
15
+
16
+ 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.
17
+
18
+ ## When to use
19
+
20
+ Use this skill when:
21
+
22
+ - A `Service` needs an `internalTrafficPolicy` / `externalTrafficPolicy` / `service.kubernetes.io/topology-mode` / `spec.trafficDistribution` patch.
23
+ - A `ConfigMap/coredns` Corefile change is required (e.g. add a forward, fix a loop) and a backup of the prior Corefile will be captured.
24
+ - A NodeLocal DNSCache install or upgrade is required (under explicit human gate).
25
+ - Gateway API resources (`Gateway`, `HTTPRoute`, `GRPCRoute`, `TLSRoute`, `ReferenceGrant`) are being created or patched.
26
+ - A Cilium ClusterMesh peer `Secret` is being created in a known namespace under explicit human gate.
27
+
28
+ Do NOT use this skill when:
29
+
30
+ - The change replaces or uninstalls a CNI.
31
+ - The change swaps kube-proxy mode (iptables ↔ IPVS ↔ nftables ↔ Cilium kube-proxy replacement).
32
+ - The change adjusts node MTU.
33
+ - The change resizes Pod CIDR or Service CIDR.
34
+ - The change deletes a `Namespace`, a `kube-system` `DaemonSet`/`Deployment`, a `CustomResourceDefinition`, or a broad `Secret`.
35
+
36
+ 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.
37
+
38
+ ## Pre-flight RBAC self-check (mandatory)
39
+
40
+ 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.
41
+
42
+ 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`.
43
+
44
+ ## Lean operating rules
45
+
46
+ - Prefer live cluster evidence from `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.
47
+ - **HARD REFUSE** the one-way doors listed in `references/refusal-list.md`. Do not negotiate.
48
+ - Do not execute any mutation until cluster context, namespace (if scoped), target object name, exact change delta, and a captured pre-mutation `kubectl get ... -o yaml` baseline are all explicit.
49
+ - Capture the current state of the target object as `/tmp/<resource>.before.yaml` (or equivalent path) as the rollback baseline before any write. If the baseline cannot be captured, refuse.
50
+ - Prefer `kubectl patch` over `kubectl apply` when patching specific fields, and prefer `kubectl apply -f baseline.yaml` over `kubectl delete` for rollback.
51
+ - For CoreDNS Corefile changes: keep the prior `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.
52
+ - For Gateway API changes: confirm the `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.
53
+ - For ClusterMesh peer `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.
54
+ - If the proposed change touches a security boundary (e.g. setting `spec.allowedRoutes.namespaces.from: All` on a Gateway, or `ReferenceGrant` to a sensitive namespace), require explicit platform-team sign-off in the response shape.
55
+ - If the target, approval state, baseline capture, or rollback verb is ambiguous, push back and refuse.
56
+ - Never print kubeconfig contents, ServiceAccount tokens, bearer tokens, ClusterMesh peer Secret data fields, or raw cluster credentials. Summarize sanitized evidence only.
57
+ - **Refuse to read or process credentials offered by the operator.** If the user volunteers a kubeconfig file path, pastes a token, or offers a peer Secret payload, refuse to read it. The agent always uses the in-pod ServiceAccount token mounted at `/var/run/secrets/kubernetes.io/serviceaccount/token` and rejects any other credential source. This refusal applies even when the user insists "just this once."
58
+ - Load references only when needed.
59
+
60
+ ## References
61
+
62
+ Load these only when needed:
63
+
64
+ - [Permitted mutations](references/permitted-mutations.md) — the explicit allowlist of mutations this guard will execute and the verb-by-verb safety contract for each.
65
+ - [Refusal list](references/refusal-list.md) — the explicit HARD REFUSE list of one-way-door operations and the rationale for each. Includes the cluster-side blast-radius if the refusal is bypassed.
66
+ - [RBAC pre-flight](references/rbac-pre-flight.md) — the `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`.
67
+ - [Rollback patterns](references/rollback-patterns.md) — per-mutation-type rollback verb, baseline capture path, and post-rollback verification.
68
+ - [Official sources](references/official-sources.md) — authoritative upstream documentation links.
69
+
70
+ ## Response minimum
71
+
72
+ Return, at minimum:
73
+
74
+ - confirmed cluster context (cluster name, namespace where applicable, principal acting),
75
+ - pre-flight RBAC self-check result (matrix output, must-not rows confirmed `no`, must-be rows confirmed `yes`),
76
+ - pre-mutation baseline path (`/tmp/<resource>.before.yaml`),
77
+ - proposed mutation as the exact `kubectl patch` / `kubectl apply` / `kubectl create` command,
78
+ - blast-radius assessment (which workloads, namespaces, or external systems are affected),
79
+ - approval status with explicit human sign-off requirement when the change touches a security boundary,
80
+ - rollback verb (`kubectl apply -f /tmp/<resource>.before.yaml` for additive; specific delete only when the resource was the agent's own creation),
81
+ - post-mutation verification command (Service patch: `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}'`),
82
+ - explicit `REFUSED` response with the matching rule from `references/refusal-list.md` if the requested mutation is on the hard-refuse list.
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "kubernetes-live-network-architecture-mutation-guard",
3
+ "name": "Kubernetes Live Network Architecture Mutation Guard",
4
+ "type": "skill",
5
+ "provider": "kubernetes",
6
+ "harnesses": [
7
+ "codex",
8
+ "claude-code",
9
+ "cursor",
10
+ "gemini",
11
+ "kiro",
12
+ "other"
13
+ ],
14
+ "summary": "Guard live kubectl apply/patch/create operations on networking architecture surface — Service spec (internalTrafficPolicy, externalTrafficPolicy, topology-mode, trafficDistribution), CoreDNS Corefile, NodeLocal DNSCache install, Gateway API resources, and ClusterMesh peer Secrets. HARD REFUSE one-way doors (CNI replacement, kube-proxy mode swap, MTU change, Pod / Service CIDR resize, namespace deletion). Pre-flight kubectl auth can-i matrix against a least-privilege ServiceAccount before any write.",
15
+ "source_type": "original",
16
+ "official_docs": [
17
+ "https://kubernetes.io/docs/concepts/security/rbac-good-practices/",
18
+ "https://kubernetes.io/docs/reference/access-authn-authz/rbac/",
19
+ "https://kubernetes.io/docs/reference/kubectl/generated/kubectl_auth/kubectl_auth_can-i/",
20
+ "https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/",
21
+ "https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/",
22
+ "https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/",
23
+ "https://gateway-api.sigs.k8s.io/api-types/gateway/",
24
+ "https://gateway-api.sigs.k8s.io/api-types/httproute/",
25
+ "https://coredns.io/plugins/reload/",
26
+ "https://docs.cilium.io/en/stable/network/clustermesh/clustermesh/"
27
+ ],
28
+ "security_notes": "This skill is bound to a ServiceAccount with deliberately omitted verbs: no `delete` cluster-wide, no operations on `namespaces` / `customresourcedefinitions` / `kube-system` DaemonSets and Deployments / broad `secrets`. Pre-flight `kubectl auth can-i` matrix MUST run before any mutation; refuses if any must-not check returns `yes` (binding over-scoped) or if operator is in `system:masters` (RBAC bypass). HARD REFUSE list covers one-way doors that are out-of-scope for any agent: CNI replacement, kube-proxy mode swap, MTU change, Pod / Service CIDR resize. CoreDNS Corefile changes require backup capture and post-mutation reload verification within 2 minutes. Gateway resources require GatewayClass controller liveness check before creation. ClusterMesh peer Secret data fields must never be printed or logged.",
29
+ "last_verified": "2026-05-08",
30
+ "path": "skills/kubernetes/kubernetes-live-network-architecture-mutation-guard",
31
+ "author": "github: Raishin",
32
+ "version": "0.1.0"
33
+ }