5.6 KiB
Blacksite Editor Production Readiness Program
Working milestone plan for the production expansion tracked by Gitea epic
#1.
The existing Jackdaw-inspired M0-M5 roadmap remains the authoring/tool foundation. This plan adds
the reliability and shipping gates required for daily indie game production.
Definition Of Production Ready
Blacksite is production ready only when the evidence matrix in Gitea
#50
is signed off. Feature presence alone is insufficient. Recovery, validation, packaging,
performance, soak, regression, and first-hour workflows must pass against a representative project.
Immediate Sequence
- Completed: hierarchy/prefab boundary hardening
#40, transactional recovery#39, stable sessions/diagnostics#41, and Project Browser/startup boundaries#3. - Completed: stable scene tabs and composed subscene ownership/validation in
#42. - Completed: nested prefabs, variants, and structural overrides passed production acceptance in
#43; M6 implementation is complete. - Completed: authoritative content validation
#45and the validation-gated packaging/Build workflow#44. - Completed: audio source/listener/bus authoring and spatial preview passed production acceptance
in
#47. Next: animation#46, navigation#48, source-control safety#49, then readiness gate#50.
M6 - Reliability, Recovery, And Project Workflow
Exit: A normal or interrupted editor session cannot silently lose or corrupt authored work, and projects/scenes/prefabs have stable daily workflows.
| Issue | Capability | Priority |
|---|---|---|
| #3 | Project launcher, templates, recent projects, resume | P0 |
| #39 | Transactional saves, autosave, crash recovery | P0 |
| #40 | Hierarchy, parenting, prefab structure hardening | P0 |
| #41 | Session persistence and crash diagnostics | P0 |
| #42 | Multi-scene tabs, subscenes, level composition | P1 |
| #43 | Nested prefabs, variants, structural overrides | P1 |
M7 - Content Production And Shipping
Exit: A clean checkout can validate, build, package, and run a representative project with the minimum animation, audio, and navigation authoring loops required by the game.
| Issue | Capability | Priority |
|---|---|---|
| #44 | Build/package profiles and Build panel | P0 |
| #45 | Dependency manifest and content release gate | P0 |
| #46 | Skeletal animation import/preview/authoring | P1 |
| #47 | Audio sources/listeners/buses/spatial preview | P1 |
| #48 | Navigation authoring/bake/path preview | P1 |
| #49 | Source-control status and collaborative file safety | P2 |
| #50 | Production-readiness acceptance matrix | P0 |
Cross-Cutting Gates
- Authored IDs, scene schema, hydration stripping, and extension boundaries remain authoritative.
- Every mutation supports meaningful undo/redo; modal tools also support cancel without dirty state.
- Editor-only helpers, recovery files, and caches never enter scenes or game packages.
- Interactive and headless validation use the same rules and produce equivalent blocking results.
- Large asset, terrain, navigation, and geometry work is debounced or dirty-region based.
- Visible behavior updates root controls and
docs/editor/; hard-to-reverse decisions get ADRs. - Production signoff requires a second-person first-hour QA pass and no open P0 blocker.
Completed Slice - UI Identity And Structural Dragging
- Near-black Blacksite shell with compact tool identity rather than a Unity clone.
- Pointer-following asset drag preview, viewport reticle, boundary, and corner brackets.
- Full-width hierarchy attach targets plus explicit root/reorder/invalid feedback.
- World-transform-preserving reparent/unparent with grouped history.
- Cycle rejection, subtree-safe multi-drag, parent expansion, and focused regression coverage.
Completed Slice - Multi-Scene Production Workflow
- Independent scene tabs integrated into the right end of the existing main toolbar.
- Stable
SceneCompositionresources with project-relative references and no runtime entity IDs. - Recursive missing/cycle/duplicate/path-escape validation shared by editor and CI.
- Runtime-only composed ownership, load/lock/focus controls, and owner-save exclusion.
- Per-saved-tab recovery, composition undo/redo, PIE-active composition consistency, and fixtures.
Completed Slice - Validation-Gated Build And Packaging
- Shared owner-attributed project validation and runtime-packageability policy in editor, CI, and packaging; unknown schemas, missing LFS objects, excluded references, and unsafe traversal block.
- Versioned development/QA/release profiles with Cargo-reported artifacts, rendering/default-scene application, Windows QA symbols, supported-target enforcement, and deterministic metadata.
- OS-locked authenticated staging, interrupted-build recovery, complete pre-publish hashing, safe replacement, and unchanged-output reuse.
- Non-blocking editor Build/Run/Cancel/Reveal workflow with dirty-tab guard and process-tree cleanup.
- Gitea #44 and #45 closed after headless, focused regression, repeated-build, and live packaged development-runtime acceptance.
Completed Slice - Audio Authoring And Spatial Preview
The stable authoring/runtime contract is recorded in ADR 0030, with controls, runtime behavior, validation, and the committed sample fixture documented in Audio Authoring. Gitea #47 closed after automated, headless, live editor/PIE, and packaged-runtime acceptance.