Summary
Implement the automated generation engine for Spindle's new scene-driven menu system. This extension enables data-driven creation of complex menu sets from project metadata.
User-facing changes
• One-click generation: Add automated tools to create Chapter Grids, Title Shelves, and Track Menus directly from the authored document view.
• Auto-pagination: Support multi-page 'Menu Sets' when project data exceeds the physical hardware limits or visual budget.
• Theme selection: Allow users to choose from visual presets (Classic Grid, Cinematic List) during generation.
• Interactive navigation: Automatically wire directional navigation and page-turn actions (Next/Back) for generated nodes.
Workflow runtime
• Generation Heuristics (Backend): Add Rust-side logic to slice project entities (Chapters, Titles) into paginated groups based on target budgets.
• Scene Spawning (Frontend): Implement store actions to dynamically create MenuDocument objects and populate them with standard SceneNode variants.
• Data Binding: Establish a persistent link between generated nodes and source metadata to support safe regeneration.
• Pagination Mandate: Enforce a hard budget of 12-18 buttons per page to ensure technical compliance and UX legibility.
Documentation
• Spec update: Expand Spindle_Menu_System_Spec.md to define the automated generation meta-model.
• User guidance: Add documentation for 'Menu Sets' and pagination behaviour in the menu authoring guide.
Test plan
[ ] Regression: Verify that manually authored menus remain unaffected by the generation engine.
[ ] Pagination proof: Generate a Chapter Menu for a title with 30+ chapters — verify multiple pages are created.
[ ] Navigation integrity: Verify that 'Next' and 'Back' buttons correctly route between paginated scenes in the remote simulator.
[ ] Persistence: Verify that generated menu metadata round-trips through the Rust serializer without data loss.
[ ] Hardware limits: Verify that the generator prevents creation of menus exceeding 36 buttons (DVD limit).
🤖 Generated with Gemini CLI
Summary
Implement the automated generation engine for Spindle's new scene-driven menu system. This extension enables data-driven creation of complex menu sets from project metadata.
User-facing changes
• One-click generation: Add automated tools to create Chapter Grids, Title Shelves, and Track Menus directly from the authored document view.
• Auto-pagination: Support multi-page 'Menu Sets' when project data exceeds the physical hardware limits or visual budget.
• Theme selection: Allow users to choose from visual presets (Classic Grid, Cinematic List) during generation.
• Interactive navigation: Automatically wire directional navigation and page-turn actions (Next/Back) for generated nodes.
Workflow runtime
• Generation Heuristics (Backend): Add Rust-side logic to slice project entities (Chapters, Titles) into paginated groups based on target budgets.
• Scene Spawning (Frontend): Implement store actions to dynamically create
MenuDocumentobjects and populate them with standardSceneNodevariants.• Data Binding: Establish a persistent link between generated nodes and source metadata to support safe regeneration.
• Pagination Mandate: Enforce a hard budget of 12-18 buttons per page to ensure technical compliance and UX legibility.
Documentation
• Spec update: Expand
Spindle_Menu_System_Spec.mdto define the automated generation meta-model.• User guidance: Add documentation for 'Menu Sets' and pagination behaviour in the menu authoring guide.
Test plan
[ ] Regression: Verify that manually authored menus remain unaffected by the generation engine.
[ ] Pagination proof: Generate a Chapter Menu for a title with 30+ chapters — verify multiple pages are created.
[ ] Navigation integrity: Verify that 'Next' and 'Back' buttons correctly route between paginated scenes in the remote simulator.
[ ] Persistence: Verify that generated menu metadata round-trips through the Rust serializer without data loss.
[ ] Hardware limits: Verify that the generator prevents creation of menus exceeding 36 buttons (DVD limit).
🤖 Generated with Gemini CLI