From da6c3ab1630558ea28b08c0b717344f0eba45c14 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 15:43:59 +0100 Subject: [PATCH 1/4] Answer A-287 and A-288: a kept announcement names every declared state; a refusal's test holds its meaning Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md index ae7709f5..31c003b2 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md +++ b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md @@ -414,3 +414,7 @@ the principle that settles it, cited as "design 47 G A-n". does not compile or generate) ends failed with its answer all the same: its fetch and the levels so far, beside its error, so the checker previews from it. A failed test or a failed level never hides the manifest validator or the composition. +- **A-287** (principle 4) A module's kept announcement names every state its manifest declares, so each can be + read by its tools; gitea's `KEPT` gains `failed-steps`, `idle` and `transfers`. +- **A-288** (principle 3) A refusal's test holds what the refusal must say, not its earlier wording: the one tool + that may do the refused act and that it runs on the operator's Approve of that call. From 84faadbe382e68661705af2fa8081de29ff61429 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 16:12:45 +0100 Subject: [PATCH 2/4] Answer A-289: a build that reserves no version leaves its package done; a package is published by its own language's seat Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md index 31c003b2..3befe856 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md +++ b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md @@ -418,3 +418,7 @@ the principle that settles it, cited as "design 47 G A-n". read by its tools; gitea's `KEPT` gains `failed-steps`, `idle` and `transfers`. - **A-288** (principle 3) A refusal's test holds what the refusal must say, not its earlier wording: the one tool that may do the refused act and that it runs on the operator's Approve of that call. +- **A-289** (§371; principles 3 and 8) A package left unpublished by a build that reserved no version (§371's other + watched branch, §505's manifest without MAJOR.MINOR, a candidate) counts as done: the builder's unpublished count + holds only a reserving build's packages. An unpublished package is published by the build seat of its own + language (the Go build module for a Go package), never one seat for every package. From 34660dd2565fdb0a14b6ca1adac0c18aef64ff44 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 16:17:06 +0100 Subject: [PATCH 3/4] Correct A-289: the unpublished count holds no package, since no reachable case leaves a reserving build's package unpublished Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md index 3befe856..e40bf92e 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md +++ b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md @@ -419,6 +419,6 @@ the principle that settles it, cited as "design 47 G A-n". - **A-288** (principle 3) A refusal's test holds what the refusal must say, not its earlier wording: the one tool that may do the refused act and that it runs on the operator's Approve of that call. - **A-289** (§371; principles 3 and 8) A package left unpublished by a build that reserved no version (§371's other - watched branch, §505's manifest without MAJOR.MINOR, a candidate) counts as done: the builder's unpublished count - holds only a reserving build's packages. An unpublished package is published by the build seat of its own - language (the Go build module for a Go package), never one seat for every package. + watched branch, §505's manifest without MAJOR.MINOR, a candidate) counts as done, and the builder's unpublished + count holds no package at all: a reserving build's package is published or its build fails, and a done key is never + built again under a reservation, so no seat republishes a package (principle 7). The count holds images only. From 048545b266bb58959d1d26f48e41de0a8eb93206 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 16:27:32 +0100 Subject: [PATCH 4/4] Answer A-290: a step answer over the steps state's bound is kept as an object the key names Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- 03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md index e40bf92e..5258cc09 100644 --- a/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md +++ b/03-DESIGN/01-to-be/47-milestones/G-22-lead-answers-2.md @@ -422,3 +422,7 @@ the principle that settles it, cited as "design 47 G A-n". watched branch, §505's manifest without MAJOR.MINOR, a candidate) counts as done, and the builder's unpublished count holds no package at all: a reserving build's package is published or its build fails, and a done key is never built again under a reservation, so no seat republishes a package (principle 7). The count holds images only. +- **A-290** (A-254, §467; principles 3 and 7) A step's key in its build module's steps state keeps the step's answer + only within the state's bound per value; an answer over it, a check's or a run's alike, is kept as the object + `output.` in the module's outputs store and the key names it, and every reader (the checker, the asker) reads + the answer from the key or the object it names. No step ends passed in one place and failed in another.