core/core
Shay 1a95acb692 feat(ask): strengthen Q1-D artifact validation, add rejection tests, bypass justification
- evaluate_served_ask now validates the full Q1-D DeliveredQuestion contract:
  status == 'question_only', requires_review is True, served is False,
  answer_binding is None, question.text non-empty, question.slot_name present,
  question_path != proposal_path.  Each clause is individually testable via
  _validate_artifact() which is a pure predicate with no side effects.

- Added _MISSING sentinel to distinguish absent keys from explicit None/False
  values in 'served' and 'answer_binding' checks.

- Added load-bearing comment in _stub_response explaining why served ASK
  bypasses register decoration and realizer guard: Q1-C/Q1-D is the
  authoritative grounded renderer; mutating pre-rendered intake prose would
  be semantically incorrect.

- Expanded test_ask_serving_integration.py with:
  - Rejection tests: status='proposal_only', served=True, requires_review=False,
    non-null answer_binding, missing/blank question.text, missing/blank slot_name.
  - Exact-text bypass safety test proving stub surface == artifact text exactly
    with no register/decorator mutation and realizer_guard_status='ok'.
  - Disposition telemetry tests: default main-path stability, proposal terminal
    not reclassified, ASK branch emits 'ask', refused terminal stays 'refuse',
    ChatResponse.disposition defaults '' for backward compat.

All 440 tests pass.
2026-06-09 12:03:15 -07:00
..
capability
cognition feat: add tier2 reasoning evidence spine 2026-06-04 14:12:18 -07:00
comprehension_attempt feat(contemplation): wire CMB into multi-organ router and failure registry (CMB-d) 2026-06-08 13:58:48 -07:00
contemplation feat: add tier2 reasoning evidence spine 2026-06-04 14:12:18 -07:00
demos
epistemic_disclosure feat(ask): strengthen Q1-D artifact validation, add rejection tests, bypass justification 2026-06-09 12:03:15 -07:00
epistemic_questions feat(ask): add default-dark ASK serving gate helper 2026-06-09 09:17:14 -07:00
learning_arena feat: add tier2 reasoning evidence spine 2026-06-04 14:12:18 -07:00
physics feat(ask): activate gated served ASK through disclosure bus 2026-06-09 11:49:42 -07:00
proposal_review feat(proposal-review): pure idle_summary function (IT-a) 2026-06-07 22:25:00 -07:00
protocol
reasoning feat(reasoning): field-wedge foundation — f64 embedding, lineage firewall, INV-27 2026-06-04 19:22:16 -07:00
reliability_gate feat(adr-0175): wire the PROPOSE step — autonomous loop closes (attempt->tether->ledger->propose) 2026-05-30 13:50:24 -07:00
response_governance feat(determine): calibrated disclosed estimation — the engine earns the right to guess (Step E) 2026-06-06 13:49:07 -07:00
sync feat(sync): export optional S3 adapter 2026-05-29 19:47:24 -07:00
__init__.py
_safe_display.py
array_codec.py feat(edge): edge-deployment budget gate — deterministic per-turn persistence cost 2026-06-06 10:27:10 -07:00
cli.py Add passive tabletop lab protocol 2026-06-06 12:37:57 -07:00
config.py feat(config): add explicit default-dark serving gate fields 2026-06-09 10:24:28 -07:00
engine_identity.py feat(identity): L11 identity continuity — same identity across reboot, not just same bytes 2026-06-05 13:52:57 -07:00
epistemic_state.py