Goal
Remove legacy analyzer and transform implementations that remain from the pre-canonical Workshop representation after production Wright workflows have converged on workshop-rs canonical Program APIs.
Context
Wright now exposes canonical Workshop analysis through wright-analyzer::canonical and production driver/tooling paths consume the canonical workshop-rs::Program model. Legacy analyzer modules and the old transform pass path still remain alongside that implementation, which creates duplicate analysis/transform logic and a risk of semantic drift.
This cleanup must be evidence-driven: code is removed only after confirming that no supported Wright production/public contract still consumes the legacy path. Test-only usage does not by itself justify preserving a second implementation when the same Wright-owned contract can be exercised through the canonical path.
Scope
- Identify the remaining analyzer modules that operate on the legacy Workshop/WIR representation rather than the canonical
workshop-rs::Program surface.
- Identify the remaining legacy transform/pass path and constant-folding implementation that is not used by the current production session pipeline.
- Migrate or replace tests that still exercise those legacy paths when they protect a surviving Wright-owned contract.
- Remove legacy implementation and test-support code whose only remaining purpose is preserving the obsolete representation path.
- Keep canonical analyzer/lint/query behavior and canonical transform behavior unchanged.
Non-goals
- Redesigning the canonical analyzer architecture.
- Adding new lint rules, semantic queries, transforms, or Workshop semantics.
- Moving Wright-owned lint/analyze behavior into
workshop-rs.
- Removing code solely to meet a line-count or crate-count target.
- Refactoring unrelated analyzer, transform, driver, or CLI code.
Acceptance criteria
- No supported production Wright workflow depends on the removed legacy analyzer or transform representation path.
- Analyzer symbols/references/CFG/findings/lint behavior used by supported workflows continue to run through the canonical
workshop-rs::Program implementation.
- Transform behavior used by the production session pipeline has a single maintained implementation over the canonical program model.
- Tests that protect surviving Wright-owned contracts exercise the canonical path rather than preserving obsolete implementation solely for coverage.
- No duplicate Wright-owned lint/analysis or constant-folding implementation remains solely because of the previous Workshop representation.
- Current relevant tests and CI remain green after removal.
- Independent implementation ablation demonstrates that the surviving canonical tests detect representative regressions in the retained behavior.
Dependencies / ownership
Goal
Remove legacy analyzer and transform implementations that remain from the pre-canonical Workshop representation after production Wright workflows have converged on
workshop-rscanonicalProgramAPIs.Context
Wright now exposes canonical Workshop analysis through
wright-analyzer::canonicaland production driver/tooling paths consume the canonicalworkshop-rs::Programmodel. Legacy analyzer modules and the old transform pass path still remain alongside that implementation, which creates duplicate analysis/transform logic and a risk of semantic drift.This cleanup must be evidence-driven: code is removed only after confirming that no supported Wright production/public contract still consumes the legacy path. Test-only usage does not by itself justify preserving a second implementation when the same Wright-owned contract can be exercised through the canonical path.
Scope
workshop-rs::Programsurface.Non-goals
workshop-rs.Acceptance criteria
workshop-rs::Programimplementation.Dependencies / ownership
wright: owns analyzer/tooling composition and Wright transforms.workshop-rs: owns canonical Workshop program/WIR semantics consumed by Wright.