Skip to content

Tutorial: Gmail Audit Receipt

This fixture models a sandbox Gmail-like send operation followed by a local audit receipt renderer. It is side-effectful by shape, so the tutorial keeps execution language at the review, approval, and sandbox handoff boundary.

Fixture path:

examples/eval/gmail-send-audit-receipt/project.md
examples/eval/gmail-send-audit-receipt/openapi/gmail.yaml
examples/eval/gmail-send-audit-receipt/reference/intent.hcl

The project brief has runtime inputs for recipient, subject, and message. The generated workflow should pass those inputs to send_message, then bind the provider response fields into render_audit_receipt.

Run The Artifact Loop

go run ./cmd/openudon synthesize --example ./examples/eval/gmail-send-audit-receipt
go run ./cmd/openudon build --example ./examples/eval/gmail-send-audit-receipt
go run ./cmd/openudon assess --example ./examples/eval/gmail-send-audit-receipt

Review the generated files before approval:

examples/eval/gmail-send-audit-receipt/expected/quality.md
examples/eval/gmail-send-audit-receipt/expected/review.md
examples/eval/gmail-send-audit-receipt/expected/symphony-handoff.json

Approval Dry Run

Use sandbox approval only for proof-run readiness. Do not treat synthesis or build output as permission to send email.

mkdir -p approvals
go run ./cmd/openudon approval-template \
  --example ./examples/eval/gmail-send-audit-receipt \
  --state approved_for_sandbox \
  --reviewer "Reviewer Name" \
  > approvals/gmail-send-audit-receipt-sandbox.json

go run ./cmd/openudon run \
  --example ./examples/eval/gmail-send-audit-receipt \
  --tier sandbox \
  --approval approvals/gmail-send-audit-receipt-sandbox.json \
  --dry-run

The dry run checks approval state, package digest, current and stored quality, and tier rules. It does not invoke the executor.