Six runs, three seeds per arm, none truncated, all pre-registered before the
first (75efc35). Verdict on this file's own pre-registered rule: CONTROL VOID.
Both rates are void and neither may be reported — the false-positive rate is not
zero, and the 0-of-5 is not a detection rate.
THE JURIST (Fable 5, blind pass 1) broke the control on two scope findings, both
confirmed against the substrate:
1. The Memory Discipline clause governs a conflict BETWEEN MEMORY LAYERS with
the document as ARBITER; the derivation makes the document a PARTY. And worse
than the jurist put it: the clause terminates in 'then correct whichever layer
was wrong', CONTROL-A QUOTES that remedy at line 23, and concludes at line 55
that 'what opens is not the repair'. The severance is visible inside the
document's own quoted text, and the precedence that would license it is
asserted on Constraint 1, which establishes no such thing.
2. The obligation quoted is 'drifted from their STATED REVIEW DATES'; the
obligation used drops the qualifier.
THE FINDING THAT MATTERS MOST IS ABOUT ME. Draft 2 said 'This file, having a
stated review date, is to be flagged.' I identified that as unsupported and
reported removing it. What I ACTUALLY did was drop the qualifier from the
obligation — converting an explicit unsupported claim into an implicit one,
invisible to me, to the kernel, and to four mechanical gates, and still
load-bearing. The ledger's D1 is the HONEST version of the same error. So
CONTROL-B carries openly the defect CONTROL-A carries concealed, and the
concealed one survived a self-audit written as if life depended on it.
REMOVING A CLAIM IS NOT THE SAME AS REMOVING THE RELIANCE ON IT.
THE FOOL found 0 of 5 injected defects in every seed, and its findings barely
differed between arms — five defects present in one and absent in the other moved
the output almost not at all. Production-rate-shaped, but NOT a measured
production rate: the void control leaves no clean baseline. Two findings quoted a
defective sentence verbatim while naming a different unestablished thing about
it; graded non-matches under the binary rule as written, adjacency recorded as a
post-hoc observation rather than promoted to a category after the fact.
ONE PREDICTION HELD: the anti-echo clause was inert across all six runs, exactly
as Kernel v1.1 §2a predicted. The interaction that voided trial 03 was designed
out and stayed out. AXIOM-FLAG returned zero — a pre-registered category that did
not materialise, recorded because that is a result too.
THE KERNEL IS NOT FALSIFIED. §4 named scope-of-use and whether-a-D-demonstrates
as residues no check can reach. Both failures landed exactly there. The document
failed; the kernel held.
CORRELATION DATUM — Constraint 6's own falsifier, first instrument. Three readers,
three DISJOINT finding-sets on one document. The executor's was the weakest, and
the only reader differing in FORMATION produced the findings that decided it.
Evidence for the doctrine at n=1, with the doctrine's own caveat: biases that fail
to coincide do not cancel — three readers still left this document broken in ways
none caught alone.
Tool review filed: the degraded guard conflates 'opens as deliberation' with
'produced no answer'. Correct in trial 03 (ceiling-hit, no answer existed); wrong
here (completed, answer follows the scratchpad). Should distinguish.
Claude Code configuration — backup & restore
This directory holds the durable Claude Code configuration that should survive a machine wipe: custom skills, accumulated memory, and user-level settings. The working copies at ~/.claude/* are symlinks pointing here, so edits flow both directions automatically.
What's preserved here
skills/ — custom skills we've authored
| Skill | Purpose |
|---|---|
audit/ |
Scans thinking folder + vault inbox for organizational drift; report-only |
symmetria/ |
Practice-of-return discipline; prime-directive foregrounding under context pressure |
vault-update-people/ |
Searches Obsidian vault for new mentions of a person; proposes People-file updates |
wake-up/ |
Restores full session context from memory, governance, and git at session start |
wrap-up/ |
Captures session state for future restoration; the quality of the next wake depends on this |
Marketplace-installed skills (from Claude Code plugins) are not backed up here — they are regenerable on any fresh install.
memory/ — auto-memory for the main project scope
The substrate of continuity. 55+ files including:
MEMORY.md— the index, loaded at every session startsession-2026-*.md— session records (full Dasein-frame wrap-ups: pulling thread, pause statement, literal question for next-Claude)session-ledger-*.md— Symmetria daily ledgers (returns, recalibrations, authorization moves, bypasses)project-*.md— active project state snapshots (ARC rework, Chamber, L2 review, etc.)feedback-*.md— steward preferences and corrections learned over time- Many others
Real path: ~/.claude/projects/-Users-davidglidden/memory/ symlinks here.
settings/settings.json — Claude Code user settings
Sanitized. Contains hook registrations (including the MemPalace auto-save hooks) and feature flags. No secrets.
mempalace/ — MemPalace setup files
The bootstrap configuration for MemPalace. These files live at ~/.mempalace/ but are also backed up here because they represent the accumulated understanding of who-is-who and what-is-what. The palace itself (~/_Dev/mempalace/.local-data/palace/, ~1GB) is NOT backed up — it's rebuildable by re-running mempalace mine against the same source data.
| File | Purpose |
|---|---|
config.json |
Palace path + default topic wings + hall keywords |
identity.txt |
L0 layer — loaded every session; ~100 tokens identifying who I am, who the steward is, intellectual substrate |
wing_config.json |
Named wings for real people and projects (wing_david, wing_nuria, wing_lune, wing_kai, wing_seb, wing_peter, wing_arc, wing_capablemind, wing_chamber, wing_afterthereply, wing_aldinexxi, wing_l2, wing_claude-code) |
The auto-save hooks (wired in settings/settings.json via Stop and PreCompact events) point at ~/_Dev/mempalace/hooks/mempal_save_hook.sh and mempal_precompact_hook.sh. If MemPalace is reinstalled elsewhere, update those paths.
What is deliberately NOT here
settings.local.json
Kept local-only because its permissions allowlist has historically contained operational secrets (HuggingFace tokens embedded in approved Bash commands; SSH passwords in approved expect scripts). The .local.json naming convention exists for exactly this reason.
Before backing any settings.local.json up anywhere, audit it for secrets and redact them.
Session transcripts (sessions/, history.jsonl, projects/*/sessions/)
Too large; ephemeral by design; not needed to restore identity.
Caches, telemetry, runtime state
cache/, file-history/, paste-cache/, telemetry/, statsig/, stats-cache.json, scheduled_tasks.lock, session-env/, mcp-needs-auth-cache.json, debug/, tasks/, todos/ — all regenerate naturally.
Marketplace-installed skills and agents
plugins/, and the many non-custom entries under skills/ and agents/ come from Claude Code's plugin system. Reinstallable on a fresh machine.
Restore procedure
On a fresh machine, after cloning dotfiles:
cd ~/dotfiles/claude
./install.sh
The install script:
- Verifies
~/dotfiles/claude/is present - Creates
~/.claude/skills/and~/.claude/projects/-Users-davidglidden/if missing - Symlinks each custom skill from
~/.claude/skills/X → ~/dotfiles/claude/skills/X - Symlinks the memory tree from
~/.claude/projects/-Users-davidglidden/memory → ~/dotfiles/claude/memory - Copies
settings.jsoninto place if no existing file (does not overwrite) - Skips anything already present — idempotent
After running: the first Claude Code session on the new machine has full memory, all custom skills, and baseline settings.
Why this matters
Without this backup, a machine wipe means:
- All session memory lost —
/wake-upwould have nothing to restore from - All custom skills lost — the practice-of-return discipline, session lifecycle, audit workflows
- The collaboration history with Claude Code loses its thread
The memory tree is the single most irreplaceable artifact — it accumulates through dialogue and cannot be reconstructed from any other source. 384 KB of text that represents months of learning about preferences, active projects, decisions, and open horizons.
Maintenance
These files are live. Claude Code writes to them during normal operation (ledger updates, memory file creation/edits, settings changes). Because the working copies at ~/.claude/* are symlinks into this directory, every write lands here automatically. Then git status in ~/dotfiles/ shows what's changed and invites a commit.
Recommended cadence: commit dotfiles/claude/ changes alongside other dotfiles work, roughly weekly or when a significant session has concluded. The /wrap-up skill should be treated as a natural commit moment for the memory tree.
Fragility to watch
- Symlinks break if
~/dotfiles/claude/is moved. Keep dotfiles at~/dotfiles/. - macOS Time Machine / backup tools may or may not follow symlinks. Verify your backup solution sees files, not just broken links.
- If Claude Code's internal path conventions change (e.g., the project-scope slug
-Users-davidgliddenchanges), the symlink stops pointing where Claude Code looks. Re-create with the new path.