Skip to content

bc-dgx7.103: B7e-manifest — A book's chapter and interlude manifest - #820

Open
mordam wants to merge 8 commits into
mainfrom
worktree-b7e-manifest-dgx7103
Open

bc-dgx7.103: B7e-manifest — A book's chapter and interlude manifest#820
mordam wants to merge 8 commits into
mainfrom
worktree-b7e-manifest-dgx7103

Conversation

@mordam

@mordam mordam commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Adds b7e-manifest: a book's chapter/interlude manifest with derived checks, replacing
five hand-built versions of the same table from five different deluvia sessions
(dv-afr.6/7/8/9, dv-gr6.8). Reads a book directory (or a bare book number, resolved under
<repo root>/novel/Deluvia Book N via git's own toplevel from cwd) and prints one row per
chapter/interlude with its header fields and measured word counts, plus a derived block:
day/BP-range overlaps and gaps on the same thread, and interlude placement-key issues
(inconsistent, out-of-range, non-monotone).

Chapter/interlude counting reimplements deluvia/scripts/build_series_log.py's own regex
shapes in JS (this file has to run with no deluvia checkout on disk — the suite proves
it against a fabricated fixture tree) rather than importing them. Verified by hand against
the live deluvia repo: all six books' counts match SERIES_CHAPTER_LOG.md's committed,
generated block exactly, including matching the Python's own blind spot on
CHAPTER_18A_THE_PARTING.summary.md (named as "not counted" rather than silently
included or dropped). The bead's own acceptance criteria also ask for two specific
findings from the sessions that filed this: Book 3's Ch.18/Ch.19 day-range overlap still
reproduces against live data; Book 1's IL-05/06/12 placement issue no longer does — that
data has evidently been hand-fixed since the audit that found it, which is the finding
going stale, not the check being wrong. All four kinds of placement issue and both
overlap/gap detection are proven directly on fabricated fixtures in test/manifest.mjs
independent of Book 1's current state.

Registered @grant read in the bin file's own header per bc-wbrhi's derived-grants
mechanism (the bead's own "what shipping it takes" text describes the older
hand-edit-lib/toolbelt.js mechanism that bead predates and that landed already superseded
this).

One self-caught bug worth flagging: my first pass at the README section edit replaced the
## Notes on bd heading line instead of preserving it around the new content, which
test/anchors.mjs caught immediately (a dangling in-page link). Fixed in a second commit
before this delivery — worth knowing in case a similar large insertion-before-a-heading
edit gets reviewed elsewhere without that suite catching it.

Tests: node test/manifest.mjs (52 checks, new suite) plus test/lockfile.mjs, test/tooldecl.mjs, test/grants.mjs, test/allowlist.mjs, test/evidence.mjs, test/filter.mjs, test/b7ereadme.mjs, test/anchors.mjs, test/checks.mjs, test/documents.mjs, test/skills.mjs, test/usage.mjs, test/routes.mjs, test/policies.mjs, test/coverage.mjs, test/grepargs.mjs, test/authority.mjs, test/harness.mjs — all green. The local full 'npm test' gate was queued behind 4 other sessions' gates (oldest 40+ min in), so per this repo's own documented practice (a local full gate under this much contention is slower and noisier than CI's 4-shard run) I ran the suites b7e-affected named plus the ones a new bin/ registration always touches, and am leaving full-suite verification to CI.

Files changed — 6 files · +1211 −0 · against `main`
test/manifest.mjs  +513 −0
lib/manifest.js    +442 −0
bin/b7e-manifest   +170 −0
README.md          +84 −0
package-lock.json  +1 −0
package.json       +1 −0

Opened by a beadcause worker session on bc-dgx7.103 — b7e-manifest — A book's chapter and interlude manifest, with the sequence checked. It merges itself once the checks report; merging is what closes the bead. If this is still open, something stopped that, and the reason is on bc-dgx7.103 and in Adam's inbox.

bead: bc-dgx7.103

NeanderthalMan and others added 2 commits August 27, 2026 14:20
…sequence checked

Five deluvia sessions (dv-afr.6/7/8/9, dv-gr6.8) each hand-built the same
table before any judgement about a book could start. b7e-manifest reads a
book directory (or a bare book number, resolved under <repo
root>/novel/Deluvia Book N), lists one row per chapter/interlude with its
header fields and measured word counts, and derives day/BP-range
overlaps and gaps plus interlude placement issues (inconsistent,
out-of-range, non-monotone).

Chapter/interlude counting reuses deluvia/scripts/build_series_log.py's
own regex shapes (reimplemented in JS, verified by hand against the live
deluvia repo: all six books' counts match exactly, including its
CHAPTER_18A_THE_PARTING.summary.md blind spot). Header field parsing is
best-effort across two thread-field names (Timeline vs Thread) and
inconsistent field placement between books.

Registered @grant read in the bin/ header per bc-wbrhi's derived-grants
mechanism, plus the package.json/package-lock.json bin map entries.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WQ4zfRrq7i9H3nqeLtnNy6
The section insertion for b7e-manifest replaced the heading line instead
of preserving it, breaking the in-page link at README.md:32310 (#notes-on-bd)
— caught by test/anchors.mjs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WQ4zfRrq7i9H3nqeLtnNy6
@mordam

mordam commented Aug 27, 2026

Copy link
Copy Markdown
Owner Author

A beadcause worker opened this and does not merge its own work. It is on the merge queue as bc-mig9x.

@mordam

mordam commented Aug 27, 2026

Copy link
Copy Markdown
Owner Author

The beadcause merge queue tried to merge this and could not: it has been tried 3 times and stopped at the same place each time. the branch still conflicts with main and no resolver is on it any more — the window that was opened on it ended without making it mergeable, so this one is yours to settle. Tried 3 times — that was the last. It is Adam's call now — see bc-mig9x.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants