@raishin/vanguard-frontier-agentic 1.3.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.
- package/README.md +23 -1
- package/agents/kubernetes/README.md +10 -1
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/AGENT.md +12 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/claude-code.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/copilot.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/cursor.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/gemini.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/kiro-cli.agent.json +1 -1
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/harnesses/kiro-ide.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/metadata.json +6 -3
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/references/least-privilege-rbac.yaml +98 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/references/rbac-pre-flight.md +108 -0
- package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/references/refusal-list.md +112 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/AGENT.md +13 -1
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/claude-code.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/copilot.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/cursor.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/gemini.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/kiro-cli.agent.json +1 -1
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/harnesses/kiro-ide.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/metadata.json +6 -3
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/references/least-privilege-rbac.yaml +92 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/references/rbac-pre-flight.md +108 -0
- package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/references/refusal-list.md +112 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/AGENT.md +13 -1
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/claude-code.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/copilot.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/cursor.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/gemini.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/kiro-cli.agent.json +1 -1
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/harnesses/kiro-ide.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/metadata.json +6 -3
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/references/least-privilege-rbac.yaml +101 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/references/rbac-pre-flight.md +106 -0
- package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/references/refusal-list.md +102 -0
- package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/AGENT.md +71 -0
- package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/claude-code.agent.md +54 -0
- package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/codex.toml +38 -0
- package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/copilot.agent.md +54 -0
- package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/cursor.agent.md +54 -0
- package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/gemini.agent.md +54 -0
- package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/harnesses/kiro-ide.agent.md +54 -0
- package/agents/kubernetes/kubernetes-live-network-architecture-mutation-guard-agent/metadata.json +44 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/AGENT.md +14 -2
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/claude-code.agent.md +13 -1
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/copilot.agent.md +13 -1
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/cursor.agent.md +13 -1
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/gemini.agent.md +13 -1
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/kiro-cli.agent.json +1 -1
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/harnesses/kiro-ide.agent.md +13 -1
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/metadata.json +6 -3
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/references/least-privilege-rbac.yaml +101 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/references/rbac-pre-flight.md +106 -0
- package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/references/refusal-list.md +102 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/AGENT.md +12 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/claude-code.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/copilot.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/cursor.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/gemini.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/kiro-cli.agent.json +1 -1
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/harnesses/kiro-ide.agent.md +12 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/metadata.json +6 -3
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/references/least-privilege-rbac.yaml +92 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/references/rbac-pre-flight.md +115 -0
- package/agents/kubernetes/kubernetes-live-rbac-mutation-guard-agent/references/refusal-list.md +132 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/AGENT.md +15 -3
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/claude-code.agent.md +15 -3
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/codex.toml +2 -2
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/copilot.agent.md +15 -3
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/cursor.agent.md +15 -3
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/gemini.agent.md +15 -3
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/kiro-cli.agent.json +1 -1
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/harnesses/kiro-ide.agent.md +15 -3
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/metadata.json +7 -4
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/references/least-privilege-rbac.yaml +92 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/references/rbac-pre-flight.md +109 -0
- package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/references/refusal-list.md +122 -0
- package/agents/kubernetes/kubernetes-network-architecture-review-agent/AGENT.md +65 -0
- package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/claude-code.agent.md +48 -0
- package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/codex.toml +37 -0
- package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/copilot.agent.md +48 -0
- package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/cursor.agent.md +48 -0
- package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/gemini.agent.md +48 -0
- package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/kubernetes/kubernetes-network-architecture-review-agent/harnesses/kiro-ide.agent.md +48 -0
- package/agents/kubernetes/kubernetes-network-architecture-review-agent/metadata.json +44 -0
- package/agents/kubernetes/kubernetes-psa-review-agent/metadata.json +2 -1
- package/agents/terraform/terraform-reviewer/AGENT.md +2 -1
- package/catalog/agents.json +78 -12
- package/catalog/install-roles.json +8 -4
- package/catalog/skill-manifest.json +521 -422
- package/catalog/skills.json +67 -0
- package/package.json +23 -4
- 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 +175 -0
- package/skills/argocd/argo-rollouts-progressive-delivery-review/SKILL.md +3 -0
- package/skills/argocd/argocd-gitops-review/SKILL.md +3 -0
- 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-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 +3 -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/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 +3 -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 +3 -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 +3 -0
- package/skills/cert-manager/cert-manager-issuer-trust-review/SKILL.md +3 -0
- package/skills/cilium/cilium-network-policy-review/SKILL.md +3 -0
- package/skills/falco/falco-runtime-threat-rules-review/SKILL.md +3 -0
- package/skills/finops/finops-cloud-price-advisor/SKILL.md +3 -0
- package/skills/fluxcd/fluxcd-kustomization-helmrelease-review/SKILL.md +3 -0
- package/skills/istio/istio-ambient-mesh-review/SKILL.md +3 -0
- package/skills/kubernetes/README.md +5 -1
- package/skills/kubernetes/external-secrets-operator-review/SKILL.md +3 -0
- package/skills/kubernetes/kubecost-chargeback-allocation-review/SKILL.md +3 -0
- package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/SKILL.md +82 -0
- package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/metadata.json +33 -0
- package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/least-privilege-rbac.yaml +210 -0
- package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/official-sources.md +41 -0
- package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/permitted-mutations.md +173 -0
- package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/rbac-pre-flight.md +252 -0
- package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/refusal-list.md +313 -0
- package/skills/kubernetes/kubernetes-live-network-architecture-mutation-guard/references/rollback-patterns.md +103 -0
- package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/SKILL.md +3 -0
- package/skills/kubernetes/kubernetes-maestro/SKILL.md +3 -0
- package/skills/kubernetes/kubernetes-maestro/references/safety-checklist.md +1 -1
- package/skills/kubernetes/kubernetes-maestro/references/workflow-and-output.md +57 -5
- package/skills/kubernetes/kubernetes-network-architecture-review/SKILL.md +84 -0
- package/skills/kubernetes/kubernetes-network-architecture-review/metadata.json +34 -0
- package/skills/kubernetes/kubernetes-network-architecture-review/references/dataplane-and-cni.md +89 -0
- package/skills/kubernetes/kubernetes-network-architecture-review/references/dns-and-discovery.md +120 -0
- package/skills/kubernetes/kubernetes-network-architecture-review/references/mcp-and-evidence.md +53 -0
- package/skills/kubernetes/kubernetes-network-architecture-review/references/multi-cluster-and-egress.md +69 -0
- package/skills/kubernetes/kubernetes-network-architecture-review/references/official-sources.md +54 -0
- package/skills/kubernetes/kubernetes-network-architecture-review/references/service-gateway-routing.md +108 -0
- package/skills/kubernetes/kubernetes-network-architecture-review/references/troubleshooting-playbook.md +100 -0
- package/skills/kubernetes/kubernetes-pod-security-admission-review/SKILL.md +3 -0
- package/skills/kubernetes/kubernetes-pod-spec-review/SKILL.md +3 -0
- package/skills/kubernetes/kubernetes-rbac-review/SKILL.md +3 -0
- package/skills/kubernetes/kubernetes-workload-identity-review/SKILL.md +3 -0
- package/skills/kyverno/kyverno-policy-review/SKILL.md +3 -0
- package/skills/oci/oci-autonomous-database-architect/SKILL.md +3 -0
- package/skills/oci/oci-certificates-issuer-review/SKILL.md +3 -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 +3 -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/opentelemetry-collector-config-review/SKILL.md +3 -0
- package/skills/prometheus/prometheus-alerting-cardinality-review/SKILL.md +3 -0
- package/skills/sigstore/sigstore-cosign-supply-chain-review/SKILL.md +3 -0
- package/skills/terraform/terraform-maestro/SKILL.md +3 -0
- package/skills/velero/velero-backup-restore-guard/SKILL.md +5 -2
- package/skills/velero/velero-backup-restore-guard/references/safety-checklist.md +1 -1
- package/skills/velero/velero-backup-restore-guard/references/workflow-and-output.md +17 -8
package/catalog/skills.json
CHANGED
|
@@ -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,8 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@raishin/vanguard-frontier-agentic",
|
|
3
|
-
"version": "1.
|
|
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
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/Raishin/vanguard-frontier-agentic.git"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/Raishin/vanguard-frontier-agentic#readme",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/Raishin/vanguard-frontier-agentic/issues"
|
|
13
|
+
},
|
|
6
14
|
"type": "commonjs",
|
|
7
15
|
"bin": {
|
|
8
16
|
"vfa-export-agents": "./scripts/export-marketplace-agents.mjs"
|
|
@@ -28,7 +36,17 @@
|
|
|
28
36
|
"validate:aws": "python3 tests/validate-aws-skill-quality.py && python3 tests/validate-aws-progressive-disclosure.py",
|
|
29
37
|
"validate:catalog": "python3 tests/validate-catalog.py",
|
|
30
38
|
"validate:links": "python3 tests/validate-links.py --offline",
|
|
31
|
-
"validate": "
|
|
39
|
+
"validate:allowed-tools": "python3 tests/validate-skill-allowed-tools.py",
|
|
40
|
+
"validate:skill-schema": "python3 tests/validate-skill-frontmatter-schema.py",
|
|
41
|
+
"validate:agent-schema": "python3 tests/validate-agent-frontmatter-schema.py",
|
|
42
|
+
"test:copilot-bundling": "python3 tests/test-copilot-skill-bundling.py",
|
|
43
|
+
"test:gemini-bundling": "python3 tests/test-gemini-skill-bundling.py",
|
|
44
|
+
"test:cursor-kiro-notices": "node tests/export-cursor-kiro-skill-notice.test.mjs",
|
|
45
|
+
"validate": "npm run validate:catalog && npm run validate:aws && npm run manifest:check && npm run validate:allowed-tools && npm run validate:skill-schema && npm run validate:agent-schema && npm run validate:links",
|
|
46
|
+
"release:sbom": "command -v syft >/dev/null 2>&1 && syft scan dir:. -o spdx-json=sbom.spdx.json || echo 'syft not installed; SBOM is generated in CI by anchore/sbom-action'",
|
|
47
|
+
"lint:md": "npx --yes markdownlint-cli2 \"**/*.md\" \"#node_modules\" \"#.git\" \"#.code-review-graph\" \"#CHANGELOG.md\"",
|
|
48
|
+
"lint:spell": "codespell",
|
|
49
|
+
"lint:docs": "npm run lint:md && npm run lint:spell"
|
|
32
50
|
},
|
|
33
51
|
"devDependencies": {
|
|
34
52
|
"semantic-release": "25.0.3",
|
|
@@ -38,10 +56,11 @@
|
|
|
38
56
|
"@semantic-release/github": "12.0.6",
|
|
39
57
|
"@semantic-release/commit-analyzer": "13.0.1",
|
|
40
58
|
"@semantic-release/release-notes-generator": "14.1.0",
|
|
41
|
-
"conventional-changelog-conventionalcommits": "
|
|
59
|
+
"conventional-changelog-conventionalcommits": "9.3.1"
|
|
42
60
|
},
|
|
43
61
|
"publishConfig": {
|
|
44
|
-
"access": "public"
|
|
62
|
+
"access": "public",
|
|
63
|
+
"provenance": true
|
|
45
64
|
},
|
|
46
65
|
"keywords": [
|
|
47
66
|
"agentic",
|
package/schemas/AGENTS.md
CHANGED
|
@@ -9,3 +9,17 @@
|
|
|
9
9
|
- Update `docs/release-versioning.md` if schema compatibility policy changes.
|
|
10
10
|
- Run `npm run validate` after schema edits.
|
|
11
11
|
|
|
12
|
+
## Schemas
|
|
13
|
+
|
|
14
|
+
- `skill.frontmatter.schema.json` — required SKILL.md frontmatter contract;
|
|
15
|
+
enforced by `tests/validate-skill-frontmatter-schema.py` (`validate:skill-schema`).
|
|
16
|
+
- `agent.schema.json` — agent `metadata.json` contract (id, provider, harnesses,
|
|
17
|
+
source_type, official_docs, security_notes, last_verified, companion_skills).
|
|
18
|
+
- `agent.frontmatter.schema.json` — required AGENT.md frontmatter contract.
|
|
19
|
+
Empirically derived from the 141-file corpus: only `metadata.author` and
|
|
20
|
+
`metadata.version` are required. Optional fields (`name`, `description`,
|
|
21
|
+
`model`, `allowed-tools`, `tools`, `color`) are typed when present, and
|
|
22
|
+
`additionalProperties: true` keeps harness-specific extensions non-breaking.
|
|
23
|
+
Enforced by `tests/validate-agent-frontmatter-schema.py`
|
|
24
|
+
(`validate:agent-schema`).
|
|
25
|
+
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/Raishin/vanguard-frontier-agentic/schemas/agent.frontmatter.schema.json",
|
|
4
|
+
"title": "AGENT.md Frontmatter",
|
|
5
|
+
"description": "JSON Schema for the YAML frontmatter block in every AGENT.md file. Required fields are derived empirically from the existing corpus (141 files), which uniformly carries only a metadata block. additionalProperties is true so future harness-specific fields (e.g., name, description, allowed-tools, model, color) can be added without breaking existing files. Authoritative agent identity, provider, harness, and security metadata live in the adjacent metadata.json (see schemas/agent.schema.json).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"metadata"
|
|
9
|
+
],
|
|
10
|
+
"properties": {
|
|
11
|
+
"metadata": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"description": "Authorship and versioning block. Mirrors the metadata block in SKILL.md frontmatter.",
|
|
14
|
+
"required": [
|
|
15
|
+
"author",
|
|
16
|
+
"version"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"author": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Author identifier (e.g. 'github: handle').",
|
|
22
|
+
"minLength": 1
|
|
23
|
+
},
|
|
24
|
+
"version": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "Semantic version of the AGENT.md asset.",
|
|
27
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(-[\\w.-]+)?$"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"additionalProperties": true
|
|
31
|
+
},
|
|
32
|
+
"name": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "Optional kebab-case identifier. Reserved for future harness-specific use; canonical id lives in metadata.json.",
|
|
35
|
+
"pattern": "^[a-z0-9][a-z0-9-]*$"
|
|
36
|
+
},
|
|
37
|
+
"description": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"description": "Optional human-readable purpose statement.",
|
|
40
|
+
"minLength": 20,
|
|
41
|
+
"maxLength": 4000
|
|
42
|
+
},
|
|
43
|
+
"model": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "Optional model preference hint (e.g. 'sonnet', 'opus').",
|
|
46
|
+
"minLength": 1
|
|
47
|
+
},
|
|
48
|
+
"allowed-tools": {
|
|
49
|
+
"description": "Optional pre-approval list of tools. Space-separated string or YAML sequence.",
|
|
50
|
+
"oneOf": [
|
|
51
|
+
{
|
|
52
|
+
"type": "string",
|
|
53
|
+
"minLength": 1
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"type": "array",
|
|
57
|
+
"minItems": 1,
|
|
58
|
+
"items": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"minLength": 1
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
"tools": {
|
|
66
|
+
"description": "Optional alias/alternative for allowed-tools used by some harnesses.",
|
|
67
|
+
"oneOf": [
|
|
68
|
+
{
|
|
69
|
+
"type": "string",
|
|
70
|
+
"minLength": 1
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"type": "array",
|
|
74
|
+
"minItems": 1,
|
|
75
|
+
"items": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"minLength": 1
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
"color": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"description": "Optional UI color hint used by some harnesses.",
|
|
85
|
+
"minLength": 1
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"additionalProperties": true
|
|
89
|
+
}
|
|
@@ -90,6 +90,14 @@
|
|
|
90
90
|
"path": {
|
|
91
91
|
"type": "string",
|
|
92
92
|
"minLength": 1
|
|
93
|
+
},
|
|
94
|
+
"companion_skills": {
|
|
95
|
+
"type": "array",
|
|
96
|
+
"description": "Explicit list of skill ids that pair with this agent. Overrides name-stripping convention. Set to [] to declare intentional no-pair.",
|
|
97
|
+
"items": {
|
|
98
|
+
"type": "string",
|
|
99
|
+
"pattern": "^[a-z0-9][a-z0-9-]*$"
|
|
100
|
+
}
|
|
93
101
|
}
|
|
94
102
|
},
|
|
95
103
|
"additionalProperties": true
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/Raishin/vanguard-frontier-agentic/schemas/skill.frontmatter.schema.json",
|
|
4
|
+
"title": "SKILL.md Frontmatter",
|
|
5
|
+
"description": "JSON Schema for the YAML frontmatter block in every SKILL.md file.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"name",
|
|
9
|
+
"description",
|
|
10
|
+
"allowed-tools",
|
|
11
|
+
"metadata"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"name": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Kebab-case identifier for the skill. Must start with a lowercase letter or digit.",
|
|
17
|
+
"pattern": "^[a-z0-9][a-z0-9-]*$"
|
|
18
|
+
},
|
|
19
|
+
"description": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Human-readable purpose statement. 50–1500 characters.",
|
|
22
|
+
"minLength": 50,
|
|
23
|
+
"maxLength": 1500
|
|
24
|
+
},
|
|
25
|
+
"allowed-tools": {
|
|
26
|
+
"description": "Explicit pre-approval list of tools this skill may invoke. May be a space-separated string or a YAML sequence of strings.",
|
|
27
|
+
"oneOf": [
|
|
28
|
+
{
|
|
29
|
+
"type": "string",
|
|
30
|
+
"minLength": 1
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "array",
|
|
34
|
+
"minItems": 1,
|
|
35
|
+
"items": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"minLength": 1
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"metadata": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"description": "Authorship and versioning block.",
|
|
45
|
+
"required": [
|
|
46
|
+
"author",
|
|
47
|
+
"version"
|
|
48
|
+
],
|
|
49
|
+
"properties": {
|
|
50
|
+
"author": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"description": "Author identifier (e.g. 'github: handle').",
|
|
53
|
+
"minLength": 1
|
|
54
|
+
},
|
|
55
|
+
"version": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "Semantic version of the skill.",
|
|
58
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(-[\\w.-]+)?$"
|
|
59
|
+
},
|
|
60
|
+
"updated": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"description": "ISO 8601 date (YYYY-MM-DD) of the last meaningful change to the skill. Optional but validated when present.",
|
|
63
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
|
64
|
+
},
|
|
65
|
+
"category": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"description": "Coarse marketplace taxonomy bucket. See docs/taxonomy.md for definitions.",
|
|
68
|
+
"enum": [
|
|
69
|
+
"security",
|
|
70
|
+
"platform",
|
|
71
|
+
"data",
|
|
72
|
+
"finops",
|
|
73
|
+
"ai",
|
|
74
|
+
"delivery",
|
|
75
|
+
"observability",
|
|
76
|
+
"compliance",
|
|
77
|
+
"resilience",
|
|
78
|
+
"networking"
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"lifecycle": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"description": "Stability stage. Optional; defaults to 'stable' when absent.",
|
|
84
|
+
"enum": ["experimental", "beta", "stable", "deprecated"]
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"additionalProperties": true
|
|
88
|
+
},
|
|
89
|
+
"disable-model-invocation": {
|
|
90
|
+
"type": "boolean",
|
|
91
|
+
"description": "Optional. When true, the skill suppresses direct model invocation and relies entirely on tool calls."
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"additionalProperties": true
|
|
95
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Apply least-privilege `allowed-tools` to every SKILL.md frontmatter.
|
|
3
|
+
|
|
4
|
+
Taxonomy (matched against skill id, first match wins):
|
|
5
|
+
maestro -> Agent Skill Read Grep Glob
|
|
6
|
+
*-patch-executor,
|
|
7
|
+
*-fix-operator,
|
|
8
|
+
*-corrector,
|
|
9
|
+
*-deployment-hotfix-*,
|
|
10
|
+
*-remediation-operator,
|
|
11
|
+
*-rollout-corrector,
|
|
12
|
+
*-pipeline-fix-operator -> Read Edit Write MultiEdit Grep Glob
|
|
13
|
+
*-developer,
|
|
14
|
+
*-agentcore,
|
|
15
|
+
aws-generative-ai-developer,
|
|
16
|
+
*-application-developer -> Read Edit Write MultiEdit Grep Glob Bash
|
|
17
|
+
*-live-*-guard,
|
|
18
|
+
velero-backup-restore-guard
|
|
19
|
+
-> Read Grep Glob WebFetch
|
|
20
|
+
*-investigator,
|
|
21
|
+
*-responder,
|
|
22
|
+
*-advisor,
|
|
23
|
+
*-coordinator,
|
|
24
|
+
*-watch-coordinator,
|
|
25
|
+
*-analyst,
|
|
26
|
+
*-planner,
|
|
27
|
+
finops-cloud-price-advisor
|
|
28
|
+
-> Read Grep Glob WebFetch
|
|
29
|
+
default (review/governor/
|
|
30
|
+
auditor/mapper/architect/
|
|
31
|
+
reviewer/steward/selector
|
|
32
|
+
/skill-designer) -> Read Grep Glob
|
|
33
|
+
|
|
34
|
+
Skip if `allowed-tools` is already declared (idempotent).
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
from __future__ import annotations
|
|
38
|
+
|
|
39
|
+
import sys
|
|
40
|
+
from pathlib import Path
|
|
41
|
+
|
|
42
|
+
ROOT = Path(__file__).resolve().parents[1]
|
|
43
|
+
SKILLS_DIR = ROOT / "skills"
|
|
44
|
+
|
|
45
|
+
PATCHERS = (
|
|
46
|
+
"-patch-executor", "-fix-operator", "-corrector",
|
|
47
|
+
"-deployment-hotfix-operator", "-remediation-operator",
|
|
48
|
+
"-rollout-corrector", "-pipeline-fix-operator",
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
DEVELOPERS = (
|
|
52
|
+
"-developer", "-application-developer",
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
LIVE_GUARDS = ("-live-",)
|
|
56
|
+
|
|
57
|
+
INVESTIGATORS = (
|
|
58
|
+
"-investigator", "-responder", "-advisor", "-coordinator",
|
|
59
|
+
"-analyst", "-planner",
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def classify(skill_id: str) -> str:
|
|
64
|
+
if skill_id.endswith("-maestro") or skill_id == "kubernetes-maestro" or skill_id == "terraform-maestro":
|
|
65
|
+
return "Agent Skill Read Grep Glob"
|
|
66
|
+
for s in PATCHERS:
|
|
67
|
+
if skill_id.endswith(s):
|
|
68
|
+
return "Read Edit Write MultiEdit Grep Glob"
|
|
69
|
+
if skill_id == "aws-agentcore" or skill_id == "aws-generative-ai-developer":
|
|
70
|
+
return "Read Edit Write MultiEdit Grep Glob Bash"
|
|
71
|
+
for s in DEVELOPERS:
|
|
72
|
+
if skill_id.endswith(s):
|
|
73
|
+
return "Read Edit Write MultiEdit Grep Glob Bash"
|
|
74
|
+
for s in LIVE_GUARDS:
|
|
75
|
+
if s in skill_id and skill_id.endswith("-guard"):
|
|
76
|
+
return "Read Grep Glob WebFetch"
|
|
77
|
+
if skill_id == "velero-backup-restore-guard":
|
|
78
|
+
return "Read Grep Glob WebFetch"
|
|
79
|
+
for s in INVESTIGATORS:
|
|
80
|
+
if skill_id.endswith(s):
|
|
81
|
+
return "Read Grep Glob WebFetch"
|
|
82
|
+
if skill_id == "finops-cloud-price-advisor":
|
|
83
|
+
return "Read Grep Glob WebFetch"
|
|
84
|
+
return "Read Grep Glob"
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def apply(skill_md: Path) -> tuple[bool, str]:
|
|
88
|
+
text = skill_md.read_text(encoding="utf-8")
|
|
89
|
+
if not text.startswith("---\n"):
|
|
90
|
+
return False, "no frontmatter"
|
|
91
|
+
|
|
92
|
+
end = text.find("\n---", 4)
|
|
93
|
+
if end == -1:
|
|
94
|
+
return False, "unterminated frontmatter"
|
|
95
|
+
|
|
96
|
+
fm_block = text[4:end]
|
|
97
|
+
if "\nallowed-tools:" in "\n" + fm_block:
|
|
98
|
+
return False, "already has allowed-tools"
|
|
99
|
+
|
|
100
|
+
skill_id = skill_md.parent.name
|
|
101
|
+
tools = classify(skill_id)
|
|
102
|
+
|
|
103
|
+
# Insert allowed-tools immediately after the description block,
|
|
104
|
+
# before the metadata: block (if any) or before the closing ---.
|
|
105
|
+
lines = fm_block.split("\n")
|
|
106
|
+
insert_at = None
|
|
107
|
+
for i, line in enumerate(lines):
|
|
108
|
+
if line.startswith("metadata:"):
|
|
109
|
+
insert_at = i
|
|
110
|
+
break
|
|
111
|
+
if insert_at is None:
|
|
112
|
+
insert_at = len(lines)
|
|
113
|
+
|
|
114
|
+
lines.insert(insert_at, f"allowed-tools: {tools}")
|
|
115
|
+
new_fm = "\n".join(lines)
|
|
116
|
+
new_text = "---\n" + new_fm + text[end:]
|
|
117
|
+
skill_md.write_text(new_text, encoding="utf-8")
|
|
118
|
+
return True, tools
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def main() -> int:
|
|
122
|
+
files = sorted(SKILLS_DIR.glob("*/*/SKILL.md"))
|
|
123
|
+
summary: dict[str, int] = {}
|
|
124
|
+
skipped = 0
|
|
125
|
+
for f in files:
|
|
126
|
+
ok, info = apply(f)
|
|
127
|
+
if ok:
|
|
128
|
+
summary[info] = summary.get(info, 0) + 1
|
|
129
|
+
else:
|
|
130
|
+
skipped += 1
|
|
131
|
+
if info != "already has allowed-tools":
|
|
132
|
+
print(f"WARN: {f.relative_to(ROOT)}: {info}", file=sys.stderr)
|
|
133
|
+
|
|
134
|
+
total = sum(summary.values())
|
|
135
|
+
print(f"Applied allowed-tools to {total} skills (skipped {skipped})")
|
|
136
|
+
for tools, count in sorted(summary.items(), key=lambda x: -x[1]):
|
|
137
|
+
print(f" {count:3d} {tools}")
|
|
138
|
+
return 0
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
if __name__ == "__main__":
|
|
142
|
+
sys.exit(main())
|