After P6-5 shipped (commit 4a2284f9), VectorExtractionFeatureFlags.enableVectorFastPath is build-time false with a UserDefaults runtime override (P&ID Settings → Enable vector fast path (experimental)). The build-time default cannot flip to true until a parity test corpus exists.
Acceptance criteria
- Create
Tests/CircuitProTests/VectorVsRasterParityTests.swift.
- Fixture corpus under
Tests/Fixtures/VectorParity/:
autocad-export.pdf (vector-dominant)
microstation-export.pdf (vector-dominant)
visio-export.pdf (vector-dominant)
- One scanned/raster-dominant PDF as a negative control.
- For each vector fixture, run both pipelines and assert:
- Polyline count parity within ±10%.
- Total polyline length parity within ±5%.
- Text detection count parity within ±5%.
- For the raster fixture, assert classifier verdict is
.rasterDominant and the fast path falls back correctly.
- Once green on CI, flip
VectorExtractionFeatureFlags.enableVectorFastPath = true in a separate PR and update docs/architecture/ai-pipeline.md to mark the vector path [Implemented] (no longer [Experimental]).
References
- Feature flag:
CircuitPro/Features/AI/VectorExtraction/VectorExtractionFeatureFlags.swift
- Settings UI:
CircuitPro/Features/Settings/PIDSettingsView.swift:48,196
- Implementation:
CircuitPro/Core/Managers/AIAnalysisManager.swift (post-P6-9 reorder)
- Lint-debt tracking note:
docs/lint-debt-tracking.md "P6 wiring follow-ups"
After P6-5 shipped (commit 4a2284f9),
VectorExtractionFeatureFlags.enableVectorFastPathis build-timefalsewith a UserDefaults runtime override (P&ID Settings → Enable vector fast path (experimental)). The build-time default cannot flip totrueuntil a parity test corpus exists.Acceptance criteria
Tests/CircuitProTests/VectorVsRasterParityTests.swift.Tests/Fixtures/VectorParity/:autocad-export.pdf(vector-dominant)microstation-export.pdf(vector-dominant)visio-export.pdf(vector-dominant).rasterDominantand the fast path falls back correctly.VectorExtractionFeatureFlags.enableVectorFastPath = truein a separate PR and updatedocs/architecture/ai-pipeline.mdto mark the vector path[Implemented](no longer[Experimental]).References
CircuitPro/Features/AI/VectorExtraction/VectorExtractionFeatureFlags.swiftCircuitPro/Features/Settings/PIDSettingsView.swift:48,196CircuitPro/Core/Managers/AIAnalysisManager.swift(post-P6-9 reorder)docs/lint-debt-tracking.md"P6 wiring follow-ups"