provisioner_delete's description names no removed controller verb: it asks nobody, so the operator is asked on the operator channel first and named in why and by (ADR 0604 §8)

This commit is contained in:
2026-11-03 16:51:14 +01:00
parent 9ab75bab49
commit 6e2f08f96a
2 changed files with 6 additions and 1 deletions
+2 -1
View File
@@ -541,7 +541,8 @@ func RetirementTools(h *Harness) []stdio.Tool {
}},
{Name: "provisioner_delete",
Description: "Delete one RETIRED consumer — its login and its data — for good. Refused for anything active or " +
"asked for. Use the controller's `cleanup delete`, which records the hand act.",
"asked for. It asks nobody: ask the operator on the operator channel first, and name that answer in why and " +
"by, which the hand-act log keeps (novox/hq ADR 0604 §8).",
Input: withOne,
Run: func(args map[string]any) (any, error) {
consumer := argString(args, "consumer")
+4
View File
@@ -482,6 +482,10 @@ func TestTheToolsAnswer(t *testing.T) {
tools := map[string]func(map[string]any) (any, error){}
for _, tool := range RetirementTools(w.h) {
tools[tool.Name] = tool.Run
// L3: the delete names no removed controller verb, and says who must be asked first (ADR 0604 §8).
if tool.Name == "provisioner_delete" && (strings.Contains(tool.Description, "controller") || !strings.Contains(tool.Description, "operator channel")) {
t.Errorf("provisioner_delete says %q", tool.Description)
}
}
if len(tools) != 4 {
t.Fatalf("%d tools", len(tools))