Source: home/todo.md:201
Create reusable Oliver hooks to inject frontmatter fields into rendered documents.
Coordinates upstream with the Oliver project — check whether oliver wrap/meta (Phase 6 S1/S2, contract 1.11) already cover the need before designing anything Rotkeeper-side. If gaps remain, propose the hook shape upstream rather than working around it in Bash.
Status: implemented (2026-08-27)
Coordination (done, v2)
Checked upstream, found the gap, proposed the hook shape there rather than in Bash: oliver #126 extended wrap's dialect with version/subtitle/tags/asset_meta/navigation/warnings tokens, the pin moved 06dd640 → 8460f28, and the adapter feeds them from bones/config/version + frontmatter (yq --front-matter extract). Documented as oliver-contract.md v1.13 (shared template contract v2, rotkeeper #244/#299).
Reusable hook (done, v3)
The remaining "reusable" gap — adding a field still meant upstream struct/fieldVal changes plus a pin move — is closed by the v3 generic hook: wrap now interpolates any key present in --meta-json (strings html-escaped, null → empty, other scalars stringified, objects/arrays compact-JSON, $if$ gating, absent → verbatim). The adapter merges every other scalar frontmatter key into wrap_meta with typed keys winning, so a new field needs no upstream change — just frontmatter + a $field$ reference in the template.
Closes the "check upstream / propose hook shape upstream" mandate with the generic mechanism shipped end-to-end.
Source: home/todo.md:201
Create reusable Oliver hooks to inject frontmatter fields into rendered documents.
Coordinates upstream with the Oliver project — check whether oliver wrap/meta (Phase 6 S1/S2, contract 1.11) already cover the need before designing anything Rotkeeper-side. If gaps remain, propose the hook shape upstream rather than working around it in Bash.
Status: implemented (2026-08-27)
Coordination (done, v2)
Checked upstream, found the gap, proposed the hook shape there rather than in Bash: oliver #126 extended
wrap's dialect withversion/subtitle/tags/asset_meta/navigation/warningstokens, the pin moved06dd640→8460f28, and the adapter feeds them frombones/config/version+ frontmatter (yq --front-matter extract). Documented asoliver-contract.mdv1.13 (shared template contract v2, rotkeeper #244/#299).Reusable hook (done, v3)
The remaining "reusable" gap — adding a field still meant upstream struct/
fieldValchanges plus a pin move — is closed by the v3 generic hook:wrapnow interpolates any key present in--meta-json(strings html-escaped, null → empty, other scalars stringified, objects/arrays compact-JSON,$if$gating, absent → verbatim). The adapter merges every other scalar frontmatter key intowrap_metawith typed keys winning, so a new field needs no upstream change — just frontmatter + a$field$reference in the template.wrapgeneric interpolation; pin now3f05bac)page_typedrives the 404 treatment); harness S2-v3 assertions + fake-wrap parity;oliver-contract.mdv1.14 records the dialect and provenancenavigation/warningstokens remain reserved — no adapter feed yet (substitute empty), per the v2 scopeCloses the "check upstream / propose hook shape upstream" mandate with the generic mechanism shipped end-to-end.