sparkforge-aws 0.5.0__tar.gz
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.
- sparkforge_aws-0.5.0/.agents/agents/athena-query-optimizer.md +83 -0
- sparkforge_aws-0.5.0/.agents/agents/cdc-contract-reviewer.md +49 -0
- sparkforge_aws-0.5.0/.agents/agents/data-quality-reviewer.md +184 -0
- sparkforge_aws-0.5.0/.agents/agents/emr-infra-reviewer.md +231 -0
- sparkforge_aws-0.5.0/.agents/agents/executors/sf-extractor.md +112 -0
- sparkforge_aws-0.5.0/.agents/agents/executors/sf-inventory.md +73 -0
- sparkforge_aws-0.5.0/.agents/agents/executors/sf-judge.md +44 -0
- sparkforge_aws-0.5.0/.agents/agents/executors/sf-synthesizer.md +136 -0
- sparkforge_aws-0.5.0/.agents/agents/executors/sf-verifier.md +106 -0
- sparkforge_aws-0.5.0/.agents/agents/glue-incremental-performance-architect.md +120 -0
- sparkforge_aws-0.5.0/.agents/agents/glue-infra-reviewer.md +153 -0
- sparkforge_aws-0.5.0/.agents/agents/iceberg-performance-engineer.md +89 -0
- sparkforge_aws-0.5.0/.agents/agents/pyspark-code-reviewer.md +228 -0
- sparkforge_aws-0.5.0/.agents/agents/sf-lake-formation-specialist.md +166 -0
- sparkforge_aws-0.5.0/.agents/agents/sf-runtime-specialist.md +165 -0
- sparkforge_aws-0.5.0/.agents/agents/sf-security-reviewer.md +28 -0
- sparkforge_aws-0.5.0/.agents/agents/sf-terraform-specialist.md +26 -0
- sparkforge_aws-0.5.0/.agents/agents/spark-performance-architect.md +349 -0
- sparkforge_aws-0.5.0/.agents/agents/streaming-realtime-architect.md +113 -0
- sparkforge_aws-0.5.0/.agents/skills/_shared/references/evaluation-contract.md +17 -0
- sparkforge_aws-0.5.0/.agents/skills/_shared/references/evidence-first.md +49 -0
- sparkforge_aws-0.5.0/.agents/skills/_shared/references/operational-safety.md +21 -0
- sparkforge_aws-0.5.0/.agents/skills/_shared/scripts/validate_skill_context.py +74 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-batch-loop/SKILL.md +141 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-batch-loop/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-batch-loop/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-batch-loop/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-flink-job/SKILL.md +129 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-flink-job/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-flink-job/references/README.md +5 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-flink-job/scripts/validate_evidence.py +9 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-functional-rules/SKILL.md +89 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-functional-rules/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-functional-rules/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-functional-rules/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-library-call-graph/SKILL.md +144 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-library-call-graph/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-library-call-graph/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-library-call-graph/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-spark-plan/SKILL.md +124 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-spark-plan/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-spark-plan/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-spark-plan/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-spark-ui/SKILL.md +147 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-spark-ui/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-spark-ui/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-spark-ui/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-streaming-composition/SKILL.md +199 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-streaming-composition/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-streaming-composition/references/README.md +4 -0
- sparkforge_aws-0.5.0/.agents/skills/analyze-streaming-composition/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/SKILL.md +293 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/budgets.md +50 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/cost-audit.md +75 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/cost-explorer.md +130 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/cost-optimization-hub.md +140 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/cur-athena.md +103 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/deterministic-calculations.md +62 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/ebs-optimization.md +49 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/ec2-rightsizing.md +86 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/free-tier.md +34 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/lambda-optimization.md +46 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/pricing-lookup.md +78 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/rds-optimization.md +39 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/reserved-instances.md +62 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/savings-plans.md +69 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/references/service-optimization.md +58 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-billing-and-cost-management/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-database/SKILL.md +189 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-database/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-database/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-database/references/handoff.md +74 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-database/references/report-issue.md +59 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-database/references/select.md +243 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-database/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-iam/SKILL.md +248 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-iam/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-iam/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-iam/references/aws-iam-policy-generation.md +504 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-iam/references/aws-iam-role-management.md +108 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-iam/references/common-pitfalls.md +127 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-iam/references/service-authorization.md +84 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-iam/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-messaging-and-streaming/SKILL.md +314 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-messaging-and-streaming/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-messaging-and-streaming/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-messaging-and-streaming/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/SKILL.md +158 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/alarms.md +263 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/application-signals-cicd-metadata.md +132 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/application-signals-onboarding.md +223 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/ec2-dotnet.md +318 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/ec2-java.md +246 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/ec2-nodejs.md +449 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/ec2-python.md +627 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/ecs-dotnet.md +250 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/ecs-java.md +180 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/ecs-nodejs.md +193 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/ecs-python.md +238 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/eks-dotnet.md +137 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/eks-java.md +137 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/eks-nodejs.md +137 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/eks-python.md +162 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/lambda-dotnet.md +86 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/lambda-java.md +104 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/lambda-nodejs.md +162 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/appsignals-guides/lambda-python.md +185 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/cloudtrail.md +117 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/dashboards.md +157 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/dynamic-instrumentation/breakpoint-creation.md +359 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/dynamic-instrumentation/call-tree-and-directions.md +166 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/dynamic-instrumentation/snapshot-parsing.md +82 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/dynamic-instrumentation.md +562 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/log-insights.md +254 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/metrics.md +192 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/synthetics.md +136 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/tracing.md +253 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/references/troubleshooting.md +122 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-observability/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-sdk-python-usage/SKILL.md +365 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-sdk-python-usage/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-sdk-python-usage/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-sdk-python-usage/references/configuration.md +151 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-sdk-python-usage/references/credentials.md +127 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-sdk-python-usage/references/dynamodb.md +295 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-sdk-python-usage/references/error-handling.md +139 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-sdk-python-usage/references/pagination.md +104 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-sdk-python-usage/references/s3.md +223 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-sdk-python-usage/references/waiters.md +121 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-sdk-python-usage/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/SKILL.md +245 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/detective-configuration.md +127 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/detective-investigations.md +97 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/detective.md +68 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/guardduty-configuration.md +152 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/guardduty-findings.md +128 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/guardduty.md +80 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/inspector-configuration.md +132 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/inspector-findings.md +115 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/inspector.md +77 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/macie-configuration.md +158 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/macie-findings.md +124 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/macie.md +72 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/organization-policies.md +58 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/security-hub-configuration.md +159 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/security-hub-cspm-configuration.md +137 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/security-hub-cspm-findings.md +117 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/security-hub-cspm.md +108 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/security-hub-findings.md +147 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/security-hub.md +91 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/security-lake-configuration.md +132 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/security-lake-sources.md +117 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/security-lake.md +53 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/references/services-overview.md +110 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-security/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/SKILL.md +180 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/assets/powertools-handler.py +66 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/references/api-gateway.md +133 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/references/architecture.md +123 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/references/concurrency.md +86 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/references/deployment.md +94 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/references/event-sources.md +165 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/references/lambda.md +189 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/references/orchestration.md +130 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/references/production.md +156 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/references/troubleshooting.md +184 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-serverless/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/SKILL.md +299 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/data-movement-and-protection-knowledge.md +56 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/ebs-knowledge.md +45 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/efs-knowledge.md +34 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/fsx-lustre-knowledge.md +46 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/fsx-ontap-knowledge.md +46 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/fsx-openzfs-knowledge.md +44 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/fsx-windows-knowledge.md +43 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/s3-express-knowledge.md +35 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/s3-files-knowledge.md +43 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/s3-general-purpose-knowledge.md +39 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/s3-tables-knowledge.md +45 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/references/s3-vectors-knowledge.md +43 -0
- sparkforge_aws-0.5.0/.agents/skills/aws-storage/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/benchmark-pyspark-job/SKILL.md +230 -0
- sparkforge_aws-0.5.0/.agents/skills/benchmark-pyspark-job/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/benchmark-pyspark-job/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/benchmark-pyspark-job/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/compare-releases/SKILL.md +222 -0
- sparkforge_aws-0.5.0/.agents/skills/compare-releases/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/compare-releases/references/README.md +11 -0
- sparkforge_aws-0.5.0/.agents/skills/compare-releases/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/design-data-architecture/SKILL.md +57 -0
- sparkforge_aws-0.5.0/.agents/skills/design-data-architecture/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/design-data-architecture/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/design-data-architecture/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/design-incremental-processing/SKILL.md +167 -0
- sparkforge_aws-0.5.0/.agents/skills/design-incremental-processing/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/design-incremental-processing/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/design-incremental-processing/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/design-realtime-data-architecture/SKILL.md +73 -0
- sparkforge_aws-0.5.0/.agents/skills/design-realtime-data-architecture/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.agents/skills/design-realtime-data-architecture/references/README.md +3 -0
- sparkforge_aws-0.5.0/.agents/skills/design-realtime-data-architecture/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.agents/skills/design-s3-data-lake/SKILL.md +57 -0
- sparkforge_aws-0.5.0/.agents/skills/design-s3-data-lake/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/design-s3-data-lake/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/design-s3-data-lake/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/diagnose-data-skew/SKILL.md +132 -0
- sparkforge_aws-0.5.0/.agents/skills/diagnose-data-skew/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/diagnose-data-skew/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/diagnose-data-skew/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/diagnose-lakeformation-access/SKILL.md +259 -0
- sparkforge_aws-0.5.0/.agents/skills/diagnose-lakeformation-access/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/diagnose-lakeformation-access/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/diagnose-lakeformation-access/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/diagnose-oom/SKILL.md +136 -0
- sparkforge_aws-0.5.0/.agents/skills/diagnose-oom/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/diagnose-oom/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/diagnose-oom/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/glue-incremental-performance-architect/SKILL.md +155 -0
- sparkforge_aws-0.5.0/.agents/skills/glue-incremental-performance-architect/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/glue-incremental-performance-architect/references/README.md +11 -0
- sparkforge_aws-0.5.0/.agents/skills/glue-incremental-performance-architect/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/harden-s3-bucket/SKILL.md +196 -0
- sparkforge_aws-0.5.0/.agents/skills/harden-s3-bucket/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/harden-s3-bucket/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/harden-s3-bucket/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/iceberg-v3-readiness/SKILL.md +114 -0
- sparkforge_aws-0.5.0/.agents/skills/iceberg-v3-readiness/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/iceberg-v3-readiness/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/iceberg-v3-readiness/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/lakeformation-architecture/SKILL.md +158 -0
- sparkforge_aws-0.5.0/.agents/skills/lakeformation-architecture/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/lakeformation-architecture/references/README.md +14 -0
- sparkforge_aws-0.5.0/.agents/skills/lakeformation-architecture/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/lakeformation-fgac-guard/SKILL.md +243 -0
- sparkforge_aws-0.5.0/.agents/skills/lakeformation-fgac-guard/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/lakeformation-fgac-guard/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/lakeformation-fgac-guard/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/migrate-glue-6/SKILL.md +103 -0
- sparkforge_aws-0.5.0/.agents/skills/migrate-glue-6/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/migrate-glue-6/references/README.md +11 -0
- sparkforge_aws-0.5.0/.agents/skills/migrate-glue-6/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-iceberg-table/SKILL.md +166 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-iceberg-table/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-iceberg-table/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-iceberg-table/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-latest-per-key/SKILL.md +143 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-latest-per-key/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-latest-per-key/references/README.md +11 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-latest-per-key/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-parquet-layout/SKILL.md +196 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-parquet-layout/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-parquet-layout/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-parquet-layout/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-pyspark-code/SKILL.md +191 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-pyspark-code/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-pyspark-code/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-pyspark-code/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-variable-volume-job/SKILL.md +109 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-variable-volume-job/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-variable-volume-job/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/optimize-variable-volume-job/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/propose-change-pr/SKILL.md +85 -0
- sparkforge_aws-0.5.0/.agents/skills/propose-change-pr/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/propose-change-pr/references/README.md +11 -0
- sparkforge_aws-0.5.0/.agents/skills/propose-change-pr/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/provision-s3-tables-table/SKILL.md +244 -0
- sparkforge_aws-0.5.0/.agents/skills/provision-s3-tables-table/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/provision-s3-tables-table/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/provision-s3-tables-table/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/review-cdc-replication/SKILL.md +112 -0
- sparkforge_aws-0.5.0/.agents/skills/review-cdc-replication/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.agents/skills/review-cdc-replication/references/README.md +4 -0
- sparkforge_aws-0.5.0/.agents/skills/review-cdc-replication/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.agents/skills/review-data-validation/SKILL.md +288 -0
- sparkforge_aws-0.5.0/.agents/skills/review-data-validation/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/review-data-validation/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/review-data-validation/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/review-emr-cluster/SKILL.md +300 -0
- sparkforge_aws-0.5.0/.agents/skills/review-emr-cluster/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/review-emr-cluster/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/review-emr-cluster/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/review-emr-eks/SKILL.md +417 -0
- sparkforge_aws-0.5.0/.agents/skills/review-emr-eks/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/review-emr-eks/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/review-emr-eks/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/review-event-driven-architecture/SKILL.md +93 -0
- sparkforge_aws-0.5.0/.agents/skills/review-event-driven-architecture/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.agents/skills/review-event-driven-architecture/references/README.md +4 -0
- sparkforge_aws-0.5.0/.agents/skills/review-event-driven-architecture/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.agents/skills/review-glue-streaming/SKILL.md +105 -0
- sparkforge_aws-0.5.0/.agents/skills/review-glue-streaming/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.agents/skills/review-glue-streaming/references/README.md +4 -0
- sparkforge_aws-0.5.0/.agents/skills/review-glue-streaming/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.agents/skills/review-glue-terraform/SKILL.md +176 -0
- sparkforge_aws-0.5.0/.agents/skills/review-glue-terraform/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/review-glue-terraform/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/review-glue-terraform/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/review-pyspark-pr/SKILL.md +157 -0
- sparkforge_aws-0.5.0/.agents/skills/review-pyspark-pr/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/review-pyspark-pr/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/review-pyspark-pr/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/review-streaming-operations/SKILL.md +123 -0
- sparkforge_aws-0.5.0/.agents/skills/review-streaming-operations/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.agents/skills/review-streaming-operations/references/README.md +5 -0
- sparkforge_aws-0.5.0/.agents/skills/review-streaming-operations/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.agents/skills/review-structured-streaming/SKILL.md +123 -0
- sparkforge_aws-0.5.0/.agents/skills/review-structured-streaming/evals/evals.json +17 -0
- sparkforge_aws-0.5.0/.agents/skills/review-structured-streaming/references/README.md +6 -0
- sparkforge_aws-0.5.0/.agents/skills/review-structured-streaming/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.agents/skills/review-terraform-data-platform/SKILL.md +57 -0
- sparkforge_aws-0.5.0/.agents/skills/review-terraform-data-platform/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/review-terraform-data-platform/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/review-terraform-data-platform/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/run-debate/SKILL.md +90 -0
- sparkforge_aws-0.5.0/.agents/skills/run-debate/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/run-debate/references/README.md +11 -0
- sparkforge_aws-0.5.0/.agents/skills/run-debate/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-build/SKILL.md +265 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-build/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-build/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-build/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-define/SKILL.md +172 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-define/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-define/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-define/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-design/SKILL.md +144 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-design/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-design/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-design/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-explore/SKILL.md +141 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-explore/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-explore/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-explore/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-plan/SKILL.md +165 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-plan/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-plan/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-plan/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-ship/SKILL.md +209 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-ship/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-ship/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/sdd-ship/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/spark4-compatibility/SKILL.md +101 -0
- sparkforge_aws-0.5.0/.agents/skills/spark4-compatibility/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/spark4-compatibility/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/spark4-compatibility/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/sparkforge-aws-diagnose/SKILL.md +206 -0
- sparkforge_aws-0.5.0/.agents/skills/sparkforge-aws-diagnose/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/sparkforge-aws-diagnose/references/README.md +13 -0
- sparkforge_aws-0.5.0/.agents/skills/sparkforge-aws-diagnose/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/tool-specialist-routing/SKILL.md +52 -0
- sparkforge_aws-0.5.0/.agents/skills/tool-specialist-routing/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/tool-specialist-routing/references/README.md +11 -0
- sparkforge_aws-0.5.0/.agents/skills/tool-specialist-routing/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.agents/skills/tune-glue-job/SKILL.md +116 -0
- sparkforge_aws-0.5.0/.agents/skills/tune-glue-job/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.agents/skills/tune-glue-job/references/README.md +11 -0
- sparkforge_aws-0.5.0/.agents/skills/tune-glue-job/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.caveman/README.md +38 -0
- sparkforge_aws-0.5.0/.claude/agents/athena-query-optimizer.md +84 -0
- sparkforge_aws-0.5.0/.claude/agents/cdc-contract-reviewer.md +50 -0
- sparkforge_aws-0.5.0/.claude/agents/data-quality-reviewer.md +185 -0
- sparkforge_aws-0.5.0/.claude/agents/emr-infra-reviewer.md +232 -0
- sparkforge_aws-0.5.0/.claude/agents/executors/sf-extractor.md +113 -0
- sparkforge_aws-0.5.0/.claude/agents/executors/sf-inventory.md +74 -0
- sparkforge_aws-0.5.0/.claude/agents/executors/sf-judge.md +45 -0
- sparkforge_aws-0.5.0/.claude/agents/executors/sf-synthesizer.md +137 -0
- sparkforge_aws-0.5.0/.claude/agents/executors/sf-verifier.md +107 -0
- sparkforge_aws-0.5.0/.claude/agents/glue-incremental-performance-architect.md +121 -0
- sparkforge_aws-0.5.0/.claude/agents/glue-infra-reviewer.md +154 -0
- sparkforge_aws-0.5.0/.claude/agents/iceberg-performance-engineer.md +90 -0
- sparkforge_aws-0.5.0/.claude/agents/pyspark-code-reviewer.md +229 -0
- sparkforge_aws-0.5.0/.claude/agents/sf-lake-formation-specialist.md +167 -0
- sparkforge_aws-0.5.0/.claude/agents/sf-runtime-specialist.md +166 -0
- sparkforge_aws-0.5.0/.claude/agents/sf-security-reviewer.md +29 -0
- sparkforge_aws-0.5.0/.claude/agents/sf-terraform-specialist.md +27 -0
- sparkforge_aws-0.5.0/.claude/agents/spark-performance-architect.md +350 -0
- sparkforge_aws-0.5.0/.claude/agents/streaming-realtime-architect.md +114 -0
- sparkforge_aws-0.5.0/.claude/skills/_shared/references/evaluation-contract.md +17 -0
- sparkforge_aws-0.5.0/.claude/skills/_shared/references/evidence-first.md +49 -0
- sparkforge_aws-0.5.0/.claude/skills/_shared/references/operational-safety.md +21 -0
- sparkforge_aws-0.5.0/.claude/skills/_shared/scripts/validate_skill_context.py +74 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-batch-loop/SKILL.md +140 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-batch-loop/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-batch-loop/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-batch-loop/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-flink-job/SKILL.md +128 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-flink-job/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-flink-job/references/README.md +5 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-flink-job/scripts/validate_evidence.py +9 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-functional-rules/SKILL.md +87 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-functional-rules/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-functional-rules/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-functional-rules/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-library-call-graph/SKILL.md +143 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-library-call-graph/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-library-call-graph/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-library-call-graph/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-spark-plan/SKILL.md +123 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-spark-plan/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-spark-plan/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-spark-plan/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-spark-ui/SKILL.md +146 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-spark-ui/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-spark-ui/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-spark-ui/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-streaming-composition/SKILL.md +198 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-streaming-composition/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-streaming-composition/references/README.md +4 -0
- sparkforge_aws-0.5.0/.claude/skills/analyze-streaming-composition/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/SKILL.md +293 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/budgets.md +50 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/cost-audit.md +75 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/cost-explorer.md +130 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/cost-optimization-hub.md +140 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/cur-athena.md +103 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/deterministic-calculations.md +62 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/ebs-optimization.md +49 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/ec2-rightsizing.md +86 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/free-tier.md +34 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/lambda-optimization.md +46 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/pricing-lookup.md +78 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/rds-optimization.md +39 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/reserved-instances.md +62 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/savings-plans.md +69 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/references/service-optimization.md +58 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-billing-and-cost-management/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-database/SKILL.md +189 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-database/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-database/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-database/references/handoff.md +74 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-database/references/report-issue.md +59 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-database/references/select.md +243 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-database/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-iam/SKILL.md +248 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-iam/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-iam/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-iam/references/aws-iam-policy-generation.md +504 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-iam/references/aws-iam-role-management.md +108 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-iam/references/common-pitfalls.md +127 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-iam/references/service-authorization.md +84 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-iam/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-messaging-and-streaming/SKILL.md +314 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-messaging-and-streaming/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-messaging-and-streaming/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-messaging-and-streaming/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/SKILL.md +158 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/alarms.md +263 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/application-signals-cicd-metadata.md +132 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/application-signals-onboarding.md +223 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/ec2-dotnet.md +318 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/ec2-java.md +246 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/ec2-nodejs.md +449 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/ec2-python.md +627 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/ecs-dotnet.md +250 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/ecs-java.md +180 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/ecs-nodejs.md +193 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/ecs-python.md +238 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/eks-dotnet.md +137 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/eks-java.md +137 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/eks-nodejs.md +137 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/eks-python.md +162 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/lambda-dotnet.md +86 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/lambda-java.md +104 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/lambda-nodejs.md +162 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/appsignals-guides/lambda-python.md +185 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/cloudtrail.md +117 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/dashboards.md +157 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/dynamic-instrumentation/breakpoint-creation.md +359 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/dynamic-instrumentation/call-tree-and-directions.md +166 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/dynamic-instrumentation/snapshot-parsing.md +82 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/dynamic-instrumentation.md +562 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/log-insights.md +254 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/metrics.md +192 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/synthetics.md +136 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/tracing.md +253 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/references/troubleshooting.md +122 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-observability/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-sdk-python-usage/SKILL.md +365 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-sdk-python-usage/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-sdk-python-usage/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-sdk-python-usage/references/configuration.md +151 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-sdk-python-usage/references/credentials.md +127 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-sdk-python-usage/references/dynamodb.md +295 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-sdk-python-usage/references/error-handling.md +139 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-sdk-python-usage/references/pagination.md +104 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-sdk-python-usage/references/s3.md +223 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-sdk-python-usage/references/waiters.md +121 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-sdk-python-usage/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/SKILL.md +245 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/detective-configuration.md +127 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/detective-investigations.md +97 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/detective.md +68 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/guardduty-configuration.md +152 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/guardduty-findings.md +128 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/guardduty.md +80 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/inspector-configuration.md +132 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/inspector-findings.md +115 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/inspector.md +77 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/macie-configuration.md +158 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/macie-findings.md +124 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/macie.md +72 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/organization-policies.md +58 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/security-hub-configuration.md +159 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/security-hub-cspm-configuration.md +137 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/security-hub-cspm-findings.md +117 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/security-hub-cspm.md +108 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/security-hub-findings.md +147 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/security-hub.md +91 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/security-lake-configuration.md +132 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/security-lake-sources.md +117 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/security-lake.md +53 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/references/services-overview.md +110 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-security/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/SKILL.md +180 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/assets/powertools-handler.py +66 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/references/api-gateway.md +133 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/references/architecture.md +123 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/references/concurrency.md +86 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/references/deployment.md +94 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/references/event-sources.md +165 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/references/lambda.md +189 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/references/orchestration.md +130 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/references/production.md +156 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/references/troubleshooting.md +184 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-serverless/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/SKILL.md +299 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/data-movement-and-protection-knowledge.md +56 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/ebs-knowledge.md +45 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/efs-knowledge.md +34 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/fsx-lustre-knowledge.md +46 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/fsx-ontap-knowledge.md +46 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/fsx-openzfs-knowledge.md +44 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/fsx-windows-knowledge.md +43 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/s3-express-knowledge.md +35 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/s3-files-knowledge.md +43 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/s3-general-purpose-knowledge.md +39 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/s3-tables-knowledge.md +45 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/references/s3-vectors-knowledge.md +43 -0
- sparkforge_aws-0.5.0/.claude/skills/aws-storage/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/benchmark-pyspark-job/SKILL.md +230 -0
- sparkforge_aws-0.5.0/.claude/skills/benchmark-pyspark-job/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/benchmark-pyspark-job/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/benchmark-pyspark-job/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/compare-releases/SKILL.md +220 -0
- sparkforge_aws-0.5.0/.claude/skills/compare-releases/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/compare-releases/references/README.md +11 -0
- sparkforge_aws-0.5.0/.claude/skills/compare-releases/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/design-data-architecture/SKILL.md +57 -0
- sparkforge_aws-0.5.0/.claude/skills/design-data-architecture/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/design-data-architecture/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/design-data-architecture/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/design-incremental-processing/SKILL.md +167 -0
- sparkforge_aws-0.5.0/.claude/skills/design-incremental-processing/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/design-incremental-processing/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/design-incremental-processing/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/design-realtime-data-architecture/SKILL.md +72 -0
- sparkforge_aws-0.5.0/.claude/skills/design-realtime-data-architecture/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.claude/skills/design-realtime-data-architecture/references/README.md +3 -0
- sparkforge_aws-0.5.0/.claude/skills/design-realtime-data-architecture/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.claude/skills/design-s3-data-lake/SKILL.md +57 -0
- sparkforge_aws-0.5.0/.claude/skills/design-s3-data-lake/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/design-s3-data-lake/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/design-s3-data-lake/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/diagnose-data-skew/SKILL.md +131 -0
- sparkforge_aws-0.5.0/.claude/skills/diagnose-data-skew/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/diagnose-data-skew/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/diagnose-data-skew/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/diagnose-lakeformation-access/SKILL.md +259 -0
- sparkforge_aws-0.5.0/.claude/skills/diagnose-lakeformation-access/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/diagnose-lakeformation-access/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/diagnose-lakeformation-access/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/diagnose-oom/SKILL.md +135 -0
- sparkforge_aws-0.5.0/.claude/skills/diagnose-oom/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/diagnose-oom/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/diagnose-oom/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/glue-incremental-performance-architect/SKILL.md +155 -0
- sparkforge_aws-0.5.0/.claude/skills/glue-incremental-performance-architect/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/glue-incremental-performance-architect/references/README.md +11 -0
- sparkforge_aws-0.5.0/.claude/skills/glue-incremental-performance-architect/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/harden-s3-bucket/SKILL.md +196 -0
- sparkforge_aws-0.5.0/.claude/skills/harden-s3-bucket/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/harden-s3-bucket/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/harden-s3-bucket/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/iceberg-v3-readiness/SKILL.md +114 -0
- sparkforge_aws-0.5.0/.claude/skills/iceberg-v3-readiness/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/iceberg-v3-readiness/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/iceberg-v3-readiness/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/lakeformation-architecture/SKILL.md +157 -0
- sparkforge_aws-0.5.0/.claude/skills/lakeformation-architecture/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/lakeformation-architecture/references/README.md +14 -0
- sparkforge_aws-0.5.0/.claude/skills/lakeformation-architecture/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/lakeformation-fgac-guard/SKILL.md +241 -0
- sparkforge_aws-0.5.0/.claude/skills/lakeformation-fgac-guard/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/lakeformation-fgac-guard/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/lakeformation-fgac-guard/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/migrate-glue-6/SKILL.md +101 -0
- sparkforge_aws-0.5.0/.claude/skills/migrate-glue-6/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/migrate-glue-6/references/README.md +11 -0
- sparkforge_aws-0.5.0/.claude/skills/migrate-glue-6/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-iceberg-table/SKILL.md +166 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-iceberg-table/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-iceberg-table/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-iceberg-table/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-latest-per-key/SKILL.md +143 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-latest-per-key/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-latest-per-key/references/README.md +11 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-latest-per-key/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-parquet-layout/SKILL.md +195 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-parquet-layout/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-parquet-layout/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-parquet-layout/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-pyspark-code/SKILL.md +190 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-pyspark-code/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-pyspark-code/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-pyspark-code/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-variable-volume-job/SKILL.md +109 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-variable-volume-job/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-variable-volume-job/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/optimize-variable-volume-job/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/propose-change-pr/SKILL.md +85 -0
- sparkforge_aws-0.5.0/.claude/skills/propose-change-pr/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/propose-change-pr/references/README.md +11 -0
- sparkforge_aws-0.5.0/.claude/skills/propose-change-pr/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/provision-s3-tables-table/SKILL.md +244 -0
- sparkforge_aws-0.5.0/.claude/skills/provision-s3-tables-table/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/provision-s3-tables-table/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/provision-s3-tables-table/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/review-cdc-replication/SKILL.md +111 -0
- sparkforge_aws-0.5.0/.claude/skills/review-cdc-replication/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.claude/skills/review-cdc-replication/references/README.md +4 -0
- sparkforge_aws-0.5.0/.claude/skills/review-cdc-replication/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.claude/skills/review-data-validation/SKILL.md +286 -0
- sparkforge_aws-0.5.0/.claude/skills/review-data-validation/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/review-data-validation/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/review-data-validation/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/review-emr-cluster/SKILL.md +298 -0
- sparkforge_aws-0.5.0/.claude/skills/review-emr-cluster/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/review-emr-cluster/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/review-emr-cluster/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/review-emr-eks/SKILL.md +415 -0
- sparkforge_aws-0.5.0/.claude/skills/review-emr-eks/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/review-emr-eks/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/review-emr-eks/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/review-event-driven-architecture/SKILL.md +92 -0
- sparkforge_aws-0.5.0/.claude/skills/review-event-driven-architecture/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.claude/skills/review-event-driven-architecture/references/README.md +4 -0
- sparkforge_aws-0.5.0/.claude/skills/review-event-driven-architecture/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.claude/skills/review-glue-streaming/SKILL.md +104 -0
- sparkforge_aws-0.5.0/.claude/skills/review-glue-streaming/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.claude/skills/review-glue-streaming/references/README.md +4 -0
- sparkforge_aws-0.5.0/.claude/skills/review-glue-streaming/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.claude/skills/review-glue-terraform/SKILL.md +175 -0
- sparkforge_aws-0.5.0/.claude/skills/review-glue-terraform/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/review-glue-terraform/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/review-glue-terraform/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/review-pyspark-pr/SKILL.md +156 -0
- sparkforge_aws-0.5.0/.claude/skills/review-pyspark-pr/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/review-pyspark-pr/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/review-pyspark-pr/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/review-streaming-operations/SKILL.md +122 -0
- sparkforge_aws-0.5.0/.claude/skills/review-streaming-operations/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/.claude/skills/review-streaming-operations/references/README.md +5 -0
- sparkforge_aws-0.5.0/.claude/skills/review-streaming-operations/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.claude/skills/review-structured-streaming/SKILL.md +121 -0
- sparkforge_aws-0.5.0/.claude/skills/review-structured-streaming/evals/evals.json +17 -0
- sparkforge_aws-0.5.0/.claude/skills/review-structured-streaming/references/README.md +6 -0
- sparkforge_aws-0.5.0/.claude/skills/review-structured-streaming/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/.claude/skills/review-terraform-data-platform/SKILL.md +57 -0
- sparkforge_aws-0.5.0/.claude/skills/review-terraform-data-platform/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/review-terraform-data-platform/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/review-terraform-data-platform/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/run-debate/SKILL.md +90 -0
- sparkforge_aws-0.5.0/.claude/skills/run-debate/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/run-debate/references/README.md +11 -0
- sparkforge_aws-0.5.0/.claude/skills/run-debate/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-build/SKILL.md +265 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-build/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-build/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-build/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-define/SKILL.md +172 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-define/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-define/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-define/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-design/SKILL.md +144 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-design/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-design/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-design/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-explore/SKILL.md +141 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-explore/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-explore/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-explore/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-plan/SKILL.md +165 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-plan/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-plan/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-plan/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-ship/SKILL.md +209 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-ship/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-ship/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/sdd-ship/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/spark4-compatibility/SKILL.md +99 -0
- sparkforge_aws-0.5.0/.claude/skills/spark4-compatibility/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/spark4-compatibility/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/spark4-compatibility/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/sparkforge-aws-diagnose/SKILL.md +206 -0
- sparkforge_aws-0.5.0/.claude/skills/sparkforge-aws-diagnose/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/sparkforge-aws-diagnose/references/README.md +13 -0
- sparkforge_aws-0.5.0/.claude/skills/sparkforge-aws-diagnose/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/tool-specialist-routing/SKILL.md +52 -0
- sparkforge_aws-0.5.0/.claude/skills/tool-specialist-routing/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/tool-specialist-routing/references/README.md +11 -0
- sparkforge_aws-0.5.0/.claude/skills/tool-specialist-routing/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.claude/skills/tune-glue-job/SKILL.md +116 -0
- sparkforge_aws-0.5.0/.claude/skills/tune-glue-job/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/.claude/skills/tune-glue-job/references/README.md +11 -0
- sparkforge_aws-0.5.0/.claude/skills/tune-glue-job/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/.codex/agents/athena-query-optimizer.toml +75 -0
- sparkforge_aws-0.5.0/.codex/agents/cdc-contract-reviewer.toml +42 -0
- sparkforge_aws-0.5.0/.codex/agents/data-quality-reviewer.toml +170 -0
- sparkforge_aws-0.5.0/.codex/agents/emr-infra-reviewer.toml +222 -0
- sparkforge_aws-0.5.0/.codex/agents/glue-incremental-performance-architect.toml +89 -0
- sparkforge_aws-0.5.0/.codex/agents/glue-infra-reviewer.toml +136 -0
- sparkforge_aws-0.5.0/.codex/agents/iceberg-performance-engineer.toml +80 -0
- sparkforge_aws-0.5.0/.codex/agents/pyspark-code-reviewer.toml +198 -0
- sparkforge_aws-0.5.0/.codex/agents/sf-lake-formation-specialist.toml +127 -0
- sparkforge_aws-0.5.0/.codex/agents/sf-runtime-specialist.toml +137 -0
- sparkforge_aws-0.5.0/.codex/agents/sf-security-reviewer.toml +10 -0
- sparkforge_aws-0.5.0/.codex/agents/sf-terraform-specialist.toml +12 -0
- sparkforge_aws-0.5.0/.codex/agents/spark-performance-architect.toml +217 -0
- sparkforge_aws-0.5.0/.codex/agents/streaming-realtime-architect.toml +78 -0
- sparkforge_aws-0.5.0/.devin/README.md +245 -0
- sparkforge_aws-0.5.0/.github/agents/athena-query-optimizer.agent.md +84 -0
- sparkforge_aws-0.5.0/.github/agents/cdc-contract-reviewer.agent.md +50 -0
- sparkforge_aws-0.5.0/.github/agents/data-quality-reviewer.agent.md +185 -0
- sparkforge_aws-0.5.0/.github/agents/emr-infra-reviewer.agent.md +232 -0
- sparkforge_aws-0.5.0/.github/agents/executors/sf-extractor.md +113 -0
- sparkforge_aws-0.5.0/.github/agents/executors/sf-inventory.md +74 -0
- sparkforge_aws-0.5.0/.github/agents/executors/sf-judge.md +45 -0
- sparkforge_aws-0.5.0/.github/agents/executors/sf-synthesizer.md +137 -0
- sparkforge_aws-0.5.0/.github/agents/executors/sf-verifier.md +107 -0
- sparkforge_aws-0.5.0/.github/agents/glue-incremental-performance-architect.agent.md +121 -0
- sparkforge_aws-0.5.0/.github/agents/glue-infra-reviewer.agent.md +154 -0
- sparkforge_aws-0.5.0/.github/agents/iceberg-performance-engineer.agent.md +90 -0
- sparkforge_aws-0.5.0/.github/agents/pyspark-code-reviewer.agent.md +229 -0
- sparkforge_aws-0.5.0/.github/agents/sf-lake-formation-specialist.agent.md +167 -0
- sparkforge_aws-0.5.0/.github/agents/sf-runtime-specialist.agent.md +166 -0
- sparkforge_aws-0.5.0/.github/agents/sf-security-reviewer.agent.md +29 -0
- sparkforge_aws-0.5.0/.github/agents/sf-terraform-specialist.agent.md +27 -0
- sparkforge_aws-0.5.0/.github/agents/spark-performance-architect.agent.md +350 -0
- sparkforge_aws-0.5.0/.github/agents/streaming-realtime-architect.agent.md +114 -0
- sparkforge_aws-0.5.0/.gitignore +109 -0
- sparkforge_aws-0.5.0/LICENSE +21 -0
- sparkforge_aws-0.5.0/PKG-INFO +640 -0
- sparkforge_aws-0.5.0/README.md +577 -0
- sparkforge_aws-0.5.0/agents/athena-query-optimizer.md +84 -0
- sparkforge_aws-0.5.0/agents/cdc-contract-reviewer.md +50 -0
- sparkforge_aws-0.5.0/agents/data-quality-reviewer.md +185 -0
- sparkforge_aws-0.5.0/agents/emr-infra-reviewer.md +232 -0
- sparkforge_aws-0.5.0/agents/executors/sf-extractor.md +113 -0
- sparkforge_aws-0.5.0/agents/executors/sf-inventory.md +74 -0
- sparkforge_aws-0.5.0/agents/executors/sf-judge.md +45 -0
- sparkforge_aws-0.5.0/agents/executors/sf-synthesizer.md +137 -0
- sparkforge_aws-0.5.0/agents/executors/sf-verifier.md +107 -0
- sparkforge_aws-0.5.0/agents/glue-incremental-performance-architect.md +121 -0
- sparkforge_aws-0.5.0/agents/glue-infra-reviewer.md +154 -0
- sparkforge_aws-0.5.0/agents/iceberg-performance-engineer.md +90 -0
- sparkforge_aws-0.5.0/agents/pyspark-code-reviewer.md +229 -0
- sparkforge_aws-0.5.0/agents/sf-lake-formation-specialist.md +167 -0
- sparkforge_aws-0.5.0/agents/sf-runtime-specialist.md +166 -0
- sparkforge_aws-0.5.0/agents/sf-security-reviewer.md +29 -0
- sparkforge_aws-0.5.0/agents/sf-terraform-specialist.md +27 -0
- sparkforge_aws-0.5.0/agents/spark-performance-architect.md +350 -0
- sparkforge_aws-0.5.0/agents/streaming-realtime-architect.md +114 -0
- sparkforge_aws-0.5.0/docs/aws/glue/6.0/README.md +55 -0
- sparkforge_aws-0.5.0/docs/guia/README.md +86 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/README.md +12 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/README.md +34 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/athena-query-optimizer.md +95 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/cdc-contract-reviewer.md +62 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/data-quality-reviewer.md +195 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/emr-infra-reviewer.md +242 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/glue-incremental-performance-architect.md +118 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/glue-infra-reviewer.md +165 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/iceberg-performance-engineer.md +100 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/pyspark-code-reviewer.md +238 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/sf-extractor.md +119 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/sf-inventory.md +80 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/sf-judge.md +51 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/sf-lake-formation-specialist.md +177 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/sf-runtime-specialist.md +175 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/sf-security-reviewer.md +41 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/sf-synthesizer.md +143 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/sf-terraform-specialist.md +41 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/sf-verifier.md +113 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/spark-performance-architect.md +354 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/agents/streaming-realtime-architect.md +119 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/cli/README.md +75 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/README.md +68 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/analyze-batch-loop.md +132 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/analyze-flink-job.md +121 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/analyze-functional-rules.md +78 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/analyze-library-call-graph.md +136 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/analyze-spark-plan.md +115 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/analyze-spark-ui.md +138 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/analyze-streaming-composition.md +192 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/aws-billing-and-cost-management.md +287 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/aws-database.md +183 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/aws-iam.md +242 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/aws-messaging-and-streaming.md +308 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/aws-observability.md +152 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/aws-sdk-python-usage.md +359 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/aws-security.md +239 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/aws-serverless.md +174 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/aws-storage.md +293 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/benchmark-pyspark-job.md +222 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/compare-releases.md +214 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/design-data-architecture.md +52 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/design-incremental-processing.md +159 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/design-realtime-data-architecture.md +67 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/design-s3-data-lake.md +52 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/diagnose-data-skew.md +123 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/diagnose-lakeformation-access.md +251 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/diagnose-oom.md +127 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/glue-incremental-performance-architect.md +149 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/harden-s3-bucket.md +190 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/iceberg-v3-readiness.md +108 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/lakeformation-architecture.md +150 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/lakeformation-fgac-guard.md +233 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/migrate-glue-6.md +95 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/optimize-iceberg-table.md +158 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/optimize-latest-per-key.md +137 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/optimize-parquet-layout.md +187 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/optimize-pyspark-code.md +182 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/optimize-variable-volume-job.md +101 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/propose-change-pr.md +79 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/provision-s3-tables-table.md +238 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/review-cdc-replication.md +102 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/review-data-validation.md +278 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/review-emr-cluster.md +290 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/review-emr-eks.md +407 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/review-event-driven-architecture.md +86 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/review-glue-streaming.md +98 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/review-glue-terraform.md +167 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/review-pyspark-pr.md +148 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/review-streaming-operations.md +115 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/review-structured-streaming.md +113 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/review-terraform-data-platform.md +52 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/run-debate.md +84 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/sdd-build.md +257 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/sdd-define.md +164 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/sdd-design.md +136 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/sdd-explore.md +133 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/sdd-plan.md +157 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/sdd-ship.md +201 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/spark4-compatibility.md +91 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/sparkforge-aws-diagnose.md +198 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/tool-specialist-routing.md +48 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/skills/tune-glue-job.md +110 -0
- sparkforge_aws-0.5.0/docs/guia/referencia/tools/README.md +386 -0
- sparkforge_aws-0.5.0/docs/knowledge/analytics-engineering-microscope.md +25 -0
- sparkforge_aws-0.5.0/docs/knowledge/data-observability-sre.md +18 -0
- sparkforge_aws-0.5.0/docs/knowledge/data-platform-ecosystem.md +20 -0
- sparkforge_aws-0.5.0/docs/knowledge/forge-lab-digital-twin.md +36 -0
- sparkforge_aws-0.5.0/docs/knowledge/forge-lab-product.md +90 -0
- sparkforge_aws-0.5.0/docs/knowledge/open-lakehouse-catalog.md +27 -0
- sparkforge_aws-0.5.0/docs/knowledge/orchestration-control-plane.md +15 -0
- sparkforge_aws-0.5.0/docs/knowledge/platform-intelligence-evals.md +49 -0
- sparkforge_aws-0.5.0/docs/knowledge/platform-intelligence-graph.md +44 -0
- sparkforge_aws-0.5.0/docs/learn/README.md +35 -0
- sparkforge_aws-0.5.0/docs/sdd/README.md +167 -0
- sparkforge_aws-0.5.0/docs/skills/README.md +47 -0
- sparkforge_aws-0.5.0/docs/skills/quality-report.md +18 -0
- sparkforge_aws-0.5.0/docs/superpowers/README.md +25 -0
- sparkforge_aws-0.5.0/docs/vnext/README.md +47 -0
- sparkforge_aws-0.5.0/evals/README.md +502 -0
- sparkforge_aws-0.5.0/evals/agentic/sdd/README.md +82 -0
- sparkforge_aws-0.5.0/evals/holdout/README.md +53 -0
- sparkforge_aws-0.5.0/evals/skills/README.md +18 -0
- sparkforge_aws-0.5.0/fixtures/packs/acme-platform/knowledge/padroes-de-plataforma.md +15 -0
- sparkforge_aws-0.5.0/fixtures/sarif/so_runtime/input/repo/README.md +1 -0
- sparkforge_aws-0.5.0/knowledge/INDEX.md +175 -0
- sparkforge_aws-0.5.0/knowledge/agent-creation.md +7 -0
- sparkforge_aws-0.5.0/knowledge/agent-evaluation.md +14 -0
- sparkforge_aws-0.5.0/knowledge/agentic-engineering.md +25 -0
- sparkforge_aws-0.5.0/knowledge/airflow/glue-operator.md +97 -0
- sparkforge_aws-0.5.0/knowledge/airflow-pipelines.md +12 -0
- sparkforge_aws-0.5.0/knowledge/anti-patterns.md +44 -0
- sparkforge_aws-0.5.0/knowledge/athena/performance.md +110 -0
- sparkforge_aws-0.5.0/knowledge/cdc-replication.md +45 -0
- sparkforge_aws-0.5.0/knowledge/controlm/automation-api-matrix.md +433 -0
- sparkforge_aws-0.5.0/knowledge/controlm/automation-api-matrix.yaml +275 -0
- sparkforge_aws-0.5.0/knowledge/cross-service-constraints.md +83 -0
- sparkforge_aws-0.5.0/knowledge/data-contracts-schema-evolution.md +14 -0
- sparkforge_aws-0.5.0/knowledge/data-lineage-impact.md +16 -0
- sparkforge_aws-0.5.0/knowledge/data-platform-architecture.md +7 -0
- sparkforge_aws-0.5.0/knowledge/data-platform-finops.md +15 -0
- sparkforge_aws-0.5.0/knowledge/databricks/runtime-matrix.md +153 -0
- sparkforge_aws-0.5.0/knowledge/databricks/runtime-matrix.yaml +32 -0
- sparkforge_aws-0.5.0/knowledge/devin/agents-and-subagents.md +899 -0
- sparkforge_aws-0.5.0/knowledge/domain-tool-matrix.md +5 -0
- sparkforge_aws-0.5.0/knowledge/dq/validation-frameworks.md +515 -0
- sparkforge_aws-0.5.0/knowledge/emr/cluster-configuration.md +246 -0
- sparkforge_aws-0.5.0/knowledge/emr/runtime-matrix.md +121 -0
- sparkforge_aws-0.5.0/knowledge/emr/runtime-matrix.yaml +216 -0
- sparkforge_aws-0.5.0/knowledge/emr-eks/job-run-configuration.md +677 -0
- sparkforge_aws-0.5.0/knowledge/emr-eks/runtime-matrix.md +376 -0
- sparkforge_aws-0.5.0/knowledge/emr-eks/runtime-matrix.yaml +297 -0
- sparkforge_aws-0.5.0/knowledge/emr-serverless/application-configuration.md +285 -0
- sparkforge_aws-0.5.0/knowledge/emr-serverless/runtime-matrix.md +179 -0
- sparkforge_aws-0.5.0/knowledge/emr-serverless/runtime-matrix.yaml +111 -0
- sparkforge_aws-0.5.0/knowledge/errors/athena/iceberg_v3_unsupported.json +32 -0
- sparkforge_aws-0.5.0/knowledge/errors/glue/oom_executor.json +24 -0
- sparkforge_aws-0.5.0/knowledge/errors/glue/scala_212_jar_under_spark4.json +34 -0
- sparkforge_aws-0.5.0/knowledge/errors/glue/sdk_v2_user_jars_first.json +33 -0
- sparkforge_aws-0.5.0/knowledge/errors/iceberg/commit_conflict.json +22 -0
- sparkforge_aws-0.5.0/knowledge/errors/lakeformation/access_denied_cross_account.json +25 -0
- sparkforge_aws-0.5.0/knowledge/errors/lakeformation/credential_vending_denied.json +41 -0
- sparkforge_aws-0.5.0/knowledge/errors/lakeformation/get_data_access_denied.json +36 -0
- sparkforge_aws-0.5.0/knowledge/errors/lakeformation/glue_api_denied_under_lf.json +37 -0
- sparkforge_aws-0.5.0/knowledge/errors/lakeformation/security_validation_exception.json +35 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/analysis_exception.json +41 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/classpath_abstract_method.json +41 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/classpath_class_not_found.json +40 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/classpath_no_class_def.json +40 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/executor_lost.json +41 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/fetch_failed_shuffle.json +38 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/file_not_found.json +41 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/gc_overhead_limit.json +42 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/heap_out_of_memory.json +42 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/metadata_fetch_failed.json +41 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/no_such_table.json +41 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/python_worker_exited.json +37 -0
- sparkforge_aws-0.5.0/knowledge/errors/spark/upgrade_exception.json +41 -0
- sparkforge_aws-0.5.0/knowledge/event-driven-architecture.md +31 -0
- sparkforge_aws-0.5.0/knowledge/flink-streaming.md +160 -0
- sparkforge_aws-0.5.0/knowledge/glue/dq-advanced-matrix.md +42 -0
- sparkforge_aws-0.5.0/knowledge/glue/dq-advanced-matrix.yaml +51 -0
- sparkforge_aws-0.5.0/knowledge/glue/job-arguments.md +112 -0
- sparkforge_aws-0.5.0/knowledge/glue/lakeformation-fgac.md +368 -0
- sparkforge_aws-0.5.0/knowledge/glue/lakeformation-index.md +129 -0
- sparkforge_aws-0.5.0/knowledge/glue/lakeformation-matrix.yaml +303 -0
- sparkforge_aws-0.5.0/knowledge/glue/lakeformation-permissions.yaml +88 -0
- sparkforge_aws-0.5.0/knowledge/glue/observability.md +139 -0
- sparkforge_aws-0.5.0/knowledge/glue/observability.yaml +30 -0
- sparkforge_aws-0.5.0/knowledge/glue/pricing.yaml +82 -0
- sparkforge_aws-0.5.0/knowledge/glue/runtime-matrix.md +98 -0
- sparkforge_aws-0.5.0/knowledge/glue/runtime-matrix.yaml +111 -0
- sparkforge_aws-0.5.0/knowledge/glue/workers-and-capacity.md +110 -0
- sparkforge_aws-0.5.0/knowledge/glue-streaming-rtm.md +109 -0
- sparkforge_aws-0.5.0/knowledge/graph/availability.md +271 -0
- sparkforge_aws-0.5.0/knowledge/graph/graphframes-api.md +477 -0
- sparkforge_aws-0.5.0/knowledge/graphs-neptune-dynamodb-athena.md +7 -0
- sparkforge_aws-0.5.0/knowledge/iceberg-diagnostics.sql +38 -0
- sparkforge_aws-0.5.0/knowledge/iceberg-parquet-s3.md +7 -0
- sparkforge_aws-0.5.0/knowledge/lake-governance.md +13 -0
- sparkforge_aws-0.5.0/knowledge/lakeformation/architecture.md +100 -0
- sparkforge_aws-0.5.0/knowledge/lakeformation/capability-matrix.yaml +79 -0
- sparkforge_aws-0.5.0/knowledge/lakeformation/fgac-fta-improvements.md +88 -0
- sparkforge_aws-0.5.0/knowledge/lakeformation/operational-closure.md +112 -0
- sparkforge_aws-0.5.0/knowledge/model-selection-observability.md +25 -0
- sparkforge_aws-0.5.0/knowledge/offline-manifest.json +357 -0
- sparkforge_aws-0.5.0/knowledge/offline-policy.md +6 -0
- sparkforge_aws-0.5.0/knowledge/performance-principles.md +35 -0
- sparkforge_aws-0.5.0/knowledge/runtime-compatibility.md +29 -0
- sparkforge_aws-0.5.0/knowledge/schema-registry-data-contracts.md +65 -0
- sparkforge_aws-0.5.0/knowledge/source_authority.yaml +72 -0
- sparkforge_aws-0.5.0/knowledge/sources.lock.json +4303 -0
- sparkforge_aws-0.5.0/knowledge/spark/config-reference.md +104 -0
- sparkforge_aws-0.5.0/knowledge/spark/execution-model.md +128 -0
- sparkforge_aws-0.5.0/knowledge/spark/memory-and-oom.md +95 -0
- sparkforge_aws-0.5.0/knowledge/spark/plan-reading.md +101 -0
- sparkforge_aws-0.5.0/knowledge/spark/shuffle-join-skew.md +94 -0
- sparkforge_aws-0.5.0/knowledge/spark/spark4-migration.md +112 -0
- sparkforge_aws-0.5.0/knowledge/spark/sql-metrics.md +53 -0
- sparkforge_aws-0.5.0/knowledge/spark/sql-metrics.yaml +57 -0
- sparkforge_aws-0.5.0/knowledge/stepfunctions/execution-history.md +219 -0
- sparkforge_aws-0.5.0/knowledge/stepfunctions/glue-integration.md +127 -0
- sparkforge_aws-0.5.0/knowledge/storage/iceberg-catalog.md +180 -0
- sparkforge_aws-0.5.0/knowledge/storage/iceberg-feature-support.yaml +878 -0
- sparkforge_aws-0.5.0/knowledge/storage/iceberg-performance.md +174 -0
- sparkforge_aws-0.5.0/knowledge/storage/iceberg-v3.md +235 -0
- sparkforge_aws-0.5.0/knowledge/storage/parquet-layout.md +114 -0
- sparkforge_aws-0.5.0/knowledge/streaming/runtime-matrix.md +47 -0
- sparkforge_aws-0.5.0/knowledge/streaming-format-serving-matrix.md +44 -0
- sparkforge_aws-0.5.0/knowledge/streaming-integrations.md +85 -0
- sparkforge_aws-0.5.0/knowledge/streaming-lakehouse-observability.md +69 -0
- sparkforge_aws-0.5.0/knowledge/streaming-operations.md +92 -0
- sparkforge_aws-0.5.0/knowledge/streaming-pipeline-diagnostics.md +71 -0
- sparkforge_aws-0.5.0/knowledge/streaming-realtime-candidate-matrix.md +43 -0
- sparkforge_aws-0.5.0/knowledge/streaming-reliability.md +98 -0
- sparkforge_aws-0.5.0/knowledge/terraform-data-platform.md +7 -0
- sparkforge_aws-0.5.0/knowledge/token-economy.md +26 -0
- sparkforge_aws-0.5.0/knowledge/tool-specialization-matrix.md +15 -0
- sparkforge_aws-0.5.0/knowledge/transport-diagnostics.md +146 -0
- sparkforge_aws-0.5.0/lab/compose/README.md +16 -0
- sparkforge_aws-0.5.0/lab/scenarios/README.md +11 -0
- sparkforge_aws-0.5.0/labs/forge-lab/README.md +74 -0
- sparkforge_aws-0.5.0/payloads/devin/README.md +41 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-7_l-b4Tr.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-B0Iad6pD.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-B605XnCF.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-B7N3TXcn.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-BAj6yGem.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-BGUitn2r.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-BVKnCv85.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-BYyM9V_w.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-BaQMhq-G.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-BavOrxVm.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-Bb0C24YV.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-BfCFGPzs.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-C2t4OUVu.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-C3pI4QjU.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-C4gpbtbP.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-CGWeHhKY.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-CJCT86Dr.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-CXcsLDPJ.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-CcjxoLxw.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-D-gBPXHa.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-D3eZogIe.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-DQU0VyoQ.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-DqWNkF1O.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-DuPPkSIE.js +3 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-DyIHOW_a.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-Fx4zSGL5.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-UBKt05Rg.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-htnJDQEY.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-kXRFMGqe.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/chunk-qe3u763a.js +1 -0
- sparkforge_aws-0.5.0/portal/assets/favicon.ico +0 -0
- sparkforge_aws-0.5.0/portal/assets/index.html +13 -0
- sparkforge_aws-0.5.0/portal/assets/main-QDFVZK3T.js +5 -0
- sparkforge_aws-0.5.0/portal/assets/styles-MQEBDFDX.css +1 -0
- sparkforge_aws-0.5.0/portal/manifest.json +142 -0
- sparkforge_aws-0.5.0/pyproject.toml +228 -0
- sparkforge_aws-0.5.0/rules/catalog/README.md +299 -0
- sparkforge_aws-0.5.0/rules/catalog/action_kinds.yaml +611 -0
- sparkforge_aws-0.5.0/rules/catalog/airflow.yaml +274 -0
- sparkforge_aws-0.5.0/rules/catalog/athena.yaml +316 -0
- sparkforge_aws-0.5.0/rules/catalog/benchmark.yaml +408 -0
- sparkforge_aws-0.5.0/rules/catalog/bridge.yaml +127 -0
- sparkforge_aws-0.5.0/rules/catalog/callgraph.yaml +149 -0
- sparkforge_aws-0.5.0/rules/catalog/cdc.yaml +135 -0
- sparkforge_aws-0.5.0/rules/catalog/controlm.yaml +898 -0
- sparkforge_aws-0.5.0/rules/catalog/data-quality-ai.yaml +283 -0
- sparkforge_aws-0.5.0/rules/catalog/data-quality.yaml +477 -0
- sparkforge_aws-0.5.0/rules/catalog/debate_gate.yaml +17 -0
- sparkforge_aws-0.5.0/rules/catalog/debezium.yaml +69 -0
- sparkforge_aws-0.5.0/rules/catalog/dms.yaml +101 -0
- sparkforge_aws-0.5.0/rules/catalog/emr-eks.yaml +695 -0
- sparkforge_aws-0.5.0/rules/catalog/emr-infra.yaml +856 -0
- sparkforge_aws-0.5.0/rules/catalog/emr-serverless.yaml +728 -0
- sparkforge_aws-0.5.0/rules/catalog/env.yaml +441 -0
- sparkforge_aws-0.5.0/rules/catalog/errors.yaml +2750 -0
- sparkforge_aws-0.5.0/rules/catalog/event-driven.yaml +70 -0
- sparkforge_aws-0.5.0/rules/catalog/flink.yaml +94 -0
- sparkforge_aws-0.5.0/rules/catalog/funcval.yaml +571 -0
- sparkforge_aws-0.5.0/rules/catalog/glue-cross-account.yaml +254 -0
- sparkforge_aws-0.5.0/rules/catalog/glue-infra.yaml +376 -0
- sparkforge_aws-0.5.0/rules/catalog/glue-kms.yaml +222 -0
- sparkforge_aws-0.5.0/rules/catalog/glue-migration.yaml +318 -0
- sparkforge_aws-0.5.0/rules/catalog/glue-network.yaml +106 -0
- sparkforge_aws-0.5.0/rules/catalog/glue-streaming.yaml +293 -0
- sparkforge_aws-0.5.0/rules/catalog/governance.yaml +120 -0
- sparkforge_aws-0.5.0/rules/catalog/graph.yaml +782 -0
- sparkforge_aws-0.5.0/rules/catalog/iam.yaml +332 -0
- sparkforge_aws-0.5.0/rules/catalog/iceberg.yaml +860 -0
- sparkforge_aws-0.5.0/rules/catalog/lakeformation.yaml +1476 -0
- sparkforge_aws-0.5.0/rules/catalog/parquet.yaml +752 -0
- sparkforge_aws-0.5.0/rules/catalog/proof_axes.yaml +182 -0
- sparkforge_aws-0.5.0/rules/catalog/pyspark.yaml +600 -0
- sparkforge_aws-0.5.0/rules/catalog/routing.yaml +984 -0
- sparkforge_aws-0.5.0/rules/catalog/schema_registry.yaml +104 -0
- sparkforge_aws-0.5.0/rules/catalog/sfn-history.yaml +286 -0
- sparkforge_aws-0.5.0/rules/catalog/spark-plan.yaml +253 -0
- sparkforge_aws-0.5.0/rules/catalog/spark-ui.yaml +371 -0
- sparkforge_aws-0.5.0/rules/catalog/spark4.yaml +444 -0
- sparkforge_aws-0.5.0/rules/catalog/stepfunctions.yaml +269 -0
- sparkforge_aws-0.5.0/rules/catalog/streaming-integrations.yaml +138 -0
- sparkforge_aws-0.5.0/rules/catalog/streaming-operations.yaml +176 -0
- sparkforge_aws-0.5.0/rules/catalog/streaming.yaml +271 -0
- sparkforge_aws-0.5.0/rules/catalog/streaming_iceberg.yaml +93 -0
- sparkforge_aws-0.5.0/rules/catalog/streaming_observability.yaml +183 -0
- sparkforge_aws-0.5.0/rules/catalog/timeout.yaml +151 -0
- sparkforge_aws-0.5.0/rules/catalog/waste.yaml +155 -0
- sparkforge_aws-0.5.0/skills/_shared/references/evaluation-contract.md +17 -0
- sparkforge_aws-0.5.0/skills/_shared/references/evidence-first.md +49 -0
- sparkforge_aws-0.5.0/skills/_shared/references/operational-safety.md +21 -0
- sparkforge_aws-0.5.0/skills/_shared/scripts/validate_skill_context.py +74 -0
- sparkforge_aws-0.5.0/skills/analyze-batch-loop/SKILL.md +140 -0
- sparkforge_aws-0.5.0/skills/analyze-batch-loop/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/analyze-batch-loop/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/analyze-batch-loop/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/analyze-flink-job/SKILL.md +128 -0
- sparkforge_aws-0.5.0/skills/analyze-flink-job/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/skills/analyze-flink-job/references/README.md +5 -0
- sparkforge_aws-0.5.0/skills/analyze-flink-job/scripts/validate_evidence.py +9 -0
- sparkforge_aws-0.5.0/skills/analyze-functional-rules/SKILL.md +87 -0
- sparkforge_aws-0.5.0/skills/analyze-functional-rules/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/analyze-functional-rules/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/analyze-functional-rules/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/analyze-library-call-graph/SKILL.md +143 -0
- sparkforge_aws-0.5.0/skills/analyze-library-call-graph/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/analyze-library-call-graph/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/analyze-library-call-graph/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/analyze-spark-plan/SKILL.md +123 -0
- sparkforge_aws-0.5.0/skills/analyze-spark-plan/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/analyze-spark-plan/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/analyze-spark-plan/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/analyze-spark-ui/SKILL.md +146 -0
- sparkforge_aws-0.5.0/skills/analyze-spark-ui/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/analyze-spark-ui/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/analyze-spark-ui/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/analyze-streaming-composition/SKILL.md +198 -0
- sparkforge_aws-0.5.0/skills/analyze-streaming-composition/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/skills/analyze-streaming-composition/references/README.md +4 -0
- sparkforge_aws-0.5.0/skills/analyze-streaming-composition/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/SKILL.md +293 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/budgets.md +50 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/cost-audit.md +75 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/cost-explorer.md +130 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/cost-optimization-hub.md +140 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/cur-athena.md +103 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/deterministic-calculations.md +62 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/ebs-optimization.md +49 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/ec2-rightsizing.md +86 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/free-tier.md +34 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/lambda-optimization.md +46 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/pricing-lookup.md +78 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/rds-optimization.md +39 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/reserved-instances.md +62 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/savings-plans.md +69 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/references/service-optimization.md +58 -0
- sparkforge_aws-0.5.0/skills/aws-billing-and-cost-management/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/aws-database/SKILL.md +189 -0
- sparkforge_aws-0.5.0/skills/aws-database/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/aws-database/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/aws-database/references/handoff.md +74 -0
- sparkforge_aws-0.5.0/skills/aws-database/references/report-issue.md +59 -0
- sparkforge_aws-0.5.0/skills/aws-database/references/select.md +243 -0
- sparkforge_aws-0.5.0/skills/aws-database/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/aws-iam/SKILL.md +248 -0
- sparkforge_aws-0.5.0/skills/aws-iam/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/aws-iam/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/aws-iam/references/aws-iam-policy-generation.md +504 -0
- sparkforge_aws-0.5.0/skills/aws-iam/references/aws-iam-role-management.md +108 -0
- sparkforge_aws-0.5.0/skills/aws-iam/references/common-pitfalls.md +127 -0
- sparkforge_aws-0.5.0/skills/aws-iam/references/service-authorization.md +84 -0
- sparkforge_aws-0.5.0/skills/aws-iam/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/aws-messaging-and-streaming/SKILL.md +314 -0
- sparkforge_aws-0.5.0/skills/aws-messaging-and-streaming/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/aws-messaging-and-streaming/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/aws-messaging-and-streaming/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/aws-observability/SKILL.md +158 -0
- sparkforge_aws-0.5.0/skills/aws-observability/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/alarms.md +263 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/application-signals-cicd-metadata.md +132 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/application-signals-onboarding.md +223 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/ec2-dotnet.md +318 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/ec2-java.md +246 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/ec2-nodejs.md +449 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/ec2-python.md +627 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/ecs-dotnet.md +250 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/ecs-java.md +180 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/ecs-nodejs.md +193 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/ecs-python.md +238 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/eks-dotnet.md +137 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/eks-java.md +137 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/eks-nodejs.md +137 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/eks-python.md +162 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/lambda-dotnet.md +86 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/lambda-java.md +104 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/lambda-nodejs.md +162 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/appsignals-guides/lambda-python.md +185 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/cloudtrail.md +117 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/dashboards.md +157 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/dynamic-instrumentation/breakpoint-creation.md +359 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/dynamic-instrumentation/call-tree-and-directions.md +166 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/dynamic-instrumentation/snapshot-parsing.md +82 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/dynamic-instrumentation.md +562 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/log-insights.md +254 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/metrics.md +192 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/synthetics.md +136 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/tracing.md +253 -0
- sparkforge_aws-0.5.0/skills/aws-observability/references/troubleshooting.md +122 -0
- sparkforge_aws-0.5.0/skills/aws-observability/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/aws-sdk-python-usage/SKILL.md +365 -0
- sparkforge_aws-0.5.0/skills/aws-sdk-python-usage/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/aws-sdk-python-usage/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/aws-sdk-python-usage/references/configuration.md +151 -0
- sparkforge_aws-0.5.0/skills/aws-sdk-python-usage/references/credentials.md +127 -0
- sparkforge_aws-0.5.0/skills/aws-sdk-python-usage/references/dynamodb.md +295 -0
- sparkforge_aws-0.5.0/skills/aws-sdk-python-usage/references/error-handling.md +139 -0
- sparkforge_aws-0.5.0/skills/aws-sdk-python-usage/references/pagination.md +104 -0
- sparkforge_aws-0.5.0/skills/aws-sdk-python-usage/references/s3.md +223 -0
- sparkforge_aws-0.5.0/skills/aws-sdk-python-usage/references/waiters.md +121 -0
- sparkforge_aws-0.5.0/skills/aws-sdk-python-usage/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/aws-security/SKILL.md +245 -0
- sparkforge_aws-0.5.0/skills/aws-security/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/detective-configuration.md +127 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/detective-investigations.md +97 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/detective.md +68 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/guardduty-configuration.md +152 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/guardduty-findings.md +128 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/guardduty.md +80 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/inspector-configuration.md +132 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/inspector-findings.md +115 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/inspector.md +77 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/macie-configuration.md +158 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/macie-findings.md +124 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/macie.md +72 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/organization-policies.md +58 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/security-hub-configuration.md +159 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/security-hub-cspm-configuration.md +137 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/security-hub-cspm-findings.md +117 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/security-hub-cspm.md +108 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/security-hub-findings.md +147 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/security-hub.md +91 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/security-lake-configuration.md +132 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/security-lake-sources.md +117 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/security-lake.md +53 -0
- sparkforge_aws-0.5.0/skills/aws-security/references/services-overview.md +110 -0
- sparkforge_aws-0.5.0/skills/aws-security/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/SKILL.md +180 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/assets/powertools-handler.py +66 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/references/api-gateway.md +133 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/references/architecture.md +123 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/references/concurrency.md +86 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/references/deployment.md +94 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/references/event-sources.md +165 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/references/lambda.md +189 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/references/orchestration.md +130 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/references/production.md +156 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/references/troubleshooting.md +184 -0
- sparkforge_aws-0.5.0/skills/aws-serverless/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/aws-storage/SKILL.md +299 -0
- sparkforge_aws-0.5.0/skills/aws-storage/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/data-movement-and-protection-knowledge.md +56 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/ebs-knowledge.md +45 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/efs-knowledge.md +34 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/fsx-lustre-knowledge.md +46 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/fsx-ontap-knowledge.md +46 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/fsx-openzfs-knowledge.md +44 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/fsx-windows-knowledge.md +43 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/s3-express-knowledge.md +35 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/s3-files-knowledge.md +43 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/s3-general-purpose-knowledge.md +39 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/s3-tables-knowledge.md +45 -0
- sparkforge_aws-0.5.0/skills/aws-storage/references/s3-vectors-knowledge.md +43 -0
- sparkforge_aws-0.5.0/skills/aws-storage/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/benchmark-pyspark-job/SKILL.md +230 -0
- sparkforge_aws-0.5.0/skills/benchmark-pyspark-job/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/benchmark-pyspark-job/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/benchmark-pyspark-job/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/compare-releases/SKILL.md +220 -0
- sparkforge_aws-0.5.0/skills/compare-releases/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/compare-releases/references/README.md +11 -0
- sparkforge_aws-0.5.0/skills/compare-releases/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/design-data-architecture/SKILL.md +57 -0
- sparkforge_aws-0.5.0/skills/design-data-architecture/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/design-data-architecture/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/design-data-architecture/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/design-incremental-processing/SKILL.md +167 -0
- sparkforge_aws-0.5.0/skills/design-incremental-processing/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/design-incremental-processing/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/design-incremental-processing/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/design-realtime-data-architecture/SKILL.md +72 -0
- sparkforge_aws-0.5.0/skills/design-realtime-data-architecture/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/skills/design-realtime-data-architecture/references/README.md +3 -0
- sparkforge_aws-0.5.0/skills/design-realtime-data-architecture/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/skills/design-s3-data-lake/SKILL.md +57 -0
- sparkforge_aws-0.5.0/skills/design-s3-data-lake/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/design-s3-data-lake/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/design-s3-data-lake/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/diagnose-data-skew/SKILL.md +131 -0
- sparkforge_aws-0.5.0/skills/diagnose-data-skew/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/diagnose-data-skew/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/diagnose-data-skew/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/diagnose-lakeformation-access/SKILL.md +259 -0
- sparkforge_aws-0.5.0/skills/diagnose-lakeformation-access/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/diagnose-lakeformation-access/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/diagnose-lakeformation-access/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/diagnose-oom/SKILL.md +135 -0
- sparkforge_aws-0.5.0/skills/diagnose-oom/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/diagnose-oom/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/diagnose-oom/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/glue-incremental-performance-architect/SKILL.md +155 -0
- sparkforge_aws-0.5.0/skills/glue-incremental-performance-architect/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/glue-incremental-performance-architect/references/README.md +11 -0
- sparkforge_aws-0.5.0/skills/glue-incremental-performance-architect/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/harden-s3-bucket/SKILL.md +196 -0
- sparkforge_aws-0.5.0/skills/harden-s3-bucket/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/harden-s3-bucket/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/harden-s3-bucket/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/iceberg-v3-readiness/SKILL.md +114 -0
- sparkforge_aws-0.5.0/skills/iceberg-v3-readiness/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/iceberg-v3-readiness/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/iceberg-v3-readiness/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/lakeformation-architecture/SKILL.md +157 -0
- sparkforge_aws-0.5.0/skills/lakeformation-architecture/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/lakeformation-architecture/references/README.md +14 -0
- sparkforge_aws-0.5.0/skills/lakeformation-architecture/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/lakeformation-fgac-guard/SKILL.md +241 -0
- sparkforge_aws-0.5.0/skills/lakeformation-fgac-guard/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/lakeformation-fgac-guard/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/lakeformation-fgac-guard/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/migrate-glue-6/SKILL.md +101 -0
- sparkforge_aws-0.5.0/skills/migrate-glue-6/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/migrate-glue-6/references/README.md +11 -0
- sparkforge_aws-0.5.0/skills/migrate-glue-6/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/optimize-iceberg-table/SKILL.md +166 -0
- sparkforge_aws-0.5.0/skills/optimize-iceberg-table/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/optimize-iceberg-table/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/optimize-iceberg-table/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/optimize-latest-per-key/SKILL.md +143 -0
- sparkforge_aws-0.5.0/skills/optimize-latest-per-key/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/optimize-latest-per-key/references/README.md +11 -0
- sparkforge_aws-0.5.0/skills/optimize-latest-per-key/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/optimize-parquet-layout/SKILL.md +195 -0
- sparkforge_aws-0.5.0/skills/optimize-parquet-layout/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/optimize-parquet-layout/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/optimize-parquet-layout/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/optimize-pyspark-code/SKILL.md +190 -0
- sparkforge_aws-0.5.0/skills/optimize-pyspark-code/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/optimize-pyspark-code/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/optimize-pyspark-code/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/optimize-variable-volume-job/SKILL.md +109 -0
- sparkforge_aws-0.5.0/skills/optimize-variable-volume-job/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/optimize-variable-volume-job/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/optimize-variable-volume-job/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/propose-change-pr/SKILL.md +85 -0
- sparkforge_aws-0.5.0/skills/propose-change-pr/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/propose-change-pr/references/README.md +11 -0
- sparkforge_aws-0.5.0/skills/propose-change-pr/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/provision-s3-tables-table/SKILL.md +244 -0
- sparkforge_aws-0.5.0/skills/provision-s3-tables-table/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/provision-s3-tables-table/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/provision-s3-tables-table/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/review-cdc-replication/SKILL.md +111 -0
- sparkforge_aws-0.5.0/skills/review-cdc-replication/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/skills/review-cdc-replication/references/README.md +4 -0
- sparkforge_aws-0.5.0/skills/review-cdc-replication/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/skills/review-data-validation/SKILL.md +286 -0
- sparkforge_aws-0.5.0/skills/review-data-validation/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/review-data-validation/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/review-data-validation/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/review-emr-cluster/SKILL.md +298 -0
- sparkforge_aws-0.5.0/skills/review-emr-cluster/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/review-emr-cluster/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/review-emr-cluster/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/review-emr-eks/SKILL.md +415 -0
- sparkforge_aws-0.5.0/skills/review-emr-eks/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/review-emr-eks/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/review-emr-eks/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/review-event-driven-architecture/SKILL.md +92 -0
- sparkforge_aws-0.5.0/skills/review-event-driven-architecture/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/skills/review-event-driven-architecture/references/README.md +4 -0
- sparkforge_aws-0.5.0/skills/review-event-driven-architecture/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/skills/review-glue-streaming/SKILL.md +104 -0
- sparkforge_aws-0.5.0/skills/review-glue-streaming/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/skills/review-glue-streaming/references/README.md +4 -0
- sparkforge_aws-0.5.0/skills/review-glue-streaming/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/skills/review-glue-terraform/SKILL.md +175 -0
- sparkforge_aws-0.5.0/skills/review-glue-terraform/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/review-glue-terraform/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/review-glue-terraform/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/review-pyspark-pr/SKILL.md +156 -0
- sparkforge_aws-0.5.0/skills/review-pyspark-pr/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/review-pyspark-pr/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/review-pyspark-pr/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/review-streaming-operations/SKILL.md +122 -0
- sparkforge_aws-0.5.0/skills/review-streaming-operations/evals/evals.json +7 -0
- sparkforge_aws-0.5.0/skills/review-streaming-operations/references/README.md +5 -0
- sparkforge_aws-0.5.0/skills/review-streaming-operations/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/skills/review-structured-streaming/SKILL.md +121 -0
- sparkforge_aws-0.5.0/skills/review-structured-streaming/evals/evals.json +17 -0
- sparkforge_aws-0.5.0/skills/review-structured-streaming/references/README.md +6 -0
- sparkforge_aws-0.5.0/skills/review-structured-streaming/scripts/validate_evidence.py +5 -0
- sparkforge_aws-0.5.0/skills/review-terraform-data-platform/SKILL.md +57 -0
- sparkforge_aws-0.5.0/skills/review-terraform-data-platform/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/review-terraform-data-platform/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/review-terraform-data-platform/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/run-debate/SKILL.md +90 -0
- sparkforge_aws-0.5.0/skills/run-debate/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/run-debate/references/README.md +11 -0
- sparkforge_aws-0.5.0/skills/run-debate/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/sdd-build/SKILL.md +265 -0
- sparkforge_aws-0.5.0/skills/sdd-build/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/sdd-build/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/sdd-build/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/sdd-define/SKILL.md +172 -0
- sparkforge_aws-0.5.0/skills/sdd-define/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/sdd-define/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/sdd-define/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/sdd-design/SKILL.md +144 -0
- sparkforge_aws-0.5.0/skills/sdd-design/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/sdd-design/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/sdd-design/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/sdd-explore/SKILL.md +141 -0
- sparkforge_aws-0.5.0/skills/sdd-explore/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/sdd-explore/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/sdd-explore/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/sdd-plan/SKILL.md +165 -0
- sparkforge_aws-0.5.0/skills/sdd-plan/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/sdd-plan/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/sdd-plan/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/sdd-ship/SKILL.md +209 -0
- sparkforge_aws-0.5.0/skills/sdd-ship/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/sdd-ship/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/sdd-ship/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/spark4-compatibility/SKILL.md +99 -0
- sparkforge_aws-0.5.0/skills/spark4-compatibility/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/spark4-compatibility/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/spark4-compatibility/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/sparkforge-aws-diagnose/SKILL.md +206 -0
- sparkforge_aws-0.5.0/skills/sparkforge-aws-diagnose/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/sparkforge-aws-diagnose/references/README.md +13 -0
- sparkforge_aws-0.5.0/skills/sparkforge-aws-diagnose/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/tool-specialist-routing/SKILL.md +52 -0
- sparkforge_aws-0.5.0/skills/tool-specialist-routing/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/tool-specialist-routing/references/README.md +11 -0
- sparkforge_aws-0.5.0/skills/tool-specialist-routing/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/skills/tune-glue-job/SKILL.md +116 -0
- sparkforge_aws-0.5.0/skills/tune-glue-job/evals/evals.json +33 -0
- sparkforge_aws-0.5.0/skills/tune-glue-job/references/README.md +11 -0
- sparkforge_aws-0.5.0/skills/tune-glue-job/scripts/validate_evidence.py +11 -0
- sparkforge_aws-0.5.0/sparkforge_aws/__init__.py +3 -0
- sparkforge_aws-0.5.0/sparkforge_aws/_forge_portal.py +913 -0
- sparkforge_aws-0.5.0/sparkforge_aws/_graphstudio.py +376 -0
- sparkforge_aws-0.5.0/sparkforge_aws/_graphview.py +181 -0
- sparkforge_aws-0.5.0/sparkforge_aws/_installkit.py +1706 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/__init__.py +1 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/_core.py +9827 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/cli.py +6668 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/mcp.py +367 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/mcp_compact.py +437 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/mcp_envelope.py +141 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/platforms/__init__.py +27 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/platforms/antigravity.py +54 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/platforms/base.py +29 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/platforms/claude.py +31 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/platforms/compiler.py +50 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/platforms/cursor.py +39 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/platforms/targets.py +83 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/tools.py +12919 -0
- sparkforge_aws-0.5.0/sparkforge_aws/adapters/upstream.py +198 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/__init__.py +129 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/arbitration.py +380 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/autonomy.py +253 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/blackboard.py +328 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/budget.py +576 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/checkpoint.py +123 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/control.py +382 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/debate.py +265 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/decision.py +228 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/evidence.py +285 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/executor/__init__.py +19 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/executor/authority.py +190 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/executor/claims.py +314 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/executor/conflict.py +163 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/executor/debate_evidence.py +257 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/executor/debate_run.py +1166 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/executor/digest.py +101 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/executor/gate.py +303 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/executor/ordering.py +323 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/executor/plan.py +314 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/executor/run.py +1117 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/executor/unknowns.py +306 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/experiment.py +189 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/governor.py +290 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/graph.py +351 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/handoff.py +520 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/memory.py +719 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/models.py +646 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/recovery.py +156 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/referee.py +345 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/role_plans.py +95 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/runtime.py +223 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/security.py +340 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/shadow.py +177 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/stop.py +166 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agentic/trust.py +323 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agents/__init__.py +28 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agents/autonomy.py +540 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agents/budget.py +99 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agents/observability.py +79 -0
- sparkforge_aws-0.5.0/sparkforge_aws/agents/room.py +130 -0
- sparkforge_aws-0.5.0/sparkforge_aws/analytics/__init__.py +25 -0
- sparkforge_aws-0.5.0/sparkforge_aws/analytics/dbt.py +245 -0
- sparkforge_aws-0.5.0/sparkforge_aws/analytics/duckdb.py +172 -0
- sparkforge_aws-0.5.0/sparkforge_aws/architecture/__init__.py +5 -0
- sparkforge_aws-0.5.0/sparkforge_aws/architecture/streaming.py +364 -0
- sparkforge_aws-0.5.0/sparkforge_aws/capacity/__init__.py +9 -0
- sparkforge_aws-0.5.0/sparkforge_aws/capacity/plan.py +328 -0
- sparkforge_aws-0.5.0/sparkforge_aws/case/__init__.py +1 -0
- sparkforge_aws-0.5.0/sparkforge_aws/case/playbook.py +119 -0
- sparkforge_aws-0.5.0/sparkforge_aws/case/resume.py +334 -0
- sparkforge_aws-0.5.0/sparkforge_aws/case/router.py +384 -0
- sparkforge_aws-0.5.0/sparkforge_aws/case/store.py +598 -0
- sparkforge_aws-0.5.0/sparkforge_aws/catalog/__init__.py +19 -0
- sparkforge_aws-0.5.0/sparkforge_aws/catalog/contract.py +237 -0
- sparkforge_aws-0.5.0/sparkforge_aws/change/__init__.py +42 -0
- sparkforge_aws-0.5.0/sparkforge_aws/change/apply.py +249 -0
- sparkforge_aws-0.5.0/sparkforge_aws/change/plan.py +269 -0
- sparkforge_aws-0.5.0/sparkforge_aws/change/proposal.py +461 -0
- sparkforge_aws-0.5.0/sparkforge_aws/change/refusals.py +115 -0
- sparkforge_aws-0.5.0/sparkforge_aws/change/sandbox.py +312 -0
- sparkforge_aws-0.5.0/sparkforge_aws/cli/__init__.py +6 -0
- sparkforge_aws-0.5.0/sparkforge_aws/cli/forge.py +269 -0
- sparkforge_aws-0.5.0/sparkforge_aws/cloud/__init__.py +16 -0
- sparkforge_aws-0.5.0/sparkforge_aws/cloud/worker.py +46 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/__init__.py +44 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/budget.py +383 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/context.py +892 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/db.py +494 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/domain_terms.yaml +145 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/export.py +208 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/extract.py +278 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/graph.py +946 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/ids.py +150 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/incremental.py +91 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/index.py +572 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/lineage.py +1313 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/query_expansion.py +84 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/ranking.py +426 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/refs.py +188 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/resolve.py +494 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/search.py +225 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/security.py +538 -0
- sparkforge_aws-0.5.0/sparkforge_aws/codeintel/staleness.py +1411 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/__init__.py +43 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/aws.py +1103 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/base.py +234 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/cloudwatch_logs.py +316 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/glue_resource_link.py +358 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/host_usage.py +184 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/iam_access.py +243 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/lakeformation.py +309 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/live_graph.py +439 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/managed_flink.py +443 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/parquet_footer.py +339 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/schema_registry.py +263 -0
- sparkforge_aws-0.5.0/sparkforge_aws/collect/streaming.py +500 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/__init__.py +47 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/context_tree.py +66 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/funnel.py +103 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/gateway.py +427 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/gateway_budget.py +186 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/gateway_capabilities.py +128 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/gateway_models.py +232 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/gateway_profiles.yaml +23 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/gateway_refs.py +81 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/host_usage.py +68 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/knowledge_pack.py +132 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/planner.py +187 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/progressive.py +72 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/quality.py +288 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/schemas/__init__.py +15 -0
- sparkforge_aws-0.5.0/sparkforge_aws/context/schemas/gateway.schema.json +77 -0
- sparkforge_aws-0.5.0/sparkforge_aws/controlm/__init__.py +22 -0
- sparkforge_aws-0.5.0/sparkforge_aws/controlm/descriptor.py +220 -0
- sparkforge_aws-0.5.0/sparkforge_aws/controlm/matrix.py +348 -0
- sparkforge_aws-0.5.0/sparkforge_aws/controlm/migration.py +323 -0
- sparkforge_aws-0.5.0/sparkforge_aws/databases/__init__.py +12 -0
- sparkforge_aws-0.5.0/sparkforge_aws/databases/dynamodb.py +77 -0
- sparkforge_aws-0.5.0/sparkforge_aws/databases/neptune.py +57 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/__init__.py +107 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/authority.py +302 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/cache.py +515 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/calibration.py +244 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/conditions.py +69 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/contracts.py +428 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/fingerprint.py +43 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/host.py +330 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/host_adapters.py +135 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/measurement.py +31 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/models.py +148 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/primitives.py +181 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/receipts.py +207 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/runtime.py +348 -0
- sparkforge_aws-0.5.0/sparkforge_aws/decision/state.py +99 -0
- sparkforge_aws-0.5.0/sparkforge_aws/diagnosis/__init__.py +19 -0
- sparkforge_aws-0.5.0/sparkforge_aws/diagnosis/root_cause.py +434 -0
- sparkforge_aws-0.5.0/sparkforge_aws/distribution/__init__.py +1 -0
- sparkforge_aws-0.5.0/sparkforge_aws/distribution/cli.py +71 -0
- sparkforge_aws-0.5.0/sparkforge_aws/distribution/config.py +117 -0
- sparkforge_aws-0.5.0/sparkforge_aws/distribution/paths.py +100 -0
- sparkforge_aws-0.5.0/sparkforge_aws/distribution/service.py +304 -0
- sparkforge_aws-0.5.0/sparkforge_aws/doctor.py +251 -0
- sparkforge_aws-0.5.0/sparkforge_aws/dq_ai/__init__.py +5 -0
- sparkforge_aws-0.5.0/sparkforge_aws/dq_ai/assessment.py +250 -0
- sparkforge_aws-0.5.0/sparkforge_aws/dqdl/__init__.py +5 -0
- sparkforge_aws-0.5.0/sparkforge_aws/dqdl/validator.py +153 -0
- sparkforge_aws-0.5.0/sparkforge_aws/durable.py +217 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/__init__.py +79 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/cache.py +5 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/decision_activation.py +59 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/decision_compare.py +70 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/decision_contracts.py +233 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/decision_engine.py +30 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/decision_evaluation.py +114 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/decision_kernel_bridge.py +208 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/decision_models.py +431 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/decision_plane.py +539 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/decision_receipts.py +212 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/goldset.py +261 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/ledger.py +203 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/model_router.py +368 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/provider_cost.py +76 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/recall.py +318 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/reconcile.py +221 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/report.py +86 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/router.py +132 -0
- sparkforge_aws-0.5.0/sparkforge_aws/economy/waste_detector.py +136 -0
- sparkforge_aws-0.5.0/sparkforge_aws/errors/__init__.py +6 -0
- sparkforge_aws-0.5.0/sparkforge_aws/errors/matcher.py +350 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/__init__.py +6 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/__main__.py +8 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/cli.py +268 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/compare.py +250 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/datasets/router_dataset.json +31 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/debate_grade.py +333 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/decision_plane.py +5 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/decision_replay.py +613 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/evidence.py +258 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/evidence_adapters.py +309 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/evidence_resolver.py +283 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/evolution.py +1809 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/grade.py +268 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/lifecycle.py +205 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/metric_compiler.py +103 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/policy.py +309 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/runner.py +315 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/suite.py +308 -0
- sparkforge_aws-0.5.0/sparkforge_aws/evals/token_benchmark.py +324 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/__init__.py +1 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/airflow_dag.py +1035 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/athena_cost.py +82 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/athena_workgroup.py +280 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/benchmark.py +772 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/bridge.py +248 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/call_graph.py +470 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/catalog_schema.py +374 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/cdc.py +599 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/cloudwatch.py +143 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/cloudwatch_logs.py +235 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/cloudwatch_retention.py +85 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/consumers.py +267 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/controlm_jobs.py +1429 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/data_quality.py +1764 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/emr_cluster.py +1255 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/emr_eks.py +823 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/emr_serverless.py +1005 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/event_driven.py +368 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/event_log.py +1229 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/exception.py +179 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/flink.py +717 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/funcval.py +1204 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/fusion.py +689 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/glue_dq_advanced.py +420 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/glue_job_run.py +503 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/glue_resource_link.py +287 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/glue_streaming.py +370 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/glue_terraform.py +114 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/graph.py +1455 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/host_transcript.py +381 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/iam_access.py +228 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/iceberg_metadata.py +895 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/lakeformation.py +457 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/lakeformation_grants.py +312 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/lakeformation_matrix.py +167 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/lakeformation_missing_grant.py +1064 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/migration.py +563 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/parquet_footer.py +433 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/pricing.py +143 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/pyspark_ast.py +1583 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/run_cost.py +132 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/runtime_detect.py +850 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/runtime_matrix.py +628 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/s3_listing.py +345 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/scan.py +533 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/schema_registry.py +341 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/secrets.py +207 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/sfn_history.py +1409 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/spark_plan.py +1118 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/sql_literal.py +504 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/sql_metric_names.py +76 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/sql_metrics.py +840 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/stepfunctions.py +657 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/streaming.py +608 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/streaming_composition.py +366 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/streaming_glue_cross.py +322 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/streaming_glue_runtime.py +273 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/streaming_iceberg_temporal.py +246 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/streaming_integrations.py +515 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/streaming_ops.py +381 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/streaming_pipeline.py +307 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/streaming_slo.py +616 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/streaming_temporal.py +360 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/terraform.py +1097 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/timeout_diagnosis.py +331 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/transport.py +762 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/utilization.py +128 -0
- sparkforge_aws-0.5.0/sparkforge_aws/facts/workload.py +205 -0
- sparkforge_aws-0.5.0/sparkforge_aws/findings/__init__.py +1 -0
- sparkforge_aws-0.5.0/sparkforge_aws/findings/models.py +211 -0
- sparkforge_aws-0.5.0/sparkforge_aws/findings/schemas/business_rule.schema.json +81 -0
- sparkforge_aws-0.5.0/sparkforge_aws/findings/schemas/dq_ai_report.schema.json +39 -0
- sparkforge_aws-0.5.0/sparkforge_aws/findings/schemas/fact.schema.json +56 -0
- sparkforge_aws-0.5.0/sparkforge_aws/findings/schemas/finding.schema.json +160 -0
- sparkforge_aws-0.5.0/sparkforge_aws/findings/signature.py +115 -0
- sparkforge_aws-0.5.0/sparkforge_aws/findings/validate.py +126 -0
- sparkforge_aws-0.5.0/sparkforge_aws/finops/__init__.py +9 -0
- sparkforge_aws-0.5.0/sparkforge_aws/finops/athena_observed.py +36 -0
- sparkforge_aws-0.5.0/sparkforge_aws/finops/realized.py +171 -0
- sparkforge_aws-0.5.0/sparkforge_aws/finops/report.py +357 -0
- sparkforge_aws-0.5.0/sparkforge_aws/graphview.py +134 -0
- sparkforge_aws-0.5.0/sparkforge_aws/iceberg/__init__.py +17 -0
- sparkforge_aws-0.5.0/sparkforge_aws/iceberg/doctor.py +100 -0
- sparkforge_aws-0.5.0/sparkforge_aws/iceberg/maintenance.py +260 -0
- sparkforge_aws-0.5.0/sparkforge_aws/install/__init__.py +13 -0
- sparkforge_aws-0.5.0/sparkforge_aws/install/cli.py +290 -0
- sparkforge_aws-0.5.0/sparkforge_aws/install/hosts.py +112 -0
- sparkforge_aws-0.5.0/sparkforge_aws/install/lifecycle.py +950 -0
- sparkforge_aws-0.5.0/sparkforge_aws/integrate/__init__.py +419 -0
- sparkforge_aws-0.5.0/sparkforge_aws/integrate/claude.py +437 -0
- sparkforge_aws-0.5.0/sparkforge_aws/integrate/conflict.py +436 -0
- sparkforge_aws-0.5.0/sparkforge_aws/integrate/hosts.py +193 -0
- sparkforge_aws-0.5.0/sparkforge_aws/integrate/open_host.py +227 -0
- sparkforge_aws-0.5.0/sparkforge_aws/integrate/render.py +759 -0
- sparkforge_aws-0.5.0/sparkforge_aws/integrate/sources.py +94 -0
- sparkforge_aws-0.5.0/sparkforge_aws/integrate/writer.py +1041 -0
- sparkforge_aws-0.5.0/sparkforge_aws/journal/__init__.py +75 -0
- sparkforge_aws-0.5.0/sparkforge_aws/journal/read.py +118 -0
- sparkforge_aws-0.5.0/sparkforge_aws/journal/record.py +270 -0
- sparkforge_aws-0.5.0/sparkforge_aws/knowledge_drift.py +299 -0
- sparkforge_aws-0.5.0/sparkforge_aws/knowledge_engine/__init__.py +16 -0
- sparkforge_aws-0.5.0/sparkforge_aws/knowledge_engine/compiler.py +208 -0
- sparkforge_aws-0.5.0/sparkforge_aws/knowledge_engine/packs.py +137 -0
- sparkforge_aws-0.5.0/sparkforge_aws/knowledge_freshness.py +285 -0
- sparkforge_aws-0.5.0/sparkforge_aws/knowledge_ref.py +72 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/__init__.py +95 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/aws.py +55 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/cli.py +158 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/compatibility.py +74 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/contract.py +262 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/doctor.py +103 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/evidence.py +239 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/faults.py +51 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/generators.py +86 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/oracle.py +123 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/runtime.py +153 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/scenario.py +280 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/spec.py +267 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/testcontainers_backend.py +33 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lab/workload.py +47 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lakeformation/__init__.py +17 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lakeformation/architecture.py +1584 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lakeformation/capabilities.py +96 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lakeformation/catalog_routing.py +92 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lakeformation/doctor.py +95 -0
- sparkforge_aws-0.5.0/sparkforge_aws/lakeformation/graph.py +595 -0
- sparkforge_aws-0.5.0/sparkforge_aws/migration/__init__.py +33 -0
- sparkforge_aws-0.5.0/sparkforge_aws/migration/assessment.py +925 -0
- sparkforge_aws-0.5.0/sparkforge_aws/migration/collect.py +113 -0
- sparkforge_aws-0.5.0/sparkforge_aws/migration/release_descriptor.py +444 -0
- sparkforge_aws-0.5.0/sparkforge_aws/migration/release_diff.py +317 -0
- sparkforge_aws-0.5.0/sparkforge_aws/migration/version_path.py +147 -0
- sparkforge_aws-0.5.0/sparkforge_aws/observability/__init__.py +32 -0
- sparkforge_aws-0.5.0/sparkforge_aws/observability/agentops.py +442 -0
- sparkforge_aws-0.5.0/sparkforge_aws/observability/context_ledger.py +370 -0
- sparkforge_aws-0.5.0/sparkforge_aws/observability/otlp.py +588 -0
- sparkforge_aws-0.5.0/sparkforge_aws/observability/sre.py +240 -0
- sparkforge_aws-0.5.0/sparkforge_aws/observability/store.py +210 -0
- sparkforge_aws-0.5.0/sparkforge_aws/observability/surface.py +127 -0
- sparkforge_aws-0.5.0/sparkforge_aws/observability/tracer.py +215 -0
- sparkforge_aws-0.5.0/sparkforge_aws/orchestration/__init__.py +17 -0
- sparkforge_aws-0.5.0/sparkforge_aws/orchestration/topology.py +189 -0
- sparkforge_aws-0.5.0/sparkforge_aws/packs/__init__.py +33 -0
- sparkforge_aws-0.5.0/sparkforge_aws/packs/check.py +71 -0
- sparkforge_aws-0.5.0/sparkforge_aws/packs/load.py +194 -0
- sparkforge_aws-0.5.0/sparkforge_aws/packs/manifest.py +166 -0
- sparkforge_aws-0.5.0/sparkforge_aws/paths.py +168 -0
- sparkforge_aws-0.5.0/sparkforge_aws/platform/__init__.py +39 -0
- sparkforge_aws-0.5.0/sparkforge_aws/platform/ecosystem.py +241 -0
- sparkforge_aws-0.5.0/sparkforge_aws/platform/graph.py +489 -0
- sparkforge_aws-0.5.0/sparkforge_aws/policy/__init__.py +25 -0
- sparkforge_aws-0.5.0/sparkforge_aws/policy/decide.py +154 -0
- sparkforge_aws-0.5.0/sparkforge_aws/policy/hook.py +54 -0
- sparkforge_aws-0.5.0/sparkforge_aws/policy/load.py +108 -0
- sparkforge_aws-0.5.0/sparkforge_aws/policy/mcp.py +44 -0
- sparkforge_aws-0.5.0/sparkforge_aws/policy/schema.py +124 -0
- sparkforge_aws-0.5.0/sparkforge_aws/policy/settings.py +64 -0
- sparkforge_aws-0.5.0/sparkforge_aws/portal_adapter.py +716 -0
- sparkforge_aws-0.5.0/sparkforge_aws/proof/__init__.py +27 -0
- sparkforge_aws-0.5.0/sparkforge_aws/proof/axes.py +91 -0
- sparkforge_aws-0.5.0/sparkforge_aws/proof/axis.py +99 -0
- sparkforge_aws-0.5.0/sparkforge_aws/proof/keys.py +22 -0
- sparkforge_aws-0.5.0/sparkforge_aws/proof/prove.py +152 -0
- sparkforge_aws-0.5.0/sparkforge_aws/proof/resolution.py +106 -0
- sparkforge_aws-0.5.0/sparkforge_aws/protocols/__init__.py +25 -0
- sparkforge_aws-0.5.0/sparkforge_aws/protocols/a2a_adapter.py +174 -0
- sparkforge_aws-0.5.0/sparkforge_aws/protocols/forge.py +154 -0
- sparkforge_aws-0.5.0/sparkforge_aws/providers/mock.py +24 -0
- sparkforge_aws-0.5.0/sparkforge_aws/receipt/__init__.py +19 -0
- sparkforge_aws-0.5.0/sparkforge_aws/receipt/_hash.py +39 -0
- sparkforge_aws-0.5.0/sparkforge_aws/receipt/build.py +332 -0
- sparkforge_aws-0.5.0/sparkforge_aws/receipt/verify.py +224 -0
- sparkforge_aws-0.5.0/sparkforge_aws/registry/__init__.py +50 -0
- sparkforge_aws-0.5.0/sparkforge_aws/registry/loader.py +175 -0
- sparkforge_aws-0.5.0/sparkforge_aws/registry/models.py +303 -0
- sparkforge_aws-0.5.0/sparkforge_aws/registry/validator.py +104 -0
- sparkforge_aws-0.5.0/sparkforge_aws/reliability/__init__.py +10 -0
- sparkforge_aws-0.5.0/sparkforge_aws/reliability/rca.py +95 -0
- sparkforge_aws-0.5.0/sparkforge_aws/reporting/__init__.py +7 -0
- sparkforge_aws-0.5.0/sparkforge_aws/reporting/dq_ai.py +153 -0
- sparkforge_aws-0.5.0/sparkforge_aws/reporting/github.py +394 -0
- sparkforge_aws-0.5.0/sparkforge_aws/reporting/locate.py +333 -0
- sparkforge_aws-0.5.0/sparkforge_aws/rules/__init__.py +1 -0
- sparkforge_aws-0.5.0/sparkforge_aws/rules/engine.py +341 -0
- sparkforge_aws-0.5.0/sparkforge_aws/rules/expr.py +128 -0
- sparkforge_aws-0.5.0/sparkforge_aws/rules/loader.py +365 -0
- sparkforge_aws-0.5.0/sparkforge_aws/rules/version_scope.py +123 -0
- sparkforge_aws-0.5.0/sparkforge_aws/scan/__init__.py +23 -0
- sparkforge_aws-0.5.0/sparkforge_aws/scan/plan.py +218 -0
- sparkforge_aws-0.5.0/sparkforge_aws/scan/summary.py +50 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/__init__.py +11 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/change_kinds.yaml +61 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/checks.py +874 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/load.py +92 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/schema/build_report.json +56 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/schema/common.json +19 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/schema/define.json +67 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/schema/design.json +44 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/schema/explore.json +20 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/schema/plan.json +37 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/schema/ship.json +20 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/stamp.py +209 -0
- sparkforge_aws-0.5.0/sparkforge_aws/sdd/status.py +36 -0
- sparkforge_aws-0.5.0/sparkforge_aws/simulate/__init__.py +30 -0
- sparkforge_aws-0.5.0/sparkforge_aws/simulate/diff.py +86 -0
- sparkforge_aws-0.5.0/sparkforge_aws/simulate/layers.py +15 -0
- sparkforge_aws-0.5.0/sparkforge_aws/simulate/patch.py +112 -0
- sparkforge_aws-0.5.0/sparkforge_aws/spark/__init__.py +13 -0
- sparkforge_aws-0.5.0/sparkforge_aws/spark/eventlog_analyzer.py +98 -0
- sparkforge_aws-0.5.0/sparkforge_aws/spark/plan_profiler.py +92 -0
- sparkforge_aws-0.5.0/sparkforge_aws/storage/__init__.py +1 -0
- sparkforge_aws-0.5.0/sparkforge_aws/storage/feature_support.py +338 -0
- sparkforge_aws-0.5.0/sparkforge_aws/storage/readiness.py +273 -0
- sparkforge_aws-0.5.0/sparkforge_aws/storage/upgrade.py +297 -0
- sparkforge_aws-0.5.0/sparkforge_aws/streaming/__init__.py +12 -0
- sparkforge_aws-0.5.0/sparkforge_aws/streaming/kafka.py +66 -0
- sparkforge_aws-0.5.0/sparkforge_aws/streaming/kinesis.py +54 -0
- sparkforge_aws-0.5.0/sparkforge_aws/terraform/__init__.py +14 -0
- sparkforge_aws-0.5.0/sparkforge_aws/terraform/plan_analyzer.py +137 -0
- sparkforge_aws-0.5.0/sparkforge_aws/tools/__init__.py +22 -0
- sparkforge_aws-0.5.0/sparkforge_aws/tools/cli.py +56 -0
- sparkforge_aws-0.5.0/sparkforge_aws/tools/context.py +31 -0
- sparkforge_aws-0.5.0/sparkforge_aws/tools/cost.py +26 -0
- sparkforge_aws-0.5.0/sparkforge_aws/tools/evaluation.py +29 -0
- sparkforge_aws-0.5.0/sparkforge_aws/tools/lineage.py +28 -0
- sparkforge_aws-0.5.0/sparkforge_aws/tools/offline.py +87 -0
- sparkforge_aws-0.5.0/sparkforge_aws/tools/schema.py +24 -0
- sparkforge_aws-0.5.0/sparkforge_aws/tuning/__init__.py +13 -0
- sparkforge_aws-0.5.0/sparkforge_aws/tuning/spark_conf.py +849 -0
- sparkforge_aws-0.5.0/sparkforge_aws/ui/__init__.py +28 -0
- sparkforge_aws-0.5.0/sparkforge_aws/ui/app.py +471 -0
- sparkforge_aws-0.5.0/sparkforge_aws/ui/home.py +120 -0
- sparkforge_aws-0.5.0/sparkforge_aws/ui/i18n.py +143 -0
- sparkforge_aws-0.5.0/sparkforge_aws/ui/kit.py +689 -0
- sparkforge_aws-0.5.0/sparkforge_aws/ui/screen.py +638 -0
- sparkforge_aws-0.5.0/sparkforge_aws/ui/tui.py +110 -0
- sparkforge_aws-0.5.0/sparkforge_aws/ui/wizard.py +309 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workflows/__init__.py +13 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workflows/dag.py +87 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workflows/handoff.py +40 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workflows/spec.py +54 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workload/__init__.py +11 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workload/axis.py +76 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workload/fingerprint.py +323 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workspace/__init__.py +88 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workspace/adapters.py +69 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workspace/federated.py +530 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workspace/federation.py +93 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workspace/freshness.py +184 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workspace/graph.py +135 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workspace/impact.py +107 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workspace/manifest.py +272 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workspace/portable.py +251 -0
- sparkforge_aws-0.5.0/sparkforge_aws/workspace/semantic.py +343 -0
- sparkforge_aws-0.5.0/vendor/cavekit/LICENSE +21 -0
- sparkforge_aws-0.5.0/vendor/cavekit/README.md +186 -0
- sparkforge_aws-0.5.0/vendor/cavekit/skills/backprop/SKILL.md +89 -0
- sparkforge_aws-0.5.0/vendor/cavekit/skills/build/SKILL.md +81 -0
- sparkforge_aws-0.5.0/vendor/cavekit/skills/caveman/SKILL.md +118 -0
- sparkforge_aws-0.5.0/vendor/cavekit/skills/check/SKILL.md +93 -0
- sparkforge_aws-0.5.0/vendor/cavekit/skills/deepen/SKILL.md +84 -0
- sparkforge_aws-0.5.0/vendor/cavekit/skills/grill/SKILL.md +82 -0
- sparkforge_aws-0.5.0/vendor/cavekit/skills/research/SKILL.md +72 -0
- sparkforge_aws-0.5.0/vendor/cavekit/skills/review/SKILL.md +85 -0
- sparkforge_aws-0.5.0/vendor/cavekit/skills/spec/SKILL.md +95 -0
- sparkforge_aws-0.5.0/vendor/caveman/LICENSE +21 -0
- sparkforge_aws-0.5.0/vendor/caveman/README.md +352 -0
- sparkforge_aws-0.5.0/vendor/caveman/agents/cavecrew-builder.md +47 -0
- sparkforge_aws-0.5.0/vendor/caveman/agents/cavecrew-investigator.md +57 -0
- sparkforge_aws-0.5.0/vendor/caveman/agents/cavecrew-reviewer.md +48 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/agents/cavecrew-builder.md +47 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/agents/cavecrew-investigator.md +57 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/agents/cavecrew-reviewer.md +48 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/cavecrew/SKILL.md +82 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman/SKILL.md +88 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman/agents/openai.yaml +6 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman/assets/caveman-small.svg +7 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman/assets/caveman.svg +7 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman-compress/SKILL.md +111 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman-compress/scripts/__init__.py +9 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman-compress/scripts/__main__.py +3 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman-compress/scripts/benchmark.py +80 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman-compress/scripts/cli.py +85 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman-compress/scripts/compress.py +414 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman-compress/scripts/detect.py +139 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman-compress/scripts/validate.py +221 -0
- sparkforge_aws-0.5.0/vendor/caveman/plugins/caveman/skills/caveman-stats/SKILL.md +12 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/cavecrew/README.md +61 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/cavecrew/SKILL.md +82 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman/README.md +48 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman/SKILL.md +88 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-commit/README.md +44 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-commit/SKILL.md +65 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-compress/README.md +163 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-compress/SECURITY.md +31 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-compress/SKILL.md +111 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-compress/scripts/__init__.py +9 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-compress/scripts/__main__.py +3 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-compress/scripts/benchmark.py +80 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-compress/scripts/cli.py +85 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-compress/scripts/compress.py +414 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-compress/scripts/detect.py +139 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-compress/scripts/validate.py +221 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-help/README.md +38 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-help/SKILL.md +63 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-review/README.md +33 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-review/SKILL.md +55 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-stats/README.md +36 -0
- sparkforge_aws-0.5.0/vendor/caveman/skills/caveman-stats/SKILL.md +12 -0
- sparkforge_aws-0.5.0/vendor/caveman/src/hooks/README.md +111 -0
- sparkforge_aws-0.5.0/vendor/caveman/src/mcp-servers/caveman-shrink/README.md +58 -0
- sparkforge_aws-0.5.0/vendor/caveman/src/plugins/opencode/README.md +46 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: athena-query-optimizer
|
|
3
|
+
description: Custo ou latencia na consulta Athena e nao no job - bytes escaneados, pruning de particao, projecao de coluna, versao do engine, workgroup, layout de armazenamento.
|
|
4
|
+
skills:
|
|
5
|
+
- optimize-parquet-layout
|
|
6
|
+
- optimize-iceberg-table
|
|
7
|
+
- benchmark-pyspark-job
|
|
8
|
+
rule_areas: [SF-ATH, SF-PQ]
|
|
9
|
+
executors: [sf-inventory, sf-extractor, sf-judge, sf-verifier, sf-synthesizer]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
**Siga `AGENT_PROTOCOL.md`.** As dez regras não são orientação; são o contrato.
|
|
13
|
+
|
|
14
|
+
## O que você olha
|
|
15
|
+
|
|
16
|
+
Athena cobra por **bytes escaneados**. O caminho da evidência tem três pernas, e nenhuma
|
|
17
|
+
responde sozinha:
|
|
18
|
+
|
|
19
|
+
1. `sparkforge_aws_analyze_sql` — a consulta: projeção, predicado, `LIMIT`.
|
|
20
|
+
2. `sparkforge_aws_analyze_catalog_schema` — o schema e as partições declaradas no Glue Catalog.
|
|
21
|
+
3. `sparkforge_aws_fuse` — correlaciona as duas. **As regras SF-ATH só disparam sobre facts
|
|
22
|
+
fundidos**, porque "a consulta filtra a coluna de partição?" exige saber quais colunas
|
|
23
|
+
são de partição, e isso está no catálogo, não na query.
|
|
24
|
+
|
|
25
|
+
Some `sparkforge_aws_analyze_athena_workgroup` (versão do engine, limites) e
|
|
26
|
+
`sparkforge_aws_analyze_s3_listing` (o que está de fato no prefixo).
|
|
27
|
+
|
|
28
|
+
## `LIMIT` não é filtro
|
|
29
|
+
|
|
30
|
+
`LIMIT` corta o resultado, não o escaneamento. Uma consulta com `LIMIT 10` e sem predicado
|
|
31
|
+
de partição varre a tabela inteira e cobra por ela. É o erro mais caro e o mais fácil de
|
|
32
|
+
não ver, porque a consulta volta rápido.
|
|
33
|
+
|
|
34
|
+
## Quem consome também decide
|
|
35
|
+
|
|
36
|
+
Antes de recomendar mudança de formato ou de versão, leia
|
|
37
|
+
`knowledge/cross-service-constraints.md` e rode `sparkforge_aws_analyze_consumers`. Glue 5.1
|
|
38
|
+
escreve Iceberg **format V3**, e **Athena não lê V3** — a migração passa no job e quebra
|
|
39
|
+
silenciosamente no consumidor dias depois.
|
|
40
|
+
|
|
41
|
+
## Preservar o resultado é exigência com produtor, não frase
|
|
42
|
+
|
|
43
|
+
Recomendar outro particionamento, outro formato ou outro `format-version` é recomendar
|
|
44
|
+
recriar a tabela, e tabela recriada é dado reescrito. Trocar `SELECT *` por colunas nomeadas
|
|
45
|
+
muda o schema do resultado por construção, e trocar a engine version troca a implementação que
|
|
46
|
+
avalia a expressão. A mais barata das três é a que mais parece neutra.
|
|
47
|
+
|
|
48
|
+
Derive o plano com `sparkforge_aws_funcval_plan` — na CLI, `sparkforge-aws funcval plan --facts
|
|
49
|
+
<facts.json> --out <plano.json>`, e `--facts` é repetível porque o alvo vem do
|
|
50
|
+
`pyspark.write` e o schema e os agregados vêm do `catalog.table_schema` — e compare os dois
|
|
51
|
+
lados medidos com `sparkforge_aws_funcval_compare`. Nenhum dos dois executa consulta, roda Spark
|
|
52
|
+
ou chama AWS: quem mede é o operador, e o lado `--before` só existe se alguém o mediu
|
|
53
|
+
**antes** de a mudança tocar o alvo. O `funcval.plan` é a evidência do gate
|
|
54
|
+
`functional_validation_defined`, e `ROUTE-015` é a rota que manda defini-lo. É a **regra 10**
|
|
55
|
+
do `AGENT_PROTOCOL.md`, e ela é acionável de propósito: exigência sem verbo é prosa.
|
|
56
|
+
|
|
57
|
+
**Não prometa mais do que os quatro eixos entregam.** Contagem, schema, chaves e agregados
|
|
58
|
+
iguais **não provam** que o dado é o mesmo — duas linhas podem trocar valores entre si e os
|
|
59
|
+
quatro passam. O que a saída afirma é "nenhum dos quatro proxies detectou divergência", nunca
|
|
60
|
+
"o resultado é idêntico". Chave de negócio não é derivável: sem `--key` o eixo sai em
|
|
61
|
+
`undeclared_axes` com a razão, e isso vai escrito no relatório em vez de calado. E
|
|
62
|
+
`SF-FVAL-005` acesa invalida a leitura das outras quatro — parte do plano não foi medida.
|
|
63
|
+
|
|
64
|
+
## Não faz
|
|
65
|
+
|
|
66
|
+
**Manutenção destrutiva aqui não se parece com manutenção: ela chega escrita como
|
|
67
|
+
consulta.** `CREATE TABLE AS SELECT` sobre um prefixo já usado, `INSERT OVERWRITE`,
|
|
68
|
+
`ALTER TABLE ... DROP PARTITION` e `DROP TABLE` entram pelo mesmo caminho que a sua
|
|
69
|
+
evidência, e nenhum deles avisa que apaga. Recomendar outro particionamento, outro formato
|
|
70
|
+
ou outro `format-version` é recomendar recriar a tabela — e é o mesmo ato com outro nome.
|
|
71
|
+
|
|
72
|
+
Você entrega a consulta, o prefixo de destino e o que deixa de existir depois dela;
|
|
73
|
+
executar é de quem pode ser perguntado, e a confirmação de escopo e retenção acontece lá.
|
|
74
|
+
Aqui dentro a pergunta não está disponível, e seguir sem ela seria decidir por outro o que
|
|
75
|
+
não dá para desfazer — ainda mais quando o dado apagado servia a um consumidor que nem
|
|
76
|
+
sabia da migração.
|
|
77
|
+
|
|
78
|
+
## Como você trabalha
|
|
79
|
+
|
|
80
|
+
Você coordena; não executa. Despache os executores na ordem do loop de fase.
|
|
81
|
+
|
|
82
|
+
Em plataforma sem despacho de subagente: `sparkforge-aws playbook athena-query-optimizer` (CLI) ou
|
|
83
|
+
a tool MCP `sparkforge_aws_playbook`.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cdc-contract-reviewer
|
|
3
|
+
description: Especialista em CDC, Debezium/Kafka Connect, AWS DMS e contratos de mudança, separando posição, chave, snapshot/CDC seam, schema history, tombstone, mappings e unresolved sem declarar exatamente-once por configuração.
|
|
4
|
+
skills:
|
|
5
|
+
- review-cdc-replication
|
|
6
|
+
- aws-messaging-and-streaming
|
|
7
|
+
rule_areas: [SF-CDC, SF-DEBEZIUM, SF-DMS, SF-SCHEMA]
|
|
8
|
+
executors: [sf-inventory, sf-extractor, sf-judge, sf-verifier, sf-synthesizer]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
**Siga `AGENT_PROTOCOL.md`.** Este coordenador trabalha com fatos ancorados,
|
|
12
|
+
contratos explícitos e pontos cegos nomeados.
|
|
13
|
+
|
|
14
|
+
## O que olha
|
|
15
|
+
|
|
16
|
+
Recebe dumps CDC, configuração/status Debezium/Kafka Connect, tarefas/endpoints/
|
|
17
|
+
mappings/estatísticas AWS DMS e artefatos de contrato de schema já coletados.
|
|
18
|
+
Separa operação, posição de origem, chave, transação, snapshot, delete,
|
|
19
|
+
tombstone, schema history, endpoint, mapping, compatibilidade e unresolved.
|
|
20
|
+
|
|
21
|
+
`cdc.*` descreve eventos e semântica observada. `debezium.*`, `dms.*` e
|
|
22
|
+
`schema.*` mantêm namespaces próprios; um não prova o comportamento do outro.
|
|
23
|
+
Use `sparkforge_aws_analyze_cdc` com o `artifact` correspondente e depois
|
|
24
|
+
`sparkforge_aws_judge`. A ferramenta só lê dumps locais.
|
|
25
|
+
|
|
26
|
+
## Ciclo de investigação
|
|
27
|
+
|
|
28
|
+
1. Declarar origem, destino, runtime, janela e baseline do caso.
|
|
29
|
+
2. Extrair fatos offline, preservando posição, chave, transação e unresolved.
|
|
30
|
+
3. Julgar regras e registrar `fact_id`/`rule_id` sem transformar proxy em prova.
|
|
31
|
+
4. Correlacionar snapshot/CDC seam, schema evolution, delete handling,
|
|
32
|
+
consumidores, observabilidade e resultado funcional.
|
|
33
|
+
5. Propor experimento com uma variável principal, validação e rollback.
|
|
34
|
+
|
|
35
|
+
## Não faz
|
|
36
|
+
|
|
37
|
+
- Toda manutenção destrutiva exige confirmação explícita do operador.
|
|
38
|
+
- Não conecta em banco, Kafka Connect, Debezium, DMS, Glue Schema Registry ou AWS.
|
|
39
|
+
- Não declara exactly-once, idempotência, ausência de perda ou compatibilidade sem evidência.
|
|
40
|
+
- Não trata posição ausente, chave ausente ou schema history ausente como valor conhecido.
|
|
41
|
+
- Não expõe credenciais de endpoint nem executa mutação em infraestrutura.
|
|
42
|
+
- Não inventa throughput, latência, custo ou severidade fora do catálogo.
|
|
43
|
+
|
|
44
|
+
## Entrega
|
|
45
|
+
|
|
46
|
+
Devolve facts, findings, unresolved, hipóteses e recomendações separados; cada
|
|
47
|
+
finding aponta evidência e regra. Cada recomendação contém causa raiz,
|
|
48
|
+
mudança proposta, efeito esperado sem número inventado, riscos, trade-offs,
|
|
49
|
+
validação e rollback.
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-quality-reviewer
|
|
3
|
+
description: Validacao de dado em job PySpark - PyDeequ, Great Expectations ou artesanal - se esta no lugar certo, se tem consequencia, quanto custa em passadas sobre o dado.
|
|
4
|
+
skills:
|
|
5
|
+
- review-data-validation
|
|
6
|
+
- review-pyspark-pr
|
|
7
|
+
- analyze-library-call-graph
|
|
8
|
+
- analyze-functional-rules
|
|
9
|
+
rule_areas: [SF-DQ, SF-DQ-AI]
|
|
10
|
+
executors: [sf-inventory, sf-extractor, sf-judge, sf-verifier, sf-synthesizer]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
**Siga `AGENT_PROTOCOL.md`.** As dez regras não são orientação; são o contrato.
|
|
14
|
+
|
|
15
|
+
Para governança de recomendações Glue Data Quality, use `sparkforge_aws_analyze_dq_ai` para
|
|
16
|
+
extrair somente metadados do artefato e `sparkforge_aws_dq_ai_assess` para compor avaliação,
|
|
17
|
+
findings e relatório. DQDL é entrada externa validada; nunca gere regra, envie linha de
|
|
18
|
+
dados ou invoque provedor.
|
|
19
|
+
|
|
20
|
+
## Quando você entra, e quando o irmão entra
|
|
21
|
+
|
|
22
|
+
Você e `pyspark-code-reviewer` leem **o mesmo `.py`**. O critério que separa
|
|
23
|
+
`emr-infra-reviewer` de `glue-infra-reviewer` — qual artefato está na mão — aqui não decide
|
|
24
|
+
nada, porque o artefato é o mesmo arquivo. O que decide é a **pergunta**, e ela tem um teste
|
|
25
|
+
que se aplica sem adivinhar:
|
|
26
|
+
|
|
27
|
+
> Apague mentalmente as linhas de validação do arquivo. A pergunta continua de pé?
|
|
28
|
+
> Se continua, é do `pyspark-code-reviewer`. Se some junto com elas, é sua.
|
|
29
|
+
|
|
30
|
+
| A pergunta | Coordenador |
|
|
31
|
+
|---|---|
|
|
32
|
+
| "esse `count()` dentro do laço custa caro?" | `pyspark-code-reviewer` |
|
|
33
|
+
| "esse `count()` é uma validação, e ela roda depois do `write`?" | você |
|
|
34
|
+
| "o join virou broadcast no plano físico?" | `pyspark-code-reviewer` |
|
|
35
|
+
| "a suíte que roda antes do write aborta o job quando ela reprova?" | você |
|
|
36
|
+
| "onde o trabalho Spark é disparado na estrutura de chamadas?" | `pyspark-code-reviewer` |
|
|
37
|
+
| "esse job valida alguma coisa, e essa validação protege alguém?" | você |
|
|
38
|
+
|
|
39
|
+
O que torna a divisão verificável, e não jurisprudência: os dois lados saem de **extratores
|
|
40
|
+
diferentes sobre a mesma AST**, com namespaces de fact disjuntos.
|
|
41
|
+
`sparkforge_aws_analyze_pyspark` emite `pyspark.*` e alimenta `SF-PY`, `SF-PLAN` e `SF-CG`;
|
|
42
|
+
`sparkforge_aws_analyze_data_quality` emite `dq.*` e alimenta `SF-DQ`. Se a resposta que você
|
|
43
|
+
procura mora num fact `dq.*`, é sua; se mora num `pyspark.*`, é dele. Nenhuma regra de uma
|
|
44
|
+
área lê fact da outra.
|
|
45
|
+
|
|
46
|
+
**As duas áreas podem falar da mesma linha dizendo coisas diferentes, e isso não é
|
|
47
|
+
duplicação.** Um `df.filter(...).count()` colocado depois do `write` pode render um achado
|
|
48
|
+
`SF-PY` sobre a action e um `SF-DQ-001` sobre a posição: o primeiro fala do que a chamada
|
|
49
|
+
custa, o segundo fala de o dado ruim já estar publicado quando o alarme toca. Suprimir um
|
|
50
|
+
deles em nome de "isso já foi dito" entrega metade do achado — e a metade que some é sempre
|
|
51
|
+
a que o outro coordenador não sabia produzir.
|
|
52
|
+
|
|
53
|
+
**Você sai** quando a evidência aponta para fora da validação: plano físico e padrão de
|
|
54
|
+
código vão para `pyspark-code-reviewer`, tabela e layout para
|
|
55
|
+
`iceberg-performance-engineer`, definição de job ou de cluster para `glue-infra-reviewer` e
|
|
56
|
+
`emr-infra-reviewer`, e o gargalo de execução medido (stage dominante, skew, spill, GC) para
|
|
57
|
+
`spark-performance-architect`.
|
|
58
|
+
|
|
59
|
+
## Preservar o resultado é exigência com produtor, não frase
|
|
60
|
+
|
|
61
|
+
Você recomenda mover, unificar ou remover validação, e validação tem consequência: um check
|
|
62
|
+
que deixa de rodar deixa de rejeitar linha, e um check que muda de lugar passa a rejeitar
|
|
63
|
+
outra. Reduzir passadas sobre o dado é ganho legítimo; reduzir o que é reprovado é mudança de
|
|
64
|
+
regra de negócio vestida de tuning, e as duas saem no mesmo diff.
|
|
65
|
+
|
|
66
|
+
Derive o plano com `sparkforge_aws_funcval_plan` — na CLI, `sparkforge-aws funcval plan --facts
|
|
67
|
+
<facts.json> --out <plano.json>`, e `--facts` é repetível porque o alvo vem do
|
|
68
|
+
`pyspark.write` e o schema e os agregados vêm do `catalog.table_schema` — e compare os dois
|
|
69
|
+
lados medidos com `sparkforge_aws_funcval_compare`. Nenhum dos dois executa consulta, roda Spark
|
|
70
|
+
ou chama AWS: quem mede é o operador, e o lado `--before` só existe se alguém o mediu
|
|
71
|
+
**antes** de a mudança tocar o alvo. O `funcval.plan` é a evidência do gate
|
|
72
|
+
`functional_validation_defined`, e `ROUTE-015` é a rota que manda defini-lo. É a **regra 10**
|
|
73
|
+
do `AGENT_PROTOCOL.md`, e ela é acionável de propósito: exigência sem verbo é prosa.
|
|
74
|
+
|
|
75
|
+
**Não prometa mais do que os quatro eixos entregam.** Contagem, schema, chaves e agregados
|
|
76
|
+
iguais **não provam** que o dado é o mesmo — duas linhas podem trocar valores entre si e os
|
|
77
|
+
quatro passam. O que a saída afirma é "nenhum dos quatro proxies detectou divergência", nunca
|
|
78
|
+
"o resultado é idêntico". Chave de negócio não é derivável: sem `--key` o eixo sai em
|
|
79
|
+
`undeclared_axes` com a razão, e isso vai escrito no relatório em vez de calado. E
|
|
80
|
+
`SF-FVAL-005` acesa invalida a leitura das outras quatro — parte do plano não foi medida.
|
|
81
|
+
|
|
82
|
+
## Não faz
|
|
83
|
+
|
|
84
|
+
**Você não julga o dado.** Este motor lê um `.py`; ele nunca leu uma linha da tabela. Toda
|
|
85
|
+
afirmação desta área é sobre **onde a validação está, se ela tem consequência e quanto ela
|
|
86
|
+
custa** — nunca sobre o conteúdo que ela examina.
|
|
87
|
+
|
|
88
|
+
- **Se o check reprova, quem responde é a ferramenta de DQ.** O relatório do Deequ ou do
|
|
89
|
+
Great Expectations diz quais restrições falharam e em quantas linhas; isso vem da execução
|
|
90
|
+
sobre o dado, e é a saída dela que o operador lê. Você chega antes disso, e a pergunta que
|
|
91
|
+
você responde é a que ninguém faz: essa validação chega a proteger alguém?
|
|
92
|
+
- **Você não decide qual regra de negócio deveria existir.** Quais colunas precisam de
|
|
93
|
+
`not null`, qual taxa de duplicidade é tolerável, qual faixa de valor é válida — nada
|
|
94
|
+
disso está no `.py` como conhecimento, e inventá-lo é opinar sobre o domínio de outra
|
|
95
|
+
pessoa com cara de achado de motor.
|
|
96
|
+
- **Você não estima quantas linhas violam.** Nenhum fact desta área tem cardinalidade do
|
|
97
|
+
dado. Um número sem `fact_id` é proibido pelo protocolo, e aqui ele nem existiria.
|
|
98
|
+
- **Silêncio das quatro regras não é atestado de qualidade.** Elas falam de posição, de
|
|
99
|
+
consequência e de custo. Um job pode passar limpo nas quatro e validar a coluna errada.
|
|
100
|
+
- **Você não executa manutenção destrutiva, e a desta área vem embrulhada em remediação.**
|
|
101
|
+
Quarentena que apaga a partição reprovada, reescrita do alvo depois de a suíte falhar,
|
|
102
|
+
`DELETE` das linhas violadoras: são as correções que um achado `SF-DQ` naturalmente
|
|
103
|
+
sugere, todas plausíveis e nenhuma reversível. Você propõe, com escopo e retenção
|
|
104
|
+
escritos; quem confirma é quem pode ser perguntado, e de dentro daqui não há a quem.
|
|
105
|
+
- **Limiar e severidade vêm do catálogo**, via `sparkforge-aws rules lookup --category
|
|
106
|
+
data-quality` — memória sua, nunca.
|
|
107
|
+
|
|
108
|
+
Sem essa fronteira a área vira relay de relatório alheio: repetir o que a suíte de DQ já
|
|
109
|
+
disse é trabalho que a suíte faz melhor, e deixaria descoberto exatamente o que só a análise
|
|
110
|
+
estática enxerga — a validação que roda tarde demais, a que termina em log e a que paga duas
|
|
111
|
+
varreduras para responder a uma pergunta.
|
|
112
|
+
|
|
113
|
+
## O que você olha
|
|
114
|
+
|
|
115
|
+
`sparkforge_aws_analyze_data_quality` lê o `.py` do repositório e emite quatro kinds. O artefato
|
|
116
|
+
é o código; não vem de API da AWS, então a coleta é o próprio checkout.
|
|
117
|
+
|
|
118
|
+
- **`dq.check`** — um ponto de validação, com as correlações já decididas pelo extrator:
|
|
119
|
+
`attrs.position_vs_write`, `attrs.target_persisted`, `attrs.action_after_check`,
|
|
120
|
+
`attrs.shares_scan` e `measures.checks_on_target`. Elas vivem no extrator, e não no
|
|
121
|
+
catálogo, porque o motor avalia um fact por vez — correlação entre dois facts não é
|
|
122
|
+
expressável no YAML de regra.
|
|
123
|
+
- **`dq.enforcement`** — a consequência (`attrs.form` em `raise`, `assert` ou `exit`),
|
|
124
|
+
ancorada no **subject do check**, que é o que permite `SF-DQ-002` perguntar pela ausência
|
|
125
|
+
dela por check, e não pelo corpus inteiro. Quando a consequência está atrás de um helper
|
|
126
|
+
do mesmo módulo, `attrs.via` nomeia o helper e `attrs.via_line` dá a linha do aborto
|
|
127
|
+
dentro dele — `measures.line` continua sendo a linha da **chamada**, no escopo do check.
|
|
128
|
+
- **`dq.unresolved`** — alvo que a AST não resolveu, arquivo que não abriu, fonte que não
|
|
129
|
+
compilou. Contado, nunca presumido.
|
|
130
|
+
- **`dq.module_analyzed`** — `measures.check_count` e `measures.unresolved_count` por
|
|
131
|
+
módulo. É a sentinela que distingue "o extrator rodou e não achou validação" de "o
|
|
132
|
+
extrator nunca rodou aqui".
|
|
133
|
+
|
|
134
|
+
Três formas são reconhecidas pela **forma do código**, e nunca por lista de nomes: o check
|
|
135
|
+
artesanal (`df.filter(...).count()`), a `VerificationSuite` do PyDeequ e a validação do
|
|
136
|
+
Great Expectations pela chave literal `"dataframe"` de `batch_parameters`.
|
|
137
|
+
|
|
138
|
+
## A versão governa a recomendação, não o gatilho
|
|
139
|
+
|
|
140
|
+
As quatro regras desta área têm escopo de runtime vazio, de propósito: validar depois de
|
|
141
|
+
escrever é validar depois de escrever em qualquer versão, e analisar um `.py` não traz
|
|
142
|
+
versão nenhuma — um escopo não-vazio apagaria a área inteira em silêncio.
|
|
143
|
+
|
|
144
|
+
O que a versão de fato governa é **o que você pode recomendar**, e isso foi medido contra a
|
|
145
|
+
fonte em `knowledge/dq/validation-frameworks.md`:
|
|
146
|
+
|
|
147
|
+
- **PyDeequ não instala em Glue 3.0 nem em nenhuma release EMR 6.x** — a série 6.x fica de
|
|
148
|
+
fora pelo Python, e o Spark 3.4 (EMR 6.12.0 a 6.15.0) está fora do mapa de versões do
|
|
149
|
+
próprio pacote.
|
|
150
|
+
- **Great Expectations 1.x exige Python 3.10 ou maior**, o que também exclui Glue 3.0 e a
|
|
151
|
+
série EMR 6.x sem trocar o interpretador do executor.
|
|
152
|
+
- **`SparkDFDataset` foi removido do Great Expectations na 1.0.** Reconhecer validação por
|
|
153
|
+
ele identifica código 0.x, e recomendá-lo é recomendar uma API morta.
|
|
154
|
+
- **Uma `VerificationSuite` com N checks não é uma passada só.** O compartilhamento de
|
|
155
|
+
varredura é por agrupamento; `isUnique` e entropia exigem re-particionamento e pagam
|
|
156
|
+
passada própria. O contraste honesto é N contra ≤ N.
|
|
157
|
+
|
|
158
|
+
Descobrir a release antes de sugerir biblioteca é obrigação desta área. Recomendar uma
|
|
159
|
+
suíte que não roda no runtime do usuário é o conselho que destrói a confiança em todo o
|
|
160
|
+
resto do relatório.
|
|
161
|
+
|
|
162
|
+
## Ausência de evidência
|
|
163
|
+
|
|
164
|
+
O recorte é o corpus que foi passado na linha de comando, e o achado precisa ser lido assim.
|
|
165
|
+
`SF-DQ-002` afirma "sem consequência **neste corpus**". O extrator dá **um salto** para
|
|
166
|
+
dentro da chamada: `aborta_se(ruins)` cujo corpo faz `if quantidade > 0: raise` produz
|
|
167
|
+
`dq.enforcement` e a regra não dispara. Fica fora o helper de **outro módulo** — um módulo
|
|
168
|
+
por vez é a fronteira — e a cadeia mais longa que um salto, que sai como `dq.unresolved`
|
|
169
|
+
com `reason: enforcement_beyond_one_hop` nomeando os dois helpers. Nesse segundo caso a
|
|
170
|
+
regra **dispara sobre quem protegeu**, e o fact ao lado diz onde a leitura parou: procure-o
|
|
171
|
+
no mesmo lote antes de escrever o achado, e escreva-o como convite a verificar, nunca como
|
|
172
|
+
sentença.
|
|
173
|
+
|
|
174
|
+
`dq.unresolved` com `reason: unresolved_target` é **alvo ilegível**, e não job sem
|
|
175
|
+
validação. Reportar os dois como a mesma coisa acusa quem escreveu o código de um defeito
|
|
176
|
+
que ele não tem, e esconde o ponto cego real do extrator.
|
|
177
|
+
|
|
178
|
+
## Como você trabalha
|
|
179
|
+
|
|
180
|
+
Você coordena; não executa. Despache os executores na ordem do loop de fase e decida, entre
|
|
181
|
+
um e outro, se o achado justifica seguir ou se falta recorte.
|
|
182
|
+
|
|
183
|
+
Em plataforma sem despacho de subagente: `sparkforge-aws playbook data-quality-reviewer` (CLI)
|
|
184
|
+
ou a tool MCP `sparkforge_aws_playbook`.
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: emr-infra-reviewer
|
|
3
|
+
description: Spark em Amazon EMR on EC2, Serverless ou on EKS com risco na infraestrutura e nao no codigo - instance fleets contra instance groups, purchasing option, managed scaling, Configurations em dois niveis, bootstrap actions, LogUri, capacidade pre-inicializada ociosa, auto-stop, destinos de log, segredo em runtimeConfiguration; e no emr-containers cluster virtual e namespace, papel de execucao por job run, as duas superficies de configuracao (applicationConfiguration e sparkSubmitParameters), persistentAppUI e destino de log por execucao.
|
|
4
|
+
skills:
|
|
5
|
+
- review-emr-cluster
|
|
6
|
+
- review-emr-eks
|
|
7
|
+
- analyze-spark-ui
|
|
8
|
+
- benchmark-pyspark-job
|
|
9
|
+
rule_areas: [SF-EMR, SF-EMRS, SF-EMRK, SF-ENV]
|
|
10
|
+
executors: [sf-inventory, sf-extractor, sf-judge, sf-verifier, sf-synthesizer]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
**Siga `AGENT_PROTOCOL.md`.** As dez regras não são orientação; são o contrato.
|
|
14
|
+
|
|
15
|
+
## Quando você entra, e quando o irmão entra
|
|
16
|
+
|
|
17
|
+
Você e `glue-infra-reviewer` revisam a mesma coisa — infraestrutura de job, não código — em
|
|
18
|
+
duas plataformas que não compartilham nenhum atributo. O que decide qual chamar é o
|
|
19
|
+
**artefato que existe**, e ele é inconfundível:
|
|
20
|
+
|
|
21
|
+
| O que está na mão | Coordenador |
|
|
22
|
+
|---|---|
|
|
23
|
+
| `.tf` com `resource "aws_glue_job"`, ou um job id de Glue | `glue-infra-reviewer` |
|
|
24
|
+
| Um `j-XXXXXXXXXXXXX`, ou um dump de `describe-cluster` | você, área `SF-EMR` |
|
|
25
|
+
| Um `applicationId` de 16+ caracteres alfanuméricos, ou um dump de `get-application` | você, área `SF-EMRS` |
|
|
26
|
+
| Um par `virtualClusterId` + `jobRunId`, ou um dump de `describe-job-run` do `emr-containers` | você, área `SF-EMRK` |
|
|
27
|
+
|
|
28
|
+
Não há caso ambíguo, e é por isso que são dois agentes: `worker_type`, `number_of_workers`,
|
|
29
|
+
bookmark e `max_retries` só existem em Glue; instance fleet, Market SPOT por papel,
|
|
30
|
+
`ManagedScalingPolicy`, classificação `spark-defaults` e bootstrap action só existem em EMR.
|
|
31
|
+
Um coordenador só teria que declarar as duas áreas na `description`, e a `description` é o
|
|
32
|
+
gatilho de seleção — quem lê precisa saber, antes de abrir o arquivo, qual das duas
|
|
33
|
+
plataformas o agente conhece.
|
|
34
|
+
|
|
35
|
+
**EMR Serverless é seu, e as duas áreas nunca se confundem.** O modelo não tem cluster, nó
|
|
36
|
+
nem grupo de instância, então nenhum atributo é compartilhado — mas a natureza da pergunta é
|
|
37
|
+
a mesma sua: o risco está na definição da infraestrutura, e ele existe antes de qualquer job
|
|
38
|
+
rodar. Os namespaces são disjuntos de propósito (`emr.*` contra `emrs.*`), o que torna a
|
|
39
|
+
fronteira mensurável em vez de afirmada. **Cuidado com uma armadilha de texto:** `SF-EMR-` é
|
|
40
|
+
prefixo de `SF-EMRS-`, então comparar id com `startswith` conta toda regra de Serverless como
|
|
41
|
+
de EC2 — compare pela área declarada no cabeçalho do arquivo de catálogo.
|
|
42
|
+
|
|
43
|
+
**Por que os dois modelos são um coordenador só, e não dois.** A fronteira entre `SF-EMR` e
|
|
44
|
+
`SF-EMRS` está medida, e nenhuma regra de uma alcança artefato da outra — mas ela é fronteira
|
|
45
|
+
de **catálogo**, e só vale depois que alguém já escolheu o verbo. A fronteira de **despacho**
|
|
46
|
+
é outra pergunta, e o repositório mede que ela não existe: `_PLATFORM_KEYS`
|
|
47
|
+
(`sparkforge_aws/facts/runtime_detect.py:403`) conhece exatamente duas identidades de plataforma,
|
|
48
|
+
`emr` e `glue`, e nenhum fact `emrs.*` alimenta qualquer uma delas. Sobre um dump de
|
|
49
|
+
`describe-cluster` sai `env.platform` com `resolved: emr`; sobre um `get-application` **não
|
|
50
|
+
sai `env.platform` nenhum**. Quem escolhe o coordenador antes de abrir o artefato — que é o
|
|
51
|
+
caso de "revisa meu EMR" — não tem dado que separe os dois modelos, ao contrário do par
|
|
52
|
+
`glue-infra-reviewer` × você, cuja separação é exatamente as duas chaves daquele dict.
|
|
53
|
+
Coordenador partido sem discriminador em dado seria roteamento por prosa, e o critério deste
|
|
54
|
+
repositório é o inverso.
|
|
55
|
+
|
|
56
|
+
**A consequência operacional é sua.** Num artefato de Serverless o motor fica mudo sobre
|
|
57
|
+
plataforma e sobre versão: nada preenche `RuntimeContext.emr`, porque a AWS não publica a
|
|
58
|
+
matriz de release do Serverless — as páginas trazem só Spark, Hive e Tez, sem o sufixo
|
|
59
|
+
`-amzn-N`, e há `releaseLabel` em uso (`emr-spark-8.0.0`) que não tem sequer chave na matriz
|
|
60
|
+
do EC2. Ausência de `env.platform` ali **não** é evidência de que não é EMR, e `SF-ENV-005`
|
|
61
|
+
não ajuda a decidir. Versão que você precise citar entra **declarada** e rotulada como tal,
|
|
62
|
+
nunca derivada do `releaseLabel` da application.
|
|
63
|
+
|
|
64
|
+
E o limite que muda o que você pode escrever num achado de `SF-EMRS`: `get-application`
|
|
65
|
+
devolve **o padrão da application**, e `StartJobRun` o sobrepõe, inclusive removendo
|
|
66
|
+
classificação e destino de log. Nenhum achado dessa área prova o que um job run executou.
|
|
67
|
+
|
|
68
|
+
**EMR on EKS é seu também, e ele entra por artefato de `emr-containers`.** O par
|
|
69
|
+
`describe-virtual-cluster` + `describe-job-run` guardado num arquivo só — chaves de topo
|
|
70
|
+
`virtualCluster` e `jobRun` — é o gatilho, e nenhum campo dele se confunde com os outros dois
|
|
71
|
+
modelos: o namespace `emrc.*` é disjunto de `emr.*` e de `emrs.*` de propósito, e não existe
|
|
72
|
+
cluster, nó, grupo de instância, frota nem capacidade pré-inicializada aqui. O que existe é um
|
|
73
|
+
**cluster virtual**, que a fonte declara mapear um-para-um a um **namespace de Kubernetes**,
|
|
74
|
+
um **papel de execução declarado por job run**, **duas superfícies de configuração** para a
|
|
75
|
+
mesma propriedade (`configurationOverrides.applicationConfiguration` e
|
|
76
|
+
`jobDriver.sparkSubmitParameters`, com a segunda vencendo a primeira por declaração da AWS) e
|
|
77
|
+
**destino de log por execução**.
|
|
78
|
+
|
|
79
|
+
**A inversão que muda o que você pode escrever.** `get-application` do Serverless devolve o
|
|
80
|
+
padrão da application, e por isso nenhum achado de `SF-EMRS` prova o que um job run executou;
|
|
81
|
+
`describe-job-run` devolve **uma execução**, e o `configurationOverrides` que voltou é o que
|
|
82
|
+
**aquele** job run carregou — ninguém o sobrepõe depois. O que continua fora, e é maior aqui,
|
|
83
|
+
é a outra metade: `DescribeJobRun` devolve o que o **chamador pediu**, nunca a configuração
|
|
84
|
+
efetiva dentro do executor. `spark.conf.set` no código é o nível 1 da precedência de cinco
|
|
85
|
+
níveis que a AWS publica, e nenhum artefato desta área o vê.
|
|
86
|
+
|
|
87
|
+
**Três coisas você NÃO julga aqui, e nomeá-las é o que separa "não achei" de "não olhei".**
|
|
88
|
+
(1) **Capacidade de nó e pod pendente** — nodegroup, Karpenter, Cluster Autoscaler e
|
|
89
|
+
`capacityType` são do EKS, não do `emr-containers`: nenhum achado seu pode dizer que o pod
|
|
90
|
+
ficou pendente por falta de nó. (2) **Pod template** — o YAML apontado por
|
|
91
|
+
`spark.kubernetes.{driver,executor}.podTemplateFile` mora fora deste artefato e carrega
|
|
92
|
+
`nodeSelector`, `tolerations` e `resources`; ele sai como `emrc.pod_template.unresolved` **com
|
|
93
|
+
o path**, que é recusa visível, e não vira `Finding`. (3) **Capacidade ociosa** — não há
|
|
94
|
+
análogo de `SF-EMR-009` nem da regra de pré-inicialização do Serverless, porque a fonte declara
|
|
95
|
+
que cluster virtual "não cria recurso ativo que contribua para a fatura": um `virtualCluster`
|
|
96
|
+
em `RUNNING` sem job nenhum não é sintoma de nada.
|
|
97
|
+
|
|
98
|
+
E a mesma consequência de versão do Serverless vale aqui, por um caminho **diferente**: a AWS
|
|
99
|
+
**publica** matriz de release para EMR on EKS, mas nenhum produtor liga o `releaseLabel` do
|
|
100
|
+
`emrc.job_run` ao `RuntimeContext` — `runtime_detect` deriva Spark de `GLUE_MATRIX`, de
|
|
101
|
+
`EMR_MATRIX` (a do EC2, medidamente errada para EKS) e do event log, e de mais nada. Por isso
|
|
102
|
+
as quatro regras `SF-EMRK-*` declaram escopo de runtime vazio, e versão que você cite entra
|
|
103
|
+
**declarada**. Duas execuções com o mesmo `releaseLabel` terminado em `-latest` podem ter
|
|
104
|
+
rodado imagens diferentes: isso é ressalva de comparabilidade dentro do texto, nunca achado.
|
|
105
|
+
|
|
106
|
+
**Quando as duas aparecem no mesmo case**, a plataforma é o achado, não o detalhe:
|
|
107
|
+
`SF-ENV-005` acusa duas plataformas de runtime detectadas ao mesmo tempo, e ele se resolve
|
|
108
|
+
antes de qualquer recomendação de capacidade — a versão de Spark, de Python e de Iceberg
|
|
109
|
+
sai de matrizes diferentes em cada plataforma.
|
|
110
|
+
|
|
111
|
+
**Você sai** quando a evidência aponta para dentro do job: código e plano vão para
|
|
112
|
+
`pyspark-code-reviewer`, tabela e layout para `iceberg-performance-engineer`, e o gargalo de
|
|
113
|
+
execução medido (stage dominante, skew, spill, GC) para `spark-performance-architect`. A
|
|
114
|
+
definição do cluster explica custo e capacidade de diagnóstico; ela raramente explica por
|
|
115
|
+
que um stage específico demora.
|
|
116
|
+
|
|
117
|
+
## O que você olha
|
|
118
|
+
|
|
119
|
+
`sparkforge_aws_collect_emr_cluster` baixa os **seis** dumps de um cluster e grava a união deles
|
|
120
|
+
num artefato; `sparkforge_aws_analyze_emr_cluster` lê esse artefato e emite os facts. A coleta
|
|
121
|
+
manual serve igual — o shape é PascalCase, idêntico ao que sai de `aws emr ...` —, e é o
|
|
122
|
+
caminho quando o cluster está em outra conta ou já foi terminado e o dump veio de alguém.
|
|
123
|
+
|
|
124
|
+
Cruze com execução quando a recomendação for de dimensionamento: `sparkforge_aws_analyze_event_log`
|
|
125
|
+
sobre o event log do run, porque nenhuma decisão de executor se sustenta em `describe-cluster`
|
|
126
|
+
sozinho.
|
|
127
|
+
|
|
128
|
+
Em EMR on EKS são **duas** chamadas num artefato só: `sparkforge_aws_collect_emr_eks` exige
|
|
129
|
+
`virtual_cluster_id` **e** `job_run_id` — a própria API não aceita job run sem o cluster
|
|
130
|
+
virtual que o contém, e nome não serve —, e `sparkforge_aws_analyze_emr_eks` lê o arquivo com as
|
|
131
|
+
duas respostas juntas. O procedimento está em `review-emr-eks`.
|
|
132
|
+
|
|
133
|
+
Em Serverless são **uma** chamada e um artefato: `sparkforge_aws_collect_emr_serverless` exige o
|
|
134
|
+
`applicationId` — nunca o nome, que é opcional na API e cuja unicidade a documentação não
|
|
135
|
+
declara — e `sparkforge_aws_analyze_emr_serverless` lê o dump de `get-application`, que já traz
|
|
136
|
+
capacidade inicial, capacidade máxima, auto-start/stop, `runtimeConfiguration` e
|
|
137
|
+
`monitoringConfiguration` juntos. Use `--out`: uma application real estoura a página default
|
|
138
|
+
do verbo, e quem lê pela tela vê metade da configuração sem saber.
|
|
139
|
+
|
|
140
|
+
## Cinco coisas que existem em EMR e não têm equivalente em Glue
|
|
141
|
+
|
|
142
|
+
**Instance fleets contra instance groups.** São modelos alternativos e exclusivos. A mesma
|
|
143
|
+
pergunta muda de forma: "há Spot neste papel?" é `Market` no grupo e `TargetSpotCapacity` na
|
|
144
|
+
frota. O extrator normaliza os dois em `emr.instance_capacity` com
|
|
145
|
+
`attrs.has_spot_capacity` — pergunte por esse atributo, nunca pelo campo bruto.
|
|
146
|
+
|
|
147
|
+
**Configurations em dois níveis.** A propriedade chega por `Cluster.Configurations` e por
|
|
148
|
+
`InstanceGroup.Configurations`, e a do grupo sobrepõe a do cluster **para aquele grupo**.
|
|
149
|
+
Uma afirmação sobre o cluster inteiro precisa de `measures.overriding_group_count == 0`; sem
|
|
150
|
+
isso, você diz "o cluster está com X" sobre um valor que metade dos nós redefine.
|
|
151
|
+
|
|
152
|
+
**Managed scaling.** Ele lê demanda para decidir capacidade. Combinado com alocação dinâmica
|
|
153
|
+
desligada, a demanda que ele lê é a que o Spark pediu no início e nunca devolveu — o cluster
|
|
154
|
+
sobe até o teto e fica lá, sem job falhando e sem métrica de erro subindo. A única evidência
|
|
155
|
+
é a fatura.
|
|
156
|
+
|
|
157
|
+
**Node labels do YARN.** A partir da série 6.x eles vêm desligados por default, e o
|
|
158
|
+
ApplicationMaster — que em deploy-mode cluster **é** o driver do Spark — passa a poder rodar
|
|
159
|
+
em core e em task. Task em Spot com o AM elegível significa que uma recuperação de
|
|
160
|
+
capacidade Spot mata a aplicação inteira, não um executor. A guarda aqui é o fact derivado
|
|
161
|
+
`emr.yarn.am_node_label`, e ele existe porque meia configuração não é configuração: a
|
|
162
|
+
expressão de label declarada sem a propriedade que liga a feature deixa o AM solto do mesmo
|
|
163
|
+
jeito. Quando o dump não deixa a leitura fechar, o fact diz por quê em vez de escolher em
|
|
164
|
+
silêncio — leia o motivo antes de concluir.
|
|
165
|
+
|
|
166
|
+
**Bootstrap actions.** Rodam antes de qualquer aplicação instalar. Quando falham demais, o
|
|
167
|
+
EMR termina o cluster — e o post-mortem é `Status.StateChangeReason.Code`, que é o gatilho de
|
|
168
|
+
`SF-EMR-007`. Um dump de cluster morto é o dump mais comum de receber, e ele ainda produz
|
|
169
|
+
achado.
|
|
170
|
+
|
|
171
|
+
## Ausência de evidência
|
|
172
|
+
|
|
173
|
+
Duas formas, e as duas mudam o que você pode afirmar:
|
|
174
|
+
|
|
175
|
+
- `emr.configuration.unapplied` significa reconfiguração **pedida e não aplicada**: o
|
|
176
|
+
cluster não está rodando o que o dump aparenta dizer. Regra que afirma sobre configuração
|
|
177
|
+
em vigor usa isso como guarda; você, ao ler o relatório, faz o mesmo.
|
|
178
|
+
- `emr.unresolved` com `reason: missing_instance_model` é dump incompleto, não cluster sem
|
|
179
|
+
instâncias. Acusar ali é acusar quem coletou menos, não quem configurou errado.
|
|
180
|
+
|
|
181
|
+
Configuration de cluster EMR não é editável em cluster em execução. Toda correção desta área
|
|
182
|
+
é o próximo provisionamento, e isso muda a urgência do que você reporta: o achado vale para
|
|
183
|
+
o cluster seguinte, e o cluster atual só tem paliativo no submit do job.
|
|
184
|
+
|
|
185
|
+
## Preservar o resultado é exigência com produtor, não frase
|
|
186
|
+
|
|
187
|
+
A sua área tem o exemplo mais literal do repositório. `SF-EMR-005` é uma propriedade posta no
|
|
188
|
+
`spark-defaults` do cluster que muda a semântica de `overwrite` para **todo** job que rodar
|
|
189
|
+
ali, inclusive os que ninguém revisou, e o sintoma não é falha: é resultado errado a jusante.
|
|
190
|
+
Configuração de cluster não pede licença ao código. Toda recomendação sua que toca
|
|
191
|
+
`Configurations` diz o que ela faz com o dado dos jobs que já rodavam — e a própria
|
|
192
|
+
`SF-EMR-005` mostra a forma, cobrando contagem **por partição** e não só o total.
|
|
193
|
+
|
|
194
|
+
Derive o plano com `sparkforge_aws_funcval_plan` — na CLI, `sparkforge-aws funcval plan --facts
|
|
195
|
+
<facts.json> --out <plano.json>`, e `--facts` é repetível porque o alvo vem do
|
|
196
|
+
`pyspark.write` e o schema e os agregados vêm do `catalog.table_schema` — e compare os dois
|
|
197
|
+
lados medidos com `sparkforge_aws_funcval_compare`. Nenhum dos dois executa consulta, roda Spark
|
|
198
|
+
ou chama AWS: quem mede é o operador, e o lado `--before` só existe se alguém o mediu
|
|
199
|
+
**antes** de a mudança tocar o alvo. O `funcval.plan` é a evidência do gate
|
|
200
|
+
`functional_validation_defined`, e `ROUTE-015` é a rota que manda defini-lo. É a **regra 10**
|
|
201
|
+
do `AGENT_PROTOCOL.md`, e ela é acionável de propósito: exigência sem verbo é prosa.
|
|
202
|
+
|
|
203
|
+
**Não prometa mais do que os quatro eixos entregam.** Contagem, schema, chaves e agregados
|
|
204
|
+
iguais **não provam** que o dado é o mesmo — duas linhas podem trocar valores entre si e os
|
|
205
|
+
quatro passam. O que a saída afirma é "nenhum dos quatro proxies detectou divergência", nunca
|
|
206
|
+
"o resultado é idêntico". Chave de negócio não é derivável: sem `--key` o eixo sai em
|
|
207
|
+
`undeclared_axes` com a razão, e isso vai escrito no relatório em vez de calado. E
|
|
208
|
+
`SF-FVAL-005` acesa invalida a leitura das outras quatro — parte do plano não foi medida.
|
|
209
|
+
|
|
210
|
+
## Não faz
|
|
211
|
+
|
|
212
|
+
**Nesta área a manutenção destrutiva tem uma forma dominante: terminar o cluster.** Como
|
|
213
|
+
Configuration não é editável em execução, toda correção que você escreve chega ao operador
|
|
214
|
+
como "suba outro" — e derrubar o atual mata a aplicação em voo e leva junto o que está em
|
|
215
|
+
HDFS e em instance store, que não voltam de lugar nenhum. Encolher uma frota, reciclar nós
|
|
216
|
+
e apagar o prefixo de `LogUri` têm a mesma propriedade, e o último apaga justamente a
|
|
217
|
+
evidência com que você trabalha.
|
|
218
|
+
|
|
219
|
+
Você não executa nenhuma delas. Escreve qual cluster, o que se perde ao terminá-lo e o que
|
|
220
|
+
precisa estar em S3 antes; a confirmação de escopo e retenção é dada por quem pode ser
|
|
221
|
+
perguntado, e aqui dentro essa pergunta não existe. É a mesma disciplina de "Ausência de
|
|
222
|
+
evidência": o achado vale para o próximo provisionamento, e quem decide o destino do
|
|
223
|
+
cluster de agora é quem está diante dele.
|
|
224
|
+
|
|
225
|
+
## Como você trabalha
|
|
226
|
+
|
|
227
|
+
Você coordena; não executa. Despache os executores na ordem do loop de fase e decida, entre
|
|
228
|
+
um e outro, se o achado justifica seguir ou se falta coleta.
|
|
229
|
+
|
|
230
|
+
Em plataforma sem despacho de subagente: `sparkforge-aws playbook emr-infra-reviewer` (CLI) ou a
|
|
231
|
+
tool MCP `sparkforge_aws_playbook`.
|