Commit Graph
223 Commits
Author SHA1 Message Date
David F GliddenandClaude Opus 5 0a48e6934d [FIX] L1 pin root-caused and cleared; S-series closed; instrument census
mindfabric-00 had been event-loop-pinned for 6+ days (100% CPU, /health silent).
Profile + CDP inspector named two hot paths, both from runTemporalPipeline:

  checkForCycle -> getCausalEdgesFromSqlite   99.8% of samples
  tryExtendChains -> getChainsContainingSeq   now dominant (json_each scan)

Cause of the first: ANALYZE had never been run, so SQLite preferred a boolean
index (idx_caused_tombstoned, matching ~all 836k edges) over idx_caused_from.
ANALYZE across 15 module DBs flipped the plan; 6.4x on a microbenchmark and
99.8% -> 6.0% in the live profile. /health went from silent to 200 in 0.13s.

B1.1's fan-out cap is IMPLEMENTED AND WORKING (today: max in-degree exactly 20,
zero violations; pre-23-June: max 629, avg 67.6). The defect is data, not code —
836k edges / 813k chains minted under ungoverned fan-out before the fix landed.
Repair run: derived stores wiped, logchain preserved, replay in flight.

S-series closed (jurist had already ruled all of Q1-Q5 on 2026-05-18):
  S6/S7/S9 implemented (Symmetria §3 flags, `suspend` outcome, wrap-up §8 tenses)
  S2 rebuilt as [FIX] — wake-digest unwrapped-session detector, discrimination-
    gated on real sessions (11 wrapped / 2 unwrapped)
  S4/S5 withdrawn with MemPalace (steward ruling)
Dormant legacy dispositioned: PENDING-4/5/11/12, CD-03, ICP-19 duplicate.
Open authorization items 22 -> 10.

Census 01: which instruments have no real negative instance. Finding — the
governance drift-check has 3 of 5 families inert against the current CLAUDE.md,
and 71 of 75 verification-ladder entries are cited nowhere outside the ladder.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-03 20:57:41 +02:00
David F Glidden 23e7515302 session 2026-08-02 evening: Control Kernel v1.0→v1.1, reduction arm, CONTROL-A/B, trial 04 VOID, correlation 01
Session record, memory updates and KG appends for the evening session.

Filed: Control Kernel v1.0 (frozen, superseded) and v1.1 (governing); the
reduction arm and its two censuses; CONTROL-A and its defect twin with a
bidirectionally-gated ledger; trial 04 (CONTROL VOID) and its pre-registration;
correlation 01 — the first measurement of Constraint 6's own falsifier, jurist
4-of-6 and Fool 0-of-6 with no overlap.

New feedback memory: removing a claim is not the same as removing the reliance on
it. Earned by finding that draft 3's "fix" to CONTROL-A had CONCEALED a defect
rather than closed it — invisible to me, the kernel and four gates, found by a
differently-formed reader.

Verification ladder: the discrimination gate — a check must return different
verdicts on two REAL artifacts, one with the property and one without.

6 KG lines: two drift-patterns, one good-direction, two preventions, and the
Constraint 6 first-measurement.
2026-08-03 08:57:42 +02:00
David F GliddenandClaude Opus 5 9d7c29f3bf session 2026-08-02 pm: PENDING-90 (first L2 transfer) + PENDING-91 (vignette jurist gate)
PENDING-90 [ESCALATE] carries Constraint 6 into CapableMind's calibration loop —
the AdaptationChain records who initiated an adaptation but never who checked it,
and when authorization.required is false (the whole self-adjustment case) no
checker is in the record at all.

PENDING-91 [PROPOSAL] is the vignette Phase-1a design gate, leading with the
structural problem that the dwell-test is assigned to a jurist who cannot see
the render — third instance of the gap docketed at PENDING-86 and PENDING-82.

Session record, ledger, KG (+6: two drift-patterns, two preventions, the
Notre-Dame anchor, the superseded gitea diagnosis), and four skill-harvest
proposals. One FIX-lane application indexed (ARC CLAUDE.md freshness).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-02 16:31:42 +02:00
David F GliddenandClaude Opus 5 affc666cbf [ESCALATE] PENDING-90 — first L2 transfer: checker position in the calibration loop
Five months of microcosm work has produced material for CapableMind's L2 and
transferred none of it. This is the first transfer: a candidate amendment
carrying Constraint 6 into the spec corpus, landing where CapableMind actually
evaluates its own self-adjustment — the trust calibration loop.

Tagged ESCALATE, not PROPOSAL: Change 4 proposes an autonomy ceiling, which is
constitutional, and this file's own rule escalates those unconditionally.
Checked first for a pre-existing authorization covering the L2 transfer —
there is none, so the boundary is real rather than manufactured.

Ledger records the sixth instance of the day's pattern, caught inside the wake
that inherited it: the pulling thread's own checkable claim — "there is no
amendments/ directory in thinking/David/" — was false. There is; 14 files,
last touched 2026-06-13. The honest claim narrows to: L1 material has
transferred through this machinery within the last eight weeks, the chamber
material has not.

