Prefer tpc before raw Terraform JSON or human plan output.
Workflow:
tpc <planfile> --summarytpc <planfile> --risk-onlytpc <planfile> --budget 4000tpc <planfile> --resource <address>for one resourcetpc <planfile> --detailonly when review mode is insufficient
Read TFP2 like this:
- Header:
TFP2 C U R D Q OUT RISK DRIFT [OMITTED] - Actions:
Ccreate,Uupdate,Rreplace,Ddelete,Qread,Ooutput - Resource row:
<ACTION>|<ADDRESS>|<ATTRS>|<META> - Create shows after values only; delete shows before values only; update/replace uses
before->after - Paths use dot notation and
[n]; delimiters are percent-escaped - Key metadata:
unk,sens,repl,why,risk,def,comp,summ,omit O|...rows are output changesG|...plus|...rows,GL|..., andL|IAM|...are compressed resource forms; expandrefs, inherited common fields, and metadata before reasoningTPL|P...defines address prefixes;$P...expands addressesVAL|V...defines repeated values;$V...expands exact valuesREASON_CODES|...expands shortwhy=codesOMIT|...is lossy review summarization;COMPRESS|...is non-lossy factoringDRIFT|.../DRIFT_GROUP|...summarize low-signal drift; detailed drift remains explicitMIGRATION?|...is a structural hint, not Terraform proof
If OMITTED, summ, or detail_required=true matters to the task, use --detail.
Avoid raw terraform show -json unless tpc is insufficient.
Never apply Terraform changes unless the user explicitly asks.
Source: pibblokto/tfplanctx — distributed by TomeVault.