Date: 2026-02-20
Validation after scope-first role-profile hard cut (scope: all_methods|explicit_methods, all_methods default) and continuity observation fix.
Evidence root:
tmp/phase-validation-0024-scope-hardcut/phase-1-rerun/tmp/phase-validation-0024-scope-hardcut/phase-1-rerun/rspec.txttmp/phase-validation-0024-scope-hardcut/phase-1-rerun/calculator.txttmp/phase-validation-0024-scope-hardcut/phase-1-rerun/assistant.txttmp/phase-validation-0024-scope-hardcut/phase-1-rerun/xdg/recurgent/recurgent.jsonltmp/phase-validation-0024-scope-hardcut/phase-1-rerun/log_summary.txt
- Command:
cd runtimes/ruby && mise exec -- env XDG_STATE_HOME=<phase-xdg> bundle exec rspec - Result:
259 examples, 0 failures - Assessment: Pass.
- Command:
cd runtimes/ruby && mise exec -- env XDG_STATE_HOME=<phase-xdg> ruby examples/calculator.rb
Run outcomes:
calc.add(3)->8(correct)calc.multiply(4)->32(correct)calc.sqrt(32)->5.656854249492381(correct)calc.sqrt(144)->12.0(correct)calc.factorial(10)->3628800(correct)calc.convert(100, from: 'celsius', to: 'fahrenheit')->212.0(correct)calc.solve('2x + 5 = 17')->guardrail_retry_exhausted(incorrect; expected a solved value such asx=6)calc.history-> method returned error (guardrail_retry_exhausted), script printed fallbackcontext[:conversation_history]
Log diagnosis (calculator top-level calls: 8):
ok: 6,error: 2.- Role-profile compliance:
- Passed for
add,multiply, bothsqrt,factorial,convert. - Failed for
solveandhistory(shared_state_slot_drift), then retries exhausted.
- Passed for
- Repair/guardrail behavior:
multiplyandconverteach recovered from one continuity guardrail violation and succeeded.factorialrecovered from one execution error and succeeded.
What went well:
- Deterministic arithmetic path improved materially (factorial/convert now correct in this rerun).
- Continuity guard correctly enforced shared-state consistency and prevented silent drift.
Needs improvement:
solveremains semantically unstable under continuity constraints.historycurrently coupled to prior drift and fails aftersolveexhaustion.
- Command:
cd runtimes/ruby && mise exec -- env XDG_STATE_HOME=<phase-xdg> ruby examples/assistant.rb < assistant_input.txt - Requests:
- Top news in Google News, Yahoo! News, NY Times
- Action-adventure movies in theaters
- Recipe for Jaffna Kool
Run outcomes:
- News request ->
ok(hash with headlines + provenance)- Included items from all 3 requested sources.
- Provenance included URIs and retrieval mode (
live). - Accuracy: mostly correct for source coverage; output is overlong (not tightly “top items”).
- Movies-in-theaters request ->
error(missing_capability)- Accuracy: capability declaration is honest, but user intent is unmet.
- Jaffna Kool request ->
ok(structured recipe with ingredients and instructions)- Accuracy: good practical recipe output.
Log diagnosis (assistant top-level calls: 3):
ok: 2,error: 1.- Delegation observed:
news_aggregator.aggregate_newsandnews_aggregator.fetch_headlines(bothok). - First two assistant calls had one guardrail recovery each before final outcome.
- Assistant role-profile compliance remained
passed: truefor all three calls.
What went well:
- News aggregation flow executed with source provenance and successful delegated tool calls.
- Recipe flow produced useful structured output.
Needs improvement:
- No movie-theater capability path yet; add dedicated listings tool/dependency contract.
- News response should constrain output length/ranking to true “top items”.
Expected improvements:
- Scope-hardcut schema consistency and safer
all_methodscoordination. - Better continuity enforcement with fewer false holds.
Observed:
- Achieved schema consistency (
all_methodsdefault works; tests green). - In-session sibling observation now works; spurious synthetic method-name pollution removed.
- Continuity guard enforcement is active and effective.
- Semantic correctness still uneven outside core arithmetic path (
solve,history) and missing-capability user intents (movies).
- Add a calculator contract/profile constraint for algebra solving semantics (or route
solveto a dedicated solver tool with explicit state contract). - Add theater-listings capability/tool (API-backed) to satisfy movie requests.
- Add prompt/output constraints for “top N” headline summarization to avoid oversized raw dumps.