Skip to content

feat(render): the two dead deliverable params are live — quiz count caps, mindmap orientation lays out (#63)#80

Merged
danielPoloWork merged 1 commit into
mainfrom
feat/live-deliverable-params
Jul 2, 2026
Merged

feat(render): the two dead deliverable params are live — quiz count caps, mindmap orientation lays out (#63)#80
danielPoloWork merged 1 commit into
mainfrom
feat/live-deliverable-params

Conversation

@danielPoloWork

Copy link
Copy Markdown
Owner

Problem (#63)

Two registry params were declared, validated, and then ignored — the manifest promised knobs that did nothing:

  1. interview_quiz.count (short | standard | long) — build_quiz_ir never read params: count: short and count: long produced identical output.
  2. mindmap.orientation (horizontal | vertical) — build_graph_ir ignored it and build_mindmap_svg was hardcoded horizontal.

The registry gate happily rejected count: shrt while accepting valid values that had no effect — validated-but-dead is worse than undeclared, and qbr-c-level.yaml itself advertises both knobs.

Fix — both params implemented (no third state)

  • quiz countbuild_quiz_ir resolves the registry params like the infographic/data projections already do, and caps the graded questions deterministically over the sorted ledger keys: short: 5, standard: 10, long: uncapped. The sorted cut makes the subset stable under manifest reordering; discussion questions are never capped.
  • mindmap orientationbuild_graph_ir stamps the resolved orientation into the graph-IR; build_mindmap_svg dispatches to the horizontal layout (unchanged — output verified byte-identical to the pre-change baseline) or the new _mindmap_vertical: root on top, one column per branch, leaves stacked beneath — deterministic like its horizontal twin (pure function of branch order, RFC-0002 §11-1). The shared _box helper is factored out of the closure.

Tests

  • Cap per count value: 5 / 10 / 12 graded questions on a 12-cell ledger; discussion questions uncapped under short.
  • Cap stability: reversing the manifest's inputs: order selects the same graded subset.
  • Orientation: vertical changes the SVG bytes and stays deterministic; qbr-c-level (horizontal) stamps and renders as before.
  • All reference manifests gate-green; 94/94 tests pass.

Closes #63

🤖 Generated with Claude Code

…aps, mindmap orientation lays out (#63)

Two registry params were declared, validated, and then ignored — the
manifest promised knobs that did nothing: interview_quiz.count produced
identical output for short/standard/long, and mindmap.orientation
always rendered horizontal. Validated-but-dead is worse than
undeclared, and the reference manifests advertise both knobs.

- quiz count: build_quiz_ir resolves the registry params like the
  peer projections and caps the graded questions deterministically
  over the SORTED ledger keys (short: 5, standard: 10, long: uncapped)
  so the subset is stable under manifest reordering. Discussion
  questions are never capped.
- mindmap orientation: build_graph_ir stamps the resolved orientation
  into the graph-IR; build_mindmap_svg dispatches to the horizontal
  layout (unchanged, byte-identical output) or the new deterministic
  vertical layout (root on top, one column per branch, leaves stacked
  beneath). The shared box helper is factored out of the closure.

Tests: the cap per count value (5/10/12 on a 12-cell ledger),
discussion uncapped, cap stability under reordering, orientation
changing the SVG while staying deterministic. Horizontal SVG verified
byte-identical to the pre-change baseline; 94/94 green.

Closes #63

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@danielPoloWork danielPoloWork added the enhancement New feature or request label Jul 2, 2026
@danielPoloWork danielPoloWork self-assigned this Jul 2, 2026
@danielPoloWork danielPoloWork marked this pull request as ready for review July 2, 2026 20:52
@danielPoloWork danielPoloWork merged commit 7efb541 into main Jul 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(render): implement or drop dead deliverable params — interview_quiz.count, mindmap.orientation

1 participant