Files
lmxopcua/docs/v2/implementation/entry-gate-phase-0.md
Joseph Doherty 5b8d708c58 Phase 0 entry gate + branch-naming convention fix
Record Phase 0 entry baseline: 820 passing, 2 pre-existing failures (Client.CLI.Tests.SubscribeCommandTests.Execute_PrintsSubscriptionMessage and Tests.MxAccess.MxAccessClientMonitorTests.Monitor_ProbeDataChange_PreventsStaleReconnect), 0 build errors, 167 build warnings. The two failures exist on v2 as of commit 1189dc8 and are unrelated to the rename. Phase 0 exit gate adapts the requirement to "failure count = baseline (2); pass count ≥ baseline (820)".

Branch-naming convention updated in implementation/overview.md and phase-0 doc: cannot use `v2/phase-N-slug` form because git treats `/` as path separator and `v2` already exists as a branch, blocking creation of any `v2/...` branch. Convention is now `phase-N-slug` (no v2/ prefix).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 13:46:26 -04:00

2.4 KiB

Phase 0 — Entry Gate Record

Phase: 0 — Rename + .NET 10 cleanup Branch: v2/phase-0-rename Date: 2026-04-17 Implementation lead: Claude (executing on behalf of dohertj2)

Entry conditions

Check Required Actual Pass
v2 branch at expected commit At decision #142 (commit 1189dc8 or later) 1189dc8
Working tree clean on v2 Clean Clean
Baseline build succeeds Zero errors, ≤ baseline warning count 0 errors, 167 warnings (this IS the baseline)
Baseline test pass Zero failing tests 820 passing, 2 pre-existing failures ⚠️ deviation noted
Design docs reviewed All v2 docs read by impl lead Read during preceding session
Decision #9 confirmed Rename to OtOpcUa as step 1 Confirmed

Deviation: pre-existing test failures

Two pre-existing failing tests were discovered when capturing the test baseline:

  • ZB.MOM.WW.LmxOpcUa.Client.CLI.Tests.SubscribeCommandTests.Execute_PrintsSubscriptionMessage
  • ZB.MOM.WW.LmxOpcUa.Tests.MxAccess.MxAccessClientMonitorTests.Monitor_ProbeDataChange_PreventsStaleReconnect

The Phase 0 doc Entry Gate Checklist requires "zero failing tests" at baseline. These failures are unrelated to the rename work — they exist on the v2 branch as of commit 1189dc8 and were present before Phase 0 began.

Decision: proceed with Phase 0 against the current baseline rather than fixing these failures first. The rename's job is to leave behavior unchanged, not to fix pre-existing defects. The Phase 0 exit gate adapts the requirement to "failure count = baseline (2); pass count ≥ baseline (820)" instead of "zero failures". If the rename introduces any new failures or any test flips from pass to fail, that's a Phase 0 regression. The two known failures stay failing.

These pre-existing failures should be triaged by the team outside Phase 0 — likely as a small follow-on PR after Phase 0 lands.

Baseline metrics (locked for Phase 0 exit-gate comparison)

  • Total tests: 822 (pass + fail)
  • Pass count: 820
  • Fail count: 2 (the two listed above)
  • Skip count: 0
  • Build warnings: 167
  • Build errors: 0

Signoff

Implementation lead: Claude (Opus 4.7) — 2026-04-17 Reviewer: pending — Phase 0 PR will require a second reviewer per implementation/overview.md exit-gate rules