You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As the AI/backend team, I want the orphaned onboarding generation routes and
their modules removed, so that nobody reads, extends, or accidentally calls AI
endpoints that no backend flow uses anymore.
Why: after the blueprint rework, OnboardingPersonalizationService
personalizes by copying the project's active blueprint and filling only AI_ENHANCED phases via POST /onboarding/phase[/stream]. The old /onboarding/path (PersonProfile → pipeline → synthesis) and /onboarding/blueprints/generate (blueprint drafting) routes therefore have
no callers left. The industry-detection concept deliberately does not
re-anchor anything onto them (£6.2/£6.3, marked obsolete). Keeping them means
dead prompts, dead tests, and a standing invitation to build against the wrong
AI edge.
In Scope (verify before deleting — each AC names its evidence)
Remove api/routes/onboarding.py (POST /onboarding/path, POST /onboarding/path/yaml) from the AI service and unregister the router in api/app.py.
Remove api/routes/blueprints.py (POST /onboarding/blueprints/generate)
and unregister it in api/app.py.
Remove modules that become orphaned as a result — candidates to verify: onboarding/orchestrator.py, onboarding/pipeline.py, onboarding/synthesis.py, onboarding/generation.py (blueprint drafting only), onboarding/registry.py, onboarding/similarity.py (only if no other module
imports them). Keep everything the phase assembly still needs
(onboarding/phase.py, phase_models.py, citations.py, retrieval/rag, …).
Remove/adjust the corresponding schemas (OnboardingPathRequest, GenerateBlueprintsRequest, and any schema only they use) from api/schemas.py, unless still referenced.
Delete or migrate the now-orphaned tests
(tests/onboarding/test_pipeline.py, test_synthesis.py, test_generation.py, tests/api/test_onboarding.py (path parts), tests/api/test_blueprints.py — keep any parts covering /onboarding/phase).
Never touch: /api/v1/onboarding/phase[/stream], the ingestion routes,
the backend's OnboardingPersonalizationService contract, and any schema the
backend still sends.
Acceptance Criteria
No code references to the removed routes remain (app.py registration
removed, no imports).
pyright src/ has 0 errors; no dead imports.
ruf check / pytest green with the removed tests deleted; no test still
hits a removed endpoint.
The backend suite is unaffected (no backend change required — verify by
running its tests against the AI service's updated contract, if locally available).
The repo's OpenAPI no longer lists /onboarding/path, /onboarding/path/yaml, or /onboarding/blueprints/generate.
User Story
As the AI/backend team, I want the orphaned onboarding generation routes and
their modules removed, so that nobody reads, extends, or accidentally calls AI
endpoints that no backend flow uses anymore.
Context & Motivation
.env.exampleper repo + root #192) and the industryre-anchoring story ([Story]: Industry detection — consumer chain (onboarding path, re-anchored) #296).
OnboardingPersonalizationServicepersonalizes by copying the project's active blueprint and filling only
AI_ENHANCEDphases viaPOST /onboarding/phase[/stream]. The old/onboarding/path(PersonProfile → pipeline → synthesis) and/onboarding/blueprints/generate(blueprint drafting) routes therefore haveno callers left. The industry-detection concept deliberately does not
re-anchor anything onto them (£6.2/£6.3, marked obsolete). Keeping them means
dead prompts, dead tests, and a standing invitation to build against the wrong
AI edge.
In Scope (verify before deleting — each AC names its evidence)
/onboarding/path,/onboarding/path/yaml,/onboarding/blueprints/generate;confirm zero remaining callers after [Story]: Vibe Coding — shared guidelines, tips & best practices (cross-team + per-repo) #223/[Story]: Industry detection — consumer chain (onboarding path, re-anchored) #296 (AI route files are
api/routes/onboarding.pyandapi/routes/blueprints.py).api/routes/onboarding.py(POST /onboarding/path,POST /onboarding/path/yaml) from the AI service and unregister the router inapi/app.py.api/routes/blueprints.py(POST /onboarding/blueprints/generate)and unregister it in
api/app.py.onboarding/orchestrator.py,onboarding/pipeline.py,onboarding/synthesis.py,onboarding/generation.py(blueprint drafting only),onboarding/registry.py,onboarding/similarity.py(only if no other moduleimports them). Keep everything the phase assembly still needs
(
onboarding/phase.py,phase_models.py,citations.py, retrieval/rag, …).OnboardingPathRequest,GenerateBlueprintsRequest, and any schema only they use) fromapi/schemas.py, unless still referenced.(
tests/onboarding/test_pipeline.py,test_synthesis.py,test_generation.py,tests/api/test_onboarding.py(path parts),tests/api/test_blueprints.py— keep any parts covering/onboarding/phase)./api/v1/onboarding/phase[/stream], the ingestion routes,the backend's
OnboardingPersonalizationServicecontract, and any schema thebackend still sends.
Acceptance Criteria
removed, no imports).
pyright src/has 0 errors; no dead imports.ruf check/pytestgreen with the removed tests deleted; no test stillhits a removed endpoint.
running its tests against the AI service's updated contract, if locally available).
/onboarding/path,/onboarding/path/yaml, or/onboarding/blueprints/generate.Technical Notes
AI-writing edge" statement in the concept matches the code on the same day.
flow), stop and report instead of deleting.
Sub-Tasks (by team)