From a6ffb0a7a1419424817868f1ec578e1811da933e Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 05:14:53 +0100 Subject: [PATCH] Answer A-158: a marked call answers {answer, approval} Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md index 291cef16..bbb4c91c 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md +++ b/03-DESIGN/01-to-be/47-milestones/G-20-lead-answers.md @@ -590,3 +590,6 @@ names the principle that settles it, and is cited as "design 47 G A-n". view the runner follows) and at each start; `call-unanswered` is raised on the expiry of a five-minute bound key per ask, not a timer. A failed read or write of `approvals` is made again at the next marked call and at the next membership change the runner hears. +- **A-158** (design 46 approval mark §16, §677; principle 8) A marked call's answer is `{answer, approval}`: the tool's + own answer and the line naming the approval, the form a process holder's `gated-ended` has, so a caller reads one + form from both gates. A-157's bound key lives in the runner's state `bound` as `.unanswered.`.