Files
dotfiles/claude/governance/INC-2026-07-28-01-PHASE1-BASELINE-2026-08-05.md
T

184 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PENDING-101 — Phase 1 baseline: each repo's own account of its authorization/gating model
**Written 2026-08-05, BEFORE the Phase 1.5 primary-source read.** Frozen on purpose.
**Declared contamination:** pages 1–3 of INC-2026-07-28-01 (title, contents, executive summary) were
read 2026-08-05 to test file reachability. So this baseline is formed with the report's headline
finding already known. Bounded and recorded; not a clean slate.
**Sources read for this pass:** the four repos' `CLAUDE.md` files (CapableMind carries three — root,
`docs/thinking/`, `docs/thinking/David/`), plus `docs/specs/orchestration/epistemic-gates-spec.md`
and `docs/specs/orchestration/constitutional-governance-addendum.md`. Docs only, by design — Phase 1
records the **claim**; Phase 2 checks it against code.
---
## 1. CapableMind-AI
**What it says it is.** A playbook, not a codebase: 103 specs under `docs/specs/`, ADRs and amendments
under `docs/thinking/`. `src/` and `tests/` exist but contain only `.DS_Store` — the "no application
code" claim is true. Code lives in two other repos (`bettermemories` = L1, `themind` = L2).
**Governance of the documents.** Two-phase. `thinking/` is the branch, `specs/` is main; nobody edits
specs directly during day-to-day work. Amendments accumulate as candidates, then a synthesis PR
applies them. *"The PR is the review and merge moment."* Specs are authoritative over code: if code
contradicts spec, the code is wrong unless empirical evidence overturns the spec — in which case the
spec is updated **first**.
**Governance of the (unbuilt) runtime.** A graduated autonomy scale `none < propose < notify < log <
full`, per parameter group (voice/focus/analysis/knowledge/agency), intersected with an operational
mode ceiling (observe/respond/act). Three enforcement checkpoints: load-time, write-path, branch-time.
Three rules are labelled **meta-constitutional** — outside operator configuration:
1. Agency autonomy cannot exceed `propose`, regardless of manifest or mode.
2. Belief settlement at civilizational scale requires a stewardship attestation.
3. Logchain/ReasonChain are append-only, hash-linked, Ed25519-signed.
The addendum says of rule 2: *"This validation is hardcoded — it is not configurable."* And of the
`system_enforced` authorization type: *"Any entry written with `system_enforced` by another initiator
is rejected by the chain writer."* Drift thresholds explicitly **never** auto-mutate autonomy; every
autonomy change requires operator approval.
**Its own account of gate bypasses.** `epistemic-gates-spec.md` exists specifically to name that L1
gates have carve-outs, and classifies them: Pattern 1 (trust-delegation — replay, circle-peer-forward)
universal across gates; Pattern 2 (cost) per-gate. Its epigraph states the Q1 question against itself:
> *Stated invariants must match operational reality. When a gate has bypasses, the bypasses are
> either documented architectural principles or undocumented gaps. There is no third category.*
**Self-declared limits.** The addendum repeatedly marks itself as design, not implementation:
*"design primitives"*, *"deferred to the build phase"*, *"Not a runtime implementation spec."*
**My reading of the claim's honest shape.** Nearly every runtime authorization claim here is
**necessarily doc-only, and says so.** The repo is pre-implementation; that is a stated build phase,
not a concealment. The live question for Phase 2 is narrower and sharper: **the gates the
epistemic-gates spec lists as already existing point at code paths in a different repo**
(`src/modules/base.ts`, `src/core/keystone/orchestrator.ts`, `src/core/keystone/classification.ts`).
Those are checkable — in BetterMemories, not here.
---
## 2. BetterMemories.io
**What it says it is.** The L1 engine. 11 modules, ~2300 tests, TypeScript strict, embedded SurrealDB.
**What its own CLAUDE.md says about authorization.** Very little, and this is the notable fact of the
Phase 1 pass. The document is overwhelmingly operational: setup, MCP config, env vars, git remotes,
coding conventions, key commands, and a long "Gotchas" list. Its governance content is one section:
- *"Specs in `capablemind/` are the source of truth. Code in `bettermemories/` is the derived artifact."*
- The cycle: **Propose** (amendment; never edit specs directly) → **Synthesize** → **Code** → **Merge**.
- *"When code diverges from spec, the spec wins. If code proves a spec wrong, update the spec first,
then regenerate the code."*
- PR workflow: *"All checks must pass before merge: `npm run check` + `npm test`."*
**What is absent from its self-account.** No mention of the constitutional layer, autonomy levels,
operator approval, the meta-constitutional rules, or the executor authorization taxonomy
(`[FIX]`/`[HARDENING]`/`[PROPOSAL]`/`[ESCALATE]`). The invariants that CapableMind states as
non-negotiable for L1 — logchain append-only, Ed25519-signed, modules independent — do not appear in
L1's own orientation document. A reader working only from this file would not learn that the code it
describes is governed by a constitution at all.
**One authorization-shaped thing it does carry**, and it is a destructive-operation surface rather
than a gate: `npm run ctl -- reset --yes` (factory reset, wipe all data) and `repair --yes` (wipe
SurrealDB, replay from logchain) are documented as ordinary commands with the confirmation already in
the flag.
**My reading of the claim's honest shape.** BMF's stated gating model is a **CI/review model**
(tests + type-check + PR), not a constitutional one. Whether the constitutional gates exist in its
code is exactly what Phase 2 must check — and I should expect the answer to differ from what this
document would lead a reader to believe, in *both* possible directions.
---
## 3. studium-engine
**What it says it is.** A reasoning instrument over the Chamber Library — *"a mind bound to a memory
it cannot falsify."* Its purpose is to illuminate with provenance, *"never to answer unaccountably."*
**Its authorization model, stated explicitly and unusually clearly.**
- **D-1 — steward-direct.** *"The engine is the steward's own tool."* Authorization for
architecture/spec decisions is steward-direct and immediate. The engine sits **outside** L2
constitutional governance. *"Do not route routine engine work through the jurist."*
- **One named exception: V0, the verifier contract** — because it defines *what the engine may assert
as verified and when it must abstain*, and everything downstream inherits that standard. Its method
routes through the jurist, steward-relayed.
- `fidelity_equivalence@N` bumps are **jurist-gated doctrine**; `@1`/`@2` are frozen; `@N ⊃ @N-1` is a
standing requirement on all future bumps.
- **First law:** the files are authoritative, every index derived and disposable, *"no surface may
hold state not reconstructible from the verbatim files (**proven, not asserted** — `store.py
rebuild`/`verify`)."*
- Abstention is a hard gate; **the verifier is a separate instrument — never the reasoner grading
itself.**
**Self-declared failures, in its own orientation document.** This repo volunteers its holes:
`retrieve.py` **has no test at all**; the consuming end "does not answer" (bare FTS terms are
conjunctive — `what does levi mean by the gray zone` returns 0); `pattern_finder.py` shipped a pass
that was **PASS-BUT-FALSELY** and that known-bad output is deliberately retained as an adversarial
fixture; a `RETRIEVAL_BLINDNESS` constant rides every silence, with a ⚠ marking that it must be
revisited when PENDING-97 lands.
**My reading of the claim's honest shape.** This is the repo with the **least** doc-only exposure by
construction, because it claims the least: it does not claim a governance loop it lacks — it claims
steward-directness and names its single gated surface. The Q1 target here is narrow: is the
jurist-gate on V0/`fidelity_equivalence` mechanical, procedural, or doc-only?
---
## 4. chamber-library
**What it says it is.** A bounded, verbatim-fidelity, provenance-controlled corpus. *"Its
trustworthiness **is** its design."* The thesis it opens on: *"A substrate that cannot be trusted is
not a substrate — it is a source of false confidence more dangerous than no memory at all."*
**Its authorization model.**
- **Governed, NOT D-1.** The spec is a **ratified constitution** (`chamber-library-specification.md`,
v2.9.1 operative). Changes run the loop through `~/PENDING.md` / `~/REVIEWED.md` with a jurist ruling.
- **Amendment process:** RFC-style supersession, semver, and a **change-class rule** — a change is
`FIX` unless *it changes what a gate accepts*, at which point it becomes `PROPOSAL`.
- **Generative-from-spec:** tools are thin consumers of `_curation/graduation-spec.yaml`, the
machine-readable convention data. *"A tool that re-encodes a convention independently of the spec
**is drift**."*
- **Attest, never default:** provenance and status are positive attestations with a named verifier,
never a bare flag or default-by-absence. *"The conversion pipeline **cannot self-attest** (it
produced the errors)."*
- **`verify-before-compose`** — a PreToolUse hook that **DENIES** any write to the spec,
`graduation-spec.yaml`, or a jurist-facing draft unless it carries a `GROUNDED-IN:` attestation and
opens with a Grounding section quoting the ratified sections. Its own justification is explicit:
*"the hook is the structural mitigation (session-start CLAUDE.md prose alone had failed ≥4 times)."*
**A self-declared live violation.** PENDING-84: §VII holds that *"a canonical text without a
conversion record is not verifiable and cannot enter canon"* — and **nine canonicals violate it in
canon, today**. The repo's response was to **declare** it in a quarantine artifact rather than repair
or hide it, on the constitutional ground that production-only provenance would let presence read as
compliance.
**My reading of the claim's honest shape.** This repo makes the **strongest** enforcement claims of
the four and is the only one that names a hook that actually denies a write. It is therefore both the
best Q1 candidate for genuine mechanical enforcement *and* the place where a doc-only claim would do
the most damage. One is already known: `verify-before-compose` cannot fire on the constitution it
protects (PENDING-95, 31 of 59 guarded files).
---
## Cross-cutting predictions, recorded BEFORE the report (so they can be scored)
1. **CapableMind's runtime constitutional claims will be doc-only by construction, and the repo will
have said so.** The real finding will not be "unenforced" but *where a present-tense enforcement
sentence sits next to a deferred-to-build-phase one.*
2. **BetterMemories will carry gates its own documentation does not mention.** Its CLAUDE.md is
operational; the gates are specced elsewhere. Expect Q1(b) — real code checks whose *discoverability*
is the weakness, not their existence.
3. **studium-engine's jurist gate on `fidelity_equivalence` will be procedural, not mechanical** —
depending on the executor choosing to route, with a hardcoded-version tripwire as the only
structural backstop.
4. **chamber-library will have the most real mechanism and the most instructional language.** The
`verify-before-compose` disarm (PENDING-95) is likely one of a class, not a singleton.
5. **The scope gap:** the brief names four repos, but the governance documents themselves
(`~/CLAUDE.md`, `PENDING.md`, `REVIEWED.md`) and every hook live in **`~/dotfiles`**, which is not
in scope. Chamber's `verify-before-compose` cannot be evaluated without reading dotfiles. I will
treat dotfiles as **evidence** for the four repos' gates, not as a fifth audit target, and flag the
omission for the steward rather than silently widening scope.