|
| 1 | +# BUILD_PR_LEVEL_19_23_ENGINE_TOOL_BOUNDARY_LEAK_VALIDATION Report |
| 2 | + |
| 3 | +Date: 2026-04-17 |
| 4 | +Scope: Validation-only scan of `src/engine` for tool-specific references/dependencies. |
| 5 | + |
| 6 | +## Boundary Rules Checked |
| 7 | +- Engine layer should contain reusable runtime logic only. |
| 8 | +- Tool/editor/pipeline logic should remain in tools-layer boundaries. |
| 9 | +- Dependency direction must not introduce engine dependency on tool-specific surfaces. |
| 10 | + |
| 11 | +## Method |
| 12 | +Command run (targeted scan only): |
| 13 | +- Python scan over `src/engine` JS/TS files to detect: |
| 14 | + - import/require references to `tools/` |
| 15 | + - local imports into `./editor`, `./tooling`, `./pipeline` |
| 16 | + - tool/editor/pipeline keyword evidence |
| 17 | + - inventory of tool-like folders under `src/engine` |
| 18 | + |
| 19 | +## Findings |
| 20 | +- Files scanned in `src/engine`: **292** |
| 21 | +- Direct imports from `src/engine` to `tools/`: **0** |
| 22 | +- Local imports to `./editor` / `./tooling` / `./pipeline`: **0** |
| 23 | +- Tool/editor/pipeline keyword hits: **13** (includes naming/comments and known debug naming) |
| 24 | + |
| 25 | +### Tool-Specific Surfaces Found Inside Engine Layer |
| 26 | +- `src/engine/editor` (5 files) |
| 27 | + - `EntityPlacementEditor.js` |
| 28 | + - `LevelEditor.js` |
| 29 | + - `TileMapEditor.js` |
| 30 | + - `TimelineEditor.js` |
| 31 | + - `index.js` |
| 32 | +- `src/engine/tooling` (8 files) |
| 33 | + - `AssetBrowser.js` |
| 34 | + - `CapturePreviewRuntime.js` |
| 35 | + - `DeveloperConsole.js` |
| 36 | + - `LiveTuningService.js` |
| 37 | + - `PropertyEditor.js` |
| 38 | + - `RuntimeInspector.js` |
| 39 | + - `SceneGraphViewer.js` |
| 40 | + - `index.js` |
| 41 | +- `src/engine/pipeline` (7 files) |
| 42 | + - `AssetImportPipeline.js` |
| 43 | + - `AudioPreprocessPipeline.js` |
| 44 | + - `BuildAssetManifestSystem.js` |
| 45 | + - `ContentMigrationSystem.js` |
| 46 | + - `ContentValidationPipeline.js` |
| 47 | + - `TexturePreprocessPipeline.js` |
| 48 | + - `index.js` |
| 49 | + |
| 50 | +## Validation Verdict |
| 51 | +- Boundary rule "no engine dependency on tools package": **PASS** |
| 52 | +- Boundary rule "zero tool-specific logic inside engine layer": **FAIL** |
| 53 | + |
| 54 | +Reason: tool/editor/pipeline modules are present under `src/engine/*`, which violates strict tool-vs-engine separation even without explicit `tools/` import dependencies. |
| 55 | + |
| 56 | +## Bounded Caveat |
| 57 | +This PR performs validation only and intentionally makes no code changes. |
0 commit comments