# engine-bridge v2 — Evaluation **Verdict:** PASS **Generator commit:** b1c2383 **Evaluator:** independent eval pass, 2026-04-07 **Issue:** #10 ## DoD verdict table | # | DoD item | Result | Evidence | |---|---|---|---| | 1 | `dotnet build recordingtest.sln` green | PASS | 0 warnings, 0 errors, 6.55s | | 2 | Integration tests = 6 pass | PASS | `Recordingtest.EngineBridge.IntegrationTests` 6/6 in 687 ms | | 3 | EgPlugin tests >= 3 pass | PASS | `Recordingtest.EgPlugin.Tests` 5/5 (exceeds claim of 5) | | 4 | csproj: net8.0-windows + HintPath to EG-BIM Modeler/, Private=false, no local copy | PASS | csproj L3, L11-19; no DLL copies under `src/` | | 5 | HmEgBridgePlugin: inherits EditorPlugin, overrides Name/Description/Initialize, ctor boots listener, Dispose closes it | PASS | `HmEgBridgePlugin.cs` L10-47 | | 6 | StateRouter: 5 endpoints, 404 for unknown, try/catch -> `{"error":...}` | PASS | `StateRouter.cs` L28-42 | | 7 | PortResolver: env var `RECORDINGTEST_BRIDGE_PORT`, default 38080, safe parse | PASS | `PortResolver.cs` L5-17 (also bounds-checks 1..65535) | | 8 | HmEgHttpSnapshot: IEngineSnapshot impl, GET per property, 2s default timeout w/ ctor override, throws EngineBridgeException | PASS | `HmEgHttpSnapshot.cs` L13-107 | | 9 | Tests meaningful (FakeBridgeServer + real client; pure-logic plugin tests) | PASS | `FakeBridgeServer.cs`, `HmEgHttpSnapshotTests.cs`, `StateRouterTests.cs` | | 10 | deploy guide: Build/Copy/Env/Launch/Verify/Troubleshoot/Uninstall + SUT-write warning | PASS | `docs/guides/engine-bridge-deploy.md` sec 1-7, warning in sec 2 | | 11 | No writes to `EG-BIM Modeler/` from src | PASS | grep finds only csproj read-only HintPaths | | 12 | No copy of `Editor03.PluginInterface.dll` / `HmEG.dll` in `src/` | PASS | glob returns 0 matches | ## Notes - `ReflectionEngineStateProvider` is a skeleton returning defaults. Contract explicitly allows this ("진짜 매핑은 smoke test 후 조정"). Graded PASS with note — production mapping deferred to v3 post-smoke. - StateRouter returns HTTP 200 for provider-thrown errors with `{"error":"..."}` payload (per contract spec line 22). Acceptable per DoD wording. - BridgeHttpServer swallows listener errors so SUT stability is preserved (port-conflict path handled). - EgPlugin test count is 5, exceeding the contract minimum of 3. ## Artifacts - src: `src/Recordingtest.EgPlugin/`, `src/Recordingtest.EngineBridge.Client/` - tests: `tests/Recordingtest.EngineBridge.IntegrationTests/`, `tests/Recordingtest.EgPlugin.Tests/` - guide: `docs/guides/engine-bridge-deploy.md` - history: `docs/history/2026-04-07_이슈10-engine-bridge-v2-evaluator.md`