Files
dotfiles/claude/memory/project-arc-breadcrumb-spec-pending.md
T
David F GliddenandClaude Opus 5 ef6fa94dcd [FIX] Stamp 16 superseded trackers; harvest the rule one of them carried
The record is updated where information ARRIVES and never where a reader LOOKS.
Three instances found the same day, each with the correct information already
written down elsewhere:

  REVIEWED-81 (AUTHORIZED 07-28)      -> PENDING-81 still reads open
  the ARC open-work register, which   -> those 6 trackers still read live
    says in its own description that
    it supersedes them, with a
    per-file verified verdict
  register entry A2: "the content     -> register entry B3, one page below:
    half (B3) is now unblocked +         "[OPEN - gated on A2]"
    started" (06-17)

The third is the sharpest: both halves sit in the SAME document, so no tooling
gap explains it. ~/CLAUDE.md already rules this under Memory Discipline
("mark the superseded record as superseded"); the rule is being applied to facts
and not to trackers, PENDING items or register entries, which are also facts
about state.

Executed under steward authorization, arrears only:
- 16 trackers stamped `superseded_by:` + `superseded_on:` AND a visible in-body
  banner. The banner is the point — metadata alone repeats the defect, since the
  finding is about what a reader sees. 9 obsoleted by the 2026-07-07 MemPalace
  wind-down; 7 already carrying the register's own verified `DONE-retire`.
- B3's label corrected, with the two-month error left visible rather than
  silently amended.
- Nothing moved, renamed or deleted: 381 pointers resolve, 0 dead, 0 mis-authored.

HARVESTED BEFORE STAMPING, and this is why the harvest came first:
`project-mempalace-library-incremental-remine-strategy` carried a steward-verbatim
rule that is instrument-independent — never run a single multi-day index; order by
criticality; gate each tranche on READBACK, not on write-success (933,576 drawers
once stored successfully and could not be read back at all). It lived only inside
a MemPalace tracker, so retiring the instrument would have retired the rule with
it. ~/CLAUDE.md names that exact hazard: "state the obligation first and the
instrument second, or the next retired tool takes a rule down with it." Now
`feedback-bulk-indexing-runs-incrementally-with-readback.md`, and it applies to
studium-engine corpus work.

Held back deliberately: 2 correctly-parked files with named dependencies, 2 named
nowhere (returned to the steward), and 39 trackers unread — recorded as a gap,
not as a finding.

Measurement note: every earlier estimate of tracker staleness was wrong, because
both mtime and git-last-commit were reset across 283 files by the 2026-06-06
normalization sweep. The honest figure excludes it: median 90 days.

Filed as PENDING-142 ADDENDUM 2 per steward direction (fold, do not file anew).

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

