39 lines
3.6 KiB
Markdown
39 lines
3.6 KiB
Markdown
# Editor zero-debt audit checklist
|
||
|
||
Living checklist for the production editor program ([ADR 0012](../adr/0012-zero-tech-debt-editor.md)). Update when closing a phase or removing debt.
|
||
|
||
## Must not ship (gate before phase sign-off)
|
||
|
||
| Item | Status | Notes |
|
||
|------|--------|-------|
|
||
| `bevy_inspector_egui` entity dump on default Inspector tab | Done | `actor_inspector` only; `bevy-inspector-egui` kept for `SelectedEntities` |
|
||
| Monolithic `hydrate_authoring_entities` | Done | `crates/shared/src/hydration/*` modules |
|
||
| Optional / inferred `ActorKind` as long-term save path | Done | Schema v2 + migration; save validates |
|
||
| Hydrated components in committed `.scn.ron` | CI | `scene::validate_scene_authoring_only` + `repo_editor_scene_has_no_hydrated_components` |
|
||
| Production mutation without commit/cancel/failure/undo invariants | Done | Shared operator harness plus typed history projections cover palette, asset, brush, terrain, physics, grouping, lighting, material-drop, and transform paths; see [evaluation](evaluations/operator-invariants/) |
|
||
| Representative editor coverage can silently disappear | Done | Versioned five-area manifest, typed scene gate, `validate-samples`, and native protocol; see [sample pack](sample-regression-pack.md) |
|
||
| Dirty editor exit can bypass an explicit decision, or transient entity IDs define document cleanliness | Done | Guarded shutdown and canonical authored-content checkpoints pass source validation and all seven native workflows at source implementation `4b33f32`, including dirty untitled Save All through Save As. See the [evaluation](evaluations/guarded-shutdown-savepoints/). |
|
||
| Scoped UI callbacks depend on temporarily unavailable host state or lose direct selection precedence | Done | Explicit selection/tab requests, panel-owned state, captured viewport data, and full-slice reconciliation pass six scoped regressions, independent re-review, and native toolbar/Inspector/diagnostics acceptance at `9e23ae7`; see the [evaluation](evaluations/scoped-ui-actions/). |
|
||
| Checkout metadata or filesystem enumeration can rewrite imported-asset artifacts | Done | Shared content fingerprints, semantic byte-preserving publication, normalized registry order, clean-checkout validators, and live mtime-only drift pass at `cbd380a`; see the [evaluation](evaluations/deterministic-asset-fingerprints/). |
|
||
| Dual FBX thumbnail ad-hoc path (parallel to unified pipeline) | Partial | Phase 5 `assets/thumbnails/` refactor |
|
||
| `failed_keys` thumbnail cache without retry API | Partial | `asset_thumbnails.rs`; Phase 5 `ThumbnailState` |
|
||
|
||
## Phase completion gates
|
||
|
||
| Phase | Debt gate |
|
||
|-------|-----------|
|
||
| P0 | Hydration modules; strip-on-save tests; live project lighting |
|
||
| P1 | `ActorKind` required; `validate_actor` on save |
|
||
| P2 | No runtime components in default inspector |
|
||
| P3 | `HierarchySiblingIndex`; no undefined sibling order |
|
||
| P6 | `ActorInspectorSection` registry; typed immediate/modal command dispatch; BRP authoring policy; production mutation invariants |
|
||
| P7 | ADRs 0009–0012 indexed; CI `shared` + `scene` + `editor` checks |
|
||
|
||
## Manual verification (release)
|
||
|
||
- [ ] R1–R6 rendering/inspector scenarios ([roadmap.md](roadmap.md))
|
||
- [ ] Save/load roundtrip: hierarchy, lights, materials unchanged
|
||
- [ ] PIE 60s stop: project lighting profile unchanged unless scene overrides edited
|
||
- [ ] Rerun the [operator invariant matrix](operator-regression-testing.md) from the nominated release-candidate commit
|
||
- [ ] Open all five [sample regression pack](sample-regression-pack.md) entries through the native File menu and record exact-candidate results
|