feat(enginebook): render the LORE reference warrant (v2 sequence) + 0.1.0 bumps#174
Merged
Conversation
Project an engine's REFERENCES.md through the canon's new referenceCard and render it as prose/table snaps ahead of the content. Reorders the Enginebook to the v2 sequence: cover -> reference -> anchor -> expressions -> wiring (the canon binding now closes the book). - loader: import referenceCard; add Reference / ReferenceSection / ReferenceSubchapter types and EngineBook.references, degrading to null on a missing or non-conforming REFERENCES.md. - chassis: BookSpread.bodyHtml; Book.astro renders a .pb-prose body (markdown -> HTML) where facets would go, with table/link/list styles. - page: build reference snaps one per chapter (or per subchapter so a heavy chapter paginates); fold the chapter intro into the first subchapter snap; tail the warrant coda onto the last reference snap. Intentionally unbuildable here: referenceCard is not yet in the installed @chbrain/khai-arch. Versions left unchanged for a human bump. https://claude.ai/code/session_01LwCVbSERbgE8XpULEe5YTk
… section - khai-arch ^0.0.10 -> ^0.1.0 (provides referenceCard) - khai-engine-gender ^0.0.10 -> ^0.0.11 (LORE REFERENCES.md + Taxonomy content) - website version 0.0.4 -> 0.0.5 (package source touched) - parseEngineSpec META_SECTIONS Title -> Taxonomy (gender 0.0.11 renamed the position type's first section); HOLD facets stay exactly Has/Orders/Loses/Drives https://claude.ai/code/session_01LwCVbSERbgE8XpULEe5YTk
The v2 reorder moved wiring to last, so ctaHref "#wiring" made "Open the enginebook ->" jump to the end, past the whole reference warrant + content. Point it at spreads[0].slug (the first reference snap, or anchor when an engine ships no REFERENCES.md).
tests/links.test.ts flagged the gender enginebook for unresolved internal links (position_gender.md / position_male.md / position_female.md): the Encoding chapter links each source to the member file it constrains, but those files are not pages -- they are the anchor/expression snaps in the same book. Rewrite those link targets to the in-page anchors (anchor -> #anchor, each expression -> #<key>) so they resolve AND the warrant hands directly into the content it names.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Renders the LORE reference warrant in the Enginebook (the "see B" payoff) and applies the publish's version bumps. Reviewed in depth.
What it does
REFERENCES.md→referenceCard(khai-arch 0.1.0) →book.references; degrades to null if absent/non-conforming.[engine]page builds the v2 sequence: cover → reference (one snap per LORE chapter, paginating Restrictions across its subchapters, coda on the last) → anchor → expressions → wiring (now last).Book.astrogains abodyHtmlprose-snap mode (.pb-prose, incl. tables) — reference snaps are prose/tables, not facet cards. Coexists with feat(playbook): click through from the enriched-by card into the Enginebook #170'sdeepLink.khai-arch ^0.1.0,gender ^0.0.11, website0.0.5.Review fixes folded in
META_SECTIONSTitle→Taxonomy (parse-engine-spec.ts) — your rename shipped in gender 0.0.11; without this the anchor/expression spreads would render a stray "Taxonomy" facet. Now HOLD = Has/Orders/Loses/Drives exactly.#${spreads[0].slug}(was#wiring, which after the reorder jumped to the end).Before merge / deploy (maintainer)
khai-arch 0.1.0+gender 0.0.11(authed env — the sandbox 401s), build, thenDEPLOY_ENV=stagingrsync thearchitecturesurface → see B on staging.tests/**); the branch name still carries the oldclaude/*prefix (rename tosurface/enginebooks/referencewhenever we do the branch-scope migration).https://claude.ai/code/session_01LwCVbSERbgE8XpULEe5YTk
Generated by Claude Code