88 lines
8.1 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.
---
name: ARC universal breadcrumb system — design spec session pending; sequenced AFTER
type-pass
description: Steward identified 2026-05-01 that the breadcrumb system should appear
for all content, not just about-enfilade pages. Current state has duplicated breadcrumb
logic across 3 templates with inline encoding of parent destinations. Spec session
deferred until after the type-pass; type-pass resolves which content types exist
and their relationships, which is the substrate breadcrumb design needs.
type: project
originSessionId: 597aba4e-942b-4f20-8a89-3d801b14c971
permalink: claude-memory/project-arc-breadcrumb-spec-pending
superseded_by: project-arc-open-work-register.md
superseded_on: 2026-08-17
---
> **SUPERSEDED 2026-08-17.** Register E1 → `[DONE—retire]` **[verified]** — breadcrumb componentized and governed 2026-06-03.
>
> Current record: **project-arc-open-work-register.md**. Kept for detail and provenance — do not read the
> status below as live.
# ARC universal breadcrumb system — pending
**Status:** Design spec session pending. Sequenced AFTER the corpus `type:` audit.
## Origin (2026-05-01)
While doing a small fix for missing breadcrumbs on `/bio/` and `/cv/`, steward noted: *"the breadcrumb system should appear for all content."* Then, after I sketched a unified-partial proposal, steward asked whether that was Prime-Directive-aligned. Honest answer surfaced three smells:
1. The lift to a unified partial requires answering content-typology questions that aren't answered yet (where does each type's breadcrumb point?). Doing it silently would be unauthorized scope expansion.
2. The proposal conflated three things: small fix (bio + cv), design pass (typology→parent), consolidation refactor (partial template).
3. *"Build what you will not need to rebuild"* argues against encoding wrong content-typology decisions today and rebuilding everything later when steward disagrees.
Steward's call: *"Ok, this sounds like we need to write a spec to do this correctly. Let's follow your suggestion for right now and then spend a focussed session designing the spec — the code should flow easily afterwards. And, now that I think of it, this should probably be done after the `type:` audit."*
## Sequencing locked
1. **Now (done 2026-05-01):** stopgap fix for bio + cv only — `enfilade-hidden: true` flag added to `collectEnfiladeIds` in site.hs; bio + cv route through about-page.html for breadcrumb but stay out of the enfilade door strip. Site.hs edit carries an explicit STOPGAP comment naming this deferral.
2. **Next: corpus `type:` audit** — reclassify Heliotrope → Meditation, Graffiti Girl → Reverie, Dec 23 dream → Reverie/Dream, Dec 22 half-light → Meditation, Death of a Hero → Hommage, Matthieu Taliesin → Heteronym, Vespers boundary, /now-page reclassify, etc. (per `project-arc-rework.md` 2026-04-20 + 2026-04-23 sections). Resolves *which types exist* and *what their relationships are*. Gated on MemPalace returning queryable + chamber-library mine completing.
3. **Then: breadcrumb spec session** — focused 2-3 hour design conversation. Walk through each content type, decide its parent. Open questions:
- Does an essay-in-a-sequence breadcrumb to `/essays/` or to `/essays/after-the-reply/`?
- Where does an `observation` breadcrumb to — `/observations/` or `/annals/`?
- Chamber-attached pieces (with ⟐ apparatus) — to their content type or to `/chamber/`?
- Does the homepage have one? Does `/annals/` (a listing page itself)?
- How do bio + cv re-integrate cleanly when the unified system replaces the stopgap flag?
4. **Then: implementation** — single `templates/partials/breadcrumb.html`, class-to-parent map in site.hs as faithful encoding of the design decisions. Existing inline breadcrumbs in `post.html` / `about-page.html` / `sequence-index.html` get removed (preserve-don't-delete: archive the inline blocks with provenance). The `enfilade-hidden: true` stopgap is retired; bio + cv use the unified mechanism.
## About-enfilade siblings need consistent classification (added 2026-05-02)
While diagnosing why Hearth's body-block sidenote rendered roman-on-roman (against Bringhurst contrast), we found that `class: lex` in Hearth's frontmatter was firing the lex sidenote density-exception inappropriately. Surface fix shipped (SCSS selector narrowed from `article.lex .sidenote` to `article.lex .voice-block .sidenote` in commit `0abfe88`). But the deeper issue is **misclassification**: Hearth is an About-enfilade page (alongside Colophon, AldineXXI, Vignette, Attention, Tools, Now, plus Bio + CV) — it is not a lex-cluster page like posture / marks.
Steward verbatim 2026-05-02: *"The Hearth is an About page, like the rest of the enfilade ... and Colophon, AldineXXI, Vignette ... and the rest."*
Current state of About-enfilade `class:` assignments — scattered across the typology by accident of when each page was created (the About-enfilade-as-shape only became architecturally explicit in the 2026-04-27 enfilade-emergent session):
- Bio · CV — no `class:` (default)
- Colophon — `class: essay`
- Hearth — `class: lex` (now misclassified per above)
- AldineXXI · Vignette · Attention · Tools · Now — varied, need to be checked
**Type-pass scope expansion:** the audit should not only reclassify content-types (Heliotrope → Meditation, etc.) but also normalize the About-enfilade siblings — possibly under a new shared `class: door` (or `class: about-page`, or whatever serves) so the entire 8-door slate is consistent and a future enfilade addition has a predictable class to take. The reward: the SCSS narrowing for Hearth becomes unnecessary (Hearth would no longer be `article.lex` and would inherit base sidenote behavior naturally) — what is currently a hack at the SCSS layer dissolves at the data layer where it belongs.
Steward verbatim acknowledgment: *"the about pages (or whatever we will assign them as `type:`) need to be unified, this should make everything easier and then we can have the Hearth sidenotes render without a hack."*
## Adjacent architectural concerns to surface in the spec session
The steward's "is the enfilade system simple, consolidated, elegant?" question surfaced three smells worth addressing or naming-as-acceptable in the spec session:
1. **`enfilade-order: 0` does double duty** — both "position" and "hide-from-row." A new page wanting "hidden member" semantics has nowhere clean to live (which is why I had to add the `enfilade-hidden` flag as fourth field stopgap).
2. **Two parallel mechanisms.** `enfilade-*` (about) and `sequence_*` (After the Reply) do morally the same thing — gathered navigation by membership — with different vocabularies, different gather logic, different templates. Could be unified under one "collection" abstraction. Unifying is bigger work; declaring them as intentionally separate (different purposes despite morphological similarity) is also a valid call.
3. **Hardcoded pattern union in site.hs.** `aboutEnfiladeCtx` literally enumerates `pages/*.md ∨ chamber/index.md ∨ lares/index.md`. Each new enfilade-bearing tree requires a site.hs edit. Could be data-driven.
These don't have to be solved in the breadcrumb spec — but they sit adjacent and the spec session should at least name whether to include or defer them.
## Stopgap details (for later cleanup)
When the unified breadcrumb lands and the stopgap retires:
- Remove `enfilade-hidden: true` filter from `collectEnfiladeIds` in `site.hs`
- Remove the `enfilade-hidden: true` field from `content/pages/bio.md` and `content/pages/cv.md`
- Remove the `enfilade-name: "Bio"` from bio.md if the unified breadcrumb has its own label-override mechanism
- Verify bio + cv still get correct breadcrumbs under the new mechanism
## Cross-references
- Steward verbatim direction: this session 2026-05-01
- `project-arc-rework.md` — full ARC rework landscape including the type-audit work that gates this
- `project-after-the-reply-publication-state.md` — the closed sequence work that introduced the parallel `sequence_*` family
- `feedback-canonical-workstream-tracker-discipline.md` — read this file at /wake-up when ARC work is in scope