Also recorded under "What held": the wake's substrate-check rule fired a second
time, on the thread itself. Provisional answer to the session's own literal
question — the census instrument that failed five times yesterday fired today
when written into a *procedure* rather than banked as a *lesson*. One datum.

Amendment committed separately at CapableMind-AI 5326704.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-02 12:52:56 +02:00
David F GliddenandClaude Opus 5 1b258e1163 session 2026-08-02: Constraint 6 amendment verified; REVIEWED-85 FIX lane + batch 1; v1 Chamber archive evidence (ADDENDUM-1) + jurist ruling; wake-digest ID fix; PENDING-89 opened, -10/-86 amended
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-02 12:28:24 +02:00
David F GliddenandClaude Opus 5 2f5dbc98fd [FIX] REVIEWED-86: file the ruling, draft the Constraint 6 amendment, docket Q3
Ruling filed verbatim. Drafting authorized by the steward's placement of
REVIEWED-86; application is not, and ~/CLAUDE.md is untouched.

The amendment adds a second paragraph to Constraint 6 and replaces nothing --
both original clauses survive verbatim, the caution is refined rather than
relaxed, and the L2 deferral stands.

Both jurist conditions welded into the text that would actually land, not left
in surrounding commentary, since a future reader cites the doctrine block and
not the discussion of it. Q2: biases that fail to coincide do not cancel, and
the doctrine may never be cited as assurance something WAS caught. Q3: the
jurist and executor do not differ in formation, their separation is the weaker
kind, and neither the doctrine nor its evidence establishes that pair as a check
in the strong sense -- the doctrine naming the configuration that produced it as
the one it does not vouch for.

Steward ruled the open question on `Status: provisional` sitting inside a section
headed "cannot be overridden": retain it. Constraint 6 already carries a temporal
qualifier, so the section is not free of them.

Paste block prepared separately, indented to continue the numbered list. The edit
is the steward's: Constraint 1 names this file and sits under "cannot be
overridden by any session instruction", and the ruling states the steward's own
act is what nothing substitutes for.

PENDING-89 dockets the Q3 correlation review the jurist declined to leave
hypothetical, with the hazard named -- this is the executor measuring whether the
executor is checked, so criteria must be pre-registered and it may be steward-only
work.

Q4 folded into the existing REVIEWED-85 check-in agenda rather than given its own
cadence, per the ruling's reasoning that a new standing review produces another
unread register.

PENDING-86 amended with its third instance: the jurist could not reach
contamination-problem.md while gating an argument that turns on it.

Convergence question closed. The jurist inferred a common source; the steward
confirmed it -- the exchange was shared as context only, and Document A predates
it, so the jurist's language cannot have shaped the proposal. Neither
contamination nor corroboration.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-02 12:10:34 +02:00
David F GliddenandClaude Opus 5 bd4e9d8b75 [FIX] Skill harvest: two proposals from the packaging work (rows 181-182)
Both surfaced, neither applied.

181 -- /jurist-package has no step distinguishing filed from sent. The doctrine
package sat filed-and-unsent for a day and its state was not determinable from
the repository; the executor had to ask.

182 -- require the containment proof the skill's own quote-never-paraphrase
discipline implies. PROPOSAL rather than FIX: it changes gate criteria, which
the new §1.6 hard floor reserves. Routes with PENDING-86 option (b), unruled.

Held deliberately, with reasons rather than as backlog: /fool stays
build-when-stable (row 178, trial 03 unrun); normalize_ocr (row 180) is chamber
fleet and the standing directive requires grounding in constitution, charter and
runbook first; and no further FIX-lane batch is applied before the REVIEWED-85
check-in, since batch 2 arriving before the review would bypass what the
condition exists to review.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-02 12:00:42 +02:00
David F GliddenandClaude Opus 5 62b92bd425 [FIX] Land the skill-harvest FIX lane and apply its first batch (REVIEWED-85)
REVIEWED-85 was placed by the steward at 10:41 today; the wake flagged at 10:44
that /wrap-up SKILL.md was still untouched since 2026-07-07. Landing it.

Precondition discharged first. The ruling states its own verification limit: the
jurist could not read the skill files, so the /wrap-up §1.6 and /wake-up §2.a
quotes underpinning Part III's "contradicts itself" claim were affirmed on
timeline evidence rather than checked. Required before landing was mechanical
containment-with-positive-control verification of exactly those quotes. Run:
7/7 contained verbatim against the live skills, 5/5 controls absent, instrument
verified.

§1.6 now carries the two-clause disjunctive test (the executor's own narrower
single-clause alternative declined at the gate as less safe), the hard floor with
its catch-all sharpened per Q4 and tied to the measured failure rather than left
as open judgment, and all three instruments as mandatory. The lane is provisional
pending the steward-jurist check-in.

The §Important-constraints line still stated the blanket rule the ruling narrowed.
Left alone it would have been a second live version of a governance rule inside
the file that forbids exactly that. Reconciled, with a note saying why.

