ADR-0004: The Crown — seat the Telos Layer over the Truth Engine - #52
Merged
Conversation
Seat the estate's constitutional layer per the owner's flow diagram (Telos Layer: objectives+constraints -> Truth Engine: falsifiable, auditable), consume-not-fork over already-merged pieces: - Keter (Crown) objective = welfare-annealing WEA-1 (economic-prophet PR #59), NOT control-max; constraints non-domination/consent/dignity. - Da'at = policy weights/thresholds (omnirisk/outcome-pricing, the-assay grades, counter-test-gate); it CANNOT assert truth. - Truth Engine = ts/src/discourse.ts + spec 14 + SILENT epistemic firewall (evidence-intake-kernel #2/#3) + Noetica counter-test detectors (PR #570) + Truth = Law x Evidence. Add scripts/check-constitution.mjs (deterministic, stdlib-only) + a fixtures corpus as the teeth, wired into CI. It enforces the cross-layer invariants no single discourse.ts function sees, both directions: - REJECTS Da'at asserting a POS/true verdict (D1, = firewall affirming-the-consequent guard). - REJECTS a control/domination Keter telos as unconstitutional (K1, SILENT-vs-welfare inversion). - REJECTS a TruthRecord with no TestObligation / no Witness / single-valued+atemporal; ADMITS a falsifiable, witnessed, multi-valued+temporal+adversary-aware record. - Refuses a degenerate corpus so D1/K1 can't be silently removed. Records two follow-up gaps under this constitution: Hygiene runtime (no CTEST runner / no passport producer / LOGFALL id drift) and XSEDE-PEP -> estate program-execution-plan.
…(self-maintaining) build-and-verify-dist is the only REQUIRED check on main and was pinned to the self-hosted pool, which is currently online-but-not-dispatching (idle runners, queued jobs) — stalling every PR incl. this constitutional ADR. It is a plain node build (checkout/setup-node@20/npm install+typecheck+test+build+dist-verify) with no self-hosted dependency, so it runs identically on GitHub-hosted runners and is no longer blocked by the runner backlog. Same for the stdlib constitution validator. This is the Day-2 self-maintaining fix: deterministic required checks must not depend on a flaky pool.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Authors the Crown ADR (
docs/adr/0004-crown-telos-truth-constitution.md) — the constitutional layer that seats the estate's Telos Layer over the Truth Engine, per the owner's flow diagram "Telos Layer (Divine Plan as Objectives+Constraints) → Truth Engine (Falsifiable, Auditable)" — plus a small deterministic conformance validator with teeth.Consume-not-fork. This seats already-merged pieces by reference; it does not edit them.
How it seats the layers
prophet-platform apps/agentic-os-api/app/data.pyts/src/discourse.ts+ spec 14 + SILENT epistemic firewall (evidence-intake-kernel #2/#3) + Noetica counter-test detectors (PR #570) + Truth = Law × EvidenceThe teeth (
scripts/check-constitution.mjs, stdlib-only, no deps)Cross-layer invariants that no single
discourse.tsfunction sees, checked both directions (admit and void, for the declared reason):D1— Da'at asserting truth: a policy/weight record that manufactures a POS/true verdict is void (same rule as the firewall's affirming-the-consequent guard, eik Harden repo governance and add spec traceability #3).K1— a control-telos is unconstitutional: a control/domination Keter objective (the SILENT-vs-welfare inversion) is void.T1, unfalsifiable), no Witness (T2), or single-valued/atemporal (T3).D1/K1can't be quietly removed while the check stays green.Local run:
A negative control (flipping the control-max fixture to
admit) turns the check red, confirming the teeth bite.Wiring
check:constitutionnpm script; newconstitutionjob ints-ci.yml(no path filter, no install).ci.yml.Follow-ups (also filed as issues, seated under this constitution)
LOGFALL.ADHOMINEM.V10.1.0 vsLOGFALL.ADHOM.V21.3.0).