chrismdp / counting-house-rung-3-assist

Fernwick Air: rebook after a missed connection, tier assist

Public · Version 1 of 1
Fork

workflow.yaml

workflow.yaml is AWML 0.6, as it was pushed. The registry draws, checks and fits it converted to AWML 0.8.

awml: "0.6"
title: "Fernwick Air: rebook after a missed connection, tier assist"
description: |
  Tier assist. Before the rep sees the case, the clerk drafts a reply and a proposed rebooking. The
  gateway swaps the real values back in on the rep's case screen, and the rep decides what to send
  and do. The judge keeps scoring the clerk's answer against what the rep did. Fernwick Air is
  fictional.
scopes:
  - { id: tokenised, label: "tokenised: Fernwick staff", processing: { anthropic: any } }
  - { id: ops, label: "ops: Fernwick staff", processing: none, in: tokenised }
parts:
  - { id: asks, kind: trigger, label: "A customer writes in: rebook me after a missed connection", wait: PT1H, untrusted: true }
  - { id: contact, kind: connector, label: "Fernwick's contact centre: email and chat", in: ops, untrusted: true }
  - { id: bookings, kind: connector, label: "Fernwick's booking system, live", in: ops }
  - { id: tokenise, kind: code, op: bring-in, label: "PII gateway: swap names, booking references and contact details for tokens", in: ops }
  - { id: vault, kind: context, label: "The PII vault: the real value behind each token", in: ops }
  - { id: case, kind: context, label: "The tokenised case", in: tokenised }
  - { id: sop, kind: context, label: "The intent's SOP and policy row", in: tokenised }
  - { id: flights, kind: connector, label: "Flight status and seats, read only, through the MCP gateway", in: tokenised }
  - { id: clerk, kind: ai, op: draft, label: "The clerk drafts a reply and a proposed rebooking", in: tokenised }
  - { id: answer, kind: context, label: "The clerk's answer", in: tokenised }
  - { id: detok, kind: code, op: do, label: "PII gateway: swap the real values back into the clerk's answer", in: ops }
  - { id: desk, kind: surface, label: "The rep's case screen", in: ops }
  - { id: rep_rebook, kind: person, op: do, label: "A rep rebooks the passenger, if eligible", in: ops }
  - { id: rebook, kind: outside, label: "Rebook the passenger: Ask", in: ops }
  - { id: rep_reply, kind: person, op: do, label: "The rep replies to the customer", in: ops }
  - { id: reply, kind: outside, label: "Reply to the customer: Ask", in: ops }
  - { id: tokenise_out, kind: code, op: bring-in, label: "PII gateway: tokenise what was sent and done", in: ops }
  - { id: outcome, kind: context, label: "What was sent and done, tokenised", in: tokenised }
  - { id: judge, kind: ai, op: check, label: "The judge scores the clerk's answer against what was sent and done, by the intent's rubric", in: tokenised }
  - { id: record, kind: code, op: do, label: "Record the score", in: tokenised }
  - { id: scores, kind: context, label: "The intent's scores, for promotion", in: tokenised }
lines:
  - { from: asks, to: tokenise, kind: start }
  - { from: contact, to: rep_rebook, kind: data, label: the message }
  - { from: bookings, to: rep_rebook, kind: data }
  - { from: rep_rebook, to: rebook, kind: data }
  - { from: rebook, to: bookings, kind: data }
  - { from: rep_rebook, to: rep_reply, kind: start }
  - { from: rep_reply, to: reply, kind: data }
  - { from: reply, to: contact, kind: data }
  - { from: contact, to: tokenise, kind: data, label: the message }
  - { from: tokenise, to: vault, kind: data }
  - { from: tokenise, to: case, kind: data, label: "tokens only, under Fernwick's data rule" }
  - { from: tokenise, to: clerk, kind: start }
  - { from: case, to: clerk, kind: data }
  - { from: sop, to: clerk, kind: data }
  - { from: flights, to: clerk, kind: data }
  - { from: clerk, to: answer, kind: data }
  - { from: clerk, to: detok, kind: start }
  - { from: answer, to: detok, kind: data }
  - { from: vault, to: detok, kind: data }
  - { from: detok, to: desk, kind: data }
  - { from: detok, to: rep_rebook, kind: start }
  - { from: desk, to: rep_rebook, kind: data, label: the clerk's suggestions }
  - { from: rep_reply, to: tokenise_out, kind: start }
  - { from: contact, to: tokenise_out, kind: data, label: the reply sent }
  - { from: bookings, to: tokenise_out, kind: data, label: the rebooking made }
  - { from: vault, to: tokenise_out, kind: data }
  - { from: tokenise_out, to: outcome, kind: data, label: "tokens only, under Fernwick's data rule" }
  - { from: tokenise_out, to: judge, kind: start }
  - { from: answer, to: judge, kind: data }
  - { from: outcome, to: judge, kind: data }
  - { from: judge, to: record, kind: start, label: the score }
  - { from: record, to: scores, kind: data }