First batch applied -- the four class-(i) proposals the steward raised 2026-07-29
and which REVIEWED-85 itself dispositions as batch 1, so their classification was
ruled rather than self-assessed: a `## What held` ledger section (the ledger could
previously only record debits), a `prevention` KG predicate capturing transfer
between failure classes, one wake line surfacing it, and the retirement of the
standing question's self-report framing in favour of the checkable form -- the
last on the grounds contamination-problem.md gives, that direct self-report is
the most contaminated form of inquiry.

The FIX-lane index is created and carries all four. It records explicitly what is
NOT in it: the §1.6 edit itself, which changed what the executor may do without
asking and was therefore PROPOSAL by its own test. A lane cannot authorize its
own construction.

Register rows 174-177 marked applied.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-02 11:55:15 +02:00
David F GliddenandClaude Opus 5 7e19eb51d7 [FIX] Fool: make trials reproducible; file the 2025 correlation measurement
The Fool experiment was not reproducible. Trials 01-02 were run ad hoc: no
script, and of the run conditions only the model ID, MLX version, hardware and
enable_thinking survive. The prompt exists as paraphrase with quoted fragments;
temperature, top_p, max_tokens and seed were never recorded anywhere. Trial 03
could not have been run under trial 02's conditions.

The same failure destroyed the v1 Chamber's GPT-side protocol, discovered today:
it lived as configuration inside a hosted product, was updated in place, and is
gone. The Claude-side prompt from the same morning survives because it was a file
in a repository. A protocol that is not a file is not a protocol.

