Docs

AI Summaries

Enable AI-generated summaries for Terraform plan reviews.

AI Summaries add a short, PR-ready explanation of what a Terraform plan will do. They sit alongside risk scoring and blast radius so reviewers can understand intent, user impact, and operational risk quickly.

Enable AI summaries

  1. In Cora, open Settings → AI.
  2. Toggle Enable AI Summaries.
  3. Select a model.
  4. Paste your OpenAI API key.
  5. Click Save Configuration.

Cora encrypts your API key before storing it.

How summaries are generated

AI summaries are generated during plan upload evaluation:

  • When a plan is uploaded, Cora calculates the change list, blast radius, and risk score.
  • If AI is enabled and a key is configured, Cora sends a compact summary to the model.
  • The resulting text is stored on the evaluation and displayed in the PR review detail view.
Summaries only appear on new uploads

If you enable AI after uploading a plan, older evaluations will not get a summary automatically. Upload the plan again (or re-run your CI job) to generate one.

What data is sent to the model

Cora sends a sanitized payload designed to be useful for review but small and safe:

  • A grouped list of changed resources (address and type) and their primary actions (create, update, delete, replace).
  • Blast radius context (counts, max depth, relationship types, and a small sample of impacted resources).
  • Workspace and pull request identifiers (when provided).

Cora does not send raw state files, full diffs, or provider attribute values.

Security notes

  • Your OpenAI API key is encrypted at rest.
  • The server requires an encryption secret to be configured.

If you are self-hosting, set CORA_ENCRYPTION_SECRET (or ENCRYPTION_SECRET) in your runtime environment.

Troubleshooting

I enabled AI but I do not see a summary

  • Confirm the evaluation was created after enabling AI.
  • Confirm the plan upload includes at least one non-no-op resource change.
  • Verify the API key is configured (Settings → AI shows “Key configured”).
  • If you are self-hosting, verify CORA_ENCRYPTION_SECRET is set.