Skip to content

Tutorial: Support Email

This fixture fetches a support ticket through OpenAPI and prepares a confirmation email through an approved function adapter. It demonstrates the approval boundary for a side-effectful workflow.

Fixture path:

examples/eval/support-email/project.md
examples/eval/support-email/openapi/support.yaml
examples/eval/support-email/reference/intent.hcl
examples/eval/support-email/reference/plan.json
examples/eval/support-email/reference/workflow.hcl

The project brief requires generated artifacts only. Any real email send must be routed through human approval, sandbox proof-run policy, and trusted-runner handoff.

Run The Artifact Loop

go run ./cmd/openudon synthesize --example ./examples/eval/support-email
go run ./cmd/openudon build --example ./examples/eval/support-email
go run ./cmd/openudon assess --example ./examples/eval/support-email

Inspect the side-effect evidence:

examples/eval/support-email/expected/plan.md
examples/eval/support-email/expected/quality.md
examples/eval/support-email/expected/review.md
examples/eval/support-email/expected/symphony-handoff.json

The review evidence should describe the email side effect, credential bindings by name only, and the sandbox or trusted-runtime boundary.

Approval Dry Run

Generate sandbox approval from the current package digest and validate the handoff gates:

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

go run ./cmd/openudon run \
  --example ./examples/eval/support-email \
  --tier sandbox \
  --approval approvals/support-email-sandbox.json \
  --dry-run

Remove --dry-run only in an operator-controlled environment with a reviewed executor, sandbox targets, and approved credential bindings.