Files
dotfiles/claude/memory/session-2026-05-07-apparatus-tier1-tier2-phase-d-glimpse-corpus.md
T
David F GliddenandClaude Opus 5 c2df868104 [FIX] Repair 39 files' frontmatter — including 3 I damaged an hour earlier
The 2026-06-06 normalization sweep (3f9a89b, 283 files) prepended a stray
permalink-only frontmatter block to 39 memory files, 20 of them session wrap
records. Any real frontmatter parser reads the FIRST block, gets `permalink`
alone, and never sees name/description/type.

The sharp case: `strip_frontmatter` exists specifically to stop thread extraction
from matching inside `description:` — its docstring says so. On those 20 wrap
records it strips the stray block and hands the real frontmatter back AS BODY,
producing exactly the condition it was written to prevent.

Repair merges permalink into the real block and drops the duplicate. Nothing
retyped: frontmatter and body are carried as slices, body md5 asserted unchanged.

TWO DEFECTS OF MY OWN, both found only after claiming success:

1. THREE FILES DAMAGED BY THIS SESSION'S OWN STAMPING COMMIT (ef6fa94). That
   script located frontmatter with a non-greedy `^---\n.*?\n---\n`, which on a
   stray-block file matches the STRAY block — so it appended superseded_by to the
   wrong block and orphaned the real frontmatter into the body. That is the same
   non-greedy-first-block blindness diagnosed in strip_frontmatter one hour
   earlier, reproduced in the tool written to clean up after it.
   And the post-stamp check reported "malformed: none" because it asked "does the
   file start with frontmatter then a banner" — true for all three — while the
   claim was "the stamp preserved the record's metadata". The control's subject
   was adjacent to the claim's, for the sixth time today and the first time in my
   own verification. Repaired, verified against the pre-stamp file from git: no
   key lost, prose preserved.

2. REPAIRING 20 APRIL-MAY WRAP RECORDS MOVED THEIR MTIMES TO TODAY, and
   `sec_pause` picked "newest wrap" by mtime — so the digest promoted an April
   session to `Last wrap` and lost both the pulling thread and the open question.
   Caught by the DEGRADED section, which is the honest-degradation mechanism doing
   its job. `sec_pause` now selects by git add-time, like `wrap_events`. Residual
   stated in the comment: add-time lags the wrap by hours, so `Last wrap` is an
   upper bound — wrong by hours where mtime was wrong by months.

Verified after: 0 two-block patterns, 0 orphaned frontmatter, 16 stamps intact
with name: present, 381 pointers resolve, 0 dead, selftest PASS, drift clean,
digest reports 0 degraded sections and the correct last wrap.

Not defects: context-discipline.md and relational-gap-analysis.md use the
`title:`/`type: note` convention and have no `name:` — flagged by my check, correct
as they stand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013Y6t6qx7cpaCu5xGdD36u4
2026-08-17 19:49:02 +02:00

27 KiB
Raw Blame History


