Initial TrueGrowth source import
This commit is contained in:
112
openspec/specs/ppt-editing/spec.md
Normal file
112
openspec/specs/ppt-editing/spec.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# ppt-editing Specification
|
||||
|
||||
## Purpose
|
||||
TBD - created by archiving change add-ppt-slide-transitions. Update Purpose after archive.
|
||||
## Requirements
|
||||
### Requirement: PPT Page Transition Menu
|
||||
|
||||
The system SHALL provide a per-page PPT transition menu from the single-page PPT right-click menu.
|
||||
|
||||
#### Scenario: Hover transition submenu
|
||||
|
||||
- **GIVEN** the PPT editing panel shows slide page cards
|
||||
- **WHEN** the user right-clicks a single PPT page card and hovers the animation menu
|
||||
- **THEN** the system SHALL show supported slide transition choices
|
||||
- **AND** the currently selected transition SHALL be indicated
|
||||
|
||||
#### Scenario: Select transition
|
||||
|
||||
- **GIVEN** the user opens the PPT page transition submenu
|
||||
- **WHEN** the user selects a transition
|
||||
- **THEN** the system SHALL store the transition on that page's PPT metadata
|
||||
- **AND** subsequent editor renders SHALL show the selected transition as current
|
||||
|
||||
### Requirement: PPT Slideshow Transition Playback
|
||||
|
||||
The system SHALL apply the selected per-page transition during in-app PPT slideshow playback.
|
||||
|
||||
#### Scenario: Navigate to page with transition
|
||||
|
||||
- **GIVEN** a PPT page has a supported transition configured
|
||||
- **WHEN** slideshow playback navigates to that page
|
||||
- **THEN** the visible page change SHALL use the configured transition effect
|
||||
|
||||
#### Scenario: Reduced motion
|
||||
|
||||
- **GIVEN** the user environment prefers reduced motion
|
||||
- **WHEN** slideshow playback navigates between PPT pages
|
||||
- **THEN** the system SHALL avoid animated transition effects
|
||||
|
||||
### Requirement: PPTX Transition Export
|
||||
|
||||
The system SHALL include supported per-page slide transitions in downloaded PPTX files.
|
||||
|
||||
#### Scenario: Export configured transitions
|
||||
|
||||
- **GIVEN** PPT pages have supported transitions configured
|
||||
- **WHEN** the user downloads the PPT deck
|
||||
- **THEN** the generated PPTX SHALL include slide transition metadata for those pages
|
||||
- **AND** pages without configured transitions SHALL keep the existing no-transition behavior
|
||||
|
||||
#### Scenario: Ignore invalid transition metadata
|
||||
|
||||
- **GIVEN** a PPT page contains missing or invalid transition metadata
|
||||
- **WHEN** the user downloads the PPT deck or plays the slideshow
|
||||
- **THEN** the system SHALL treat that page as having no transition
|
||||
|
||||
### Requirement: Image-First PPT Generation
|
||||
The system SHALL generate PPT pages as slide Frames whose primary visual content is a complete 16:9 generated image containing the page text, layout, background, and visual design.
|
||||
|
||||
#### Scenario: Generate PPT pages from content
|
||||
- **GIVEN** the user invokes PPT generation from a topic or mindmap
|
||||
- **WHEN** the system creates the PPT pages
|
||||
- **THEN** it SHALL create one Frame per page
|
||||
- **AND** it SHALL associate each Frame with the whole-slide generation prompt
|
||||
- **AND** it SHALL generate or enqueue one full-slide image for each page
|
||||
- **AND** it SHALL insert the resulting image into the corresponding Frame as the primary slide image
|
||||
|
||||
#### Scenario: Page image generation fails
|
||||
- **GIVEN** a PPT page image generation task fails
|
||||
- **WHEN** the PPT editing panel shows the page
|
||||
- **THEN** the page SHALL remain available with its original generation prompt
|
||||
- **AND** the user SHALL be able to regenerate that page without recreating the whole PPT
|
||||
|
||||
### Requirement: PPT Editing Panel
|
||||
The system SHALL present Frame-based PPT pages through a PPT editing panel that previews and manages pages in deck order.
|
||||
|
||||
#### Scenario: Preview PPT pages
|
||||
- **GIVEN** the current canvas contains PPT Frames
|
||||
- **WHEN** the user opens the PPT editing panel
|
||||
- **THEN** each PPT page SHALL show a page card with its index, name, dimensions, and preview image when available
|
||||
- **AND** clicking a page card SHALL focus/select the corresponding Frame on the canvas
|
||||
|
||||
#### Scenario: Hide obsolete PPT actions
|
||||
- **GIVEN** the current canvas contains PPT Frames
|
||||
- **WHEN** the PPT editing panel renders actions
|
||||
- **THEN** it SHALL NOT show PPT background image controls
|
||||
- **AND** it SHALL NOT show single-page PPT export actions
|
||||
- **AND** it SHALL keep full-deck PPT export available
|
||||
|
||||
### Requirement: PPT Page Regeneration
|
||||
The system SHALL replace single-page PPT export with page regeneration that uses the existing page image as a reference.
|
||||
|
||||
#### Scenario: Open regeneration dialog
|
||||
- **GIVEN** a PPT page has a stored generation prompt
|
||||
- **WHEN** the user clicks “重新生成” for that page
|
||||
- **THEN** the AI image generation dialog SHALL open with the stored prompt prefilled
|
||||
- **AND** the current primary slide image SHALL be attached as a reference image when available
|
||||
- **AND** the target Frame id and dimensions SHALL be passed for automatic回填
|
||||
|
||||
#### Scenario: Regeneration succeeds
|
||||
- **GIVEN** a PPT page regeneration task completes successfully
|
||||
- **WHEN** the generated image is inserted back into the target Frame
|
||||
- **THEN** the previous primary slide image SHALL be replaced by the new image
|
||||
- **AND** the page preview SHALL show the new image
|
||||
- **AND** the Frame SHALL remain in the same deck order
|
||||
|
||||
#### Scenario: Regeneration fails or is cancelled
|
||||
- **GIVEN** a PPT page regeneration task fails or is cancelled
|
||||
- **WHEN** the task finishes without a usable image
|
||||
- **THEN** the previous primary slide image SHALL remain unchanged
|
||||
- **AND** the page SHALL remain available for another regeneration attempt
|
||||
|
||||
Reference in New Issue
Block a user