Plan search operator correction phases
This commit is contained in:
@@ -12,15 +12,24 @@
|
||||
- Current-scope behavior is correct as a ranking concept, but the UI still talks about the mechanism instead of simply showing the best in-scope answer first and only then out-of-scope overflow.
|
||||
- Suggestion reliability is fixed only when the active corpus is actually ingested. A healthy process with an empty corpus is still a bad operator experience unless the UI suppresses or fails those paths explicitly.
|
||||
|
||||
## What still fails after live operator use
|
||||
- The product still leaves visible or hidden traces of a dual entry model. Search is supposed to be the starting point, but AdvisoryAI still feels like a separate feature instead of a secondary deep-dive opened from the search field.
|
||||
- The current surface still carries internal search concepts in contracts and helpers even after the visible buttons were reduced. If `Find / Explain / Act` still changes prompt or chip behavior, the product is still teaching an internal model.
|
||||
- The current history contract cannot reliably remove old failed searches after reload because the local store still accepts legacy bare-string entries with no result outcome attached.
|
||||
- `Did you mean` is still visually tied to the results surface rather than the input correction moment. It needs to live immediately below the search field.
|
||||
- Suggestions are still too easy to surface without enough corpus proof. Search must treat corpus readiness and suggestion executability as a product requirement, not a test-only concern.
|
||||
|
||||
## Product rules
|
||||
1. Search is the primary entry point.
|
||||
2. AdvisoryAI is a secondary deep-dive opened from search, not a competing starting point or route jump.
|
||||
3. Search should infer relevance and intent; the user should not need to choose a mode.
|
||||
3. Search should infer relevance and intent; the user should not need to choose a mode or understand Stella search mechanics.
|
||||
4. Search should bias to the current page context automatically; the user should not need to toggle scope.
|
||||
5. Search should never advertise a suggestion that cannot execute against the active corpus.
|
||||
6. Search history should contain only successful searches.
|
||||
7. Telemetry remains optional. Search behavior must not depend on analytics emission.
|
||||
8. Search UI must avoid teaching Stella terminology or search mechanics before the operator has even started.
|
||||
9. `Did you mean` belongs directly below the search field because it is an input correction, not a downstream refinement.
|
||||
10. Search should summarize close evidence automatically. AdvisoryAI expands detail; it should not be required to make the primary result understandable.
|
||||
|
||||
## Target interaction model
|
||||
### Entry
|
||||
@@ -101,4 +110,23 @@
|
||||
- Implemented before and during the corrective phases: explicit scope/mode/recovery controls were removed from the main search flow, implicit current-scope weighting and overflow contracts were added, and suggestion viability preflight now suppresses dead chips before render.
|
||||
- Implemented before the corrective phases: the live Doctor suggestion suite now rebuilds the active corpus, fails on empty knowledge projections, iterates every surfaced suggestion, and verifies Ask-AdvisoryAI inherits the live search context.
|
||||
- Implemented from the corrective phases: backend overflow is now narrow enough that clear in-scope winners suppress out-of-scope spillover, blended summaries only appear for genuinely close evidence clusters, and `SearchTelemetryEnabled` cleanly disables analytics/feedback/sink emission without affecting retrieval or history.
|
||||
- Still pending from the corrective phases: broader live-page matrices and explicit client-side telemetry opt-out.
|
||||
- Still pending from the corrective phases: removal of hidden FE mode dependencies, a structured success-only history contract that purges failed legacy entries on load, stricter suggestion/corpus readiness gating across more routes, and broader live-page matrices.
|
||||
|
||||
## Execution phases - operator correction pass
|
||||
### Phase 1 - Search-first primary surface cleanup
|
||||
- Remove the remaining FE mode concept from shared search contracts, prompt helpers, and page-owned chip selection.
|
||||
- Keep one visible primary entry: search input with a compact assistant launcher beside it.
|
||||
- Attach `Did you mean` directly to the input area and simplify result labels to plain operator language.
|
||||
- Migrate recent history to a structured success-only format and ignore legacy failed entries on load.
|
||||
|
||||
### Phase 2 - Backend query understanding and suggestion hardening
|
||||
- Infer answer shape from the query, route context, visible entities, and recent actions instead of any FE mode hint.
|
||||
- Return stricter suggestion viability signals so FE can suppress dead suggestions when the corpus is empty, stale, or outside the current route's supported domains.
|
||||
- Keep out-of-scope overflow secondary and only when it materially improves the answer.
|
||||
- Keep telemetry optional and separate from retrieval, ranking, suggestion gating, and history.
|
||||
|
||||
### Phase 3 - Live ingestion-backed readiness and regression gate
|
||||
- Run deterministic Playwright against the simplified surface on every change.
|
||||
- Run live Playwright against ingested corpora and fail early on empty corpus, missing rebuilds, or uncompiled CLI assumptions.
|
||||
- Assert that every surfaced suggestion on covered routes resolves to a non-dead-end state.
|
||||
- Treat corpus readiness as part of release verification for search suggestions.
|
||||
|
||||
Reference in New Issue
Block a user