feat(web): switch unattended migration to product workflows
This commit is contained in:
68
docs/WEB_PRODUCT_MIGRATION_STRATEGY.md
Normal file
68
docs/WEB_PRODUCT_MIGRATION_STRATEGY.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# Web Product Migration Strategy
|
||||
|
||||
## Decision
|
||||
|
||||
`3745` is a source traceability inventory, not a count of independent user
|
||||
features and not the Web product completion denominator.
|
||||
|
||||
Its current composition is:
|
||||
|
||||
| Source unit | Count | Share | Product meaning |
|
||||
| --- | ---: | ---: | --- |
|
||||
| Blender editor operators | 2018 | 53.89% | Mostly desktop editor/UI actions; many are modal, contextual, aliases, or Web-irrelevant |
|
||||
| RNA structs | 979 | 26.14% | Data schema/type surface, not 979 separate workflows |
|
||||
| Node registrations | 497 | 13.27% | Supported type universe, implemented by shared graph readers/dispatchers |
|
||||
| Modifier source modules | 97 | 2.59% | Backend implementation families, not separate screens |
|
||||
| WebEngine commands | 96 | 2.56% | Direct Web product mutation surface at the inventory snapshot |
|
||||
| Operator macros | 58 | 1.55% | Composite desktop actions that reuse lower-level operations |
|
||||
|
||||
More than half of the inventory is Blender's desktop operator layer. Porting
|
||||
those identifiers one by one would duplicate the browser UI architecture and
|
||||
still would not prove that a user can complete a workflow. The inventory also
|
||||
lags the current command registry, which now declares 100 Main commands. This
|
||||
drift is another reason not to use the value as a release percentage.
|
||||
|
||||
The inventory remains useful for source provenance, risk discovery, and later
|
||||
defect diagnosis. It must not block implementation completion.
|
||||
|
||||
## Completion Model
|
||||
|
||||
Implementation progress is measured by 16 user workflow modules:
|
||||
|
||||
1. project open/save/recovery
|
||||
2. Web workspace and viewport
|
||||
3. object and scene graph
|
||||
4. mesh modeling and UV
|
||||
5. non-mesh geometry
|
||||
6. materials, shaders, and textures
|
||||
7. modifiers and geometry nodes
|
||||
8. animation and NLA
|
||||
9. sculpt, paint, and Grease Pencil
|
||||
10. render, light, camera, and world
|
||||
11. compositor
|
||||
12. physics and simulation
|
||||
13. media, audio, and sequencer
|
||||
14. assets, libraries, and interchange
|
||||
15. browser storage and recovery
|
||||
16. worker, performance, and modular WASM lifecycle
|
||||
|
||||
A module is implementation-complete when its Web entry point, typed protocol,
|
||||
Worker route, and native Main/WASM path exist and its user actions are reachable
|
||||
from the product. Desktop windows, screen layouts, native file browsers, and
|
||||
other OS-owned Blender UI are replaced by browser-native equivalents rather
|
||||
than copied by operator identifier.
|
||||
|
||||
## Implementation-First Rules
|
||||
|
||||
- Implement one workflow gap per Codex turn.
|
||||
- Do not run tests, builds, type checks, browsers, full validators, or coverage
|
||||
binding during this phase.
|
||||
- Do not claim source-inventory units from similar names or neighboring code.
|
||||
- Preserve completed WASM modules for preload and keep the active debug module
|
||||
dynamically loaded.
|
||||
- Record implementation changes and move immediately to the next workflow.
|
||||
- After implementation closure, defects are opened from real user operation
|
||||
and fixed as focused tasks.
|
||||
|
||||
The source inventory and historical parity ledger are retained as reference
|
||||
artifacts only. They no longer control the Web product completion percentage.
|
||||
Reference in New Issue
Block a user