mirror of
https://github.com/calesthio/OpenMontage.git
synced 2026-09-14 15:27:37 +08:00
2f16b074f6
`load_playbook("anime-ghibli")` raised a ValidationError, and since
`lib.checkpoint._validate_style_playbook` fails closed, that took down every
run using the style:
init_project(..., style_playbook="anime-ghibli")
CheckpointValidationError: Unknown or invalid style_playbook 'anime-ghibli'.
Available playbooks: [..., 'anime-ghibli', ...]
The playbook is listed by `list_playbooks()` and offered by name in
`pipeline_defs/animation.yaml`, so the error even names it as an available
alternative to itself.
Four schema violations, repaired on whichever side the evidence pointed to —
widen the schema where a shipped renderer feature backs the key, conform the
playbook where it is only vocabulary drift:
- `overlays.section_title` — the schema allowed stat_card/key_term/code_block
and none of the four overlay types `Overlay` in Explainer.tsx actually
renders. Added section_title/stat_reveal/hero_title/provider_chip, plus
`accent` on overlay_style to match the renderer's accentColor prop.
- `asset_generation` anime_scene knobs — scene_type, multi_image_per_scene,
images_per_scene, image_variation_guidance, default_particles,
default_particle_color, default_vignette all map onto real AnimeScene props.
Added to the schema.
- `identity.category: anime-illustration` and `pace: gentle` — no code reads
either field for behavior, so the playbook now uses the canonical `custom`
and `slow` rather than expanding the enums for one style.
- `color_palette.spirit_glow` / `golden_hour` — ad-hoc named colors. Folded
into the `accent` array; both hexes are preserved and still referenced by
name in consistency_anchors.
With this, `_build_theme_from_playbook("anime-ghibli")` returns the Ghibli
palette instead of `{}`, so the style no longer silently falls back to the
default dark theme at render time.
Regression coverage iterates the catalog instead of a hardcoded list, which is
how this slipped: tests/qa/test_07_playbook_intelligence.py names the three
playbooks that existed when it was written, so anime-ghibli and
premium-minimalist never had load coverage. The new tests assert that every
playbook `list_playbooks()` advertises both validates and is accepted by
`init_project`, and that the schema's overlay vocabulary tracks the renderer's.
Verified: 6 of the new tests fail on the unfixed tree; full suite goes
964 -> 979 passed with no regressions.