Genops
Omni infrastructure-as-code agent. Scaffold, generate, extend, and maintain IaC for any tool (Terraform, OpenTofu, Pulumi, Bicep, CloudFormation, CDK, Ansible) on any provider (AWS, Azure, GCP, ...). Bundles ready-made templates so it copies instead of regenerating. Use when asked to create infra, set up terraform, scaffold IaC, add a module, spin up a VPC/VNet, wire CI/CD for terraform, or maintain infrastructure.From its SKILL.md
npx -y skills add OmerMohideen/genops --skill genopsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
7.4 KB, as published. Nobody here has run it
GenOps Omni IaC Agent
Turn a one-line request into production-grade IaC, then keep it maintainable, for any tool and any provider.
Copy, don't regenerate. Version-pinned modules and pipelines are bundled in assets/templates/. When the request matches a bundled template, COPY and adapt it instead of writing the resource from scratch (saves tokens). Hand-write only what no template covers.
Workflow
-
Read before writing. Scan the working directory for existing IaC (
*.tf,*.bicep,Pulumi.yaml,cdk.json, ...). If found, match its tool, layout, and naming; extend idempotently, never blindly overwrite. -
Resolve tool + provider from the request (or existing repo). State the choice in one line. Don't switch tools mid-project.
-
Generate.
- Templated stack (Terraform/OpenTofu on AWS/Azure/GCP, Bicep on Azure, Pulumi on AWS/Azure/GCP) → load the matching guide from
references/, copy the needed module folders and root files fromassets/templates/, then wire them together. - Anything else (CloudFormation, CDK, Ansible, other providers, ...) → no template yet. Generate idiomatically per the rules below. Consider saving reusable new modules under
assets/templates/iac/<tool>/<provider>@<version>/so future runs copy them.
- Templated stack (Terraform/OpenTofu on AWS/Azure/GCP, Bicep on Azure, Pulumi on AWS/Azure/GCP) → load the matching guide from
-
Report. List every file created or changed and every placeholder the user must fill (backend storage, secret names, account/subscription IDs) before plan/apply.
Rules
- Reuse: factor reusable pieces into modules/components; keep environment-specific values out of reusable code.
- Environments: one root per environment (Terraform:
environments/{dev,test,prod}dirs; Pulumi: stacks; Bicep: per-env param files), all sharing the same modules/components. Not every resource exists in every environment: an env's root declares exactly what that env runs; omit resources by not calling the module, never by scatteringvar.environment == "prod"ternaries orcountflags through shared code. - Secrets: never hardcode. Reference from CI/CD or environment; document which are required.
- Versions: pin tool and provider versions.
- State: configure remote state/backend; leave clearly-marked placeholders for values only the user knows.
- Naming: idiomatic layout; derive consistent resource names from project + environment.
- Docs: write a README covering layout, prerequisites, and how to plan/apply.
- Minimal: only what the request needs. No speculative resources.
Enterprise defaults
Anything destined for production (or any request mentioning enterprise, compliance, or security) additionally follows references/enterprise.md: mandatory tags (environment/project/owner/cost-center/managed-by), encryption at rest with BYO-key variables, no public exposure or 0.0.0.0/0 ingress, least-privilege identity via OIDC/workload federation (no static cloud keys), audit logging on, locked+encrypted per-environment state, security scanning in CI (bundled validate workflows run Checkov), applies only through approval-gated jobs, never -auto-approve from a push trigger.
Bundled templates (assets/templates/)
Each module folder has main.tf / variables.tf / outputs.tf; each provider dir has root provider.tf, versions.tf (pinned), backend.tf (commented placeholders). Copy the dirs you need into infrastructure/terraform/modules/.
Terraform (HCL, main.tf/variables.tf/outputs.tf per module):
iac/terraform/[email protected]/:resource_group,virtual_network,network_security_group,app_service,container_app,key_vault,storage_account,user_assigned_identity,linux_virtual_machine,windows_virtual_machine,postgresql_flexible_server,function_app,container_registry.iac/terraform/[email protected]/:vpc,security_group,s3_bucket,kms_key,iam_role,ec2_instance,app_runner,rds_instance,lambda_function,ecr_repository,secrets_manager_secret.iac/terraform/[email protected]/:vpc_network,firewall,gcs_bucket,secret,service_account,compute_instance,cloud_run,cloud_sql,cloud_function,artifact_registry.
OpenTofu (iac/opentofu/README.md): reuses the Terraform files unchanged; run tofu instead of terraform. No separate copies.
Bicep (Azure-native, one .bicep per module + main.bicep/.bicepparam/bicepconfig.json):
iac/bicep/azure/modules/: same module coverage as Terraform Azure. No@versiondir: Bicep has no single provider version; each resource pins its own RESTapiVersion.
Pulumi (TypeScript ComponentResource classes in components/, with package.json/Pulumi.yaml/index.ts; dir pinned to the provider plugin major):
iac/pulumi/[email protected]/,iac/pulumi/[email protected]/,iac/pulumi/[email protected]/: mirror the Terraform module coverage per provider. All three compile clean undertsc --noEmitagainst their pinned SDK majors; still runpulumi previewbefore apply.
CI/CD: laid out as <platform>/<tool>/<provider> (matching the iac/ split). GitHub Actions = _<tool>-deploy.yml callable workflow (enterprise _ prefix = internal) + validate (fmt/validate/Checkov security scan) + dev/test/prod callers, PR plan/preview comment, environment approval gates:
cicd/github/terraform/azure/,cicd/github/terraform/aws/,cicd/github/terraform/gcp/: Terraform per cloud.cicd/github/bicep/azure/:az deployment(what-if → create).cicd/github/pulumi/:pulumi preview→up(provider-agnostic, one set; creds vary by cloud).
Azure DevOps (cicd/devops/), same layout and coverage: terraform/{azure,aws,gcp}, bicep/azure, pulumi; _<tool>-deploy.yml stage template (validate + Checkov + plan + Environment-gated apply) plus thin dev/test/prod callers, mirroring the GitHub pattern.
Jenkins (cicd/jenkins/), same layout and coverage: terraform/{azure,aws,gcp}, bicep/azure, pulumi; one declarative Jenkinsfile per stack, parameterized by an ENVIRONMENT choice (dev/test/prod), with validate + Checkov scan stages, archived plan/preview artifact, and an input approval gate before test/prod applies.
Detailed guides (references/)
Load the one matching the chosen stack:
azure-terraform.md,aws-terraform.md,gcp-terraform.mdbicep-azure.md,pulumi.md(all three Pulumi providers)enterprise.md: hardening profile for production/compliance requests (tags, encryption, network, identity, state, pipeline governance)versions.md: pinned version matrix + migration guide (provider major upgrades, Terraform ↔ OpenTofu, Pulumi majors, Bicep apiVersions, cross-tool moves)
Each covers the target layout, which files to copy, wire-up order, backend/state setup, and the credential/secret conventions plus the matching CI/CD dir.