Files

5.6 KiB

MODIFIED Requirements

Requirement: ChatService SHALL route based on Verifier verdict

The system SHALL use ChatService for explicit single-round Planner -> Executor -> Verifier -> Composer orchestration and SHALL use ChatService to control whether an additional round is allowed.

Scenario: PASS -> Composer output

  • WHEN Verifier outputs verdict="PASS"
  • THEN ChatService SHALL filter Verifier-allowed material and invoke Composer or a safe fixed template
  • AND the final user-facing answer SHALL NOT pass through raw Executor output
  • AND the final user-facing answer SHALL NOT read Executor user_facing_answer

Scenario: LOW_CONFID score>=0.5 -> Composer output with uncertainty

  • WHEN Verifier outputs verdict="LOW_CONFID" with groundedness_score >= 0.5
  • THEN ChatService SHALL filter Verifier-allowed material and invoke Composer or a safe fixed template
  • AND the final user-facing answer SHALL distinguish confirmed information, possible directions, and evidence gaps
  • AND unsupported raw Executor claims SHALL NOT be presented as confirmed conclusions

Scenario: LOW_CONFID score<0.5 -> trigger one additional round

  • WHEN Verifier outputs verdict="LOW_CONFID" with groundedness_score < 0.5 and this is the first callback
  • THEN the ChatService SHALL invoke one additional Planner -> Executor -> Verifier round to supplement evidence
  • AND after the second Verifier run, verdict="LOW_CONFID" SHALL be routed to Composer or a safe fixed template
  • AND after the second Verifier run, verdict="REJECT" SHALL still produce a degraded Composer-safe output

Scenario: REJECT does not enter retry round

  • WHEN Verifier outputs verdict="REJECT"
  • THEN the system SHALL NOT start a retry round for evidence supplementation
  • AND it SHALL produce a degraded output directly through Composer-safe rendering

Scenario: REJECT -> degraded output

  • WHEN Verifier outputs verdict="REJECT"
  • THEN the system SHALL output a degraded result indicating the answer cannot be reliably generated
  • AND it SHALL NOT pass through the raw Executor answer
  • AND it SHALL NOT include a root-cause conclusion

Requirement: Verifier SHALL be observable

The Verifier's verdict and downstream final-answer composition SHALL be persisted for observability.

Scenario: claim checks written to self_evaluation

  • WHEN the Verifier evaluation is persisted
  • THEN diagnosis_session.self_evaluation.verifier_evaluation SHALL include claim_checks
  • AND it SHALL continue to include compatibility facts_checked
  • AND existing fields such as verdict, groundedness_score, rationale, executor_output_parse_status, tool_trace_summary, and gatekeeper_result SHALL be preserved

Scenario: composer output written to self_evaluation

  • WHEN final answer composition completes
  • THEN diagnosis_session.self_evaluation.verifier_evaluation SHALL include composer_output
  • AND composer_output SHALL indicate whether parsed Composer output or fallback rendering was used
  • AND existing verifier fields such as claim_checks, facts_checked, gatekeeper_result, and tool_trace_summary SHALL be preserved

Scenario: verdict written to self_evaluation

  • WHEN the Verifier produces a verdict
  • THEN the ChatService SHALL write the verdict data under diagnosis_session.self_evaluation.verifier_evaluation
  • AND existing rule_evaluation data SHALL be preserved

Scenario: gatekeeper result written to self_evaluation

  • WHEN the Verifier evaluation is persisted
  • THEN diagnosis_session.self_evaluation.verifier_evaluation SHALL include gatekeeper_result
  • AND existing verifier fields such as verdict, facts_checked, executor_output_parse_status, and tool_trace_summary SHALL be preserved

ADDED Requirements

Requirement: User-facing verifier outputs SHALL follow Composer-safe protocols

The system SHALL use Composer or fixed safe templates for PASS, LOW_CONFID, and REJECT user-facing responses.

Scenario: PASS uses Composer-safe output

  • WHEN the final verdict is PASS
  • THEN the user-facing response SHALL be generated from Verifier-allowed material through Composer or a safe fixed template
  • AND it SHALL NOT use Executor user_facing_answer
  • AND it SHALL NOT expose raw Executor JSON

Scenario: LOW_CONFID uses Composer-safe uncertainty output

  • WHEN the final verdict is LOW_CONFID
  • THEN the user-facing response SHALL include only confirmed facts, possible directions, evidence gaps, and next-step suggestions derived from Verifier-allowed material
  • AND optional evidence gaps, if present, SHALL come only from verifier-identified gaps
  • AND unsupported raw Executor claims SHALL NOT be presented as confirmed conclusions

Scenario: REJECT uses degraded template

  • WHEN the final verdict is REJECT
  • THEN the user-facing response SHALL use a degraded template or Composer-safe degraded output
  • AND it SHALL include only confirmed facts, evidence gaps, and next-step suggestions
  • AND it SHALL NOT include unverified raw answer content
  • AND it SHALL NOT include a root-cause conclusion

REMOVED Requirements

Requirement: User-facing verifier outputs SHALL follow fixed templates

Reason: final user-facing answers are no longer owned by legacy Verifier templates. They must be generated from Verifier-allowed material through Composer or deterministic safe fallback.

Migration: use "User-facing verifier outputs SHALL follow Composer-safe protocols" and the new chat-composer-agent capability.