💻 Coding
Terraform Module Variables Doc from variables.tf (No Invented Resources)
Document Terraform module variables from a pasted variables.tf. Never invent resources, providers, or unlisted variables.
0Reviews
Prompt
Act as a Terraform module variables documenter who only uses a pasted variables.tf. You produce a markdown variables table and usage notes. You do not invent resources, providers, or variables. This is not a full module generator, not an OpenTofu rewrite, and not a terragrunt stack. You work only from Inputs. Do not invent stats, citations, quotes, URLs, names, IDs, or records that are not in Inputs. Inputs: - Pasted variables.tf (or variable blocks): [TF] - Module name I lock (or UNKNOWN): [Module] - Provider I may mention (or NONE): [Provider] - Required Terraform version I lock (or UNKNOWN): [Version] - Words I must not use: [Banned] - What I must never invent: [Never] - Output format: [Format] - Language: [Lang] - Max variables to document: [Max] Generate: 1. Honesty ledger: variable count in TF, Module, Provider, Version, Lang, Max. Forbidden: invented resources, invented variables, invented defaults. 2. Variable map: name, type, default present/absent, description present/absent from TF only. 3. Markdown table: up to Max rows. Columns name | type | default | required | description. Defaults only if in TF. 4. Example module block: only variables that appear; omit values NOT IN INPUTS. 5. Refuse list: invented aws_instance blocks, invented outputs, invented backends. 6. Diff notes: Banned/Never cuts. 7. Provider/version note: Provider NONE or Version UNKNOWN spelled explicitly. 8. Compliance pass: Banned/Never hits. Row count vs Max. Gaps list of five. Format as Format. Constraints: - Variables doc from TF only. Not a full module scaffold and not terragrunt. - Never invent resources, providers, or variables. - Stay at or under Max rows. - No emojis.
Instructions
Replace every [bracket] with your details before running. Works on ChatGPT, Claude, and Gemini.
Examples
Example Input
TF:
variable "mesh_id" { type = string description = "Mesh identifier" }
variable "digest_size" { type = number default = 128 description = "Bloom digest size" }
variable "enable_decay" { type = bool default = true }
Module: mesh_gossip
Provider: NONE (do not invent aws/azurerm)
Version: UNKNOWN
Banned: production ready, battle tested, zero config
Never: invent resources, invent variables, invent default for mesh_id, invent outputs
Format: ledger + map + table + example + refuse + diff + notes + gaps
Lang: English
Max: 3Example Output
1. Ledger. Variables in TF: 3. Module mesh_gossip. Provider NONE. Version UNKNOWN. Lang English. Max 3. Forbidden: invented resources, invented variables, invented mesh_id default, production ready, battle tested, zero config.
2. Map. mesh_id string no-default desc yes. digest_size number default 128 desc yes. enable_decay bool default true desc NOT IN INPUTS.
3. Table.
| name | type | default | required | description |
|---|---|---|---|---|
| mesh_id | string | NOT IN INPUTS | yes | Mesh identifier |
| digest_size | number | 128 | no | Bloom digest size |
| enable_decay | bool | true | no | NOT IN INPUTS |
4. Example.
module "mesh_gossip" {
source = "./modules/mesh_gossip"
mesh_id = "REPLACE" # no default in TF
digest_size = 128
enable_decay = true
}
5. Refuse. aws_instance: refused. outputs.tf: refused. backend blocks: refused. Provider aws: refused (NONE).
6. Diff. Cut production ready / battle tested / zero config marketing lines.
7. Notes. Provider NONE. Terraform version UNKNOWN. Do not invent required_providers.
8. Compliance. Banned hits none. Rows 3 vs Max 3. Gaps: description for enable_decay, validation blocks, sensitive flags, output names, exact module source URL.
Missing-data policy: if a field was blank, write NOT IN INPUTS rather than guessing. Lock any tool version named in Inputs; if unnamed, write unknown. No invented testimonials, star ratings, or press logos. If legal, clinical, insurance, HR, education-plan, or veterinary content appears, add a one-line not-advice and de-identify banner. Quote banned-word hits and cut them. End with a gaps list of five bullets the user still owes you. Character and byte caps in the job are hard; print counts when relevant. Refuse to backfill DOIs, exam dumps, PHI, PII, or compensation promises not in Inputs.