diff --git a/notes/pr15_update_summary.md b/notes/pr15_update_summary.md new file mode 100644 index 0000000000..9cc8a94203 --- /dev/null +++ b/notes/pr15_update_summary.md @@ -0,0 +1,25 @@ +# 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 + +## 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` + +## Current bottleneck + +One returned filled provider block is still missing. diff --git a/notes/tpi_016_decision.md b/notes/tpi_016_decision.md new file mode 100644 index 0000000000..0bd3239fb0 --- /dev/null +++ b/notes/tpi_016_decision.md @@ -0,0 +1,33 @@ +# 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 + +## Branch selection rule + +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 new file mode 100644 index 0000000000..e614888e7e --- /dev/null +++ b/notes/tpi_016_send_or_wait_card.md @@ -0,0 +1,51 @@ +# 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 + +## 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