@raishin/vanguard-frontier-agentic 1.8.0 → 2.0.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/.claude-plugin/plugin.json +4 -1
- package/.cursor-plugin/plugin.json +4 -1
- package/.github/plugin/marketplace.json +1 -1
- package/README.md +6 -0
- package/agents/finops/AGENTS.md +19 -9
- package/agents/finops/README.md +75 -5
- package/agents/finops/finops-ai-economist-agent/AGENT.md +71 -0
- package/agents/finops/finops-ai-economist-agent/PERMISSIONS.md +138 -0
- package/agents/finops/finops-ai-economist-agent/README.md +27 -0
- package/agents/finops/finops-ai-economist-agent/harnesses/claude-code.agent.md +50 -0
- package/agents/finops/finops-ai-economist-agent/harnesses/codex.toml +40 -0
- package/agents/finops/finops-ai-economist-agent/harnesses/copilot.agent.md +58 -0
- package/agents/finops/finops-ai-economist-agent/harnesses/cursor.agent.md +50 -0
- package/agents/finops/finops-ai-economist-agent/harnesses/gemini.agent.md +50 -0
- package/agents/finops/finops-ai-economist-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/finops/finops-ai-economist-agent/harnesses/kiro-ide.agent.md +50 -0
- package/agents/finops/finops-ai-economist-agent/metadata.json +45 -0
- package/agents/finops/finops-cloud-price-advisor-agent/AGENT.md +4 -3
- package/agents/finops/finops-cloud-price-advisor-agent/PERMISSIONS.md +46 -0
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/claude-code.agent.md +2 -2
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/codex.toml +3 -3
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/copilot.agent.md +2 -2
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/cursor.agent.md +2 -2
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/gemini.agent.md +2 -2
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/kiro-cli.agent.json +1 -1
- package/agents/finops/finops-cloud-price-advisor-agent/harnesses/kiro-ide.agent.md +2 -2
- package/agents/finops/finops-cloud-price-advisor-agent/metadata.json +14 -5
- package/agents/finops/finops-kubernetes-rightsizer-agent/AGENT.md +102 -0
- package/agents/finops/finops-kubernetes-rightsizer-agent/PERMISSIONS.md +143 -0
- package/agents/finops/finops-kubernetes-rightsizer-agent/README.md +37 -0
- package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/claude-code.agent.md +46 -0
- package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/codex.toml +47 -0
- package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/copilot.agent.md +54 -0
- package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/cursor.agent.md +46 -0
- package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/gemini.agent.md +46 -0
- package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/finops/finops-kubernetes-rightsizer-agent/harnesses/kiro-ide.agent.md +46 -0
- package/agents/finops/finops-kubernetes-rightsizer-agent/metadata.json +46 -0
- package/agents/finops/finops-maestro-agent/AGENT.md +61 -0
- package/agents/finops/finops-maestro-agent/PERMISSIONS.md +64 -0
- package/agents/finops/finops-maestro-agent/README.md +52 -0
- package/agents/finops/finops-maestro-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/finops/finops-maestro-agent/harnesses/codex.toml +34 -0
- package/agents/finops/finops-maestro-agent/harnesses/copilot.agent.md +49 -0
- package/agents/finops/finops-maestro-agent/harnesses/cursor.agent.md +42 -0
- package/agents/finops/finops-maestro-agent/harnesses/gemini.agent.md +42 -0
- package/agents/finops/finops-maestro-agent/harnesses/kiro-cli.agent.json +1 -0
- package/agents/finops/finops-maestro-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/finops/finops-maestro-agent/metadata.json +38 -0
- package/catalog/agents.json +294 -198
- package/catalog/asset-integrity.json +490 -65
- package/catalog/install-roles.json +10 -0
- package/catalog/skill-manifest.json +210 -13
- package/catalog/skills.json +373 -205
- package/package.json +7 -5
- package/plugins/vanguard-frontier-agentic/.codex-plugin/plugin.json +1 -1
- package/powers/vanguard-kubernetes/POWER.md +1 -1
- package/scripts/export-marketplace-agents.mjs +146 -84
- package/scripts/generate-changelog-counts.mjs +34 -0
- package/scripts/release-prepare.mjs +97 -5
- package/skills/finops/README.md +60 -9
- package/skills/finops/carbon-cost-pair/README.md +25 -0
- package/skills/finops/carbon-cost-pair/SKILL.md +96 -0
- package/skills/finops/carbon-cost-pair/metadata.json +27 -0
- package/skills/finops/carbon-cost-pair/references/methodology.md +78 -0
- package/skills/finops/carbon-cost-pair/references/sources.md +103 -0
- package/skills/finops/fetch-foundation-model-pricing/README.md +25 -0
- package/skills/finops/fetch-foundation-model-pricing/SKILL.md +85 -0
- package/skills/finops/fetch-foundation-model-pricing/metadata.json +30 -0
- package/skills/finops/fetch-foundation-model-pricing/references/providers.md +88 -0
- package/skills/finops/fetch-foundation-model-pricing/references/token-economics.md +94 -0
- package/skills/finops/finops-cloud-price-advisor/SKILL.md +25 -16
- package/skills/finops/finops-cloud-price-advisor/metadata.json +11 -5
- package/skills/finops/finops-cloud-price-advisor/references/currency-handling.md +73 -0
- package/skills/finops/finops-cloud-price-advisor/references/estimation-workflow.md +106 -7
- package/skills/finops/finops-cloud-price-advisor/references/official-sources.md +71 -0
- package/skills/finops/finops-cloud-price-advisor/references/pricing-apis.md +299 -10
- package/skills/finops/finops-cloud-price-advisor/references/provider-fallbacks.md +400 -0
- package/skills/finops/finops-maestro/README.md +27 -0
- package/skills/finops/finops-maestro/SKILL.md +49 -0
- package/skills/finops/finops-maestro/metadata.json +26 -0
- package/skills/finops/finops-maestro/references/safety-checklist.md +67 -0
- package/skills/finops/finops-maestro/references/workflow-and-output.md +107 -0
- package/skills/finops/focus-spec-normalizer/README.md +25 -0
- package/skills/finops/focus-spec-normalizer/SKILL.md +113 -0
- package/skills/finops/focus-spec-normalizer/metadata.json +26 -0
- package/skills/finops/focus-spec-normalizer/references/focus-columns.md +69 -0
- package/skills/finops/focus-spec-normalizer/references/vendor-mapping.md +229 -0
- package/skills/finops/kubernetes-allocation-report/README.md +23 -0
- package/skills/finops/kubernetes-allocation-report/SKILL.md +95 -0
- package/skills/finops/kubernetes-allocation-report/metadata.json +26 -0
- package/skills/finops/kubernetes-allocation-report/references/attribution-workflow.md +90 -0
- package/skills/finops/kubernetes-allocation-report/references/opencost-mapping.md +70 -0
- package/skills/finops/rightsize-recommendation/README.md +23 -0
- package/skills/finops/rightsize-recommendation/SKILL.md +139 -0
- package/skills/finops/rightsize-recommendation/metadata.json +27 -0
- package/skills/finops/rightsize-recommendation/references/karpenter-consolidation.md +79 -0
- package/skills/finops/rightsize-recommendation/references/metric-sources.md +124 -0
- package/tests/AGENTS.md +17 -0
- package/tests/_generate_maestro_routing_fixtures.py +372 -0
- package/tests/export-cursor-kiro-skill-notice.test.mjs +92 -0
- package/tests/fixtures/README.md +53 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/001-happy-ack-container-platform-operator.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/002-happy-actiontrail-audit-analyst.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/003-happy-analyticdb-realtime.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/004-happy-certificate-manager-issuer-review.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/005-happy-change-impact-advisor.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/006-happy-china-compliance.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/007-happy-cost-anomaly-watch-coordinator.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/008-happy-cost-finops-analyst.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/009-happy-daily-operations-briefing-coordinator.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/010-happy-devops-cicd-operator.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/011-happy-ecs-compute-operator.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/012-happy-event-driven-architecture-review.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/013-happy-function-serverless-operator.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/014-happy-iac-change-safety-review.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/015-happy-kms-secret-lifecycle-steward.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/016-happy-landing-zone-architect.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/017-happy-load-balancer-traffic-engineer.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/018-happy-maxcompute-dataworks-analyst.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/019-happy-migration-architect.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/020-happy-mse-microservice-engine.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/021-happy-network-architect.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/022-happy-observability-incident-responder.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/023-happy-oss-data-perimeter-governor.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/024-happy-oss-storage-steward.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/025-happy-polardb-rds-dba.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/026-happy-ram-iam-review.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/027-happy-registry-artifact-governor.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/028-happy-resilience-bcdr-review.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/029-happy-security-center-hardening.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/030-happy-serverless-production-readiness.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/031-happy-solution-architect.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/032-happy-support-incident-coordinator.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/033-happy-ticket-triage-escalation-coordinator.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/034-happy-waf-cost-optimization-review.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/035-happy-waf-reliability-review.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/036-happy-waf-security-review.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/adv-liveguard-01-live-ack-rollout-guard.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/adv-liveguard-02-live-cost-budget-action-guard.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/adv-liveguard-03-live-kms-key-mutation-guard.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/adv-liveguard-04-live-oss-bucket-policy-guard.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/adv-liveguard-05-live-ram-policy-change-guard.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/adv-liveguard-06-live-rds-polardb-mutation-guard.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/alibaba-maestro-routing/expected/adv-secrets-bait.json +8 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/001-happy-ack-container-platform-operator.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/002-happy-actiontrail-audit-analyst.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/003-happy-analyticdb-realtime.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/004-happy-certificate-manager-issuer-review.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/005-happy-change-impact-advisor.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/006-happy-china-compliance.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/007-happy-cost-anomaly-watch-coordinator.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/008-happy-cost-finops-analyst.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/009-happy-daily-operations-briefing-coordinator.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/010-happy-devops-cicd-operator.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/011-happy-ecs-compute-operator.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/012-happy-event-driven-architecture-review.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/013-happy-function-serverless-operator.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/014-happy-iac-change-safety-review.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/015-happy-kms-secret-lifecycle-steward.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/016-happy-landing-zone-architect.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/017-happy-load-balancer-traffic-engineer.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/018-happy-maxcompute-dataworks-analyst.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/019-happy-migration-architect.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/020-happy-mse-microservice-engine.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/021-happy-network-architect.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/022-happy-observability-incident-responder.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/023-happy-oss-data-perimeter-governor.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/024-happy-oss-storage-steward.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/025-happy-polardb-rds-dba.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/026-happy-ram-iam-review.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/027-happy-registry-artifact-governor.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/028-happy-resilience-bcdr-review.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/029-happy-security-center-hardening.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/030-happy-serverless-production-readiness.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/031-happy-solution-architect.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/032-happy-support-incident-coordinator.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/033-happy-ticket-triage-escalation-coordinator.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/034-happy-waf-cost-optimization-review.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/035-happy-waf-reliability-review.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/036-happy-waf-security-review.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/adv-liveguard-01-live-ack-rollout-guard.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/adv-liveguard-02-live-cost-budget-action-guard.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/adv-liveguard-03-live-kms-key-mutation-guard.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/adv-liveguard-04-live-oss-bucket-policy-guard.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/adv-liveguard-05-live-ram-policy-change-guard.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/adv-liveguard-06-live-rds-polardb-mutation-guard.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/alibaba-maestro-routing/taxonomy.json +480 -0
- package/tests/fixtures/aws-maestro-routing/expected/001-happy-agentcore.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/002-happy-api-edge-delivery-review.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/003-happy-bedrock-agent-security-governor.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/004-happy-change-impact-advisor.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/005-happy-ci-cd-release-engineer.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/006-happy-compliance-evidence-mapper.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/007-happy-cost-anomaly-watch-coordinator.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/008-happy-cost-optimization-governor.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/009-happy-daily-operations-briefing-coordinator.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/010-happy-data-protection-backup-steward.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/011-happy-deployment-hotfix-operator.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/012-happy-devops-agent-skill-designer.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/013-happy-dynamodb-data-modeling-performance-review.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/014-happy-ec2-compute-operations-steward.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/015-happy-ecs-fargate-platform-operator.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/016-happy-ecs-service-remediation-operator.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/017-happy-eks-platform-operator.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/018-happy-event-driven-architecture-review.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/019-happy-generative-ai-developer.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/020-happy-iac-change-safety-review.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/021-happy-iac-patch-executor.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/022-happy-iam-least-privilege-review.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/023-happy-kms-secrets-lifecycle-steward.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/024-happy-landing-zone-governor.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/025-happy-migration-cutover-architect.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/026-happy-network-architect.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/027-happy-non-destructive-task-automation-advisor.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/028-happy-observability-incident-responder.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/029-happy-pipeline-fix-operator.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/030-happy-private-ca-issuer-review.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/031-happy-rds-aurora-performance-investigator.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/032-happy-resilience-bcdr-review.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/033-happy-s3-data-perimeter-governor.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/034-happy-security-posture-hardening.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/035-happy-serverless-production-readiness.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/036-happy-serverless-rollout-corrector.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/037-happy-solution-architect.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/038-happy-ticket-triage-escalation-coordinator.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/039-happy-waf-cost-optimization-review.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/040-happy-waf-reliability-review.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/041-happy-waf-security-review.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/aws-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/adv-liveguard-01-live-deployment-guarded-operator.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/adv-liveguard-02-live-ecs-rollout-guard.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/adv-liveguard-03-live-iac-change-guard.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/adv-liveguard-04-live-pipeline-approval-operator.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/adv-liveguard-05-live-serverless-release-guard.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/aws-maestro-routing/expected/adv-secrets-bait.json +6 -0
- package/tests/fixtures/aws-maestro-routing/inputs/001-happy-agentcore.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/002-happy-api-edge-delivery-review.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/003-happy-bedrock-agent-security-governor.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/004-happy-change-impact-advisor.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/005-happy-ci-cd-release-engineer.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/006-happy-compliance-evidence-mapper.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/007-happy-cost-anomaly-watch-coordinator.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/008-happy-cost-optimization-governor.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/009-happy-daily-operations-briefing-coordinator.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/010-happy-data-protection-backup-steward.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/011-happy-deployment-hotfix-operator.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/012-happy-devops-agent-skill-designer.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/013-happy-dynamodb-data-modeling-performance-review.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/014-happy-ec2-compute-operations-steward.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/015-happy-ecs-fargate-platform-operator.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/016-happy-ecs-service-remediation-operator.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/017-happy-eks-platform-operator.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/018-happy-event-driven-architecture-review.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/019-happy-generative-ai-developer.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/020-happy-iac-change-safety-review.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/021-happy-iac-patch-executor.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/022-happy-iam-least-privilege-review.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/023-happy-kms-secrets-lifecycle-steward.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/024-happy-landing-zone-governor.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/025-happy-migration-cutover-architect.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/026-happy-network-architect.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/027-happy-non-destructive-task-automation-advisor.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/028-happy-observability-incident-responder.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/029-happy-pipeline-fix-operator.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/030-happy-private-ca-issuer-review.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/031-happy-rds-aurora-performance-investigator.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/032-happy-resilience-bcdr-review.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/033-happy-s3-data-perimeter-governor.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/034-happy-security-posture-hardening.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/035-happy-serverless-production-readiness.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/036-happy-serverless-rollout-corrector.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/037-happy-solution-architect.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/038-happy-ticket-triage-escalation-coordinator.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/039-happy-waf-cost-optimization-review.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/040-happy-waf-reliability-review.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/041-happy-waf-security-review.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/adv-liveguard-01-live-deployment-guarded-operator.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/adv-liveguard-02-live-ecs-rollout-guard.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/adv-liveguard-03-live-iac-change-guard.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/adv-liveguard-04-live-pipeline-approval-operator.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/adv-liveguard-05-live-serverless-release-guard.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/aws-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/aws-maestro-routing/taxonomy.json +537 -0
- package/tests/fixtures/azure-maestro-routing/expected/001-happy-ai-foundry-ops-governor.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/002-happy-aks-platform-operator.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/003-happy-app-service-production-readiness.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/004-happy-cosmosdb-application-developer.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/005-happy-cosmosdb-performance-investigator.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/006-happy-cosmosdb-platform-operator.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/007-happy-cost-estimation-review.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/008-happy-cost-optimization-governor.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/009-happy-entra-id-specialist.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/010-happy-identity-governance-review.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/011-happy-key-vault-secret-lifecycle-auditor.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/012-happy-keyvault-certificate-issuer-review.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/013-happy-landing-zone-architect.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/014-happy-migrate-landing-zone-cutover.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/015-happy-network-topology-review.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/016-happy-observability-investigator.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/017-happy-platform-automation-devops.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/018-happy-private-endpoint-adoption-planner.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/019-happy-rbac-review.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/020-happy-resilience-bcdr-review.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/021-happy-resource-health-incident-triage.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/022-happy-role-selector.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/023-happy-security-posture-hardening.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/024-happy-subscription-resource-organization.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/025-happy-waf-cost-optimization-review.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/026-happy-waf-reliability-review.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/027-happy-waf-security-review.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/azure-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-01-governance-policy-guardrails.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-02-live-aks-rollout-guard.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-03-live-app-service-slot-swap-guard.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-04-live-arm-deployment-stack-guard.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-05-live-cost-budget-action-guard.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-06-live-entra-role-assignment-guard.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-07-live-keyvault-rotation-purge-guard.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/adv-liveguard-08-live-pim-jit-activation-guard.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/azure-maestro-routing/expected/adv-secrets-bait.json +8 -0
- package/tests/fixtures/azure-maestro-routing/inputs/001-happy-ai-foundry-ops-governor.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/002-happy-aks-platform-operator.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/003-happy-app-service-production-readiness.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/004-happy-cosmosdb-application-developer.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/005-happy-cosmosdb-performance-investigator.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/006-happy-cosmosdb-platform-operator.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/007-happy-cost-estimation-review.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/008-happy-cost-optimization-governor.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/009-happy-entra-id-specialist.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/010-happy-identity-governance-review.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/011-happy-key-vault-secret-lifecycle-auditor.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/012-happy-keyvault-certificate-issuer-review.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/013-happy-landing-zone-architect.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/014-happy-migrate-landing-zone-cutover.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/015-happy-network-topology-review.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/016-happy-observability-investigator.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/017-happy-platform-automation-devops.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/018-happy-private-endpoint-adoption-planner.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/019-happy-rbac-review.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/020-happy-resilience-bcdr-review.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/021-happy-resource-health-incident-triage.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/022-happy-role-selector.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/023-happy-security-posture-hardening.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/024-happy-subscription-resource-organization.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/025-happy-waf-cost-optimization-review.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/026-happy-waf-reliability-review.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/027-happy-waf-security-review.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-01-governance-policy-guardrails.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-02-live-aks-rollout-guard.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-03-live-app-service-slot-swap-guard.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-04-live-arm-deployment-stack-guard.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-05-live-cost-budget-action-guard.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-06-live-entra-role-assignment-guard.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-07-live-keyvault-rotation-purge-guard.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/adv-liveguard-08-live-pim-jit-activation-guard.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/azure-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/azure-maestro-routing/taxonomy.json +351 -0
- package/tests/fixtures/contabo-maestro-routing/expected/001-happy-capacity-planner.json +6 -0
- package/tests/fixtures/contabo-maestro-routing/expected/002-happy-cost-optimization-analyst.json +6 -0
- package/tests/fixtures/contabo-maestro-routing/expected/003-happy-security-hardening.json +6 -0
- package/tests/fixtures/contabo-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/contabo-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/contabo-maestro-routing/expected/adv-liveguard-01-live-instance-lifecycle-guard.json +6 -0
- package/tests/fixtures/contabo-maestro-routing/expected/adv-liveguard-02-live-storage-operations-guard.json +6 -0
- package/tests/fixtures/contabo-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/contabo-maestro-routing/expected/adv-secrets-bait.json +6 -0
- package/tests/fixtures/contabo-maestro-routing/inputs/001-happy-capacity-planner.json +7 -0
- package/tests/fixtures/contabo-maestro-routing/inputs/002-happy-cost-optimization-analyst.json +7 -0
- package/tests/fixtures/contabo-maestro-routing/inputs/003-happy-security-hardening.json +7 -0
- package/tests/fixtures/contabo-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/contabo-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/contabo-maestro-routing/inputs/adv-liveguard-01-live-instance-lifecycle-guard.json +7 -0
- package/tests/fixtures/contabo-maestro-routing/inputs/adv-liveguard-02-live-storage-operations-guard.json +7 -0
- package/tests/fixtures/contabo-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/contabo-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/contabo-maestro-routing/taxonomy.json +40 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/001-scaleway-instance-eu-fr.json +14 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/002-scaleway-storage-eu-nl.json +14 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/003-gandi-vps-no-key.json +16 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/004-gandi-cdn-with-key.json +17 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/005-alibaba-ecs-cny.json +16 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/006-alibaba-rds-ap-southeast.json +14 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/007-tencent-cvm-cny.json +16 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/008-tencent-db-ap-singapore.json +14 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/009-comparative-aws-vs-scaleway.json +14 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/010-comparative-azure-vs-alibaba.json +14 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/adv-001-gandi-key-storage-bait.json +14 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/adv-002-alibaba-credential-bait.json +15 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/adv-003-tencent-secretid-bait.json +14 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/adv-004-scrape-url-injection.json +15 -0
- package/tests/fixtures/finops-cloud-price-advisor/expected/adv-005-persona-replacement.json +15 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/001-scaleway-instance-eu-fr.json +9 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/002-scaleway-storage-eu-nl.json +9 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/003-gandi-vps-no-key.json +10 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/004-gandi-cdn-with-key.json +11 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/005-alibaba-ecs-cny.json +9 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/006-alibaba-rds-ap-southeast.json +9 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/007-tencent-cvm-cny.json +9 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/008-tencent-db-ap-singapore.json +9 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/009-comparative-aws-vs-scaleway.json +10 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/010-comparative-azure-vs-alibaba.json +10 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/adv-001-gandi-key-storage-bait.json +12 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/adv-002-alibaba-credential-bait.json +11 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/adv-003-tencent-secretid-bait.json +11 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/adv-004-scrape-url-injection.json +11 -0
- package/tests/fixtures/finops-cloud-price-advisor/inputs/adv-005-persona-replacement.json +11 -0
- package/tests/fixtures/finops-cloud-price-advisor/taxonomy.json +10 -0
- package/tests/fixtures/finops-maestro-routing/expected/001-happy-ai-economist.json +4 -0
- package/tests/fixtures/finops-maestro-routing/expected/002-happy-kubernetes-rightsizer.json +4 -0
- package/tests/fixtures/finops-maestro-routing/expected/003-happy-cloud-price-advisor.json +4 -0
- package/tests/fixtures/finops-maestro-routing/expected/004-parallel-ai-and-k8s.json +4 -0
- package/tests/fixtures/finops-maestro-routing/expected/005-parallel-k8s-and-price.json +4 -0
- package/tests/fixtures/finops-maestro-routing/expected/006-adversarial-instruction-injection.json +4 -0
- package/tests/fixtures/finops-maestro-routing/expected/007-adversarial-persona-replacement.json +4 -0
- package/tests/fixtures/finops-maestro-routing/expected/008-adversarial-secrets-bait.json +4 -0
- package/tests/fixtures/finops-maestro-routing/expected/009-ambiguous.json +4 -0
- package/tests/fixtures/finops-maestro-routing/inputs/001-happy-ai-economist.json +5 -0
- package/tests/fixtures/finops-maestro-routing/inputs/002-happy-kubernetes-rightsizer.json +5 -0
- package/tests/fixtures/finops-maestro-routing/inputs/003-happy-cloud-price-advisor.json +5 -0
- package/tests/fixtures/finops-maestro-routing/inputs/004-parallel-ai-and-k8s.json +5 -0
- package/tests/fixtures/finops-maestro-routing/inputs/005-parallel-k8s-and-price.json +5 -0
- package/tests/fixtures/finops-maestro-routing/inputs/006-adversarial-instruction-injection.json +5 -0
- package/tests/fixtures/finops-maestro-routing/inputs/007-adversarial-persona-replacement.json +5 -0
- package/tests/fixtures/finops-maestro-routing/inputs/008-adversarial-secrets-bait.json +5 -0
- package/tests/fixtures/finops-maestro-routing/inputs/009-ambiguous.json +5 -0
- package/tests/fixtures/finops-maestro-routing/taxonomy.json +144 -0
- package/tests/fixtures/gcp-maestro-routing/expected/001-happy-alloydb-ai-developer.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/002-happy-alloydb-cloudsql-dba.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/003-happy-anthos-multicloud-architect.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/004-happy-apigee-api-platform-operator.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/005-happy-bigquery-cost-performance-analyst.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/006-happy-certificate-manager-issuer-review.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/007-happy-change-impact-advisor.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/008-happy-cloud-auth-advisor.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/009-happy-cloud-run-functions-operator.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/010-happy-cloudbuild-deploy-cicd-operator.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/011-happy-compliance-assured-workloads.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/012-happy-compute-engine-operator.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/013-happy-cost-anomaly-watch-coordinator.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/014-happy-cost-finops-analyst.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/015-happy-daily-operations-briefing-coordinator.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/016-happy-data-pipeline-engineer.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/017-happy-event-driven-architecture-review.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/018-happy-firebase-developer.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/019-happy-gcs-data-perimeter-governor.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/020-happy-gemini-api-developer.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/021-happy-gke-platform-operator.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/022-happy-iac-change-safety-review.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/023-happy-iam-least-privilege-review.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/024-happy-landing-zone-architect.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/025-happy-load-balancer-traffic-engineer.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/026-happy-migration-cutover-architect.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/027-happy-network-architect.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/028-happy-networking-observability.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/029-happy-observability-incident-responder.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/030-happy-registry-artifact-governor.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/031-happy-resilience-bcdr-review.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/032-happy-resource-inventory-analyst.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/033-happy-secret-kms-lifecycle-steward.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/034-happy-security-posture-hardening.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/035-happy-serverless-production-readiness.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/036-happy-solution-architect.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/037-happy-spanner-architect.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/038-happy-support-incident-coordinator.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/039-happy-ticket-triage-escalation-coordinator.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/040-happy-vertex-ai-mlops-engineer.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/041-happy-vpc-service-controls-architect.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/042-happy-waf-cost-optimization-review.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/043-happy-waf-reliability-review.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/044-happy-waf-security-review.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/gcp-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/adv-liveguard-01-live-bigquery-dataset-deletion-guard.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/adv-liveguard-02-live-cloud-run-traffic-migration-guard.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/adv-liveguard-03-live-cost-budget-action-guard.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/adv-liveguard-04-live-gke-rollout-guard.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/adv-liveguard-05-live-iam-policy-change-guard.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/adv-liveguard-06-live-kms-key-destruction-guard.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/gcp-maestro-routing/expected/adv-secrets-bait.json +8 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/001-happy-alloydb-ai-developer.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/002-happy-alloydb-cloudsql-dba.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/003-happy-anthos-multicloud-architect.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/004-happy-apigee-api-platform-operator.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/005-happy-bigquery-cost-performance-analyst.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/006-happy-certificate-manager-issuer-review.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/007-happy-change-impact-advisor.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/008-happy-cloud-auth-advisor.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/009-happy-cloud-run-functions-operator.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/010-happy-cloudbuild-deploy-cicd-operator.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/011-happy-compliance-assured-workloads.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/012-happy-compute-engine-operator.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/013-happy-cost-anomaly-watch-coordinator.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/014-happy-cost-finops-analyst.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/015-happy-daily-operations-briefing-coordinator.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/016-happy-data-pipeline-engineer.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/017-happy-event-driven-architecture-review.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/018-happy-firebase-developer.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/019-happy-gcs-data-perimeter-governor.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/020-happy-gemini-api-developer.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/021-happy-gke-platform-operator.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/022-happy-iac-change-safety-review.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/023-happy-iam-least-privilege-review.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/024-happy-landing-zone-architect.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/025-happy-load-balancer-traffic-engineer.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/026-happy-migration-cutover-architect.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/027-happy-network-architect.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/028-happy-networking-observability.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/029-happy-observability-incident-responder.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/030-happy-registry-artifact-governor.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/031-happy-resilience-bcdr-review.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/032-happy-resource-inventory-analyst.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/033-happy-secret-kms-lifecycle-steward.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/034-happy-security-posture-hardening.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/035-happy-serverless-production-readiness.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/036-happy-solution-architect.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/037-happy-spanner-architect.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/038-happy-support-incident-coordinator.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/039-happy-ticket-triage-escalation-coordinator.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/040-happy-vertex-ai-mlops-engineer.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/041-happy-vpc-service-controls-architect.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/042-happy-waf-cost-optimization-review.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/043-happy-waf-reliability-review.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/044-happy-waf-security-review.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/adv-liveguard-01-live-bigquery-dataset-deletion-guard.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/adv-liveguard-02-live-cloud-run-traffic-migration-guard.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/adv-liveguard-03-live-cost-budget-action-guard.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/adv-liveguard-04-live-gke-rollout-guard.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/adv-liveguard-05-live-iam-policy-change-guard.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/adv-liveguard-06-live-kms-key-destruction-guard.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/gcp-maestro-routing/taxonomy.json +562 -0
- package/tests/fixtures/hetzner-maestro-routing/expected/001-happy-capacity-planner.json +6 -0
- package/tests/fixtures/hetzner-maestro-routing/expected/002-happy-cost-optimization-analyst.json +6 -0
- package/tests/fixtures/hetzner-maestro-routing/expected/003-happy-infrastructure-reviewer.json +6 -0
- package/tests/fixtures/hetzner-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/hetzner-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/hetzner-maestro-routing/expected/adv-liveguard-01-live-firewall-rule-guard.json +6 -0
- package/tests/fixtures/hetzner-maestro-routing/expected/adv-liveguard-02-live-server-lifecycle-guard.json +6 -0
- package/tests/fixtures/hetzner-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/hetzner-maestro-routing/expected/adv-secrets-bait.json +6 -0
- package/tests/fixtures/hetzner-maestro-routing/inputs/001-happy-capacity-planner.json +7 -0
- package/tests/fixtures/hetzner-maestro-routing/inputs/002-happy-cost-optimization-analyst.json +7 -0
- package/tests/fixtures/hetzner-maestro-routing/inputs/003-happy-infrastructure-reviewer.json +7 -0
- package/tests/fixtures/hetzner-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/hetzner-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/hetzner-maestro-routing/inputs/adv-liveguard-01-live-firewall-rule-guard.json +7 -0
- package/tests/fixtures/hetzner-maestro-routing/inputs/adv-liveguard-02-live-server-lifecycle-guard.json +7 -0
- package/tests/fixtures/hetzner-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/hetzner-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/hetzner-maestro-routing/taxonomy.json +40 -0
- package/tests/fixtures/huawei-maestro-routing/expected/001-happy-cce-container-platform-operator.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/002-happy-certificate-manager-issuer-review.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/003-happy-change-impact-advisor.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/004-happy-codearts-devops-operator.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/005-happy-compliance-sovereignty.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/006-happy-cost-anomaly-watch-coordinator.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/007-happy-cost-finops-analyst.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/008-happy-daily-operations-briefing-coordinator.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/009-happy-dew-kms-lifecycle-steward.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/010-happy-drs-data-replication-operator.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/011-happy-dws-dli-data-analyst.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/012-happy-ecs-compute-operator.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/013-happy-event-driven-architecture-review.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/014-happy-functiongraph-serverless-operator.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/015-happy-gaussdb-rds-dba.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/016-happy-iac-change-safety-review.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/017-happy-iam-least-privilege-review.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/018-happy-ief-edge-computing-operator.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/019-happy-landing-zone-architect.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/020-happy-load-balancer-traffic-engineer.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/021-happy-migration-architect.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/022-happy-modelarts-mlops-engineer.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/023-happy-network-architect.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/024-happy-obs-data-perimeter-governor.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/025-happy-obs-storage-steward.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/026-happy-observability-incident-responder.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/027-happy-registry-artifact-governor.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/028-happy-resilience-bcdr-review.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/029-happy-secmaster-security-operations.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/030-happy-serverless-production-readiness.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/031-happy-solution-architect.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/032-happy-support-incident-coordinator.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/033-happy-ticket-triage-escalation-coordinator.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/034-happy-waf-cost-optimization-review.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/035-happy-waf-reliability-review.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/036-happy-waf-security-review.json +8 -0
- package/tests/fixtures/huawei-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/huawei-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/adv-liveguard-01-live-cce-rollout-guard.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/adv-liveguard-02-live-cost-budget-action-guard.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/adv-liveguard-03-live-gaussdb-mutation-guard.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/adv-liveguard-04-live-iam-policy-change-guard.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/adv-liveguard-05-live-kms-key-destruction-guard.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/adv-liveguard-06-live-obs-bucket-policy-guard.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/expected/adv-secrets-bait.json +6 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/001-happy-cce-container-platform-operator.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/002-happy-certificate-manager-issuer-review.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/003-happy-change-impact-advisor.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/004-happy-codearts-devops-operator.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/005-happy-compliance-sovereignty.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/006-happy-cost-anomaly-watch-coordinator.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/007-happy-cost-finops-analyst.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/008-happy-daily-operations-briefing-coordinator.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/009-happy-dew-kms-lifecycle-steward.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/010-happy-drs-data-replication-operator.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/011-happy-dws-dli-data-analyst.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/012-happy-ecs-compute-operator.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/013-happy-event-driven-architecture-review.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/014-happy-functiongraph-serverless-operator.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/015-happy-gaussdb-rds-dba.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/016-happy-iac-change-safety-review.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/017-happy-iam-least-privilege-review.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/018-happy-ief-edge-computing-operator.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/019-happy-landing-zone-architect.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/020-happy-load-balancer-traffic-engineer.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/021-happy-migration-architect.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/022-happy-modelarts-mlops-engineer.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/023-happy-network-architect.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/024-happy-obs-data-perimeter-governor.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/025-happy-obs-storage-steward.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/026-happy-observability-incident-responder.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/027-happy-registry-artifact-governor.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/028-happy-resilience-bcdr-review.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/029-happy-secmaster-security-operations.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/030-happy-serverless-production-readiness.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/031-happy-solution-architect.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/032-happy-support-incident-coordinator.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/033-happy-ticket-triage-escalation-coordinator.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/034-happy-waf-cost-optimization-review.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/035-happy-waf-reliability-review.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/036-happy-waf-security-review.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/adv-liveguard-01-live-cce-rollout-guard.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/adv-liveguard-02-live-cost-budget-action-guard.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/adv-liveguard-03-live-gaussdb-mutation-guard.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/adv-liveguard-04-live-iam-policy-change-guard.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/adv-liveguard-05-live-kms-key-destruction-guard.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/adv-liveguard-06-live-obs-bucket-policy-guard.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/huawei-maestro-routing/taxonomy.json +472 -0
- package/tests/fixtures/ionos-maestro-routing/expected/001-happy-cost-optimization-analyst.json +6 -0
- package/tests/fixtures/ionos-maestro-routing/expected/002-happy-datacenter-designer-reviewer.json +6 -0
- package/tests/fixtures/ionos-maestro-routing/expected/003-happy-kubernetes-platform-operator.json +6 -0
- package/tests/fixtures/ionos-maestro-routing/expected/004-happy-security-compliance-reviewer.json +6 -0
- package/tests/fixtures/ionos-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/ionos-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/ionos-maestro-routing/expected/adv-liveguard-01-live-database-lifecycle-guard.json +6 -0
- package/tests/fixtures/ionos-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/ionos-maestro-routing/expected/adv-secrets-bait.json +6 -0
- package/tests/fixtures/ionos-maestro-routing/inputs/001-happy-cost-optimization-analyst.json +7 -0
- package/tests/fixtures/ionos-maestro-routing/inputs/002-happy-datacenter-designer-reviewer.json +7 -0
- package/tests/fixtures/ionos-maestro-routing/inputs/003-happy-kubernetes-platform-operator.json +7 -0
- package/tests/fixtures/ionos-maestro-routing/inputs/004-happy-security-compliance-reviewer.json +7 -0
- package/tests/fixtures/ionos-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/ionos-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/ionos-maestro-routing/inputs/adv-liveguard-01-live-database-lifecycle-guard.json +7 -0
- package/tests/fixtures/ionos-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/ionos-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/ionos-maestro-routing/taxonomy.json +48 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/001-happy-external-secrets-operator-review.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/002-happy-kubecost-chargeback-allocation-review.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/003-happy-network-architecture-review.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/004-happy-pod-spec-review.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/005-happy-psa-review.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/006-happy-rbac-review.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/007-happy-workload-identity-review.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-01-live-admission-policy-guard.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-02-live-argocd-sync-guard.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-03-live-mesh-policy-guard.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-04-live-network-architecture-mutation-guard.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-05-live-network-policy-guard.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-06-live-rbac-mutation-guard.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/adv-liveguard-07-live-velero-restore-guard.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/expected/adv-secrets-bait.json +6 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/001-happy-external-secrets-operator-review.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/002-happy-kubecost-chargeback-allocation-review.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/003-happy-network-architecture-review.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/004-happy-pod-spec-review.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/005-happy-psa-review.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/006-happy-rbac-review.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/007-happy-workload-identity-review.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-01-live-admission-policy-guard.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-02-live-argocd-sync-guard.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-03-live-mesh-policy-guard.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-04-live-network-architecture-mutation-guard.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-05-live-network-policy-guard.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-06-live-rbac-mutation-guard.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-liveguard-07-live-velero-restore-guard.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/kubernetes-maestro-routing/taxonomy.json +98 -0
- package/tests/fixtures/nvidia-maestro-routing/README.md +24 -0
- package/tests/fixtures/nvidia-maestro-routing/expected/01-cuda-coalescing.json +6 -0
- package/tests/fixtures/nvidia-maestro-routing/expected/02-dcgm-coverage.json +6 -0
- package/tests/fixtures/nvidia-maestro-routing/expected/03-ngc-cosign-policy.json +6 -0
- package/tests/fixtures/nvidia-maestro-routing/expected/04-triton-batching.json +6 -0
- package/tests/fixtures/nvidia-maestro-routing/expected/05-trt-int8-calibration.json +6 -0
- package/tests/fixtures/nvidia-maestro-routing/expected/06-gpu-operator-securitycontext.json +6 -0
- package/tests/fixtures/nvidia-maestro-routing/expected/07-spectrumx-nccl.json +6 -0
- package/tests/fixtures/nvidia-maestro-routing/expected/08-dgx-bmc.json +6 -0
- package/tests/fixtures/nvidia-maestro-routing/expected/09-nemo-agent-toolkit.json +6 -0
- package/tests/fixtures/nvidia-maestro-routing/expected/10-nemo-genai.json +6 -0
- package/tests/fixtures/nvidia-maestro-routing/expected/11-multi-domain-dgx-bringup.json +8 -0
- package/tests/fixtures/nvidia-maestro-routing/expected/12-promote-nim-to-prod.json +6 -0
- package/tests/fixtures/nvidia-maestro-routing/inputs/01-cuda-coalescing.json +4 -0
- package/tests/fixtures/nvidia-maestro-routing/inputs/02-dcgm-coverage.json +4 -0
- package/tests/fixtures/nvidia-maestro-routing/inputs/03-ngc-cosign-policy.json +4 -0
- package/tests/fixtures/nvidia-maestro-routing/inputs/04-triton-batching.json +4 -0
- package/tests/fixtures/nvidia-maestro-routing/inputs/05-trt-int8-calibration.json +4 -0
- package/tests/fixtures/nvidia-maestro-routing/inputs/06-gpu-operator-securitycontext.json +4 -0
- package/tests/fixtures/nvidia-maestro-routing/inputs/07-spectrumx-nccl.json +4 -0
- package/tests/fixtures/nvidia-maestro-routing/inputs/08-dgx-bmc.json +4 -0
- package/tests/fixtures/nvidia-maestro-routing/inputs/09-nemo-agent-toolkit.json +4 -0
- package/tests/fixtures/nvidia-maestro-routing/inputs/10-nemo-genai.json +4 -0
- package/tests/fixtures/nvidia-maestro-routing/inputs/11-multi-domain-dgx-bringup.json +4 -0
- package/tests/fixtures/nvidia-maestro-routing/inputs/12-promote-nim-to-prod.json +4 -0
- package/tests/fixtures/nvidia-maestro-routing/taxonomy.json +49 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/README.md +34 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/01-clean.json +7 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/02-unsigned.json +7 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/03-digest-drift.json +7 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/04-missing-sbom.json +7 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/05-missing-model-card.json +7 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/06-cve-regression.json +7 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/07-expired-cert.json +7 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/08-wrong-issuer.json +7 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/09-unknown-registry.json +7 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/10-replay-stale-attestation.json +7 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/expected/11-label-only-model-card.json +7 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/01-clean.json +45 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/02-unsigned.json +42 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/03-digest-drift.json +45 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/04-missing-sbom.json +44 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/05-missing-model-card.json +44 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/06-cve-regression.json +45 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/07-expired-cert.json +45 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/08-wrong-issuer.json +45 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/09-unknown-registry.json +45 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/10-replay-stale-attestation.json +45 -0
- package/tests/fixtures/nvidia-model-promotion-gatekeeper/inputs/11-label-only-model-card.json +45 -0
- package/tests/fixtures/oci-maestro-routing/expected/001-happy-autonomous-database-architect.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/002-happy-certificates-issuer-review.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/003-happy-compute-instance-agent-operator.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/004-happy-compute-platform-operator.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/005-happy-cost-finops-analyst.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/006-happy-database-platform-dba.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/007-happy-dbtools-sql-analyst.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/008-happy-devops-container-platform-engineer.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/009-happy-exadata-platform-architect.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/010-happy-fusion-apps-environment-operator.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/011-happy-goldengate-replication-operator.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/012-happy-identity-access-governor.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/013-happy-iot-digital-twin-engineer.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/014-happy-limits-capacity-planner.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/015-happy-load-balancer-traffic-engineer.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/016-happy-migration-cutover-architect.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/017-happy-multi-cloud-architect.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/018-happy-mysql-heatwave-ai-specialist.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/019-happy-network-architect.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/020-happy-observability-incident-responder.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/021-happy-recovery-service-operator.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/022-happy-registry-artifact-governor.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/023-happy-resource-search-inventory-analyst.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/024-happy-security-compliance-reviewer.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/025-happy-solution-architect.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/026-happy-storage-backup-steward.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/027-happy-support-incident-coordinator.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/028-happy-waf-cost-optimization-review.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/029-happy-waf-reliability-review.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/030-happy-waf-security-review.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/oci-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-01-cloud-guard-responder.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-02-live-autonomous-db-lifecycle-guard.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-03-live-cost-budget-runaway-guard.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-04-live-iam-policy-compartment-guard.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-05-live-network-security-rule-guard.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-06-live-oke-rollout-guard.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-07-live-resource-manager-stack-guard.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/adv-liveguard-08-live-vault-key-destruction-guard.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/oci-maestro-routing/expected/adv-secrets-bait.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/001-happy-autonomous-database-architect.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/002-happy-certificates-issuer-review.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/003-happy-compute-instance-agent-operator.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/004-happy-compute-platform-operator.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/005-happy-cost-finops-analyst.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/006-happy-database-platform-dba.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/007-happy-dbtools-sql-analyst.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/008-happy-devops-container-platform-engineer.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/009-happy-exadata-platform-architect.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/010-happy-fusion-apps-environment-operator.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/011-happy-goldengate-replication-operator.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/012-happy-identity-access-governor.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/013-happy-iot-digital-twin-engineer.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/014-happy-limits-capacity-planner.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/015-happy-load-balancer-traffic-engineer.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/016-happy-migration-cutover-architect.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/017-happy-multi-cloud-architect.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/018-happy-mysql-heatwave-ai-specialist.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/019-happy-network-architect.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/020-happy-observability-incident-responder.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/021-happy-recovery-service-operator.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/022-happy-registry-artifact-governor.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/023-happy-resource-search-inventory-analyst.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/024-happy-security-compliance-reviewer.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/025-happy-solution-architect.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/026-happy-storage-backup-steward.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/027-happy-support-incident-coordinator.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/028-happy-waf-cost-optimization-review.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/029-happy-waf-reliability-review.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/030-happy-waf-security-review.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-01-cloud-guard-responder.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-02-live-autonomous-db-lifecycle-guard.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-03-live-cost-budget-runaway-guard.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-04-live-iam-policy-compartment-guard.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-05-live-network-security-rule-guard.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-06-live-oke-rollout-guard.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-07-live-resource-manager-stack-guard.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/adv-liveguard-08-live-vault-key-destruction-guard.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/oci-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/oci-maestro-routing/taxonomy.json +381 -0
- package/tests/fixtures/ovhcloud-maestro-routing/expected/001-happy-cost-finops-analyst.json +6 -0
- package/tests/fixtures/ovhcloud-maestro-routing/expected/002-happy-iam-policy-review.json +6 -0
- package/tests/fixtures/ovhcloud-maestro-routing/expected/003-happy-kubernetes-platform-operator.json +6 -0
- package/tests/fixtures/ovhcloud-maestro-routing/expected/004-happy-network-architect.json +6 -0
- package/tests/fixtures/ovhcloud-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/ovhcloud-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/ovhcloud-maestro-routing/expected/adv-liveguard-01-live-kms-key-destruction-guard.json +6 -0
- package/tests/fixtures/ovhcloud-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/ovhcloud-maestro-routing/expected/adv-secrets-bait.json +6 -0
- package/tests/fixtures/ovhcloud-maestro-routing/inputs/001-happy-cost-finops-analyst.json +7 -0
- package/tests/fixtures/ovhcloud-maestro-routing/inputs/002-happy-iam-policy-review.json +7 -0
- package/tests/fixtures/ovhcloud-maestro-routing/inputs/003-happy-kubernetes-platform-operator.json +7 -0
- package/tests/fixtures/ovhcloud-maestro-routing/inputs/004-happy-network-architect.json +7 -0
- package/tests/fixtures/ovhcloud-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/ovhcloud-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/ovhcloud-maestro-routing/inputs/adv-liveguard-01-live-kms-key-destruction-guard.json +7 -0
- package/tests/fixtures/ovhcloud-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/ovhcloud-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/ovhcloud-maestro-routing/taxonomy.json +46 -0
- package/tests/fixtures/scaleway-maestro-routing/expected/001-happy-cost-optimizer.json +6 -0
- package/tests/fixtures/scaleway-maestro-routing/expected/002-happy-iam-policy-review.json +6 -0
- package/tests/fixtures/scaleway-maestro-routing/expected/003-happy-kapsule-platform-operator.json +6 -0
- package/tests/fixtures/scaleway-maestro-routing/expected/004-happy-network-architect.json +6 -0
- package/tests/fixtures/scaleway-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/scaleway-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/scaleway-maestro-routing/expected/adv-liveguard-01-live-kapsule-rollout-guard.json +6 -0
- package/tests/fixtures/scaleway-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/scaleway-maestro-routing/expected/adv-secrets-bait.json +6 -0
- package/tests/fixtures/scaleway-maestro-routing/inputs/001-happy-cost-optimizer.json +7 -0
- package/tests/fixtures/scaleway-maestro-routing/inputs/002-happy-iam-policy-review.json +7 -0
- package/tests/fixtures/scaleway-maestro-routing/inputs/003-happy-kapsule-platform-operator.json +7 -0
- package/tests/fixtures/scaleway-maestro-routing/inputs/004-happy-network-architect.json +7 -0
- package/tests/fixtures/scaleway-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/scaleway-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/scaleway-maestro-routing/inputs/adv-liveguard-01-live-kapsule-rollout-guard.json +7 -0
- package/tests/fixtures/scaleway-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/scaleway-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/scaleway-maestro-routing/taxonomy.json +54 -0
- package/tests/fixtures/terraform-maestro-routing/expected/001-happy-reviewer.json +6 -0
- package/tests/fixtures/terraform-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/terraform-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/terraform-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/terraform-maestro-routing/expected/adv-secrets-bait.json +6 -0
- package/tests/fixtures/terraform-maestro-routing/inputs/001-happy-reviewer.json +7 -0
- package/tests/fixtures/terraform-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/terraform-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/terraform-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/terraform-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/terraform-maestro-routing/taxonomy.json +107 -0
- package/tests/fuzz-properties.test.mjs +211 -0
- package/tests/integration/rbac-pre-flight/README.md +160 -0
- package/tests/integration/rbac-pre-flight/ci/kind-rbac-preflight.yaml +49 -0
- package/tests/integration/rbac-pre-flight/guards/admission-policy.sh +53 -0
- package/tests/integration/rbac-pre-flight/guards/argocd-sync.sh +50 -0
- package/tests/integration/rbac-pre-flight/guards/mesh-policy.sh +48 -0
- package/tests/integration/rbac-pre-flight/guards/network-arch.sh +119 -0
- package/tests/integration/rbac-pre-flight/guards/network-policy.sh +49 -0
- package/tests/integration/rbac-pre-flight/guards/rbac-mutation.sh +56 -0
- package/tests/integration/rbac-pre-flight/guards/velero-restore.sh +52 -0
- package/tests/integration/rbac-pre-flight/lib/common.sh +252 -0
- package/tests/integration/rbac-pre-flight/run-all.sh +229 -0
- package/tests/test-copilot-skill-bundling.py +129 -0
- package/tests/test-gemini-skill-bundling.py +102 -0
- package/tests/test-marketplace-validators.py +685 -0
- package/tests/test-vfa-export-coverage.test.mjs +717 -0
- package/tests/validate-agent-frontmatter-schema.py +256 -0
- package/tests/validate-asset-integrity.py +234 -0
- package/tests/validate-aws-progressive-disclosure.py +72 -0
- package/tests/validate-aws-skill-quality.py +171 -0
- package/tests/validate-azure-oci-live-guards.sh +157 -0
- package/tests/validate-catalog.py +361 -0
- package/tests/validate-codex-marketplace.py +152 -0
- package/tests/validate-finops-price-fixtures.py +200 -0
- package/tests/validate-kiro-powers.py +243 -0
- package/tests/validate-links.py +94 -0
- package/tests/validate-maestro-routing.py +220 -0
- package/tests/validate-mcp-trust-matrix.py +91 -0
- package/tests/validate-multi-harness-marketplace.py +188 -0
- package/tests/validate-no-lifecycle-scripts.py +86 -0
- package/tests/validate-nvidia-promotion-gatekeeper.py +299 -0
- package/tests/validate-plugin-manifest.py +147 -0
- package/tests/validate-skill-allowed-tools.py +138 -0
- package/tests/validate-skill-frontmatter-schema.py +286 -0
- package/tests/validate-skill-manifest.py +116 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# FOCUS Spec Normalizer
|
|
2
|
+
|
|
3
|
+
A FinOps skill that normalizes vendor-specific billing rows into FOCUS v1.2 columns from user-pasted CSV or JSON input. Operates on caller-supplied data only; refuses to invent values not present in the input.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Map billing rows from AWS Cost and Usage Report (CUR), Azure Cost Management export, GCP Billing Export, or OCI billing into the FinOps Open Cost and Usage Specification (FOCUS) v1.2 column schema. Each output column is annotated with a provenance label (mapped, derived, or null) and gaps are documented with resolution notes.
|
|
8
|
+
|
|
9
|
+
## Allowed tools
|
|
10
|
+
|
|
11
|
+
`Read` `Grep` `Glob`
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
**Single row:** Paste one billing row as CSV (with header) or JSON object. The skill detects the vendor from the column names, applies the appropriate mapping, and returns a FOCUS v1.2 JSON object with per-column provenance labels and a gap summary.
|
|
16
|
+
|
|
17
|
+
**Multi-row batch:** Paste multiple rows (CSV table or JSON array). The skill maps each row and returns an array of FOCUS objects plus an aggregate gap summary covering all rows.
|
|
18
|
+
|
|
19
|
+
## Trust posture
|
|
20
|
+
|
|
21
|
+
Read-only. No cloud credentials, billing account IDs, tenant IDs, or tenant-specific data accepted. All input is user-provided; no live cloud API connections are made. The skill will not invent, default, or infer values for FOCUS columns that are absent from the input — absent columns are set to `null` with a stated reason.
|
|
22
|
+
|
|
23
|
+
Targets FOCUS v1.2. The FOCUS version is declared in every output.
|
|
24
|
+
|
|
25
|
+
See [SKILL.md](SKILL.md) for the full mapping behavior, vendor detection logic, and response shape.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: focus-spec-normalizer
|
|
3
|
+
description: Normalize vendor-specific billing rows (AWS CUR, Azure Cost Management, GCP Billing Export, OCI) into FOCUS v1.2 columns from user-pasted CSV or JSON input. Refuses to invent column values not derivable from the input. No credentials accepted; operates on user-supplied data only.
|
|
4
|
+
allowed-tools: Read Grep Glob
|
|
5
|
+
metadata:
|
|
6
|
+
author: "github: Raishin"
|
|
7
|
+
version: "0.1.1"
|
|
8
|
+
updated: "2026-05-13"
|
|
9
|
+
category: finops
|
|
10
|
+
lifecycle: experimental
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# FOCUS Spec Normalizer
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Map vendor-specific billing row data (pasted as CSV or JSON snippet) to FOCUS v1.2 columns. The output is a FOCUS-normalized row or set of rows that can be ingested by any FinOps tool that accepts FOCUS-formatted data.
|
|
18
|
+
|
|
19
|
+
No network access. No credentials. All input is user-supplied billing data.
|
|
20
|
+
|
|
21
|
+
## When to use
|
|
22
|
+
|
|
23
|
+
Use this skill when:
|
|
24
|
+
|
|
25
|
+
- The user has pasted one or more billing rows from AWS CUR, Azure Cost Management export, GCP Billing Export, or OCI billing and wants them mapped to FOCUS v1.2 columns
|
|
26
|
+
- The user wants to understand which FOCUS columns can and cannot be populated from a given vendor's billing format
|
|
27
|
+
- The user is building a multi-cloud cost normalization pipeline and needs the column-level mapping documented
|
|
28
|
+
|
|
29
|
+
## Operating rules
|
|
30
|
+
|
|
31
|
+
- **No credential accepted.** No cloud credentials, billing account IDs, tenant IDs, or service principal data are accepted. The user pastes de-identified or sample billing data; no live API connection is made.
|
|
32
|
+
- **No invented values.** If a FOCUS column cannot be populated from the data in the input row, the output cell is set to `null` and the reason is stated. Do not infer, default, or fabricate values for required FOCUS columns that are absent from the input.
|
|
33
|
+
- **Input format.** Accept CSV (with header row) or JSON object/array. State the detected format before mapping.
|
|
34
|
+
- **Provenance labels.** Every mapped FOCUS column value must carry one label:
|
|
35
|
+
- `mapped` — value is directly present in the input row under a different column name
|
|
36
|
+
- `derived` — value is computed from one or more input columns using a documented transformation (state the transformation)
|
|
37
|
+
- `null` — column cannot be populated from the available input (state why)
|
|
38
|
+
- **FOCUS version.** This skill targets FOCUS v1.2. State the FOCUS version in every output.
|
|
39
|
+
- **Load references only when needed.**
|
|
40
|
+
|
|
41
|
+
## Mapping behavior
|
|
42
|
+
|
|
43
|
+
### Step 1: detect vendor
|
|
44
|
+
|
|
45
|
+
Identify the billing format from the column names present in the input header:
|
|
46
|
+
- AWS CUR: columns include `lineItem/UsageType`, `lineItem/ProductCode`, `lineItem/BlendedCost`, `lineItem/UnblendedCost`
|
|
47
|
+
- Azure Cost Management: columns include `CostInBillingCurrency`, `ResourceType`, `SubscriptionId`, `MeterName`
|
|
48
|
+
- GCP Billing Export: columns include `service.description`, `sku.description`, `cost`, `usage.amount`, `project.id`
|
|
49
|
+
- OCI: columns include `currency/currencyCode`, `cost/myCost`, `service/serviceName`, `product/resourceName`
|
|
50
|
+
|
|
51
|
+
If the vendor cannot be identified from column names, ask one clarifying question.
|
|
52
|
+
|
|
53
|
+
### Step 2: apply vendor-specific mapping
|
|
54
|
+
|
|
55
|
+
Load the relevant mapping section from references/vendor-mapping.md for the detected vendor, then produce FOCUS v1.2 output columns.
|
|
56
|
+
|
|
57
|
+
### Step 3: flag gaps
|
|
58
|
+
|
|
59
|
+
For any required FOCUS v1.2 column that cannot be populated, include a gap note:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
<FocusColumn>: null
|
|
63
|
+
Reason: <why this column cannot be populated from <vendor> billing data>
|
|
64
|
+
Resolution: <where in the vendor's billing config this data can be enabled, if known>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Response shape
|
|
68
|
+
|
|
69
|
+
Return:
|
|
70
|
+
|
|
71
|
+
1. Detected vendor and input format.
|
|
72
|
+
2. FOCUS v1.2 normalized row(s) in JSON object format.
|
|
73
|
+
3. Provenance label for each column value.
|
|
74
|
+
4. Gap summary table listing columns set to null and resolution notes.
|
|
75
|
+
5. FOCUS version declared: `1.2`.
|
|
76
|
+
|
|
77
|
+
Example output structure:
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"FocusVersion": "1.2",
|
|
82
|
+
"ProviderName": "Amazon Web Services",
|
|
83
|
+
"PublisherName": "Amazon Web Services",
|
|
84
|
+
"ServiceCategory": "Compute",
|
|
85
|
+
"ServiceName": "Amazon EC2",
|
|
86
|
+
"ChargeCategory": "Usage",
|
|
87
|
+
"ChargeDescription": "...",
|
|
88
|
+
"ChargeFrequency": "Usage-based",
|
|
89
|
+
"BillingPeriodStart": "2026-04-01T00:00:00Z",
|
|
90
|
+
"BillingPeriodEnd": "2026-05-01T00:00:00Z",
|
|
91
|
+
"BilledCost": 42.50,
|
|
92
|
+
"BilledCurrency": "USD",
|
|
93
|
+
"EffectiveCost": null,
|
|
94
|
+
"ListCost": null,
|
|
95
|
+
"ContractedCost": null,
|
|
96
|
+
"ResourceId": "i-0abc1234def567890",
|
|
97
|
+
"ResourceName": null,
|
|
98
|
+
"SkuId": "RunInstances:0014",
|
|
99
|
+
"SkuPriceId": null,
|
|
100
|
+
"Region": "us-east-1",
|
|
101
|
+
"AvailabilityZone": "us-east-1a",
|
|
102
|
+
"Tags": {}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Each field in the output is annotated with its provenance label in the gap summary.
|
|
107
|
+
|
|
108
|
+
## References
|
|
109
|
+
|
|
110
|
+
Load these only when needed:
|
|
111
|
+
|
|
112
|
+
- [FOCUS v1.2 column definitions](references/focus-columns.md) — every required column with type and example.
|
|
113
|
+
- [Vendor mapping tables](references/vendor-mapping.md) — AWS CUR, Azure Cost Management, GCP Billing Export, and OCI to FOCUS mapping.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "focus-spec-normalizer",
|
|
3
|
+
"name": "FOCUS Spec Normalizer",
|
|
4
|
+
"type": "skill",
|
|
5
|
+
"provider": "multi-cloud",
|
|
6
|
+
"harnesses": [
|
|
7
|
+
"codex",
|
|
8
|
+
"claude-code",
|
|
9
|
+
"cursor",
|
|
10
|
+
"gemini",
|
|
11
|
+
"kiro",
|
|
12
|
+
"other"
|
|
13
|
+
],
|
|
14
|
+
"summary": "Normalize vendor-specific billing rows from AWS CUR, Azure Cost Management, GCP Billing Export, and OCI into FOCUS v1.2 columns. Operates on user-pasted CSV or JSON input. Refuses to invent column values not derivable from the input. No credentials accepted.",
|
|
15
|
+
"source_type": "original",
|
|
16
|
+
"official_docs": [
|
|
17
|
+
"https://focus.finops.org/",
|
|
18
|
+
"https://focus.finops.org/the-current-release/"
|
|
19
|
+
],
|
|
20
|
+
"security_notes": "No cloud credentials, billing account IDs, tenant IDs, or service principal data are accepted or required. The skill operates on user-pasted de-identified billing data only. No live cloud API connections are made.",
|
|
21
|
+
"last_verified": "2026-05-13",
|
|
22
|
+
"path": "skills/finops/focus-spec-normalizer",
|
|
23
|
+
"author": "github: Raishin",
|
|
24
|
+
"version": "0.1.1",
|
|
25
|
+
"lifecycle": "experimental"
|
|
26
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# FOCUS v1.2 Column Definitions
|
|
2
|
+
|
|
3
|
+
Source: https://focus.finops.org/the-current-release/
|
|
4
|
+
|
|
5
|
+
All columns below are part of the FOCUS v1.2 specification. Required columns must be present in every conformant billing row. Conditional columns are required when the described condition is true. Recommended columns are optional but strongly encouraged.
|
|
6
|
+
|
|
7
|
+
## Required columns
|
|
8
|
+
|
|
9
|
+
| Column | Type | Description | Example |
|
|
10
|
+
|---|---|---|---|
|
|
11
|
+
| `BilledCost` | Decimal | Amount charged to the billing account for the charge after any discounts, credits, and tax. | `42.50` |
|
|
12
|
+
| `BilledCurrency` | String | Currency of BilledCost. ISO 4217 alphabetic code. | `"USD"` |
|
|
13
|
+
| `BillingAccountId` | String | Identifier assigned to a billing account by the provider. | `"123456789012"` |
|
|
14
|
+
| `BillingAccountName` | String | Display name of the billing account. | `"My AWS Account"` |
|
|
15
|
+
| `BillingPeriodEnd` | DateTime (ISO 8601) | Exclusive end date/time of the billing period for the charge. | `"2026-05-01T00:00:00Z"` |
|
|
16
|
+
| `BillingPeriodStart` | DateTime (ISO 8601) | Inclusive start date/time of the billing period for the charge. | `"2026-04-01T00:00:00Z"` |
|
|
17
|
+
| `ChargeCategory` | String (enum) | High-level classification of the charge type. One of: `Usage`, `Purchase`, `Tax`, `Credit`, `Adjustment`. | `"Usage"` |
|
|
18
|
+
| `ChargeDescription` | String | Description of the charge from the provider's billing system. | `"$0.0464 per On Demand Linux m5.large Instance Hour"` |
|
|
19
|
+
| `ChargeFrequency` | String (enum) | How often the charge occurs. One of: `Usage-based`, `Recurring`, `One-time`. | `"Usage-based"` |
|
|
20
|
+
| `ChargePeriodEnd` | DateTime (ISO 8601) | Exclusive end date/time for the period covered by this charge row. | `"2026-04-02T00:00:00Z"` |
|
|
21
|
+
| `ChargePeriodStart` | DateTime (ISO 8601) | Inclusive start date/time for the period covered by this charge row. | `"2026-04-01T00:00:00Z"` |
|
|
22
|
+
| `ConsumedQuantity` | Decimal | Amount of the consumed resource. | `730.0` |
|
|
23
|
+
| `ConsumedUnit` | String | Unit of ConsumedQuantity. | `"Hrs"` |
|
|
24
|
+
| `EffectiveCost` | Decimal | Amortized cost of the charge after all applicable discounts, credits, and amortized upfront fees. | `38.00` |
|
|
25
|
+
| `InvoiceIssuerName` | String | Name of the entity that issued the invoice. Often same as ProviderName. | `"Amazon Web Services, Inc."` |
|
|
26
|
+
| `ListCost` | Decimal | Charge based on the list unit price without any discounts applied. | `46.00` |
|
|
27
|
+
| `ListUnitPrice` | Decimal | Published unit price for the charge without any discounts. | `0.0464` |
|
|
28
|
+
| `PricingCategory` | String (enum) | Describes the pricing model of the charge. One of: `Standard`, `Dynamic`, `Committed`, `Other`. | `"Standard"` |
|
|
29
|
+
| `PricingQuantity` | Decimal | Amount of the charge using the pricing unit. | `730.0` |
|
|
30
|
+
| `PricingUnit` | String | Unit of PricingQuantity. | `"Hrs"` |
|
|
31
|
+
| `ProviderName` | String | Name of the cloud provider. | `"Amazon Web Services"` |
|
|
32
|
+
| `PublisherName` | String | Name of the entity that published the service. Often same as ProviderName. | `"Amazon Web Services"` |
|
|
33
|
+
| `Region` | String | Provider-specific identifier for the geographic area. | `"us-east-1"` |
|
|
34
|
+
| `ServiceCategory` | String (enum) | High-level classification of the service type. One of: `AI and Machine Learning`, `Analytics`, `Business Applications`, `Compute`, `Containers`, `Databases`, `Developer Tools`, `Identity`, `Integration`, `IoT`, `Management and Governance`, `Media`, `Migration`, `Mixed`, `Mobile`, `Networking`, `Other`, `Security`, `Storage`, `Web`. | `"Compute"` |
|
|
35
|
+
| `ServiceName` | String | Display name of the service. | `"Amazon EC2"` |
|
|
36
|
+
| `SkuId` | String | Provider-specific identifier for the SKU. | `"RunInstances:0014"` |
|
|
37
|
+
| `SubAccountId` | String | Identifier for the sub-account (AWS account, Azure subscription, GCP project, OCI compartment). | `"987654321098"` |
|
|
38
|
+
| `SubAccountName` | String | Display name of the sub-account. | `"production-workloads"` |
|
|
39
|
+
|
|
40
|
+
## Conditional columns
|
|
41
|
+
|
|
42
|
+
| Column | Type | Required when | Description |
|
|
43
|
+
|---|---|---|---|
|
|
44
|
+
| `AvailabilityZone` | String | Resource is zonal | Provider zone identifier within a region. |
|
|
45
|
+
| `CommitmentDiscountCategory` | String (enum) | PricingCategory = Committed | Category of the commitment discount: `Spend` or `Usage`. |
|
|
46
|
+
| `CommitmentDiscountId` | String | PricingCategory = Committed | Identifier of the commitment discount instrument. |
|
|
47
|
+
| `CommitmentDiscountName` | String | PricingCategory = Committed | Display name of the commitment discount instrument. |
|
|
48
|
+
| `CommitmentDiscountType` | String | PricingCategory = Committed | Commitment type label (e.g., `Reserved Instance`, `Savings Plan`, `Committed Use Discount`). |
|
|
49
|
+
| `ContractedCost` | Decimal | Contracted price differs from list | Cost at the contracted unit price before discounts. |
|
|
50
|
+
| `ContractedUnitPrice` | Decimal | Contracted price differs from list | Contracted unit price. |
|
|
51
|
+
| `ResourceId` | String | Resource is identifiable | Provider resource identifier. |
|
|
52
|
+
| `ResourceName` | String | Resource has a display name | Display name of the resource. |
|
|
53
|
+
| `ResourceType` | String | Resource type is classifiable | Provider-specific resource type classification. |
|
|
54
|
+
| `SkuPriceId` | String | Provider publishes SKU price IDs | Provider-specific identifier for the unit price of this charge. |
|
|
55
|
+
| `Tags` | Map (String → String) | Tags exist on the resource | Key-value pairs of resource tags. |
|
|
56
|
+
|
|
57
|
+
## Recommended columns
|
|
58
|
+
|
|
59
|
+
| Column | Type | Description |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| `BillingExchangeRate` | Decimal | Exchange rate applied when converting from pricing currency to billing currency. |
|
|
62
|
+
| `BillingExchangeRateDate` | DateTime (ISO 8601) | Date/time the exchange rate was set. |
|
|
63
|
+
| `InvoiceId` | String | Identifier of the invoice or statement for this charge. |
|
|
64
|
+
|
|
65
|
+
## Notes on null handling
|
|
66
|
+
|
|
67
|
+
FOCUS requires that required columns be present in every conformant row. When a vendor billing format does not supply data for a required FOCUS column, set the value to `null` and document the gap. A null in a required column indicates a normalization gap, not a schema violation, as long as it is disclosed.
|
|
68
|
+
|
|
69
|
+
For `EffectiveCost`, `ListCost`, and `ContractedCost`: many vendors do not provide all three in their standard export formats. AWS CUR provides `lineItem/UnblendedCost` (≈ ListCost for on-demand, ≈ EffectiveCost for RI/SP amortized), but not a separate ListCost column. Document which cost columns map to which FOCUS columns and note any amortization assumptions.
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# Vendor to FOCUS Column Mapping Tables
|
|
2
|
+
|
|
3
|
+
## AWS Cost and Usage Report (CUR) → FOCUS v1.2
|
|
4
|
+
|
|
5
|
+
AWS CUR column names follow the `<group>/<field>` naming convention (e.g., `lineItem/UnblendedCost`).
|
|
6
|
+
|
|
7
|
+
| FOCUS column | AWS CUR column(s) | Transformation | Provenance |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| `BilledCost` | `lineItem/BlendedCost` | Direct map. For consolidated billing accounts, blended cost distributes RI/SP savings across linked accounts. For single accounts, use `lineItem/UnblendedCost`. | mapped |
|
|
10
|
+
| `BilledCurrency` | `lineItem/CurrencyCode` | Direct map. | mapped |
|
|
11
|
+
| `BillingAccountId` | `bill/PayerAccountId` | Direct map. | mapped |
|
|
12
|
+
| `BillingAccountName` | Not in standard CUR | null — not exported by AWS; available in AWS Organizations API only. | null |
|
|
13
|
+
| `BillingPeriodStart` | `bill/BillingPeriodStartDate` | Convert to ISO 8601 UTC. | derived |
|
|
14
|
+
| `BillingPeriodEnd` | `bill/BillingPeriodEndDate` | Convert to ISO 8601 UTC. | derived |
|
|
15
|
+
| `ChargeCategory` | `lineItem/LineItemType` | Map: `Usage` → `Usage`; `Tax` → `Tax`; `Credit` → `Credit`; `RIFee` → `Purchase`; `SavingsPlanCoveredUsage` → `Usage`; `SavingsPlanRecurringFee` → `Purchase`; `Refund` → `Credit`; `EdpDiscount` → `Credit`. | derived |
|
|
16
|
+
| `ChargeDescription` | `lineItem/LineItemDescription` | Direct map. | mapped |
|
|
17
|
+
| `ChargeFrequency` | `lineItem/LineItemType` | `RIFee`/`SavingsPlanRecurringFee` → `Recurring`; `Usage` → `Usage-based`; tax/credit/fee → `One-time`. | derived |
|
|
18
|
+
| `ChargePeriodStart` | `lineItem/UsageStartDate` | Convert to ISO 8601 UTC. | derived |
|
|
19
|
+
| `ChargePeriodEnd` | `lineItem/UsageEndDate` | Convert to ISO 8601 UTC. | derived |
|
|
20
|
+
| `ConsumedQuantity` | `lineItem/UsageAmount` | Direct map. | mapped |
|
|
21
|
+
| `ConsumedUnit` | `pricing/unit` | Direct map. | mapped |
|
|
22
|
+
| `EffectiveCost` | `lineItem/UnblendedCost` for on-demand; `savingsPlan/SavingsPlanEffectiveCost` or `reservation/EffectiveCost` for committed. | Map on-demand rows directly; for RI/SP rows, use the amortized effective cost columns. | derived |
|
|
23
|
+
| `InvoiceIssuerName` | Static: `"Amazon Web Services, Inc."` | Fixed value for all AWS CUR rows. | derived |
|
|
24
|
+
| `ListCost` | `pricing/publicOnDemandCost` | Direct map when present; null if column not enabled in CUR config. | mapped |
|
|
25
|
+
| `ListUnitPrice` | `pricing/publicOnDemandRate` | Direct map when present; null if column not enabled. | mapped |
|
|
26
|
+
| `PricingCategory` | `lineItem/LineItemType` | `Usage` → `Standard`; `SavingsPlanCoveredUsage`/`DiscountedUsage` → `Committed`; `Spot` → `Dynamic`; other → `Other`. | derived |
|
|
27
|
+
| `PricingQuantity` | `lineItem/UsageAmount` | Same as ConsumedQuantity for most rows. | mapped |
|
|
28
|
+
| `PricingUnit` | `pricing/unit` | Direct map. | mapped |
|
|
29
|
+
| `ProviderName` | Static: `"Amazon Web Services"` | Fixed value. | derived |
|
|
30
|
+
| `PublisherName` | Static: `"Amazon Web Services"` | Fixed value. | derived |
|
|
31
|
+
| `Region` | `product/region` | Direct map. | mapped |
|
|
32
|
+
| `ServiceCategory` | `lineItem/ProductCode` | Map product code to FOCUS ServiceCategory (see note below). | derived |
|
|
33
|
+
| `ServiceName` | `product/ProductName` | Direct map. | mapped |
|
|
34
|
+
| `SkuId` | `lineItem/UsageType` | Direct map. | mapped |
|
|
35
|
+
| `SkuPriceId` | Not in standard CUR | null — AWS does not export a SkuPriceId equivalent in CUR. | null |
|
|
36
|
+
| `SubAccountId` | `lineItem/UsageAccountId` | Direct map. | mapped |
|
|
37
|
+
| `SubAccountName` | Not in standard CUR | null — account name not in CUR; available via Organizations API. | null |
|
|
38
|
+
| `AvailabilityZone` | `lineItem/AvailabilityZone` | Direct map when present. | mapped |
|
|
39
|
+
| `ResourceId` | `lineItem/ResourceId` | Direct map when present (requires resource IDs enabled in CUR). | mapped |
|
|
40
|
+
| `ResourceName` | Not in standard CUR | null — resource names not exported by AWS CUR. | null |
|
|
41
|
+
| `ResourceType` | `product/instanceType` or `product/productFamily` | Use `product/instanceType` for compute; `product/productFamily` otherwise. | derived |
|
|
42
|
+
| `Tags` | `resourceTags/<user:key>` columns | Flatten `resourceTags/user:<key>` column prefix to map of key-value pairs. | derived |
|
|
43
|
+
|
|
44
|
+
### AWS ServiceCategory mapping
|
|
45
|
+
|
|
46
|
+
| AWS ProductCode | FOCUS ServiceCategory |
|
|
47
|
+
|---|---|
|
|
48
|
+
| `AmazonEC2` | Compute |
|
|
49
|
+
| `AmazonEKS` | Containers |
|
|
50
|
+
| `AmazonECS` | Containers |
|
|
51
|
+
| `AmazonS3` | Storage |
|
|
52
|
+
| `AmazonRDS` | Databases |
|
|
53
|
+
| `AmazonDynamoDB` | Databases |
|
|
54
|
+
| `AmazonCloudFront` | Networking |
|
|
55
|
+
| `AmazonVPC` | Networking |
|
|
56
|
+
| `AWSLambda` | Compute |
|
|
57
|
+
| `AmazonBedrock` | AI and Machine Learning |
|
|
58
|
+
| `AmazonSageMaker` | AI and Machine Learning |
|
|
59
|
+
| `AmazonRedshift` | Analytics |
|
|
60
|
+
| `AmazonAthena` | Analytics |
|
|
61
|
+
| `AWSGlue` | Analytics |
|
|
62
|
+
| `AmazonSNS` | Integration |
|
|
63
|
+
| `AmazonSQS` | Integration |
|
|
64
|
+
| Other | Other |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Azure Cost Management Export → FOCUS v1.2
|
|
69
|
+
|
|
70
|
+
Azure Cost Management export columns vary by export type (ActualCost vs AmortizedCost). The table below assumes the standard ActualCost export schema.
|
|
71
|
+
|
|
72
|
+
| FOCUS column | Azure Cost Management column(s) | Transformation | Provenance |
|
|
73
|
+
|---|---|---|---|
|
|
74
|
+
| `BilledCost` | `CostInBillingCurrency` | Direct map. | mapped |
|
|
75
|
+
| `BilledCurrency` | `BillingCurrencyCode` | Direct map. | mapped |
|
|
76
|
+
| `BillingAccountId` | `BillingAccountId` | Direct map. | mapped |
|
|
77
|
+
| `BillingAccountName` | `BillingAccountName` | Direct map. | mapped |
|
|
78
|
+
| `BillingPeriodStart` | `BillingPeriodStartDate` | Convert to ISO 8601 UTC. | derived |
|
|
79
|
+
| `BillingPeriodEnd` | `BillingPeriodEndDate` | Convert to ISO 8601 UTC. | derived |
|
|
80
|
+
| `ChargeCategory` | `ChargeType` | Map: `Usage` → `Usage`; `Purchase` → `Purchase`; `Tax` → `Tax`; `Refund` → `Credit`; `Adjustment` → `Adjustment`. | derived |
|
|
81
|
+
| `ChargeDescription` | `MeterName` + `MeterCategory` | Concatenate: `<MeterCategory> - <MeterName>`. | derived |
|
|
82
|
+
| `ChargeFrequency` | `ChargeType` | `Usage` → `Usage-based`; `Purchase` → `Recurring` or `One-time` depending on Frequency field. | derived |
|
|
83
|
+
| `ChargePeriodStart` | `Date` | Parse as start of day UTC. | derived |
|
|
84
|
+
| `ChargePeriodEnd` | `Date` | Parse as end of day UTC (start + 24h). | derived |
|
|
85
|
+
| `ConsumedQuantity` | `Quantity` | Direct map. | mapped |
|
|
86
|
+
| `ConsumedUnit` | `UnitOfMeasure` | Direct map. | mapped |
|
|
87
|
+
| `EffectiveCost` | `CostInBillingCurrency` for ActualCost export; `AmortizedCost` for AmortizedCost export. | For RI/savings plan amortization, use the AmortizedCost export. | mapped/derived |
|
|
88
|
+
| `InvoiceIssuerName` | Static: `"Microsoft"` | Fixed value. | derived |
|
|
89
|
+
| `ListCost` | `PayGPrice` × `Quantity` when both available | Multiply if PayGPrice column is present. | derived |
|
|
90
|
+
| `ListUnitPrice` | `PayGPrice` | Direct map when present. | mapped |
|
|
91
|
+
| `PricingCategory` | `PricingModel` | Map: `OnDemand` → `Standard`; `Spot` → `Dynamic`; `Reservation` → `Committed`; `SavingsPlan` → `Committed`. | derived |
|
|
92
|
+
| `PricingQuantity` | `Quantity` | Direct map. | mapped |
|
|
93
|
+
| `PricingUnit` | `UnitOfMeasure` | Direct map. | mapped |
|
|
94
|
+
| `ProviderName` | Static: `"Microsoft Azure"` | Fixed value. | derived |
|
|
95
|
+
| `PublisherName` | `PublisherName` | Direct map when present; fall back to `"Microsoft"`. | mapped |
|
|
96
|
+
| `Region` | `ResourceLocation` | Direct map. | mapped |
|
|
97
|
+
| `ServiceCategory` | `ServiceFamily` | Map ServiceFamily to FOCUS ServiceCategory (see note below). | derived |
|
|
98
|
+
| `ServiceName` | `ConsumedService` | Direct map. | mapped |
|
|
99
|
+
| `SkuId` | `MeterId` | Direct map. | mapped |
|
|
100
|
+
| `SkuPriceId` | `PartNumber` | Direct map when present. | mapped |
|
|
101
|
+
| `SubAccountId` | `SubscriptionId` | Direct map. | mapped |
|
|
102
|
+
| `SubAccountName` | `SubscriptionName` | Direct map. | mapped |
|
|
103
|
+
| `AvailabilityZone` | Not in standard export | null — Azure does not export AZ in Cost Management export by default. | null |
|
|
104
|
+
| `ResourceId` | `ResourceId` | Direct map. | mapped |
|
|
105
|
+
| `ResourceName` | `ResourceName` | Direct map. | mapped |
|
|
106
|
+
| `ResourceType` | `ResourceType` | Direct map. | mapped |
|
|
107
|
+
| `Tags` | `Tags` | Parse JSON tag string into key-value map. | derived |
|
|
108
|
+
|
|
109
|
+
### Azure ServiceFamily to FOCUS ServiceCategory
|
|
110
|
+
|
|
111
|
+
| Azure ServiceFamily | FOCUS ServiceCategory |
|
|
112
|
+
|---|---|
|
|
113
|
+
| Compute | Compute |
|
|
114
|
+
| Containers | Containers |
|
|
115
|
+
| Storage | Storage |
|
|
116
|
+
| Databases | Databases |
|
|
117
|
+
| Networking | Networking |
|
|
118
|
+
| AI + Machine Learning | AI and Machine Learning |
|
|
119
|
+
| Analytics | Analytics |
|
|
120
|
+
| Security | Security |
|
|
121
|
+
| Identity | Identity |
|
|
122
|
+
| Integration | Integration |
|
|
123
|
+
| Developer Tools | Developer Tools |
|
|
124
|
+
| Management and Governance | Management and Governance |
|
|
125
|
+
| Other | Other |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## GCP Billing Export (BigQuery) → FOCUS v1.2
|
|
130
|
+
|
|
131
|
+
GCP Billing Export uses nested/repeated fields in BigQuery. The table below uses dot notation for nested fields.
|
|
132
|
+
|
|
133
|
+
| FOCUS column | GCP Billing Export field(s) | Transformation | Provenance |
|
|
134
|
+
|---|---|---|---|
|
|
135
|
+
| `BilledCost` | `cost` + sum of applicable `credits[].amount` | Add credit amounts (negative values) to cost. | derived |
|
|
136
|
+
| `BilledCurrency` | `currency` | Direct map. | mapped |
|
|
137
|
+
| `BillingAccountId` | `billing_account_id` | Direct map. | mapped |
|
|
138
|
+
| `BillingAccountName` | Not in standard export | null — account name not included. | null |
|
|
139
|
+
| `BillingPeriodStart` | `invoice.month` | Parse YYYYMM as first day of month UTC. | derived |
|
|
140
|
+
| `BillingPeriodEnd` | `invoice.month` | Parse YYYYMM as first day of next month UTC. | derived |
|
|
141
|
+
| `ChargeCategory` | `cost_type` | Map: `regular` → `Usage`; `tax` → `Tax`; `adjustment` → `Adjustment`; `rounding_error` → `Adjustment`. | derived |
|
|
142
|
+
| `ChargeDescription` | `sku.description` | Direct map. | mapped |
|
|
143
|
+
| `ChargeFrequency` | `cost_type` | `regular` → `Usage-based`; `tax` → `One-time`. | derived |
|
|
144
|
+
| `ChargePeriodStart` | `usage_start_time` | Convert to ISO 8601 UTC. | derived |
|
|
145
|
+
| `ChargePeriodEnd` | `usage_end_time` | Convert to ISO 8601 UTC. | derived |
|
|
146
|
+
| `ConsumedQuantity` | `usage.amount` | Direct map. | mapped |
|
|
147
|
+
| `ConsumedUnit` | `usage.unit` | Direct map. | mapped |
|
|
148
|
+
| `EffectiveCost` | `cost` | GCP exports net cost after credits applied; same as BilledCost in most cases. | mapped |
|
|
149
|
+
| `InvoiceIssuerName` | Static: `"Google"` | Fixed value. | derived |
|
|
150
|
+
| `ListCost` | `cost_at_list` (if present in resource-level export) | Direct map when available; null otherwise. | mapped |
|
|
151
|
+
| `ListUnitPrice` | Not in standard export | null — not available in standard BigQuery export. | null |
|
|
152
|
+
| `PricingCategory` | `credits[].type` | If credits include `COMMITTED_USAGE_DISCOUNT`: `Committed`; else `Standard`. | derived |
|
|
153
|
+
| `PricingQuantity` | `usage.amount_in_pricing_units` | Direct map. | mapped |
|
|
154
|
+
| `PricingUnit` | `usage.pricing_unit` | Direct map. | mapped |
|
|
155
|
+
| `ProviderName` | Static: `"Google Cloud"` | Fixed value. | derived |
|
|
156
|
+
| `PublisherName` | Static: `"Google Cloud"` | Fixed value. | derived |
|
|
157
|
+
| `Region` | `location.region` | Direct map. | mapped |
|
|
158
|
+
| `ServiceCategory` | `service.description` | Map service name to FOCUS ServiceCategory (see note below). | derived |
|
|
159
|
+
| `ServiceName` | `service.description` | Direct map. | mapped |
|
|
160
|
+
| `SkuId` | `sku.id` | Direct map. | mapped |
|
|
161
|
+
| `SkuPriceId` | Not in standard export | null — not available. | null |
|
|
162
|
+
| `SubAccountId` | `project.id` | Direct map. | mapped |
|
|
163
|
+
| `SubAccountName` | `project.name` | Direct map. | mapped |
|
|
164
|
+
| `AvailabilityZone` | `location.zone` | Direct map. | mapped |
|
|
165
|
+
| `ResourceId` | `resource.name` | Direct map when present. | mapped |
|
|
166
|
+
| `ResourceName` | `resource.global_name` | Direct map when present. | mapped |
|
|
167
|
+
| `ResourceType` | Not in standard export | null — not available in standard export. | null |
|
|
168
|
+
| `Tags` | `labels` (repeated key-value) | Flatten repeated label records into key-value map. | derived |
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## OCI Billing → FOCUS v1.2
|
|
173
|
+
|
|
174
|
+
OCI provides billing data through the Cost and Usage Reports (CSV export) and the Usage API.
|
|
175
|
+
|
|
176
|
+
| FOCUS column | OCI column(s) | Transformation | Provenance |
|
|
177
|
+
|---|---|---|---|
|
|
178
|
+
| `BilledCost` | `cost/myCost` | Direct map. | mapped |
|
|
179
|
+
| `BilledCurrency` | `currency/currencyCode` | Direct map. | mapped |
|
|
180
|
+
| `BillingAccountId` | `product/tenancyId` | Direct map (tenancy OCID). | mapped |
|
|
181
|
+
| `BillingAccountName` | Not in standard export | null — tenancy name not in CSV export. | null |
|
|
182
|
+
| `BillingPeriodStart` | `lineItem/intervalUsageStart` | Convert to ISO 8601 UTC (first day of month for monthly export). | derived |
|
|
183
|
+
| `BillingPeriodEnd` | `lineItem/intervalUsageEnd` | Convert to ISO 8601 UTC. | derived |
|
|
184
|
+
| `ChargeCategory` | `lineItem/lineItemType` | Map: `USAGE` → `Usage`; `CREDIT` → `Credit`; `TAX` → `Tax`. | derived |
|
|
185
|
+
| `ChargeDescription` | `product/resourceName` + `product/serviceName` | Concatenate service and resource name. | derived |
|
|
186
|
+
| `ChargeFrequency` | `lineItem/lineItemType` | `USAGE` → `Usage-based`; `CREDIT` → `One-time`. | derived |
|
|
187
|
+
| `ChargePeriodStart` | `lineItem/intervalUsageStart` | Convert to ISO 8601 UTC. | derived |
|
|
188
|
+
| `ChargePeriodEnd` | `lineItem/intervalUsageEnd` | Convert to ISO 8601 UTC. | derived |
|
|
189
|
+
| `ConsumedQuantity` | `usage/consumedQuantity` | Direct map. | mapped |
|
|
190
|
+
| `ConsumedUnit` | `usage/consumedQuantityUnits` | Direct map. | mapped |
|
|
191
|
+
| `EffectiveCost` | `cost/myCost` | Same as BilledCost for OCI standard export. | mapped |
|
|
192
|
+
| `InvoiceIssuerName` | Static: `"Oracle"` | Fixed value. | derived |
|
|
193
|
+
| `ListCost` | `cost/unitPrice` × `usage/consumedQuantity` | Compute from unit price and quantity when both present. | derived |
|
|
194
|
+
| `ListUnitPrice` | `cost/unitPrice` | Direct map. | mapped |
|
|
195
|
+
| `PricingCategory` | Not in standard export | Default to `Standard` unless commitment discount indicators present. | assumed |
|
|
196
|
+
| `PricingQuantity` | `usage/billedQuantity` | Direct map when present. | mapped |
|
|
197
|
+
| `PricingUnit` | `usage/billedQuantityOverageUnits` or `usage/consumedQuantityUnits` | Use billed quantity unit when present; fall back to consumed unit. | derived |
|
|
198
|
+
| `ProviderName` | Static: `"Oracle Cloud Infrastructure"` | Fixed value. | derived |
|
|
199
|
+
| `PublisherName` | Static: `"Oracle"` | Fixed value. | derived |
|
|
200
|
+
| `Region` | `product/region` | Direct map. | mapped |
|
|
201
|
+
| `ServiceCategory` | `product/service` | Map OCI service name to FOCUS ServiceCategory (see note below). | derived |
|
|
202
|
+
| `ServiceName` | `product/serviceName` | Direct map. | mapped |
|
|
203
|
+
| `SkuId` | `product/skuPartNumber` | Direct map. | mapped |
|
|
204
|
+
| `SkuPriceId` | Not in standard export | null — not available. | null |
|
|
205
|
+
| `SubAccountId` | `product/compartmentId` | Direct map (compartment OCID). | mapped |
|
|
206
|
+
| `SubAccountName` | `product/compartmentName` | Direct map. | mapped |
|
|
207
|
+
| `AvailabilityZone` | `product/availabilityDomain` | Direct map. | mapped |
|
|
208
|
+
| `ResourceId` | `product/resourceId` | Direct map when present. | mapped |
|
|
209
|
+
| `ResourceName` | `product/resourceName` | Direct map. | mapped |
|
|
210
|
+
| `ResourceType` | Not in standard export | null — not in OCI cost export. | null |
|
|
211
|
+
| `Tags` | `tags/<key>` columns | Flatten tag columns (prefix `tags/`) into key-value map. | derived |
|
|
212
|
+
|
|
213
|
+
### OCI service to FOCUS ServiceCategory
|
|
214
|
+
|
|
215
|
+
| OCI product/service | FOCUS ServiceCategory |
|
|
216
|
+
|---|---|
|
|
217
|
+
| Compute | Compute |
|
|
218
|
+
| Container Engine for Kubernetes | Containers |
|
|
219
|
+
| Object Storage | Storage |
|
|
220
|
+
| Block Storage | Storage |
|
|
221
|
+
| Database | Databases |
|
|
222
|
+
| MySQL | Databases |
|
|
223
|
+
| NoSQL | Databases |
|
|
224
|
+
| Networking | Networking |
|
|
225
|
+
| Load Balancing | Networking |
|
|
226
|
+
| Generative AI | AI and Machine Learning |
|
|
227
|
+
| Data Science | AI and Machine Learning |
|
|
228
|
+
| Data Flow | Analytics |
|
|
229
|
+
| Other | Other |
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Kubernetes Allocation Report
|
|
2
|
+
|
|
3
|
+
A FinOps skill that produces OpenCost-compatible cost allocation tables for Kubernetes namespaces, pods, and workloads using user-supplied cluster topology data and public cloud pricing. No cluster credentials required or accepted.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Generate a namespace-by-namespace, workload-by-workload cost breakdown for a Kubernetes cluster using the node SKU mix, pod resource requests, and runtime hours supplied by the caller. The output attributes cost by namespace, workload, and team label, follows OpenCost allocation semantics, and maps to FOCUS v1.2 billing columns.
|
|
8
|
+
|
|
9
|
+
## Allowed tools
|
|
10
|
+
|
|
11
|
+
`Read` `Grep` `Glob` `WebFetch`
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
**Allocation report:** Paste your cluster shape — node SKU mix, namespace list, pod CPU/memory requests, and reporting window in hours. The skill fetches live on-demand node pricing, applies request-based allocation math, and returns a table broken down by namespace, workload, and team label, including idle cost and a FOCUS v1.2 metadata row.
|
|
16
|
+
|
|
17
|
+
**FOCUS mapping mode:** Provide an OpenCost allocation export and ask for the FOCUS v1.2 column mapping. The skill maps each OpenCost column to its FOCUS equivalent and flags gaps.
|
|
18
|
+
|
|
19
|
+
## Trust posture
|
|
20
|
+
|
|
21
|
+
Read-only. No cloud credentials, billing account IDs, or tenant data accepted. No connection to the Kubernetes API server or cloud billing APIs is made. All cluster data must be provided by the caller. Node prices are fetched from public, unauthenticated cloud pricing pages and labeled with source URL and fetch timestamp.
|
|
22
|
+
|
|
23
|
+
See [SKILL.md](SKILL.md) for the full allocation methodology, required input, and response shape.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kubernetes-allocation-report
|
|
3
|
+
description: Produce OpenCost-compatible namespace, pod, and workload cost allocation tables from user-supplied cluster shape data and public cloud pricing. Input is cluster topology provided by the caller; no cluster credentials or live API access are required or accepted. Output maps to FOCUS v1.2 columns.
|
|
4
|
+
allowed-tools: Read Grep Glob WebFetch
|
|
5
|
+
metadata:
|
|
6
|
+
author: "github: Raishin"
|
|
7
|
+
version: "0.1.2"
|
|
8
|
+
updated: "2026-05-13"
|
|
9
|
+
category: finops
|
|
10
|
+
lifecycle: experimental
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Kubernetes Allocation Report
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Generate an OpenCost-compatible cost allocation breakdown for Kubernetes workloads using cluster shape data supplied by the caller and live public cloud pricing. The output attributes cost by namespace, workload, and labeled team, following OpenCost allocation semantics and mapping to FOCUS v1.2 billing columns.
|
|
18
|
+
|
|
19
|
+
No cluster credentials are accepted. All pricing is fetched from public pricing APIs.
|
|
20
|
+
|
|
21
|
+
## When to use
|
|
22
|
+
|
|
23
|
+
Use this skill when:
|
|
24
|
+
|
|
25
|
+
- The user wants to understand how cluster spend is distributed across namespaces, workloads, or teams
|
|
26
|
+
- The user has pasted or attached a node SKU list, namespace inventory, pod resource requests, and runtime hours and wants a cost attribution table
|
|
27
|
+
- The user wants to compare allocation against actual billing to identify idle or unallocated cost
|
|
28
|
+
- The user wants output that maps to OpenCost allocation columns or FOCUS v1.2 columns for FinOps reporting
|
|
29
|
+
|
|
30
|
+
## Operating rules
|
|
31
|
+
|
|
32
|
+
- **No cluster credentials accepted.** No kubeconfig, bearer token, service account JWT, or cloud IAM credential is accepted or required. All cluster data is user-supplied in the prompt.
|
|
33
|
+
- **User-supplied input only.** The cluster shape (node SKU mix, namespace list, pod resource requests, runtime hours) is provided by the caller. This skill does not connect to the Kubernetes API server or any cloud billing API.
|
|
34
|
+
- **Fetch live node pricing.** Use WebFetch to retrieve current on-demand prices for the user-supplied node SKUs from the relevant cloud provider's public pricing API. Label fetched prices as `live-price` with source URL and ISO 8601 timestamp.
|
|
35
|
+
- **Provenance labels mandatory.** Every cost figure must carry one label:
|
|
36
|
+
- `live-price` — price fetched from a public API within this session (include URL and timestamp)
|
|
37
|
+
- `documentation-based` — price sourced from official documentation when live fetch failed (include URL)
|
|
38
|
+
- `assumed` — price derived from analogous SKU or default ratio (state the assumption)
|
|
39
|
+
- `excluded` — costs intentionally omitted from the allocation (e.g., data transfer, licensing); explain why
|
|
40
|
+
- **Request-based allocation by default.** Use pod resource requests (not live usage metrics) as the allocation numerator unless the caller explicitly provides usage data.
|
|
41
|
+
- **No credentials accepted.** No cloud credentials, billing account IDs, or tenant data accepted at any point.
|
|
42
|
+
- **FOCUS column mapping.** Map every allocation output to the corresponding FOCUS v1.2 columns as specified in the response shape below.
|
|
43
|
+
- **Load references only when needed.**
|
|
44
|
+
|
|
45
|
+
## Required input
|
|
46
|
+
|
|
47
|
+
The caller must supply:
|
|
48
|
+
|
|
49
|
+
- **Node SKU mix**: cloud provider, instance type (e.g., `m6i.4xlarge`), region, and count per node pool.
|
|
50
|
+
- **Namespace list**: names of all namespaces to include in the allocation.
|
|
51
|
+
- **Pod resource requests**: for each pod or workload, CPU request (millicores) and memory request (MiB), plus the namespace and owner (Deployment, StatefulSet, DaemonSet, Job, or standalone Pod).
|
|
52
|
+
- **Runtime hours**: the reporting window in hours (e.g., 720 for a calendar month).
|
|
53
|
+
- **Team labels** (optional): namespace or workload label values for the `team` or `cost-center` label key, used to group allocation by team.
|
|
54
|
+
|
|
55
|
+
If any required input is missing, ask one clarifying question per gap. Do not fabricate cluster data.
|
|
56
|
+
|
|
57
|
+
## Allocation methodology
|
|
58
|
+
|
|
59
|
+
1. **Node cost per hour**: fetch on-demand price for each node SKU. Multiply by node count and runtime hours to get total cluster node cost.
|
|
60
|
+
2. **Allocatable resources per node**: CPU = (node vCPU count - system overhead, default 10%) allocatable; memory = (node RAM - system overhead, default 10%) allocatable.
|
|
61
|
+
3. **Split node cost by dimension**: divide total cluster cost between CPU and memory (default: 50% CPU, 50% memory; adjust if provider publishes component pricing).
|
|
62
|
+
4. **Request-based share per dimension**: for each pod, compute CPU share = pod CPU request / total cluster allocatable CPU; and memory share = pod memory request / total cluster allocatable memory.
|
|
63
|
+
5. **Allocated cost per pod**: CPU cost = CPU share × CPU portion of node cost; Memory cost = Memory share × memory portion of node cost.
|
|
64
|
+
6. **Idle cost**: cluster cost minus sum of all pod-allocated costs.
|
|
65
|
+
7. **Aggregate by namespace / workload / team**: sum pod-level costs to produce namespace, workload, and team totals.
|
|
66
|
+
|
|
67
|
+
## Response shape
|
|
68
|
+
|
|
69
|
+
Return a structured allocation table with these columns:
|
|
70
|
+
|
|
71
|
+
| Column | Description | FOCUS mapping |
|
|
72
|
+
|---|---|---|
|
|
73
|
+
| Namespace | Kubernetes namespace | `ResourceName` (namespace scope) |
|
|
74
|
+
| Workload | Deployment / StatefulSet / DaemonSet / Job name | `ResourceName` (workload scope) |
|
|
75
|
+
| Team | Value of `team` or `cost-center` label | `Tags/team` |
|
|
76
|
+
| CPU request (m) | Millicores requested | N/A |
|
|
77
|
+
| Memory request (MiB) | MiB requested | N/A |
|
|
78
|
+
| CPU cost ($/period) | Cost attributed to CPU requests | `BilledCost` (CPU share) |
|
|
79
|
+
| Memory cost ($/period) | Cost attributed to memory requests | `BilledCost` (memory share) |
|
|
80
|
+
| Total allocated cost ($/period) | Sum of CPU and memory allocated cost | `BilledCost` |
|
|
81
|
+
| Provenance | Label for the price source | N/A |
|
|
82
|
+
|
|
83
|
+
Followed by:
|
|
84
|
+
|
|
85
|
+
- **Idle cost row**: total cluster cost minus sum of all allocated costs; label as `unallocated`.
|
|
86
|
+
- **Total cluster cost row**: on-demand price × node count × runtime hours; labeled with provenance.
|
|
87
|
+
- **Key assumptions**: system overhead percentage, request-based vs usage-based allocation, pricing source timestamp.
|
|
88
|
+
- **FOCUS metadata row**: `ServiceCategory = Containers`, `ChargeCategory = Usage`, `ServiceName = Kubernetes` (user-supplied cluster name or "unnamed"), `ProviderName` = cloud provider of the node SKUs.
|
|
89
|
+
|
|
90
|
+
## References
|
|
91
|
+
|
|
92
|
+
Load these only when needed:
|
|
93
|
+
|
|
94
|
+
- [OpenCost to FOCUS column mapping](references/opencost-mapping.md) — how OpenCost allocation columns map to FOCUS v1.2 columns and where gaps exist.
|
|
95
|
+
- [Attribution workflow](references/attribution-workflow.md) — idle vs allocated vs unallocated cost, request-vs-usage allocation modes.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "kubernetes-allocation-report",
|
|
3
|
+
"name": "Kubernetes Allocation Report",
|
|
4
|
+
"type": "skill",
|
|
5
|
+
"provider": "kubernetes",
|
|
6
|
+
"harnesses": [
|
|
7
|
+
"codex",
|
|
8
|
+
"claude-code",
|
|
9
|
+
"cursor",
|
|
10
|
+
"gemini",
|
|
11
|
+
"kiro",
|
|
12
|
+
"other"
|
|
13
|
+
],
|
|
14
|
+
"summary": "Produce OpenCost-compatible namespace, pod, and workload cost allocation tables from user-supplied cluster shape data and public cloud pricing. No cluster credentials accepted. Output maps to FOCUS v1.2 columns.",
|
|
15
|
+
"source_type": "original",
|
|
16
|
+
"official_docs": [
|
|
17
|
+
"https://www.opencost.io/docs/",
|
|
18
|
+
"https://focus.finops.org/"
|
|
19
|
+
],
|
|
20
|
+
"security_notes": "No cluster credentials, kubeconfig, bearer tokens, service account JWTs, or cloud IAM credentials are accepted or required. All cluster topology data is user-supplied. Node pricing is fetched from public, unauthenticated cloud pricing APIs only.",
|
|
21
|
+
"last_verified": "2026-05-13",
|
|
22
|
+
"path": "skills/finops/kubernetes-allocation-report",
|
|
23
|
+
"author": "github: Raishin",
|
|
24
|
+
"version": "0.1.2",
|
|
25
|
+
"lifecycle": "experimental"
|
|
26
|
+
}
|