ARCH: проверить и расширить gate ответа MCP discovery
This commit is contained in:
+42
@@ -1003,6 +1003,48 @@ Validation:
|
||||
- `npm test -- assistantMcpDiscoveryResponsePolicy.test.ts assistantLivingChatRuntimeAdapter.test.ts assistantMcpDiscoveryResponseCandidate.test.ts assistantMcpDiscoveryDebugAttachment.test.ts` passed 19/19;
|
||||
- `npm run build` passed.
|
||||
|
||||
## Progress Update - 2026-04-20 MCP Discovery Response Gate Replay
|
||||
|
||||
The fourteenth implementation slice of Big Block 5 added and executed a targeted AGENT semantic replay for the first guarded MCP discovery answer-replacement gate:
|
||||
|
||||
- `docs/orchestration/address_truth_harness_phase19_mcp_discovery_response_gate.json`
|
||||
- `assistantMcpDiscoveryResponsePolicy.ts`
|
||||
- `assistantMcpDiscoveryResponsePolicy.test.ts`
|
||||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||||
|
||||
The first live replay exposed a real semantic/runtime gap:
|
||||
|
||||
- the MCP discovery entry point executed successfully;
|
||||
- the response candidate was `ready_for_guarded_use`;
|
||||
- the final visible answer still came from `llm_chat` because the policy only applied to deterministic `unsupported_current_turn_meaning_boundary` replies;
|
||||
- the LLM answer was more fluent but less contract-safe because it used a stale runtime date and did not clearly distinguish inferred 1C activity duration from legal registration age.
|
||||
|
||||
The policy gate was expanded safely.
|
||||
|
||||
It can now apply a guarded candidate when either:
|
||||
|
||||
- the current reply is the deterministic unsupported-current-turn boundary; or
|
||||
- the current reply source is `llm_chat`, the MCP discovery entry point is `bridge_executed`, `discovery_attempted=true`, `turn_input.should_run_discovery=true`, and the candidate passes all guarded response checks.
|
||||
|
||||
The gate still does not apply to ordinary chat or exact supported routes because those turns do not have a valid discovery-ready entry point and eligible candidate.
|
||||
|
||||
Replay result:
|
||||
|
||||
- first run: `address_truth_harness_phase19_mcp_discovery_response_gate_live` failed 3/4 on the lifecycle step;
|
||||
- rerun after the policy fix: `address_truth_harness_phase19_mcp_discovery_response_gate_live_rerun1` passed 4/4 with final status `accepted`;
|
||||
- the lifecycle answer source became `mcp_discovery_response_candidate_guarded`;
|
||||
- debug confirmed `mcp_discovery_response_applied=true`, `mcp_discovery_entry_status=bridge_executed`, and `mcp_discovery_answer_mode=confirmed_with_bounded_inference`.
|
||||
|
||||
Validation:
|
||||
|
||||
- `npm test -- assistantMcpDiscoveryResponsePolicy.test.ts assistantLivingChatRuntimeAdapter.test.ts assistantMcpDiscoveryResponseCandidate.test.ts assistantMcpDiscoveryDebugAttachment.test.ts` passed 21/21;
|
||||
- `npm run build` passed;
|
||||
- `python scripts/domain_truth_harness.py run-live --spec docs/orchestration/address_truth_harness_phase19_mcp_discovery_response_gate.json --output-dir artifacts/domain_runs/address_truth_harness_phase19_mcp_discovery_response_gate_live_rerun1 --timeout-seconds 180` passed 4/4, final status `accepted`.
|
||||
|
||||
Known next quality gap:
|
||||
|
||||
- the guarded candidate is now honest and safe, but it still does not compute and verbalize the exact activity duration such as "5 years N months" from first/latest confirmed rows. That belongs to the next evidence-derivation slice, not to the response gate itself.
|
||||
|
||||
## Execution Rule
|
||||
|
||||
Do not implement this plan as:
|
||||
|
||||
Reference in New Issue
Block a user