Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ethanolivertroy/my-agent-stuff --skill iac-security-scannergit clone --depth 1 https://github.com/ethanolivertroy/my-agent-stuffWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ethanolivertroy/my-agent-stuff/iac-security-scanner)<a href="https://agentmods.dev/skills/ethanolivertroy/my-agent-stuff/iac-security-scanner"><img src="https://agentmods.dev/badge/skills/ethanolivertroy/my-agent-stuff/iac-security-scanner/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ethanolivertroy/my-agent-stuff/iac-security-scanner"><img src="https://agentmods.dev/badge/skills/ethanolivertroy/my-agent-stuff/iac-security-scanner.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00085 | $0.00941 |
| Opus 5 | $0.00043 | $0.00470 |
| Sonnet 5 | $0.00017 | $0.00188 |
| Haiku 4.5 | $0.00009 | $0.00094 |
Grade A, and why
iac-security-scanner scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
1 near-identical copy found in the catalogue:
- iac-security-scanner — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 121 lines — stays where its author put it; the contents beside it link to each section on GitHub.
IaC Security Scanner
Scan infrastructure code for security misconfigurations using 790 policies extracted from Terrascan.
Capabilities
- Terraform (HCL2): AWS, Azure, GCP resources
- Kubernetes: Pods, Deployments, Services, RBAC
- CloudFormation: AWS resources (JSON/YAML)
- Dockerfiles: Image security best practices
- Compliance Mapping: NIST 800-53 controls
- HCL Normalization Helper:
scripts/normalize_hcl.pyusespython-hcl2
- HCL Normalization Helper:
Prerequisites (Optional)
- For HCL normalization:
pip install python-hcl2
Scan Workflow
1. Identify IaC Type and Provider
Determine from file extensions and content:
.tf→ Terraform HCL.yaml/.ymlwithapiVersion→ Kubernetes.yaml/.ymlor.jsonwithAWSTemplateFormatVersion→ CloudFormationDockerfile→ Docker.jsonwith$schema.*deploymentTemplate→ ARM
2. Load Relevant Reference Files
Based on detected provider, load policies from:
- AWS:
references/aws/README.mdthen specific resource files - Azure:
references/azure/README.md - GCP:
references/gcp/README.md - K8s:
references/k8s/README.md - Docker:
references/docker/README.md
For control mapping: references/nist-mapping.md
3. Extract Resources
Parse the IaC to identify:
- Resource types (e.g.,
aws_s3_bucket,kubernetes_pod) - Resource configurations
- Resource relationships
4. Apply Security Checks
For each resource:
- Load the corresponding policy file (e.g.,
references/aws/aws_s3_bucket.md) - Check each policy's conditions against the resource config
- Record violations with severity and remediation
5. Generate Report
Output format:
## Security Scan Results
**File**: main.tf
**IaC Type**: Terraform (AWS)
**Resources Scanned**: 12
**Findings**: 5 (🔴 2 HIGH, 🟡 2 MEDIUM, 🟢 1 LOW)
### 🔴 HIGH: AC_AWS_0132 - S3 bucket missing public access block
- **Resource**: aws_s3_bucket.data_lake (line 45)
- **Category**: Network Security
- **NIST Controls**: SC-7, AC-3
- **Issue**: No `aws_s3_bucket_public_access_block` resource found
- **Remediation**:
```hcl
resource "aws_s3_bucket_public_access_block" "data_lake" {
bucket = aws_s3_bucket.data_lake.id
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- examples/test-insecure.tf 2.3 KB
- references/aws/aws_ami_launch_permission.md 573 B
- references/aws/aws_ami.md 458 B
- references/aws/aws_api_gateway_method_settings.md 579 B
- references/aws/aws_api_gateway_method.md 610 B
- references/aws/aws_api_gateway_rest_api_policy.md 675 B
- references/aws/aws_api_gateway_rest_api.md 1.1 KB
- references/aws/aws_api_gateway_stage.md 2.1 KB
- references/aws/aws_apigatewayv2_api.md 602 B
- references/aws/aws_apigatewayv2_stage.md 549 B
- references/aws/aws_athena_database.md 507 B
- references/aws/aws_cloudformation_stack.md 2.1 KB
- references/aws/aws_cloudfront_distribution.md 3.2 KB
- references/aws/aws_cloudtrail.md 6.0 KB
- references/aws/aws_cloudwatch_log_group.md 636 B
- references/aws/aws_cloudwatch.md 1.0 KB
- references/aws/aws_config_configuration_aggregator.md 623 B
- references/aws/aws_config.md 476 B
- references/aws/aws_dax_cluster.md 540 B
- references/aws/aws_db_instance.md 5.3 KB
- references/aws/aws_db_security_group.md 2.0 KB
- references/aws/aws_docdb_cluster.md 1.0 KB
- references/aws/aws_dynamodb_table.md 1021 B
- references/aws/aws_ebs_encryption_by_default.md 642 B
- references/aws/aws_ebs_volume.md 1.1 KB
- references/aws/aws_ecr_repository_policy.md 901 B
- references/aws/aws_ecr_repository.md 1.6 KB
- references/aws/aws_ecs_service.md 522 B
- references/aws/aws_ecs_task_definition.md 1.7 KB
- references/aws/aws_efs_file_system_policy.md 561 B
- references/aws/aws_efs_file_system.md 1.2 KB
- references/aws/aws_eks_cluster.md 516 B
- references/aws/aws_elasticache_cluster.md 1.5 KB
- references/aws/aws_elasticcache_replication_group.md 1.1 KB
- references/aws/aws_elasticsearch_domain_policy.md 581 B
- references/aws/aws_elasticsearch_domain.md 2.3 KB
- references/aws/aws_elb.md 921 B
- references/aws/aws_globalaccelerator_accelerator.md 591 B
- references/aws/aws_guardduty_detector.md 1.2 KB
- references/aws/aws_iam_access_key.md 1.5 KB
- references/aws/aws_iam_account_password_policy.md 4.9 KB
- references/aws/aws_iam_group_policy.md 848 B
- references/aws/aws_iam_policy.md 1.2 KB
- references/aws/aws_iam_role_policy.md 2.3 KB
- references/aws/aws_iam_role.md 811 B
- references/aws/aws_iam_user_login_profile.md 835 B
- references/aws/aws_iam_user_policy_attachment.md 639 B
- references/aws/aws_iam_user_policy.md 5.2 KB
- references/aws/aws_instance.md 2.8 KB
- references/aws/aws_kinesis_firehose_delivery_stream.md 551 B
- references/aws/aws_kinesis_stream.md 477 B
- references/aws/aws_kms_key.md 2.2 KB
- references/aws/aws_lambda_function.md 2.5 KB
- references/aws/aws_launch_configuration.md 3.9 KB
- references/aws/aws_lb_listener.md 509 B
- references/aws/aws_lb_target_group.md 525 B
- references/aws/aws_load_balancer_policy.md 1.4 KB
- references/aws/aws_mq_broker.md 928 B
- references/aws/aws_neptune_cluster.md 1.0 KB
- references/aws/aws_rds_cluster.md 1.3 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 121 lines · 85 tokens per session scan A c9b988e78f34
iac-security-scanner is a skill published in the GitHub repository ethanolivertroy/my-agent-stuff (11 stars, last pushed 2mo ago), licensed MIT. It adds 85 tokens to every session and 941 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
duckduckgo-search
Free keyless web, news, and image search via ddgs.
mcporter
List, auth, and call MCP servers/tools from the terminal.
mem0-oss-to-platform
Plan and then execute a migration of a project from the mem0 open-source / self-hosted SDK (the local Memory class) to the mem0 Platform / hosted / managed SDK (the MemoryClient class). Use this whenever a developer wants to move, switch, or migrate their mem0 usage off OSS/self-hosted to the hosted API — e.g.…
deploy-docker-compose
Run the Omnigent server as a Docker compose stack (server + Postgres) on any Docker host — your laptop, a VPS, EC2 by hand, or as the base layer of any container-platform deploy. Invoke when the user wants to build the image, bring up the compose stack, debug the stack on a host they already have, or extend the stack…
mapping-to-snomed
Maps clinical concept spans extracted by OpenMed to SNOMED CT concepts through a USER-SUPPLIED terminology server (the user's own Ontoserver, Snowstorm, or UMLS/UTS), never a bundled vocabulary. Use when the user wants to code findings, disorders, procedures, body structures, or substances to SNOMED CT, run an ECL…
auditing-subgroup-fairness
Audit an OpenMed NER or de-identification model for performance disparities across demographic subgroups (sex, age band, race/ethnicity when available) using openmed.eval.fairnessreport. Use when the user wants per-subgroup recall and leakage, wants to check whether de-identification under-protects a group, wants to…