hired.alignment.elicitation#
The honesty loop: rank unknowns into the most informative questions first.
This module is deterministic scaffolding around a judgment the analyst makes.
It computes which UNKNOWN requirements are worth asking about, in what order
(by expected information gain ≈ profile-uncertainty × requirement-criticality),
and whether the analysis has become decision-stable enough to stop.
See misc/docs/DESIGN.md §8.
Functions
|
Expected information gain of resolving this requirement, wrt the verdict. |
|
A requirement is worth asking about only if resolving it could move the verdict — i.e. it's not a low-value-add nice-to-have we can ignore. |
|
True when no remaining open unknown could flip the verdict. |
|
Produce clarifying questions for askable records, highest info-gain first. |
|
Whether to route this record to a clarifying question. |
- hired.alignment.elicitation.info_gain(record)[source]#
Expected information gain of resolving this requirement, wrt the verdict.
Heuristic:
uncertainty × criticality. Animpactoverride (1-5) scales criticality when the analyst has a sharper view than the requirement class.- Return type:
- hired.alignment.elicitation.is_decision_relevant(record)[source]#
A requirement is worth asking about only if resolving it could move the verdict — i.e. it’s not a low-value-add nice-to-have we can ignore.
- Return type:
- hired.alignment.elicitation.is_decision_stable(records)[source]#
True when no remaining open unknown could flip the verdict.
Concretely: there are no askable (decision-relevant, open, unknown) requirements left. This is the sharpest stop criterion from the research.
- Return type:
- hired.alignment.elicitation.rank_clarifications(records, *, max_questions=None, min_info_gain=0.0)[source]#
Produce clarifying questions for askable records, highest info-gain first.
The question text is left to the analyst; this returns the prioritized skeleton (requirement, reason, info_gain) so the caller can fill
question.- Return type:
- hired.alignment.elicitation.should_ask(record)[source]#
Whether to route this record to a clarifying question.
Ask only when it’s
UNKNOWNon an OPEN field and decision-relevant — the “don’t assume absence from silence” rule. CONTRADICTED facts and closed-field unknowns are real gaps, not questions.- Return type: