chrismdp / counting-house-rung-2-shadow

Fernwick Air: rebook after a missed connection, tier shadow

Public ·
Version 3 of 3
  1. #3 · chrismdp · · 0.6ShowingLatest
  2. #2 · chrismdp · · 0.6
  3. #1 · chrismdp · · 0.6
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 shadow"
description: |
  Tier shadow. The rep handles the case exactly as at tier off. Side by side, a gateway swaps the
  customer's personal data for tokens, and a model, the clerk, answers the same case. Its answer goes
  only to a judge model, which scores it against what the rep did. Nothing the clerk writes reaches
  the customer or the booking system. 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: 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: "Once both are in, 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: rep_rebook, 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: asks, to: tokenise, kind: start }
  - { 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: 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: clerk, to: judge, kind: start }
  - { 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 }