From aabb56297636bdad893ca77abbc48f43902f52dc Mon Sep 17 00:00:00 2001 From: HackingGate Date: Tue, 27 Oct 2026 21:54:57 +0900 Subject: [PATCH] Adopt ten records for design rulings, with the four orders between them uphold's own design questions had nothing to be ruled from: `[decide]` was absent, so the rulings on #429 and #450 used the whole catalog and escalated every conflict. Adopt the records this repository's code and docs already argue from by id, plus the three those rulings turned on, and order the four adopted pairs that conflict, each by a choice this repository has already made. Claude-Session: https://claude.ai/code/session_01BHpLckRt4BNGCdFG9vLyEP --- policy/principles.toml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/policy/principles.toml b/policy/principles.toml index 493dc05..d9eb985 100644 --- a/policy/principles.toml +++ b/policy/principles.toml @@ -651,3 +651,41 @@ run = [ ["uphold", "check"], ["uv", "run", "--no-project", "python", "-m", "unittest", "discover", "-s", "tests"], ] + +# The records this repository's design questions are answered from: the ones +# its own code and docs already argue from by id, and the three its rulings on +# the harness hooks turned on. Each order follows a choice this repository has +# already made, named in its `why`. +[decide] +adopt = [ + "explicit-unknown", + "parameterize-do-not-enumerate", + "enforcement-needs-a-trigger", + "psychological-acceptability", + "single-authoritative-source", + "mechanism-policy-separation", + "least-power", + "complete-mediation", + "fail-safe-defaults", + "economy-of-mechanism", +] + +[[decide.order]] +prefer = "fail-safe-defaults" +over = "psychological-acceptability" +why = "A scope the shim cannot evaluate refuses by default, and `unresolved = \"run\"` is the named way out." + +[[decide.order]] +prefer = "explicit-unknown" +over = "psychological-acceptability" +why = "A seam that stands down says so on stderr; it never reports what it did not read as a pass." + +[[decide.order]] +prefer = "psychological-acceptability" +over = "complete-mediation" +why = "A hook that refuses routine work has its matcher deleted, and then it mediates nothing." + +[[decide.order]] +prefer = "least-power" +over = "parameterize-do-not-enumerate" +why = "`[stop] run` takes argv and no shell; a command that needs a pipeline names a script."