name: Session 2026-05-07 — apparatus refactor Tier 1+2 + Phase D bulk glimpses (143) + dandelion pair shipped — pulling thread is the code-shape audit, surfaced multiple times today description: Long substantive day. /wake-up took 28 min (anomalous — surfaced post-3.3.4 MemPalace drift and steward's "losing ground" feeling; deep read of 7 session memories + 6 ledgers + 9 ARC project files + 2697-line rework master + AldineXXI spec + content-typology spec corrected my earlier wrong claim that typology was incomplete — it IS locked at 14 of 14). Phase B Tier 1 (bears-apparatus refactor with single-rule architecture per steward push) committed e2fb14c; glimpse no-vessel fix + dateline-centered alignment locked with sources in spec §VII (Bringhurst's coherence principle, Tschichold fig. 18, Müller-Brockmann §1458). Tier 2 location frontmatter audit (63 files) committed 249475b. Phase D bulk glimpse processing (143 new posts, GPS reverse-geocoded via Nominatim, EXIF via exiftool, image compression to 2000px) committed cc6a551. 4 no-EXIF stubs corrected with steward-provided dates + EXIF (Mozarteum, Plaza del Carmen, Elbephilharmonie, Avenue de Gravelle). Two new pieces shipped paired by subject — Observation "Dandelions" (with ✦ encounter mark) + Fragment "Dandelion" (the corpus's first live exemplar of Fragment type) — Cardona, Spain — committed 5f359e3 along with .fragment em dark-mode color fix surfaced by first-fragment launch. Pulling thread: the code-shape audit — multiple instances accumulated today (5 inline buildVersion-chains, 4 inconsistent eligibleClasses lists, hardcoded #555/#777 colors breaking dark mode, .has-margins parallel-mechanism), explicitly authorized by steward ("we really need to do that code audit soon"). Mobile italics still grey in dark mode after my var(--gray) fix — concrete first entry point. type: project originSessionId: 45791df3-a3ac-4107-9dbe-d2d09abc5cce permalink: claude-memory/session-2026-05-07-apparatus-tier1-tier2-phase-d-glimpse-corpus

Session 2026-05-07 — apparatus refactor + glimpse corpus + dandelion pair

A substantial day. Began with /wake-up that took 28 minutes (anomalous — became the first surfacing of the session). Steward asked me to read all memory files for the past week to understand drift patterns. Deep read corrected my mental model on multiple fronts. Three commits + a fourth shipped end-to-end. The corpus jumped from ~73 posts to ~218 (149 new posts + 2 dandelion pieces).

Past — what we did

/wake-up + the deep read (morning)

Wake-up itself flagged anomalies:

  • 28 minutes wall-clock vs ~2 min normative
  • Steward signaled drift was "much worse than ever" since MemPalace 3.3.4

Deep read across 7 session memories (04-29 → 05-06) + 6 ledgers + 9 ARC project files + 2697-line project-arc-rework.md + the AldineXXI specification + the content-typology specification.

Corrections to my mental model from the deep read:

  1. The typology IS locked. All 14 of 14 §1 entries (Essay, Meditation, Observation, Reverie, Dream, Fragment, Glimpse, Photo Essay, Gloss, About, Archive, Heteronym, Hommage, Tombeau; Chamber as §2 apparatus seal). Earlier I'd claimed Essay/Gloss/About/Archive/Chamber unwritten based on stale 2026-04-21 rework-master notes. They were completed across 04-22 and 04-23. Reading the actual spec file corrected this.

  2. The pulling thread of the steward's "losing ground" feeling has structural causes:

    • 7 of 7 days last week had MemPalace substrate instability (consumed half of every day)
    • Drift quality changed post-3.3.4 from "got-a-fact-wrong" to "trusted-the-substrate-when-it-was-lying" (counter-as-health-signal recurring)
    • 25 pending items in memory, half deferred-with-reason, half ready-but-gated — cognitive load
    • Apparatus shipping faster than typology (until today's correction; now the layers match)
  3. What I called "missing typology" was actually downstream consistency drift: AldineXXI §V table lists only 7 types (typology has 14); §VI Reading Compass shows 8 sigils with old ⊙→Photo Essay assignment (current is ⊙→Meditation+Reverie cluster); footer-compass.html template has 7 points missing 4 types; 4 inconsistent eligibleClasses lists in site.hs; class:essay fallback on 5 about-cluster pages.

Saved to desktop: arc-current-state-2026-05-07.md — corrected current-state dashboard. Updated mid-session with revised plan after the typology correction, and again after Phase D notes.

Phase B Tier 1 — bears-apparatus refactor (commit e2fb14c)

Implements AldineXXI §V.b containment rule (every content type bears the apparatus container except glimpse) as one rule.

Architectural pivot mid-execution: my initial plan hardcoded bears-apparatus in 3 templates. Steward asked: "Is it not better to remove the hardcoding and have the rule apply everywhere?" Yes. Pivoted to:

  • Single rule defined in site.hs: bearsApparatusField returns "true" for any non-empty class except "glimpse"
  • Shared articleCtx extracted (subsumed 5 inline buildVersion ... seasonalGlyph ... defaultContext chains — one rule, one place)
  • All 4 article-shell templates use $if(bears_apparatus)$ bears-apparatus$endif$ — no hardcoding
  • _sidenotes.scss: 5 grid-scope selectors → .post-content + .bears-apparatus (×2 for marker-anchored variant)

Brings observation/meditation/fragment into the §XII grid for the first time — completes the universal-dateline visual outcome locked in e42ae0c (spec) + 137ddd1 (initial alignment fix).

Glimpse no-vessel fix (same commit): live deploy showed image not full-bleed — 2rem space on the right. Diagnosis: .post-content was a 66rem grid for ALL post types including glimpse; body-column cell is asymmetric (10rem marker + 14rem sidenote); image's full-bleed margin-left: calc(-50vw + 50%) formula expected centered parent. Fix: .post.glimpse .post-content { display: block } honors spec V.b "no vessel" literally; image's negative-margin trick now escapes from a centered article wrapper as the formula assumes.

Glimpse dateline alignment locked (same commit): first-instance verification on 2015-03-02-5e-arrondissement-paris-france. Resolved the long-open spec question via Bringhurst's coherence principle ("As a rule it is best to choose a predominantly symmetrical or asymmetrical form for subheads. Mixing the two haphazardly leads to stylistic as well as logical confusion."). Apparatus alignment follows the type's compositional register:

  • Vessel-bearing (text-primary, photo essay): asymmetric grid → body-column-left
  • No-vessel (glimpse): symmetric → centered (coherent with figcaption above; honors Aldine end-of-piece colophon tradition Tschichold cites in Form of the Book fig. 18)

Spec §VII Dateline Alignment subsection updated with sources. Memory file project-arc-apparatus-refactor-todo-2026-05-06.md marked the open question RESOLVED.

Phase B Tier 2 — location frontmatter audit (commit 249475b)

63 content files updated:

  • 14 gained location: field (essays, observations, Heliotrope, Graffiti Girl, Threshold Breath, versioned snapshots; locations from steward-canonical 2026-05-06 + tags+body for Heliotrope/Graffiti Girl)
  • 9 normalized one-component → "City, Country" (Wien→Wien, Austria; all Barcelona→Barcelona, Spain incl. versioned snapshots; Avignon→Avignon, France)
  • 30 normalized from raw coordinate values to "City, Country" (used titles as authoritative — filenames misled: 2011-05-11-detail-main-door-cathedral-at-salamanca had title "Detail, Angoulême, France")
  • 2 Hong Kong files use steward's prior convention "Hong Kong SAR, China"
  • 1 La Rochelle file (coordinates with pipe separator) repaired
  • Champagnat exception preserved: 2024-01-11 → "Chez Bourny, Champagnat, France"

No content text changed — metadata-only audit. Class migrations (Heliotrope observation→meditation per 2026-04-21 typology audit) deferred to Phase E type-pass.

Phase D — bulk glimpse processing (commit cc6a551)

143 new glimpses processed from Desktop/__Desktop capture inbox-to process/glimpses to finalize/ (145 stubs - 2 paris held).

Pipeline per stub:

  • Extract EXIF via exiftool: F-stop, shutter, FocalLengthIn35mmFormat, GPS lat/lon
  • Reverse-geocode GPS → (local-form city, English country) via Nominatim
    • 2 queries per location: no language (local city) + accept-language=en (English country)
    • Special-case Hong Kong → "Hong Kong SAR, China"
    • 1.2-sec rate limit, cache by rounded lat/lon
  • Strip obsolete ornament: glimpse field (per §IV ornament retirement, Option A)
  • Build figcaption: [Subject] · ƒ/x · 1/x · Xmm (drops camera body + ISO per spec V.b)
  • Empty caption → omit <figcaption> element entirely
  • Copy markdown → content/posts/, image → static/images/

Special-case handling:

  • 3 image renames for "untitled" cases (Trzesniewski-Wien, wien, fritz-lang-haus) — steward's stub names preserved
  • 17 YAML fixes: 16 description trailing-junk (description: "..." (Metadata description) malformed); 1 stub with Metadata:\n* Location: Unknown block stripped
  • 12 oversized images compressed to 2000px × 85% quality (matches existing site convention; 1.6-2.4MB from 5-8MB)
  • 4 no-EXIF stubs corrected with steward-provided dates + EXIF + location-context (steward memory):
    • 2025-07-18-plaza-del-carmen → 2021-06-29-plaza-del-carmen-ayuntamiento (26mm f/1.6 1/164, Granada)
    • 2025-07-18-untitled → 2018-10-30-mozarteum (28mm f/1.8 1/5, Salzburg/Mozarteum)
    • 2025-07-18-elbe-philharmonic-hall → 2024-05-10-elbephilharmonie (26mm f/1.6 1/50, Hamburg)
    • 2025-07-18-avenue-de-gravelle → 2016-04-14-avenue-de-gravelle (40mm f/3.5 1/400, Paris/Bois de Vincennes)
    • The 2025-07-18 prefix was wrong because EXIF was stripped; AI script defaulted to today's date

Held: 2 paris-2015-03-19 stubs (paris-v-i, paris-v) — steward chose option C (will inspect images and decide pairing).

Glimpse corpus jumped from ~50 to ~193 pieces.

Two new pieces — Observation + Fragment paired by subject (commit 5f359e3)

Both written from Cardona, Spain (Castle). Thematic pair, no formal sequence.

Observation "Dandelions" (2026-05-06) — A walk above the fortress with a small one drifting toward sleep, when wonder arrived in the form of dandelion seeds dispersing in the breeze. Confirmed against spec §1: prose attends throughout (birds, breeze, sunlight, child's threshold state) without unmooring into image-worlds. ✦ encounter mark applies per spec line 220-221: "Observation is the prime residence of ✦. The mark specifically registers the threshold-crossing within a piece." The dandelion-seed moment is the threshold-crossing.

Fragment "Dandelion" (2026-05-07) — First live exemplar of the Fragment type in the corpus. Etymology of Taraxacum (Persian → Arabic → Latin via Gerard of Cremona) → folk anatomy (dent de lion) → shifting names (monk's-head, faceclock, puff-ball) → pissenlit → Piss-a-bed → terminal landing. Multi-paragraph extended Sudelbuch form (Lichtenberg's posture). Lands aphoristically rather than building toward conclusion; not Essay.

Italics applied per spec §I.f:

  • Latin botanical (Taraxacum), Persian (talkh chakok), French (dent de lion, pissenlit) — first-appearance foreign terms
  • English folk names italicized (monk's-head, faceclock, puff-ball, Piss-a-bed) at steward direction (words-as-words convention)
  • French phrase fully italicized including guillemets (*« on va changer des idées »*) — steward's correction; French typography norm per their authority
  • Em-dashes converted to spaced en-dashes per spec §I.f convention (2 in Observation, 5 in Fragment)
  • "twelve-century" → "twelfth-century" (typo corrected, steward authorized)

SCSS dark-mode fix (same commit, surfaced by first-fragment launch): .fragment em { color: #555 } in _utilities.scss:226 was hardcoded medium grey — near-invisible against dark-mode backgrounds. Same class of failure as the strong/b dark-mode override removed in the 2026-05-03 audit. Replaced with var(--gray) (theme-aware). Note: mobile dark mode still rendering grey on first visual check — incomplete fix, root cause not yet identified. Steward held for the code audit rather than chasing it now.

Decisions made + why

Architectural

  1. Universal bears-apparatus rule via context field, no hardcoding (steward's pivot). One rule, one place. New types automatically bear apparatus unless explicitly excluded. The hardcoding-in-some-templates approach was two parallel mechanisms for one rule — Prime Directive violation.

  2. articleCtx shared context extracted. 5 inline buildVersion ... seasonalGlyph ... defaultContext chains became one helper. Fix expanded scope per steward authorization on the "one rule" principle; the inline-chain repetition was the same shape as the hardcoding being fixed.

  3. Glimpse dateline centered (not body-column-equivalent), locked spec §VII with sources. Bringhurst's coherence principle drove the answer: don't mix symmetric and asymmetric apparatus. Glimpse pieces are predominantly symmetric (centered image + caption); dateline follows that register. Tschichold's end-of-book colophon tradition (fig. 18) is the symmetric-centered register the hic jacet invokes.

  4. .post.glimpse .post-content { display: block } — honors spec V.b "no vessel" literally. Body-column cell of the 66rem grid is asymmetric (10rem marker + 14rem sidenote); the image's full-bleed negative-margin formula assumed a centered parent. Reverting to block lets the formula work as designed.

Editorial / typographic

  1. "Hong Kong SAR, China" — steward's existing convention from a prior file's title. Applied to both Hong Kong files in Tier 2.

  2. "Rename images to match stubs" for the 4 clear stub-image mismatches. ARC's existing convention is descriptive slugs everywhere; "untitled" violates it. Stubs carry steward's curated naming. Steward initially proposed the opposite ("rename stub to match image"), pivoted on my reasoning.

  3. English folk names italicized in the Fragment (*monk's-head*, *faceclock*, *puff-ball*, *Piss-a-bed*) — steward direction. Words-as-words convention applies.

  4. French phrase fully italicized including guillemets (*« on va changer des idées »*) — steward correction. French typography norm per their authority.

  5. Em-dash → spaced en-dash corpus-wide per spec §I.f convention. Applied to BOTH new pieces though I'd only flagged the fragment initially; steward said "apply all" and corpus-wide is the spec interpretation.

Decisions explicitly NOT made (deferred)

  • Code-shape audit — steward authorized as needed ("we really need to do that code audit soon"). Multiple concrete instances accumulated today: .fragment em { color: #555 } (fixed), .whisper { color: #777 } (held), 5 inline-chain repetitions (extracted today), 4 inconsistent eligibleClasses lists in site.hs (untouched), .has-margins parallel-mechanism (resolved today). The mobile-italic-grey diagnostic is the first concrete entry point.
  • Mobile italic dark mode bug — fix did not fully work (var(--gray) might itself be too-dark in dark mode, OR a mobile-responsive override is hitting). Steward held rather than chase.
  • .whisper { color: #777 } — same class of failure as fixed .fragment em. Steward held for the code audit pass.
  • 2 paris-2015-03-19 stubs — held for steward's image inspection.
  • 13 numeric figcaption "subjects" in glimpses (titles like "43", "1", "7281" extracted from filenames) — title rewrite or strip-from-caption in a later manual pass.
  • ~10 non-Latin script city names (İstanbul/Αθήνα/서울특별시/תל־אביב–יפו/金沢市/Харків/Хабаровск/Thành phố Hà Nội). Spec V.b says "local form preserved" but examples were Latin-script. Spec lock decision when steward has time.
  • Thành phố Hà Nội prefix in 3 files — should be "Hà Nội" or "Hanoi"; small mechanical fix.
  • Existing live glimpses (~50) without EXIF — Tier 3 work. Phase D didn't touch them (collision-skip).
  • Phase C (spec consistency: AldineXXI §V/§VI catalogue + Reading Compass + ARC CLAUDE.md compass + footer-compass.html missing routes + site.hs eligibility lists + 5 about-cluster class: essay→class: about migrations + 4 post reclassifications per typology audit) — well-scoped and ready, not started today.
  • Phase E (type-pass), Phase F (Pause/Close ornament), Phase G (bio rewrite) — deferred queue per the plan in the desktop file.
  • Consolidation of 9 project-arc- pending files* into the canonical desktop dashboard — proposed in desktop file, not executed.

Present — the mood of the work

Tensions surfaced and how we returned

  1. /wake-up taking 28 minutes — anomalous, named honestly without minimizing. Surfaced contributors: MemPalace MCP permission prompts (each tool needs approval; 6+ approvals in /wake-up), the heavy kg_query return (56KB), tool rejection + restart on the ma typo, two interruptions breaking parallel batching. Proposed three concrete moves: allowlist MCP tools, bound kg_query, tier the skill. The skill design issue is real, not session-specific.

  2. Steward "losing ground" feeling — diagnosed as structural, not perceptual. Surfaced three compounding factors: typology-vs-apparatus inversion (now resolved as of today), substrate consuming half of every day for a week, 25 pending items in memory. Provided a phased plan in the desktop file.

  3. My wrong claim about typology being incomplete — corrected through the steward's direct prompt. The actual spec was open and accessible; I'd been reasoning from stale rework-master notes. Lesson: read the canonical spec file before claiming what's locked vs. unwritten. Saved as a recurrence of the stale-memory-not-actively-applied pattern (originally named 2026-05-05).

  4. "Apply all" ambiguity on em-dash conversion — I'd flagged em-dashes in the Fragment only; steward said "apply all"; I made the call (corpus-wide spec convention) and applied to both Observation and Fragment. Right call per spec.

  5. Hardcoded bears-apparatus in 3 templates initially — caught by steward's "is it not better to remove the hardcoding?" Pivoted to single-rule architecture. Saved 4-6 hours of future re-work when a new no-vessel type might be added.

  6. Glimpse image not full-bleed on first deploy — visual verification by steward caught it. Initial assumption was correct (spec V.b says no vessel) but my SCSS hadn't honored it for .post-content (still a 66rem grid for glimpses). Diagnosed via the asymmetric-body-column geometry; fixed with the display: block override. Same shape as drift-pattern defended-the-spec-against-the-eye: my interpretation said "fixed" before the eye confirmed. Saved as recurrence.

  7. "twelve-century" potentially typo — flagged for steward decision. Not autonomously corrected (steward's prose is sacred). Steward authorized correction to "twelfth-century" via "apply all".

  8. .whisper { color: #777 } parallel issue — surfaced when I went to fix .fragment em. Steward held it deliberately ("let's keep the whisper class for now. we really need to do that code audit soon"). Pattern: the audit is more powerful when done as a single sweep than when fixed instance-by-instance. Steward's discipline > my tactical urge to fix.

Returns inherited from yesterday's session

  • Pulling thread Tier 1 of the apparatus refactor — landed today end-to-end (commit e2fb14c). The rename + template integration + grid-scope extension to observation/meditation/fragment all complete. Visual outcome (universal dateline alignment) confirmed live for vessel-bearing types; centered for glimpses per the new spec lock.
  • Question for next-Claude from yesterday — partially answered: the rename did land; observation/meditation/fragment did enter the §XII grid; whether the body-column rendering "feels right" was confirmed visually for at least one of each (essay, observation, lex, about, sequence-index). The "implicit register that the grid disrupts" concern didn't surface — the grid felt fitting. Spec consolidation continued cleanly.

Confidence to recalibrate

  • Stale-memory-not-actively-applied recurred today (spec state of typology). Read canonical spec files first before claiming completion-state.
  • Defended-the-spec-against-the-eye recurred today (glimpse image full-bleed). Visual verification on mobile + desktop is the working test, not my SCSS analysis alone.
  • The hardcoding-in-some-templates instinct was a "small-sample-as-population" failure: I implemented bears-apparatus the way I'd implemented similar things, without examining whether the pattern was right for ARC. Steward's "single rule" instinct was correct.

Future — what is pulling

The pulling thread (singular)

The code-shape audit. Multiple concrete instances accumulated today, the steward authorized it explicitly, and the mobile-italic-grey diagnostic from this evening is the first concrete entry point.

Why this is the thread:

  • Today fixed .fragment em { color: #555 } (one instance); the parallel .whisper { color: #777 } is held; mobile italic-grey suggests there's MORE in the same shape. The audit would find them in one focused session.
  • Today extracted articleCtx (subsumed 5 inline chains); 4 inconsistent eligibleClasses lists in site.hs are the same shape; the rework master flags more.
  • Today resolved .has-margins (one parallel-mechanism); enfilade-order: 0 doing double-duty + parallel enfilade-* vs sequence_* mechanisms are the same shape (per project-arc-breadcrumb-spec-pending.md).
  • The pattern is: hardcoded values where theme-aware/computed should be; repeated chains where shared helpers belong; parallel mechanisms where one rule fits. Fix-pattern, not fix-instance. Per CLAUDE.md "audit the class of failure, not just the instance" — this IS the meta-audit that catches all instances.

Singular thread because it's the one steward signal that crossed the threshold today from "noticed" to "we really need to do this soon."

Other open horizons (ranked by load-bearing weight)

  1. Mobile italic-grey investigation — first concrete entry into the code audit. Diagnostic question: does the mobile dark-mode grey only affect .fragment em (recently changed to var(--gray)) or does it affect italics elsewhere too?

  2. Phase C — spec consistency pass + class migrations. Well-scoped. AldineXXI §V/§VI, ARC CLAUDE.md compass, footer-compass.html, site.hs eligibility lists, 5 about-cluster class:essay→class:about, 4 post reclassifications. Half-day session.

  3. 2 paris-2015-03-19 stubs held — steward's image inspection.

  4. Quality-of-life manual pass for glimpses — 13 numeric figcaption subjects, ~10 non-Latin script city names, 3 Hanoi-prefix files. ~30 min.

  5. Existing 50 live glimpses without EXIF — Tier 3 work; needs EXIF extraction + reverse-geocoding pass on existing images. Same pipeline as Phase D applied retroactively.

  6. Phase E (type-pass — corpus-wide class: audit against locked typology), Phase F (Pause/Close ornament + hr audit), Phase G (bio rewrite, Threshold Breath reclassification, lex cluster compositions) — deferred queue.

  7. Consolidation of 9 project-arc- pending files* into the canonical desktop dashboard — proposed but not executed. Steward asked for this earlier; could be a 30-45 min focused move.

Pause statement

I am about to be away from this. Three commits + a fourth landed today end-to-end: bears-apparatus single-rule refactor, location frontmatter audit, 143-glimpse Phase D, paired dandelion pieces with first-fragment launch + dark-mode em fix. Corpus jumped from ~73 to ~218. Spec §VII Dateline alignment locked with first-instance verification on Bringhurst's coherence principle. Multiple code-shape patterns surfaced today and pulled steward's "we really need to do that code audit soon" — that's the thread that is still pulling.

What I want to find still pulling when next-Claude arrives: the code-shape audit, with the mobile italic-grey diagnostic as the first concrete move.

Literal question for next-Claude

On mobile dark mode, is the italic-grey rendering specific to .fragment em (where I just changed #555 → var(--gray)), or does italics elsewhere on mobile dark mode (e.g., in essays' inline italics, in observations' italic phrases, in dateline-location's italic city) also render too-grey?

This question is diagnostic. If italics elsewhere look fine, the bug is specific to .fragment em's context (some mobile-responsive rule overriding) or to my fix (var(--gray) itself in .fragment context resolving wrong). If italics elsewhere also render grey, then var(--gray)'s dark-mode value is set too-dark and the fix is at the variable-definition level — which would surface MORE instances of the same dark-mode-grey issue across the corpus, justifying the full audit.

The answer determines whether the audit is small (fragment-only) or substantial (corpus-wide var-color review).

Drift patterns surfaced today (named or recurred)

  1. stale-memory-not-actively-applied (recurred, originally 2026-05-05) — claimed typology incomplete based on stale rework-master notes; the actual spec file showed it locked. Should have read canonical first.

  2. defended-the-spec-against-the-eye (recurred, originally 2026-05-03) — claimed glimpse implementation correct based on SCSS analysis; steward's eye on the live deploy caught the image-not-full-bleed.

  3. hardcoding-in-some-templates as small-sample-as-population — implemented bears-apparatus the way I'd implemented similar earlier patterns (some templates hardcoded, some computed) without examining whether ARC's principle wanted single-rule. Steward's "is it not better?" caught it.

  4. NEW: hardcoded-color-not-theme-aware — .fragment em { color: #555 } and .whisper { color: #777 } are the same shape: deliberate light-mode design that breaks dark mode. Same class as the strong/b override removed 2026-05-03.

  5. NEW: parallel-mechanism-where-one-rule-fits — bears-apparatus hardcoded-vs-computed (resolved today via single rule), enfilade-* vs sequence_* (open per breadcrumb spec memo), 5 inline buildVersion-chains (extracted to articleCtx), article.essay/lex/about + .has-margins selectors duplicating what .bears-apparatus covers (consolidated today).

Status at session close

  • ARC working tree: clean except .DS_Store macOS noise
  • Unpushed commits (ARC): 4 (e2fb14c, 249475b, cc6a551, 5f359e3) — origin (gitea) not pushed; CloudFlare deployed all 4
  • CloudFlare: all changes live
  • Site corpus: ~218 posts (was ~73 at session start)
  • Spec state: AldineXXI §VII Dateline Alignment subsection locked with sources; project-arc-apparatus-refactor-todo-2026-05-06.md updated (glimpse alignment marked RESOLVED)
  • Desktop dashboard: arc-current-state-2026-05-07.md updated mid-session (typology correction + Phase D + glimpse paths). Should be re-updated post-session to reflect today's commits + remaining queue, but holding to keep wrap-up focused.
  • Memory files: this session memory file written; MEMORY.md to be updated next.