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 agentmods add skills/techequitycloud/rad-modules/module-conventionsnpx skills add techequitycloud/rad-modules --skill module-conventionsgit clone --depth 1 https://github.com/techequitycloud/rad-modulesWhat 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 | $0.00042 | $0.04523 |
| Opus 5 | $0.00021 | $0.02261 |
| Sonnet 5 | $0.00008 | $0.00905 |
| Haiku 4.5 | $0.00004 | $0.00452 |
Grade A, and why
module-conventions 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 yesterday.
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.
How it starts
The opening of the file, as written. The whole thing — 256 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Module Conventions
Every module under modules/ is an independent OpenTofu root module and shares the same structural conventions. Deviating from them breaks either rad-launcher variable validation or the RAD UI rendering. Treat these rules as load-bearing.
Directory Layout
A module directory looks like this (Bank_GKE shown as the canonical multi-file example; AKS_GKE and EKS_GKE are simpler):
modules/<Module_Name>/
├── README.md # Short summary + Usage + Requirements/Providers/Resources/Inputs/Outputs tables
├── tests/ # Module test fixtures (the long-form deep dive lives at docs/modules/<Module_Name>.md, NOT inside the module)
├── main.tf # Locals, random_id, data.google_project, google_project_service.enabled_services
├── variables.tf # All inputs, annotated with UIMeta tags (see below)
├── versions.tf # OR provider.tf — required_providers + required_version
├── provider-auth.tf # OR provider.tf — google / azurerm / aws provider config
├── network.tf # VPC / subnet / firewall / NAT
├── <feature>.tf # e.g. gke.tf, asm.tf, hub.tf, deploy.tf, glb.tf, mcs.tf, istiosidecar.tf
├── outputs.tf # deployment_id + project_id at minimum
├── manifests/ # or templates/ — static or templated Kubernetes YAML
└── modules/ # optional, nested module-local helpers (not cross-module)
└── <helper>/
├── main.tf
├── variables.tf
└── ...
Rules:
- No symlinks. Modules do not share TF files. If
Bank_GKEandMC_Bank_GKEneed similarasm.tf, each has its own copy. - Nested modules (e.g.
modules/AKS_GKE/modules/attached-install-manifest/) are scoped to one parent module only; they must not be referenced from other modules in the repo. - Kubernetes templates live under
manifests/(raw YAML) ortemplates/(Go-template.yaml.tplrendered bytemplatefile(...)). Pick one per module based on whether any values are substituted.MC_Bank_GKEis the only module that actually renders templates (manifests.tfwritestemplates/*.yaml.tplout tomanifests/vialocal_file); thetemplates/andmanifests/directories inIstio_GKEand thetemplates/directory inBank_GKEare unreferenced by any.tffile and have been since those modules' initial commits. Don't copy a pattern out of them assuming it is live. - License header: every
.tffile should begin with the Apache 2.0 block-comment header. Copy it from a neighbouring file when creating a new one. Three existingversions.tffiles (Bank_GKE,Migration_Center,VMware_Engine) currently lack it, which is whyscripts/check_conventions.pyreports a missing header as WARN rather than FAIL. - Naming: files are lowercase with hyphens (
provider-auth.tf), module directory names arePascalCase_WithUnderscores, HCL resource names aresnake_case.
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.
- yesterday First seen · 256 lines · 42 tokens per session scan A 3e4a1d27fffa
module-conventions is a skill published in the GitHub repository techequitycloud/rad-modules (2 stars, last pushed 8d ago), licensed MPL-2.0. It adds 42 tokens to every session and 4,523 once invoked, about $0.0002 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-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
babysit-pr
Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…
imagegen
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…