From 27049d4f00c9ff84864c76842d514d8ab25d6772 Mon Sep 17 00:00:00 2001 From: gb250e <71205769+gb250e@users.noreply.github.com> Date: Sat, 21 Mar 2026 05:38:16 -0700 Subject: [PATCH 1/4] docs: add TPI-016 send or wait card --- notes/tpi_016_send_or_wait_card.md | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 notes/tpi_016_send_or_wait_card.md diff --git a/notes/tpi_016_send_or_wait_card.md b/notes/tpi_016_send_or_wait_card.md new file mode 100644 index 0000000000..fb6ce4fda2 --- /dev/null +++ b/notes/tpi_016_send_or_wait_card.md @@ -0,0 +1,32 @@ +# TPI-016 Send-or-Wait Decision Card + +## Decision branches + +### Branch A: send now +Use this branch only when: +- `outbound_dispatch_sent: no` +- no returned filled block exists yet + +Action: +- send the fixed TPI-012 outbound dispatch packet +- update the operator send record immediately + +### Branch B: wait +Use this branch only when: +- `outbound_dispatch_sent: yes` +- `returned_filled_block_present: no` + +Action: +- keep waiting on provider reply +- do not reopen old debates +- keep the operational record explicit + +### Branch C: hand to intake +Use this branch only when: +- `returned_filled_block_present: yes` +- `returned_block_matches_exact_shape: yes` +- `transition_rule_passed: yes` + +Action: +- pass the returned block into TPI-011 intake +- start fixed verification only if intake accepts it From f96ed0a505da93e5a22510aabc68b8e8e08e0c8c Mon Sep 17 00:00:00 2001 From: gb250e <71205769+gb250e@users.noreply.github.com> Date: Sat, 21 Mar 2026 05:38:54 -0700 Subject: [PATCH 2/4] docs: add TPI-016 decision --- notes/tpi_016_decision.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 notes/tpi_016_decision.md diff --git a/notes/tpi_016_decision.md b/notes/tpi_016_decision.md new file mode 100644 index 0000000000..dc0f23b1f3 --- /dev/null +++ b/notes/tpi_016_decision.md @@ -0,0 +1,20 @@ +# TPI-016 Decision + +## Current bottleneck + +The only blocker is still the absence of one returned filled provider block. + +## Decision label + +`continue_sharpening` + +## Exact next action + +Choose exactly one branch from the send-or-wait decision card based on current reality: +- send now +- wait +- hand to intake + +## Rule + +Do not mix branches. Use the first branch whose preconditions are satisfied. From 559e5766756a8e3fcdeca50b7396bae8c7a4f65e Mon Sep 17 00:00:00 2001 From: gb250e <71205769+gb250e@users.noreply.github.com> Date: Sat, 21 Mar 2026 05:41:35 -0700 Subject: [PATCH 3/4] docs: add PR #15 update summary --- notes/pr15_update_summary.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 notes/pr15_update_summary.md diff --git a/notes/pr15_update_summary.md b/notes/pr15_update_summary.md new file mode 100644 index 0000000000..97353a7744 --- /dev/null +++ b/notes/pr15_update_summary.md @@ -0,0 +1,16 @@ +# PR #15 Update Summary + +## Send-or-wait decision card + +The branch now defines one three-branch card that lets the next actor choose exactly one path: +- send now +- wait +- hand to intake + +## Current label + +`continue_sharpening` + +## Current bottleneck + +One returned filled provider block is still missing. From ed7ec0bdeed00cb84d7e33aee7ba3c7a4a3263bb Mon Sep 17 00:00:00 2001 From: eb24516 Date: Sat, 21 Mar 2026 21:46:33 +0900 Subject: [PATCH 4/4] docs: add TPI-016 decision card --- notes/pr15_update_summary.md | 9 +++++++++ notes/tpi_016_decision.md | 17 +++++++++++++++-- notes/tpi_016_send_or_wait_card.md | 19 +++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/notes/pr15_update_summary.md b/notes/pr15_update_summary.md index 97353a7744..9cc8a94203 100644 --- a/notes/pr15_update_summary.md +++ b/notes/pr15_update_summary.md @@ -7,6 +7,15 @@ The branch now defines one three-branch card that lets the next actor choose exa - wait - hand to intake +## Branch selection rule + +The branch now defines one first-match rule so the next actor chooses only one +branch and does not mix states. + +## Current reality mapping + +The branch now maps current operational reality to exactly one chosen branch. + ## Current label `continue_sharpening` diff --git a/notes/tpi_016_decision.md b/notes/tpi_016_decision.md index dc0f23b1f3..0bd3239fb0 100644 --- a/notes/tpi_016_decision.md +++ b/notes/tpi_016_decision.md @@ -15,6 +15,19 @@ Choose exactly one branch from the send-or-wait decision card based on current r - wait - hand to intake -## Rule +## Branch selection rule -Do not mix branches. Use the first branch whose preconditions are satisfied. +Do not mix branches. Evaluate in this order: + +1. `hand to intake` +2. `send now` +3. `wait` + +Use the first branch whose preconditions are satisfied. + +## Current reality to chosen branch + +- no dispatch sent and no reply present -> `send now` +- dispatch already sent and no reply present -> `wait` +- returned block present and both checks pass -> `hand to intake` +- returned block present but checks do not pass -> remain `continue_sharpening` diff --git a/notes/tpi_016_send_or_wait_card.md b/notes/tpi_016_send_or_wait_card.md index fb6ce4fda2..e614888e7e 100644 --- a/notes/tpi_016_send_or_wait_card.md +++ b/notes/tpi_016_send_or_wait_card.md @@ -30,3 +30,22 @@ Use this branch only when: Action: - pass the returned block into TPI-011 intake - start fixed verification only if intake accepts it + +## First-match rule + +Check the branches in this order and choose the first one whose conditions are +fully satisfied: + +1. Branch C: hand to intake +2. Branch A: send now +3. Branch B: wait + +Choose exactly one branch. Do not mix actions across branches. + +## Current reality mapping + +- if `returned_filled_block_present: yes` and both checks are `yes` -> Branch C +- if `outbound_dispatch_sent: no` and no returned block exists -> Branch A +- if `outbound_dispatch_sent: yes` and no returned block exists -> Branch B +- if a returned block exists but exact-shape or transition is not `yes`, stay on + `continue_sharpening`, keep the record explicit, and do not start intake