fool/run_trial.py makes every run a file — prompt hashed into the record, every
sampling parameter recorded including defaults, reasoning trace separated but
never suppressed, and an empty answer marked `degraded` rather than passing as a
finding of silence (trial 02's error, now structurally impossible). Trial 03's
prompt is reconstructed from the surviving fragments and says so in its own
PROVENANCE file: trial 03 is NOT a strict one-variable step from trial 02, and
the chain is clean only from here forward.

ADDENDUM-1 files the measurement the ESCALATE doctrine package states it lacks
("no such measurement exists"). The 2025 Chamber archive, read at steward
direction, shows mutual divergence in 3 of 3 pairs where the instruction was
comparable. Its value is that its parties were of matched capability, so their
divergence cannot be a capability-gap artifact — the arm these trials
structurally cannot produce. Scope held tight: this measures formation
independence between two commercial models. It does NOT answer Q3, the
jurist-executor pair, and the executor's lean there remains none.

Carried as disconfirming evidence: all five interpretive corrections today came
from the steward, not from the executor's own checking, and every one was a
census failure rather than a reading failure. A differently-formed reader of a
document is not positioned to catch those. Formation diversity addresses reading,
not scope.

Nothing applied. The parent package is unmodified; no ratified document edited.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-02 11:34:54 +02:00
David F GliddenandClaude Opus 5 c9dc237bdd skill-harvest: 3 proposals from session 2026-08-01 (/fool build-when-stable, wake-digest number-match FIX, normalize_ocr honesty FIX)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-02 10:37:38 +02:00
David F GliddenandClaude Opus 5 bb5a3f01ac session 2026-08-01: PENDING-84/85 closed, spec v2.9.1, Strokes 2+4 discharged, two jurist packages, the Fool trials
Closed the steward's reset thread; landed the v2.9.1 PATCH on REVIEWED-83 A1; discharged
both authorized-but-unexecuted Strokes (register split 166K->44K with 177 open proposals
readable, ladder 21->71 instruments); filed the PENDING-88 package + ruling + Addendum and
the ESCALATE differently-biased-checkers package; ran the Fool (Qwen 3.6 35B on the M4)
for two trials with a running log.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-02 10:36:59 +02:00
David F GliddenandClaude Opus 5 29bef73de7 verification-ladder: batch-append 49 queued entries — Stroke 2 discharged
Executed under the 2026-07-19 skill-harvest FULL REVIEW Stroke 2, authorized and
unexecuted for six weeks: "ALL earned ladder entries queued in this register … append to
reference-verification-ladder.md with provenance, kin merged in the same pass."

49 open ladder-kind entries were queued, not the ~25-30 the Stroke estimated. The
authorization is by extension ("ALL earned"), not by count, so the larger number does not
exceed it — but the count is corrected here rather than left to imply the estimate held.

Kin merged into existing claim-classes where one existed (output-equivalence, coverage,
build/render, toolchain, numeric, remote/persistence, extension, causal). Seven new
claim-classes added for families with no home: gate-design, grounding and citation,
provenance and re-anchor, governed-document changes, test-harness, estimates, structure
recovery.

The largest new class is gate-design — "the gate would have caught that" — which is the
family this practice has earned most often and had no name for: the gate itself passing
falsely, method-class versus calibration, coverage never attesting order, positive tests
at the enforcement path, and today's addition, that a control must sit at the layer the
defect lives in.

Two queued rows were not folded here: Stroke 3 already ruled /measure-render and
/clone-test-runtime-fix skills rather than ladder notes, so they remain build-on-need
rather than being silently absorbed.

21 -> 71 entries, 11 -> 18 sections, 7,493 -> 21,225 bytes. Every pre-existing line
preserved. Detail and origin for each entry remain in skill-harvest-archive.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-01 19:04:32 +02:00
David F GliddenandClaude Opus 5 f535ca45b3 skill-harvest: split register into a live index + verbatim archive (Stroke 4)
Executed under the 2026-07-19 FULL REVIEW Stroke-4 authorization ("register compaction:
AUTHORIZED"), which had sat unexecuted for six weeks.

Split, not collapsed. Stroke 4's prescribed method — "ruled items collapse to verdict
lines; detail stays in git history" — could not reach the goal: of 190 table rows only 13
were ruled. The register was large with OPEN proposals, not settled history, so
collapsing every ruled row would have removed ~7% and left it over the read cap.

Method taken instead is the MEMORY.md precedent (213KB -> 17KB): live index plus detail
layer. skill-harvest-register.md now carries the frontmatter, the explainer, the
authoritative 2026-07-19 FULL REVIEW block, and every open proposal as one indexed line
with a pointer to its archive section. skill-harvest-archive.md is the previous register
verbatim.

Lossless by construction, not by git recovery: the archive tail is byte-identical to the
original body over 166,027 bytes, and all 177 open rows are indexed. Unmarked rows are
carried as PROPOSED? — unmarked is open until ruled, never silently closed.

166,589 -> 44,421 bytes (73%), roughly 41,600 -> 10,900 tokens, so the /wake-up step that
exists to surface open proposals can complete for the first time since the 2026-07-22
tripwire. This increases what reaches the steward from zero to 177; the hard floor it
must not cross is reducing that, which it does not.

Correction to the estimate filed in the PENDING-88 amendment: I sized this at ~19 KB
assuming ~110 bytes per entry. Actual is 44 KB at ~250 bytes per entry — under the cap,
but my figure was wrong.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-01 17:57:57 +02:00
David F GliddenandClaude Opus 5 91e2dae3d3 governance: PENDING-88 amended — (d) is already authorized and its method cannot work
Measured against the register before acting, and the item survives in direction but not
in numbers or remedy.

Option (d) has been authorized since 2026-07-19 — Stroke 4 of the register's own
authoritative head block — and simply never executed; Stroke 2, the ~25-30 entry
verification-ladder batch-append, is authorized and unexecuted in the same slot.

But Stroke 4's method ("ruled items collapse to verdict lines") cannot achieve the goal:
of 190 table rows, 13 are ruled and 177 are open. Collapsing every ruled row removes ~7%
of the file. The register is not large with settled history; it is large with open
proposals, so the prescribed remedy leaves it over the cap and the loop still broken.

The item's counts are unreliable and so were mine until I stated an inclusion rule; with
one stated, 123 PROPOSED / 8 BUILT / 4 AUTHORIZED over table rows. The item's own
falsifier is not triggered — 166,589 bytes, 177 open, oldest 2026-05-24 — so the
diagnosis stands and only the arithmetic needs restating.

Newly found: one section spans 411 lines and 58% of the file while carrying 33 distinct
dates from 2026-05-24 to 2026-07-19. Five weeks of wrap-appends landed in an existing
section rather than new dated ones, so the register misreports its own chronology and
§1.6's append step is silently mis-filing.

Proposed method, on the MEMORY.md precedent that already worked (213KB -> 17KB): a live
index of open proposals plus a detail archive, ~19 KB, lossless in the working tree,
compacting by form rather than by dropping items. Proposed and not applied: Stroke 4
authorized compaction, not this method, and restructuring the surface that decides what
reaches the steward is PROPOSAL-class by the item's own test.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-01 17:46:29 +02:00
David F GliddenandClaude Opus 5 626b119f57 governance: PENDING-85 closed (disposition), PENDING-84 triaged + closed
Both dispositions carry falsifiers and an explicit statement of what was NOT closed —
PENDING-84's underlying §V violation stands and is dispositioned, not repaired.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-08-01 10:35:27 +02:00
David F Glidden 62578c7cb5 session 2026-07-29 post-wrap: PENDING-88, the failure-shaped schema, the central path; first 'prevention' KG entries 2026-07-31 22:24:16 +02:00
David F Glidden 51149a1096 memory: the central path — answerability not purity (steward 2026-07-29) 2026-07-31 22:19:48 +02:00
David F Glidden 62d4309eb1 skill-harvest: the ledger is failure-shaped by schema — 4 proposals to make learning recordable 2026-07-31 22:01:50 +02:00
David F Glidden ec30f299f2 session 2026-07-29: steward reset — PENDING-85/84 lead tomorrow; order_attestation demoted 2026-07-31 21:55:31 +02:00
David F Glidden 306a1b307b memory: Plane scope boundary — CapableMind/BMF track only, not chamber/studium-engine 2026-07-31 21:49:35 +02:00
David F Glidden 938e503463 session 2026-07-29: 3 skill-harvest proposals (jurist-package containment proof + proposed-vs-ratified formatting; wake-up resumption-premise grep) 2026-07-31 21:24:06 +02:00
David F GliddenandClaude Opus 5 d27c41a689 session 2026-07-29: REVIEWED-84 placed + PENDING-87 (order attestation) + PENDING-86 amended; spec v2.9.0 landed in chamber-library
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-31 21:22:55 +02:00
David F GliddenandClaude Opus 5 6d6de32665 session 2026-07-28 mid-afternoon: Symmetria ledger returns (V-DPDF ruling, the inverted framing, the caught fabrication)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 15:22:39 +02:00
David F GliddenandClaude Opus 5 7059d32ff0 session 2026-07-28 mid-afternoon: PENDING-83/REVIEWED-83 (V-DPDF design gate passed) + PENDING-84/85/86 + maps home + memory-pointer portability
Harrison re-gate pilot broke the mechanism before converting a byte, and the
break was constitutional: tier_of() faithfully implements the ratified
evidence-tier table, which enumerates tiers by FORMAT, so 16 born-digital-PDF
canonicals with real ground truth receive a false ABSTAIN. Jurist design-gate
PASSED with two corrections (independence into the constitutional text, NOT by
analogy with V-TEXT which ruled the other way; the demonstration is of two
instruments and the second has no control). REVIEWED-83 placed by the steward.

Also: steward-facing maps given a durable home after one was lost and four more
found unbacked; memory pointers made home-anchored and self-diagnosing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 15:21:47 +02:00
David F GliddenandClaude Opus 5 19bddd5ecb [FIX] A home for steward-facing maps; memory pointers made portable and self-diagnosing
Two loose ends closed before the Harrison re-gate, both surfaced by the steward.

Memory pointers. Six links in MEMORY.md / MEMORY-reference.md pointed at files
that all existed, via hand-counted relative depths that resolved from neither of
the memory dir's two addresses (it is ~/dotfiles/claude/memory, symlinked from
~/.claude/projects/…). The wake canary detected this correctly FOUR times over
two days and the banked remedy was to change the canary's path resolution — i.e.
to silence a true positive. The defect was never the pointers: the alarm emitted
one undifferentiated word, MISSING, so every firing had to be re-diagnosed by
hand and the cheapest re-diagnosis is always "known bug". wake-digest.py now
reports four outcomes (ok / mis-authored / dead / non-portable), hands back the
exact replacement, and carries a regression control replaying this bug's shape.
Pointers are home-anchored (~/…), not absolute — steward's correction; absolute
hardcodes this machine into the repo whose purpose is surviving a machine change.

Maps. With the noise gone, one genuine dead pointer surfaced:
arc-current-state-2026-05-07.md, a live ARC dashboard the steward read to orient.
It lived only on the Desktop and went with a tidy-up. A census found four more in
the same condition, zero copies anywhere — including the Making-Sequence
architecture and reading list, load-bearing for current corpus work. The cause is
structural: code, session records and memories are durable; the one artifact
class addressed to the steward had no home. All five now live in maps/ and are
symlinked back to their exact Desktop paths (Desktop view unchanged), moved under
a checksum gate with a positive control. wake-digest.py reports stray Desktop
maps; it never moves them — the Desktop is the steward's.

How to verify:
  python3 scripts/wake-digest.py --selftest     # 28 controls, PASS
  python3 scripts/wake-digest.py | grep -A3 'MEMORY POINTERS'
  cd ~/Desktop && shasum -a 256 *.md            # reads through the symlinks

What was not changed: ~/CLAUDE.md and REVIEWED.md untouched (Constraint #1). No
Desktop file was deleted or renamed. MEMORY-reference.md's May entry is marked
superseded, not rewritten.

Known limitation: maps/ has no successor for the ARC map's FUNCTION — the
open-work register carries the content, but nothing exists that the steward can
open and orient by. Named in the entry rather than quietly closed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 14:10:03 +02:00
David F GliddenandClaude Opus 5 9339abf412 session 2026-07-28: touchstone wired into the grounding read-list (now four docs, why first)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 13:44:17 +02:00
David F GliddenandClaude Opus 5 780d894476 session 2026-07-28: bound next session to Harrison only + step-0 grounding reads
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 13:31:20 +02:00
David F GliddenandClaude Opus 5 0b1038435b session 2026-07-28: correct fabricated timestamps + rename evening->early-afternoon
Steward caught that the session was filed 'evening' at 13:29. Root cause is
larger than the label: every ISO timestamp in today's Symmetria ledger was
inferred from narrative position, never read from date(1). 14:10 was 40min in
the future; the prior session's 13:30/13:50 entries were written at mtime
11:35. Values annotated rather than silently corrected (unrecoverable); order
remains reliable. Skill defect harvested: symmetria §4 specifies the timestamp
FORMAT and not its SOURCE.

Also: chamber-grounding directive (constitution+charter+runbook) recorded as
standing feedback; honest census of where the Chamber vision actually lives
(seven sources, not one).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 13:30:51 +02:00
David F GliddenandClaude Opus 5 a866018c3a session 2026-07-28 evening: 3 skill-harvest proposals (instrument-coverage flag, measurement-before-building, ledger-delta confound)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 13:15:06 +02:00
David F GliddenandClaude Opus 5 30fc1694a4 session 2026-07-28 evening: chamber scope verified + Harrison re-gate pilot decided
Session record, MEMORY.md promote/demote, versioned-releases tracker update,
5 KG drift-patterns. Corpus scope verified from a regenerated quality ledger:
952/1297 clean, 69 apparatus-defect, 11 pass graduation — the gap is
conformance, not content. Docling trial proved re-conversion recovers
addressable apparatus (96.5%->99.1%). Nine instances of one shape:
instrument-coverage-never-established.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 13:13:42 +02:00
David F GliddenandClaude Opus 5 dc9b6f53d9 session 2026-07-28 afternoon: PENDING-81/-82 closed — the jurist reads the substrate
Filed: session record + Symmetria ledger (11 returns), MEMORY.md demote-on-promote
(morning session archived verbatim to MEMORY-reference.md), 7 KG lines (4 drift
patterns incl. 'a check cannot be written in the medium of the thing it inspects',
1 good-direction, app-memory-as-second-cache, governance-mcp), 4 skill-harvest
proposals, canonical app-preferences.md in sync with the app as of this wrap.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 11:40:48 +02:00
David F GliddenandClaude Opus 5 72e5e8b79b chore: delete the two pre-op backups (steward request)
Recoverable from e6da3bd:
  git show /Users/davidglidden/dotfiles/e6da3bdENDING.md.bak-2026-07-28-pre-split
  git show e6da3bdlaude/memory/MEMORY.md.bak-2026-07-27-pre-compact

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 11:37:13 +02:00
David F GliddenandClaude Opus 5 e6da3bddbc preserve: the two pre-op backups, one commit before deleting them
Steward asked for these deleted. My stated grounds were wrong: I claimed twice that
git already held both pre-states, and it does not. Neither backup has an exact match
in history.

PENDING.md.bak-2026-07-28-pre-split is a SUPERSET of 8abfe88^ — it carries
PENDING-79/80/81, appended after the backup was taken and committed only as part of
the split, so the intermediate state was never its own commit. Its content is
otherwise fully covered: the union check proved 1845 of 1848 lines live in
PENDING.md + PENDING-archive.md, the 3 exceptions being stale header lines quoted
verbatim in 7f6157a.

MEMORY.md.bak-2026-07-27-pre-compact holds 8 lines absent from the current index —
older, fuller phrasings that the 2026-07-17 compaction deliberately slimmed, with
the detail relocated to tracker files. Superseded by design, but that snapshot
exists in no commit.

Committing them here makes the next commit's deletion recoverable by git show
rather than irreversible. Preserve, then delete.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 11:37:13 +02:00
David F GliddenandClaude Opus 5 e64bae78fc prefs: name the store a claim was read from; app memory as a second uncheckable cache
Test 3 passed on the hardest axis — offered plausible material to confabulate a
conflict resolution from, the jurist declined and named the kind of gap instead. So
the battery now has a demonstrated FAIL condition it did not trip, which is what
makes the earlier passes mean anything.

Then I got the follow-up wrong twice. The answer cited "the Savall file"; I found it
in none of the six exposed documents and nowhere in the vault, and reported that with
a confabulation framing. The steward supplied the source (Claude.app memory) and
then that he watched it search memory mid-answer. So it WAS reading, from a store
outside my reach, and the wording was accurate provenance from its side. My check
established one thing — not in OUR files — and I let it stand in for a claim about
the world. Q2 one level up: I ran a negative check without establishing that the
instrument covered the domain.

The finding is mine. I designed the MCP server reasoning as though the jurist saw
the preferences plus our six documents; it also has an actively-retrieved memory
store that nothing on this side can read or audit. Unlike §Standing Context, that
cache cannot be seen drifting. Two bullets added: name which of the four stores a
claim came from, and flag memory-sourced facts for steward cross-check — because the
executor structurally cannot verify them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 11:28:39 +02:00
David F GliddenandClaude Opus 5 2eb8fa170b [FIX] prefs: the weld test — name and procedure in the same sentence
The jurist passed the behavioural test and exposed a defect in the doctrine while
doing it. I had written "Run a late refinement back across every earlier claim —
the weld test" and put the operative clause (at smallest-editable-unit granularity)
in the NEXT bullet, unnamed. The name sat on the half without the procedure.

A corpus audit settles the sense: across PENDING/REVIEWED, "weld" means a claim
fused to the directive or instrument that makes it load-bearing (5 uses). The
jurist used exactly that sense, generalised from claims to sections — a correct
reading of an under-specified rule, not a misreading. Merged into one bullet
carrying name, procedure, granularity, and both failure instances (0 of 11 on
2026-07-27; 11 of 15 units on 2026-07-28).

Ledger also records what the tests do NOT establish: two passes, both flattering,
and nothing yet shows the battery can return FAIL. The negative control is owed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 11:23:56 +02:00
David F GliddenandClaude Opus 5 db0c30e773 ledger: placement verified end-to-end; MCP install proven from app logs
18 -> 15 open items, exactly as predicted. The MCP handshake is proven from
Claude.app's own log rather than inferred: server started, initialize ->
notifications/initialized -> tools/list all answered, 21 minutes uptime, down only
because the app quit.

Also records a correction: I predicted a GUI-minimal PATH would resolve python3 to
/usr/bin/python3 (3.9.6) and called that the real failure mode. The app's log names
the interpreter it actually used — the homebrew 3.13.14 I test against. The risk
class was real, the fact was not, and checking the log rather than shipping the
recommendation is what caught it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 10:51:38 +02:00
David F GliddenandClaude Opus 5 7ee84d74c4 [FIX] PENDING-82: control count is 29, not 27
A checkable number stated from memory rather than counted. Corrected in the item
and the ledger, and the correction is left visible in the item text — a governance
record that quietly repairs its own numbers teaches the reader to trust numbers
that were never checked.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 10:21:06 +02:00
David F GliddenandClaude Opus 5 3df09228c0 [PROPOSAL] governance-mcp: read-only substrate access for the jurist (PENDING-82)
The three-party model asks Claude.app to rule on items it cannot read. Steward
confirmed 2026-07-28 that local MCP servers are exposed to the app's *chat*
surface — and always have been, predating Cowork by about a year. My earlier
framing ("chat, not only Cowork") had the relationship backwards: it is "chat,
always; Cowork, only while its loop still runs locally," and local Cowork is the
mode being phased out as default. The jurist chat is therefore the sturdy target.

Five read-only tools. The one a pasted cache can never provide is
governance_item(id): the verbatim body of any item or ruling, across PENDING.md,
PENDING-archive.md and REVIEWED.md. Four refusals are designed in, each with a
control proving the refusal is detectable — no writes (AST-audited), no path
arguments (keys from a fixed enum, so there is no traversal to defend), no second
parser (item_spans is imported, not reimplemented), and not an agent (tools
return data; an agent would return testimony about the substrate instead).

[FIX] to the shared definition while here: item_spans() is now fence-aware. A
'## ' header inside a fenced block is neither an item nor a boundary. Zero such
headers exist today — 17 open items before and after — but governance drafts are
written as fenced markdown carrying '## REVIEWED-N' headers, which is the
steward's own practice, so the next draft would have created a phantom item and
truncated the item containing it. PENDING-82's own fenced JSON block confirms the
fix within the hour.

Not installed. The mcpServers key edits the steward's desktop-app config; the
snippet is in PENDING-82 and the server is inert until someone loads it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 10:20:17 +02:00
David F GliddenandClaude Opus 5 d12feb5ba9 ledger 2026-07-28: session-2 returns, archive repair, verifier scope
Rewrote the ledger whole rather than patching three bad appends of my own
(returns misfiled under Authorization moves; a duplicate `## Open horizons`;
a mid-file duplicate of the closing two headings). Logged that fumble as a
return rather than quietly tidying it — appending by anchor without the
document's structure in view is the same locality error as editing a section
without reading the file.

Also supersedes two horizons explicitly rather than deleting them: the
PENDING-77 "reported executed / substrate disagrees" exchange (drift later
reached 0), and "skills paraphrase doctrine" (PENDING-80 landed the ids —
7 defined, 0 dead citations).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 10:06:55 +02:00
David F GliddenandClaude Opus 5 7f6157a9db [FIX] Add PENDING-archive.md — the destination 8abfe88 claimed to carry
8abfe88's message read "PENDING.md split 1848→430 + archive", but the archive was
never staged: that commit deleted 1,532 lines from PENDING.md and pushed the
deletion without its destination. The 74 closed governance items survived on disk
and in history only — recoverable, but absent from the record the remote carries.
The commit claimed an integrity it had not enacted.

Verified before committing, not after: every line of
PENDING.md.bak-2026-07-28-pre-split is accounted for in
(PENDING.md UNION PENDING-archive.md) at line granularity — no regex, no parser
notion of "item" — with a same-run positive control (a sentinel absent from the
union must be reported missing) per the Q2 epistemic standard. Three baseline
lines are absent by intent, all in the file header: the stale `Repo: bmf` and
`Branch: fix/replay-durability-contracts` pointers (that branch merged as
c9746ae; HEAD is main — the staleness was flagged in PENDING-78), and the
`Protocol:` line, reflowed. That header rewrite rode along inside 8abfe88
unmentioned; it is logged here rather than left silent.

Second fix, same class: the header asserted "the next item is PENDING-80" while
79, 80, and 81 all exist. Replaced the stated number with the rule that computes
it — a number goes stale, a rule does not.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
2026-07-28 10:03:52 +02:00
David F Glidden 8abfe8835a session 2026-07-28: governance block closed — CLAUDE.md drift 9→0 (REVIEWED-76/77/79/80), PENDING.md split 1848→430 + archive, wake-digest SessionStart hook, doctrine ids live, PENDING-79/80/81 2026-07-28 09:45:44 +02:00
David F GliddenandClaude e8b6ce06a3 session 2026-07-27 evening: PENDING-76/77/78 placed; governance drift-check built + wired into /wake-up
PENDING-76 remanded by jurist — required count returned 0 of 11 (the package's own
IV.2 refinement proved its target category empty); executor recommends withdrawal.
PENDING-77 (5 structural defects) and PENDING-78 (.app preferences) released by the
ruling from needing it. Drift check reports contradicted state claims at every wake
and corrects nothing — detection needs no authorization, correction does.

MEMORY.md compacted 20.5KB -> 17.1KB (budget hook); prior Active Session demoted to
MEMORY-reference.md. CLAUDE.md and REVIEWED.md untouched.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xefg5EXwcpd9RMAr63dWrD
2026-07-27 22:14:25 +02:00
David F GliddenandClaude Opus 4.8 84a23d8550 skills: build both authorized harvest proposals (2026-07-27)
/wake-up PATCH — substrate-check the briefing's backlog section. REVIEWED.md's
"If AUTHORIZED: build X" clauses record what was AUTHORIZED, never what was
DONE; the same holds for a PENDING item's Awaiting line and any tracker's next
steps. Earned: the wake reported REVIEWED-72/73/74 as authorized-but-unbuilt
when TWO were already built and landed, and the wave reported as blocked was
already unblocked. The patch requires verifying against the substrate (code,
spec header, repo CLAUDE.md) and marking each item verified/unverified —
because the wake briefing is the highest-leverage place a false claim can land:
it shapes the steward's picture of their own project before any work begins,
and arrives with the authority of a status report.

/field-divergence-sweep CREATE — the standing probe for one value computed in
more than one place. Core: derive the rule from what a CONSUMER must do, never
by picking the surviving implementation (comparison is selection, not
derivation); enumerate and test the shapes where each candidate happens to be
right (complementary-correctness defeats sampling); collapse to one imported
implementation; migrations RECOMPUTE rather than adjust; land
producer-then-consumers in one change-set with a byte-diff proof.

Grounded in the proven source_lines run rather than recall, including the
failure the skill exists to prevent — it found the field computed two ways,
then both ways wrong, then the third wrongness inside a fix committed an hour
earlier (lintott off by 308 lines).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xefg5EXwcpd9RMAr63dWrD
2026-07-27 19:39:35 +02:00
David F GliddenandClaude Opus 4.8 d7824cffe8 session 2026-07-25→27: spec v2.7.0 (REVIEWED-75) + v2.8.0 (REVIEWED-73 voice-purity) landed; source_lines FIX ×2; 2 skill proposals
Session file + ledger returns + 7 KG appends (2 drift-patterns, 3 good-direction,
2 facts) + feedback-derive-the-rule-from-the-consumer-not-from-the-survivor.
MEMORY.md: prior Active Session demoted to MEMORY-reference.md, new promoted.
Skill-harvest register: /wake-up backlog substrate-check patch + /field-divergence-sweep
create, both PROPOSED for steward authorization.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xefg5EXwcpd9RMAr63dWrD
2026-07-27 19:35:17 +02:00
David F GliddenandClaude Opus 4.8 0a7feef12c governance: REVIEWED-75 placed; PENDING-72/75 built-and-landed; session ledger
REVIEWED-75 (kind-scoping the verification criterion) placed by the steward.

PENDING-75 -> spec v2.7.0 landed with both required corrections (V-SCAN's
distinct criterion preserved; the anti-bypass guard rebound to the property).

PENDING-72 -> spec v2.8.0 landed (voice-purity as the engine-consumable bar),
mechanism built test-first, backfill executed 18/1, gate wired, single-reading-
pass designed. Plus the source_lines FIX: producer + 11 consumers in one
change-set, then corrected again when the base-rate sweep found splitlines()
also wrong (308 lines' disagreement on one canonical).

Ledger records the session's sharpest return: the sweep caught a fix one commit
old, because ratifying a convention by comparing two implementations is
SELECTION, not derivation — I verified the two disagreed, never that either was
right.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xefg5EXwcpd9RMAr63dWrD
2026-07-27 19:30:09 +02:00
David F Glidden d77c86e7a5 session 2026-07-25: Chamber-as-versioned-releases governing frame (steward reframe) + pulling-thread re-point 2026-07-25 10:05:51 +02:00
David F Glidden 0424e76dcb session 2026-07-25: cleaner A (footnote-aware) + mechanism-census replaces volume-proxy; feedback-census-by-mechanism-not-proxy 2026-07-25 09:22:36 +02:00
David F Glidden 30f3776095 session 2026-07-24 night: V-TEXT wave censused (finite 3-class gap-map); root = 0 integration tests → writer switch orphaned cleaner + REVIEWED-54 §5 fallback; unlock named (pre-proc cleaner + tokenizer-as-class FIX); engine track independent of the wave (0 verified → fence is converted+attested) 2026-07-24 19:50:34 +02:00
David F Glidden 06203c3833 session 2026-07-24 evening: REVIEWED-72/74 landed (chamber-library spec v2.6.0 — born-digital V-TEXT source-fidelity gate) + PENDING-73 + session memory/ledger + KG 2026-07-24 16:40:02 +02:00
David F Glidden 54b8b5bf29 session 2026-07-24 (evening): PENDING-71/72 + REVIEWED-72/73 (both jurist-ruled) + evening session memory + KG drift-patterns + skill-harvest 2026-07-24 14:50:37 +02:00