session 2026-06-12: Studium Stage-1 built (Steps 0·1·2 + source cleaning); reading-index home + commit-org decision pending
This commit is contained in:
@@ -134,3 +134,12 @@ The single place proposed skills live so they don't evaporate between sessions.
|
||||
| **verification-ladder: feature-detect gates can lie** | verification-ladder entry | A CSS `@supports(feature)` (or any capability probe) can return **true on a platform where the feature is non-functional** — today the ARC §VII.f running head: `@supports(animation-timeline:view())` is `true` on iOS Safari 26, but mobile WebKit won't *drive* the scroll-reveal on a `position:fixed`+`timeline-scope` consumer (`display:block, opacity:0`); desktop Safari works. So a progressive-enhancement "no-support shows nothing" contract can be **silently false** on a major platform. Antidote: **verify the feature on the real engine/device, not the support table** — `CSS.supports(...)` + computed-`opacity`/`getBoundingClientRect` on-device (the iOS analog of the headless-Chrome box-model harness). Kin to `/measure-render`; one level up (feature-functionality, not box-model). | `reference-verification-ladder.md` | **PROPOSED** |
|
||||
|
||||
*(Both genuine, both recurring-shaped — not manufactured. The first will pay off the very next time the steward opens a Fable window; the second generalizes today's running-head correction into a standing instrument.)*
|
||||
|
||||
## New proposals (2026-06-12 night — Studium Stage-1 build / source-cleaning, awaiting steward)
|
||||
|
||||
| Element | Kind | One-line | Where it lands | Status |
|
||||
|---------|------|----------|----------------|--------|
|
||||
| **verification-ladder: parse/validate machine-consumed artifacts that have only ever been human-read** | verification-ladder entry | When an artifact that humans have only ever *read* (a hand-authored YAML index, a config, a data file) is about to be *machine-consumed* for the first time, parse-and-validate it BEFORE trusting it. Today: **all four** chamber reading-index YAMLs were defective and **eye-invisible** — three had unparseable YAML (a list entry starting with a quoted phrase then trailing text, e.g. `- "The Wanderer" (Old English poem)`), one had silent anchor-drift; the Read tool renders them fine, so eye-review and the prior cruft audits never caught them. The engine was the first machine reader. Antidote: `yaml.safe_load` (or the consumer's real parser) + anchor-verify against the substrate, both directions, before binding. Kin to the deliberate-mismatch gate, one level up (artifact-validity, not output-validity). | `reference-verification-ladder.md` | **PROPOSED** |
|
||||
| **clean cruft at the SOURCE layer, not as a downstream transform** | feedback memory | When a source carries conversion cruft (EPUB footnote-links, image-scan embeds), clean it at the SOURCE — producing a new canonical file (new hash, re-anchor) — not as a chunk-time/read-time transform. A downstream strip makes `text_original` a *transform* of the file rather than a byte-faithful *slice*, silently violating the verbatim guarantee. Spec §5 names this the primary path; the steward's instinct ("attend to the source files") corrected my chunk-time-rule fallback. Technique note: when footnote *display* numbers restart per-section (so `[45]` recurs), pair/label by the globally-unique anchor id (`#nf K`/`#anf K`), not the visible number — Pandoc renumbers on render anyway. Governed cleaner built: `chamber-library/scripts/clean_epub_residue.py`. | `feedback-clean-at-source-not-downstream-transform.md` | **PROPOSED** |
|
||||
|
||||
*(Both earned in use, both recurring-shaped. The first generalizes today's all-four-indices-defective finding into a standing gate; the second captures the steward's layer/placement correction — his instincts about WHERE a thing belongs were load-bearing twice today, also worth holding.)*
|
||||
|
||||
Reference in New Issue
Block a user