@raishin/vanguard-frontier-agentic 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/README.md +23 -1
  2. package/agents/kubernetes/kubernetes-live-admission-policy-guard-agent/metadata.json +2 -1
  3. package/agents/kubernetes/kubernetes-live-argocd-sync-guard-agent/metadata.json +2 -1
  4. package/agents/kubernetes/kubernetes-live-mesh-policy-guard-agent/metadata.json +2 -1
  5. package/agents/kubernetes/kubernetes-live-network-policy-guard-agent/metadata.json +2 -1
  6. package/agents/kubernetes/kubernetes-live-velero-restore-guard-agent/metadata.json +2 -1
  7. package/agents/kubernetes/kubernetes-psa-review-agent/metadata.json +2 -1
  8. package/agents/terraform/terraform-reviewer/AGENT.md +2 -1
  9. package/catalog/skill-manifest.json +414 -414
  10. package/package.json +23 -4
  11. package/schemas/AGENTS.md +14 -0
  12. package/schemas/agent.frontmatter.schema.json +89 -0
  13. package/schemas/agent.schema.json +8 -0
  14. package/schemas/skill.frontmatter.schema.json +95 -0
  15. package/scripts/apply-skill-allowed-tools.py +142 -0
  16. package/scripts/backfill-skill-metadata.py +410 -0
  17. package/scripts/export-marketplace-agents.mjs +175 -0
  18. package/skills/argocd/argo-rollouts-progressive-delivery-review/SKILL.md +3 -0
  19. package/skills/argocd/argocd-gitops-review/SKILL.md +3 -0
  20. package/skills/aws/aws-agentcore/SKILL.md +3 -0
  21. package/skills/aws/aws-api-edge-delivery-review/SKILL.md +3 -0
  22. package/skills/aws/aws-bedrock-agent-security-governor/SKILL.md +3 -0
  23. package/skills/aws/aws-change-impact-advisor/SKILL.md +3 -0
  24. package/skills/aws/aws-ci-cd-release-engineer/SKILL.md +3 -0
  25. package/skills/aws/aws-compliance-evidence-mapper/SKILL.md +3 -0
  26. package/skills/aws/aws-cost-anomaly-watch-coordinator/SKILL.md +3 -0
  27. package/skills/aws/aws-cost-optimization-governor/SKILL.md +3 -0
  28. package/skills/aws/aws-daily-operations-briefing-coordinator/SKILL.md +3 -0
  29. package/skills/aws/aws-data-protection-backup-steward/SKILL.md +3 -0
  30. package/skills/aws/aws-deployment-hotfix-operator/SKILL.md +3 -0
  31. package/skills/aws/aws-devops-agent-skill-designer/SKILL.md +3 -0
  32. package/skills/aws/aws-dynamodb-data-modeling-performance-review/SKILL.md +3 -0
  33. package/skills/aws/aws-ec2-compute-operations-steward/SKILL.md +3 -0
  34. package/skills/aws/aws-ecs-fargate-platform-operator/SKILL.md +3 -0
  35. package/skills/aws/aws-ecs-service-remediation-operator/SKILL.md +3 -0
  36. package/skills/aws/aws-eks-platform-operator/SKILL.md +3 -0
  37. package/skills/aws/aws-event-driven-architecture-review/SKILL.md +3 -0
  38. package/skills/aws/aws-generative-ai-developer/SKILL.md +3 -0
  39. package/skills/aws/aws-iac-change-safety-review/SKILL.md +3 -0
  40. package/skills/aws/aws-iac-patch-executor/SKILL.md +3 -0
  41. package/skills/aws/aws-iam-least-privilege-review/SKILL.md +3 -0
  42. package/skills/aws/aws-kms-secrets-lifecycle-steward/SKILL.md +3 -0
  43. package/skills/aws/aws-landing-zone-governor/SKILL.md +3 -0
  44. package/skills/aws/aws-live-deployment-guarded-operator/SKILL.md +3 -0
  45. package/skills/aws/aws-live-ecs-rollout-guard/SKILL.md +3 -0
  46. package/skills/aws/aws-live-iac-change-guard/SKILL.md +3 -0
  47. package/skills/aws/aws-live-pipeline-approval-operator/SKILL.md +3 -0
  48. package/skills/aws/aws-live-serverless-release-guard/SKILL.md +3 -0
  49. package/skills/aws/aws-maestro/SKILL.md +3 -0
  50. package/skills/aws/aws-migration-cutover-architect/SKILL.md +3 -0
  51. package/skills/aws/aws-network-architect/SKILL.md +3 -0
  52. package/skills/aws/aws-non-destructive-task-automation-advisor/SKILL.md +3 -0
  53. package/skills/aws/aws-observability-incident-responder/SKILL.md +3 -0
  54. package/skills/aws/aws-pipeline-fix-operator/SKILL.md +3 -0
  55. package/skills/aws/aws-private-ca-issuer-review/SKILL.md +3 -0
  56. package/skills/aws/aws-rds-aurora-performance-investigator/SKILL.md +3 -0
  57. package/skills/aws/aws-resilience-bcdr-review/SKILL.md +3 -0
  58. package/skills/aws/aws-s3-data-perimeter-governor/SKILL.md +3 -0
  59. package/skills/aws/aws-security-posture-hardening/SKILL.md +3 -0
  60. package/skills/aws/aws-serverless-production-readiness/SKILL.md +3 -0
  61. package/skills/aws/aws-serverless-rollout-corrector/SKILL.md +3 -0
  62. package/skills/aws/aws-solution-architect/SKILL.md +3 -0
  63. package/skills/aws/aws-ticket-triage-escalation-coordinator/SKILL.md +3 -0
  64. package/skills/azure/azure-ai-foundry-ops-governor/SKILL.md +3 -0
  65. package/skills/azure/azure-aks-platform-operator/SKILL.md +3 -0
  66. package/skills/azure/azure-app-service-production-readiness/SKILL.md +3 -0
  67. package/skills/azure/azure-cosmosdb-application-developer/SKILL.md +3 -0
  68. package/skills/azure/azure-cosmosdb-performance-investigator/SKILL.md +3 -0
  69. package/skills/azure/azure-cosmosdb-platform-operator/SKILL.md +3 -0
  70. package/skills/azure/azure-cost-estimation-review/SKILL.md +3 -0
  71. package/skills/azure/azure-cost-optimization-governor/SKILL.md +3 -0
  72. package/skills/azure/azure-entra-id-specialist/SKILL.md +3 -0
  73. package/skills/azure/azure-governance-policy-guardrails/SKILL.md +3 -0
  74. package/skills/azure/azure-identity-governance-review/SKILL.md +3 -0
  75. package/skills/azure/azure-key-vault-secret-lifecycle-auditor/SKILL.md +3 -0
  76. package/skills/azure/azure-keyvault-certificate-issuer-review/SKILL.md +3 -0
  77. package/skills/azure/azure-landing-zone-architect/SKILL.md +3 -0
  78. package/skills/azure/azure-live-aks-rollout-guard/SKILL.md +3 -0
  79. package/skills/azure/azure-live-app-service-slot-swap-guard/SKILL.md +3 -0
  80. package/skills/azure/azure-live-arm-deployment-stack-guard/SKILL.md +3 -0
  81. package/skills/azure/azure-live-cost-budget-action-guard/SKILL.md +3 -0
  82. package/skills/azure/azure-live-entra-role-assignment-guard/SKILL.md +3 -0
  83. package/skills/azure/azure-live-keyvault-rotation-purge-guard/SKILL.md +3 -0
  84. package/skills/azure/azure-live-pim-jit-activation-guard/SKILL.md +3 -0
  85. package/skills/azure/azure-maestro/SKILL.md +3 -0
  86. package/skills/azure/azure-migrate-landing-zone-cutover/SKILL.md +3 -0
  87. package/skills/azure/azure-network-topology-review/SKILL.md +3 -0
  88. package/skills/azure/azure-observability-investigator/SKILL.md +3 -0
  89. package/skills/azure/azure-platform-automation-devops/SKILL.md +3 -0
  90. package/skills/azure/azure-private-endpoint-adoption-planner/SKILL.md +3 -0
  91. package/skills/azure/azure-rbac-review/SKILL.md +3 -0
  92. package/skills/azure/azure-resilience-bcdr-review/SKILL.md +3 -0
  93. package/skills/azure/azure-resource-health-incident-triage/SKILL.md +3 -0
  94. package/skills/azure/azure-role-selector/SKILL.md +3 -0
  95. package/skills/azure/azure-security-posture-hardening/SKILL.md +3 -0
  96. package/skills/azure/azure-subscription-resource-organization/SKILL.md +3 -0
  97. package/skills/backstage/backstage-scaffolder-template-review/SKILL.md +3 -0
  98. package/skills/cert-manager/cert-manager-issuer-trust-review/SKILL.md +3 -0
  99. package/skills/cilium/cilium-network-policy-review/SKILL.md +3 -0
  100. package/skills/falco/falco-runtime-threat-rules-review/SKILL.md +3 -0
  101. package/skills/finops/finops-cloud-price-advisor/SKILL.md +3 -0
  102. package/skills/fluxcd/fluxcd-kustomization-helmrelease-review/SKILL.md +3 -0
  103. package/skills/istio/istio-ambient-mesh-review/SKILL.md +3 -0
  104. package/skills/kubernetes/external-secrets-operator-review/SKILL.md +3 -0
  105. package/skills/kubernetes/kubecost-chargeback-allocation-review/SKILL.md +3 -0
  106. package/skills/kubernetes/kubernetes-live-rbac-mutation-guard/SKILL.md +3 -0
  107. package/skills/kubernetes/kubernetes-maestro/SKILL.md +3 -0
  108. package/skills/kubernetes/kubernetes-pod-security-admission-review/SKILL.md +3 -0
  109. package/skills/kubernetes/kubernetes-pod-spec-review/SKILL.md +3 -0
  110. package/skills/kubernetes/kubernetes-rbac-review/SKILL.md +3 -0
  111. package/skills/kubernetes/kubernetes-workload-identity-review/SKILL.md +3 -0
  112. package/skills/kyverno/kyverno-policy-review/SKILL.md +3 -0
  113. package/skills/oci/oci-autonomous-database-architect/SKILL.md +3 -0
  114. package/skills/oci/oci-certificates-issuer-review/SKILL.md +3 -0
  115. package/skills/oci/oci-cloud-guard-responder/SKILL.md +3 -0
  116. package/skills/oci/oci-compute-instance-agent-operator/SKILL.md +3 -0
  117. package/skills/oci/oci-compute-platform-operator/SKILL.md +3 -0
  118. package/skills/oci/oci-cost-finops-analyst/SKILL.md +3 -0
  119. package/skills/oci/oci-database-platform-dba/SKILL.md +3 -0
  120. package/skills/oci/oci-dbtools-sql-analyst/SKILL.md +3 -0
  121. package/skills/oci/oci-devops-container-platform-engineer/SKILL.md +3 -0
  122. package/skills/oci/oci-exadata-database-architect/SKILL.md +3 -0
  123. package/skills/oci/oci-exadata-platform-architect/SKILL.md +3 -0
  124. package/skills/oci/oci-fusion-apps-environment-operator/SKILL.md +3 -0
  125. package/skills/oci/oci-goldengate-replication-operator/SKILL.md +3 -0
  126. package/skills/oci/oci-identity-access-governor/SKILL.md +3 -0
  127. package/skills/oci/oci-iot-digital-twin-engineer/SKILL.md +3 -0
  128. package/skills/oci/oci-limits-capacity-planner/SKILL.md +3 -0
  129. package/skills/oci/oci-live-autonomous-db-lifecycle-guard/SKILL.md +3 -0
  130. package/skills/oci/oci-live-cost-budget-runaway-guard/SKILL.md +3 -0
  131. package/skills/oci/oci-live-iam-policy-compartment-guard/SKILL.md +3 -0
  132. package/skills/oci/oci-live-network-security-rule-guard/SKILL.md +3 -0
  133. package/skills/oci/oci-live-oke-rollout-guard/SKILL.md +3 -0
  134. package/skills/oci/oci-live-resource-manager-stack-guard/SKILL.md +3 -0
  135. package/skills/oci/oci-live-vault-key-destruction-guard/SKILL.md +3 -0
  136. package/skills/oci/oci-load-balancer-traffic-engineer/SKILL.md +3 -0
  137. package/skills/oci/oci-maestro/SKILL.md +3 -0
  138. package/skills/oci/oci-migration-cutover-architect/SKILL.md +3 -0
  139. package/skills/oci/oci-multi-cloud-architect/SKILL.md +3 -0
  140. package/skills/oci/oci-mysql-heatwave-ai-specialist/SKILL.md +3 -0
  141. package/skills/oci/oci-network-architect/SKILL.md +3 -0
  142. package/skills/oci/oci-observability-incident-responder/SKILL.md +3 -0
  143. package/skills/oci/oci-recovery-service-operator/SKILL.md +3 -0
  144. package/skills/oci/oci-registry-artifact-governor/SKILL.md +3 -0
  145. package/skills/oci/oci-resource-search-inventory-analyst/SKILL.md +3 -0
  146. package/skills/oci/oci-security-compliance-reviewer/SKILL.md +3 -0
  147. package/skills/oci/oci-solution-architect/SKILL.md +3 -0
  148. package/skills/oci/oci-storage-backup-steward/SKILL.md +3 -0
  149. package/skills/oci/oci-support-incident-coordinator/SKILL.md +3 -0
  150. package/skills/oci/oracle-oci-mcp-grounded-advisor/SKILL.md +3 -0
  151. package/skills/opentelemetry/opentelemetry-collector-config-review/SKILL.md +3 -0
  152. package/skills/prometheus/prometheus-alerting-cardinality-review/SKILL.md +3 -0
  153. package/skills/sigstore/sigstore-cosign-supply-chain-review/SKILL.md +3 -0
  154. package/skills/terraform/terraform-maestro/SKILL.md +3 -0
  155. package/skills/velero/velero-backup-restore-guard/SKILL.md +3 -0
package/package.json CHANGED
@@ -1,8 +1,16 @@
1
1
  {
2
2
  "name": "@raishin/vanguard-frontier-agentic",
3
- "version": "1.3.0",
3
+ "version": "1.4.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": "npm run validate:catalog && npm run validate:aws && npm run manifest:check && npm run validate:links"
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": "8.0.0"
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())