Files

34 lines
2.5 KiB
Markdown

## MODIFIED Requirements
### Requirement: Fixed isolated executors
The Application Use Case SHALL map SYSTEM_CHAT to one no-Tool model response, KNOWLEDGE_QUERY to exactly one lookup-knowledge invocation plus one bounded answer model call, and DIAGNOSIS to the single Diagnosis Agent followed by the Diagnosis Release boundary. Executors MUST NOT call one another or rewrite the Query. Information saturation and budget termination in Diagnosis SHALL be converted to safe content by Diagnosis Release, not by ChatApplicationUseCase.
#### Scenario: System Chat
- **WHEN** intent is SYSTEM_CHAT
- **THEN** no evidence Tool, Diagnosis Agent, EvidenceGuard, or SemanticGuard is invoked
#### Scenario: Knowledge Query
- **WHEN** intent is KNOWLEDGE_QUERY
- **THEN** only lookup_knowledge is invoked once and query_logs/query_mysql/Diagnosis ReAct are unavailable
#### Scenario: Diagnosis succeeds with a conclusion
- **WHEN** intent is DIAGNOSIS and the Draft passes the release guards
- **THEN** the original Query and bounded PreviousTurn enter DiagnosisAgentUseCase and the Draft publishes only after DiagnosisReleaseUseCase
#### Scenario: Diagnosis stops without a conclusion
- **WHEN** Diagnosis collection is saturated, required context is missing, or a handled budget limit is reached
- **THEN** DiagnosisReleaseUseCase returns bounded Fallback content and ChatApplicationUseCase only persists and transports that decision
## ADDED Requirements
### Requirement: Handled Diagnosis budget termination SHALL remain a Fallback release
When Diagnosis Release has converted a recognized budget termination and existing safe progress into a Fallback, ChatApplicationUseCase SHALL persist that result exactly once without reclassifying it as `INTERNAL_FAILURE`, invoking another model, or rebuilding business fallback content. The internal Run lifecycle MAY retain `BUDGET_EXHAUSTED`, while the persisted public release outcome SHALL be `FALLBACK` and no PublishedResult SHALL be stored.
#### Scenario: Tool budget ends after finite checks
- **WHEN** Diagnosis reaches a hard Tool budget after at least one canonical safe observation and Release creates an insufficient-evidence fallback
- **THEN** the Run persists status SUCCESS, release outcome FALLBACK, safe content and actual budget usage, and the SSE sends content followed by done
#### Scenario: Budget ends without safe publishable progress
- **WHEN** budget termination occurs before Diagnosis Release can form a safe bounded result
- **THEN** the existing failure path remains fail closed and does not fabricate observed facts