From 9c701ec0e28b2ef3fe5bcaac95f34a9fd8f81c99 Mon Sep 17 00:00:00 2001 From: Brian O'Kelley Date: Sun, 3 May 2026 00:31:45 -0400 Subject: [PATCH] docs(storyboard-schema): document task_completion. prefix for context_outputs When the immediate response is a non-terminal task envelope (status submitted/working/input-required), the runner polls tasks/get until terminal and resolves the suffix against the completion artifact's data. Required for captures like seller-assigned media_buy_id on IO-signing / async-signed HITL flows. Requires runner >= adcp-client v6.7; older runners treat the prefix as a literal key. Closes #3950. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../storyboard-schema-task-completion-prefix.md | 4 ++++ .../source/universal/storyboard-schema.yaml | 15 +++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 .changeset/storyboard-schema-task-completion-prefix.md diff --git a/.changeset/storyboard-schema-task-completion-prefix.md b/.changeset/storyboard-schema-task-completion-prefix.md new file mode 100644 index 0000000000..0150594505 --- /dev/null +++ b/.changeset/storyboard-schema-task-completion-prefix.md @@ -0,0 +1,4 @@ +--- +--- + +docs(storyboard-schema): document the `task_completion.` prefix for `context_outputs[].path`. When the immediate response is a non-terminal task envelope (`submitted`/`working`/`input-required`), the runner polls `tasks/get` until terminal and resolves the suffix against the completion artifact's `data` — needed for captures like seller-assigned `media_buy_id` on IO-signing flows. Requires runner >= adcp-client v6.7. Closes #3950. diff --git a/static/compliance/source/universal/storyboard-schema.yaml b/static/compliance/source/universal/storyboard-schema.yaml index 45001434fb..80712471b9 100644 --- a/static/compliance/source/universal/storyboard-schema.yaml +++ b/static/compliance/source/universal/storyboard-schema.yaml @@ -403,6 +403,21 @@ # storyboard run) # path: string (JSON path against this step's response body, e.g. # "media_buy_id", "accounts[0].account_id", "plans[0].plan_id") +# +# Special path prefix `task_completion.`: when the immediate response +# is a non-terminal task envelope (status `submitted` / `working` / +# `input-required`, carrying a `task_id`), the runner polls `tasks/get` +# until the task reaches a terminal state and resolves `` against +# the completion artifact's `data` instead of the immediate response. Use +# for captures whose value only exists on the completion artifact — e.g. +# the seller-assigned `media_buy_id` on an IO-signing / async-signed HITL +# flow where `create_media_buy` returns `submitted` and the ID lands on +# the completion artifact. Without the prefix, the literal key +# `task_completion` is looked up on the immediate response, which fails +# as `capture_path_not_resolvable`. Requires runner >= adcp-client v6.7; +# older runners treat the prefix as a literal key. See adcp-client#1417 +# (rationale) and adcp-client#1426 (implementation). +# # Runner behavior: # - Captures occur AFTER the step's validations pass. A failed step MUST NOT # populate the context accumulator — downstream $context. references