Skip to main content

LlmFunnel

Struct LlmFunnel 

Source
pub struct LlmFunnel {
    pub evidence: u64,
    pub proposed: u64,
    pub cited: u64,
    pub dropped_uncited: u64,
    pub dropped_target: u64,
    pub grounded: u64,
    pub ground_verdicts: u64,
    pub ground_call_failed: bool,
    pub kept: u64,
    pub stored: u64,
    pub advisory_thin_evidence: u64,
}
Expand description

The DISCOVER pipeline’s attrition, counted.

“The model contributed nothing” has at least five distinct causes, and they call for opposite responses: an empty bundle is a capture problem, a model that abstained may need better evidence or a better prompt, drafts dying at GROUND suggest fabrication, drafts dying at VERIFY suggest they were vague, and drafts dying at the floor were merely unconfident. Without this they are indistinguishable from the outside — every one of them renders as an empty ledger and reads like a clean null. That ambiguity cost a six-cell measurement run before it was noticed.

Fields§

§evidence: u64

Grains offered to the model as evidence. Zero means nothing to reflect on.

§proposed: u64

Drafts the model returned.

§cited: u64

Survived the cite-check and target-class filter.

§dropped_uncited: u64

Dropped for citing a hash the bundle does not hold. Its own counter because the fix is specific: models copy long hex badly, and that is a different problem from one aiming at a surface it may not touch.

§dropped_target: u64

Dropped for targeting a class the vocabulary may not reach — a prompt, host config, or its own grader.

§grounded: u64

Survived GROUND — their premises were found in the cited evidence.

§ground_verdicts: u64

Verdicts GROUND actually returned. grounded = 0 with verdicts > 0 is the gate refusing every draft; grounded = 0 with verdicts = 0 is a grader that answered with nothing usable, which is a backend problem wearing a gate’s clothes.

§ground_call_failed: bool

The GROUND call itself failed — no response at all. The engine fail-softs here by design, so without this the run looks like a model that had nothing to say.

§kept: u64

Survived VERIFY’s adversarial pass.

§stored: u64

Cleared the confidence floor and reached the queue.

§advisory_thin_evidence: u64

Kept, but demoted to advisory for citing fewer distinct evidence grains than Policy::min_evidence. Omitted when zero, so a run under the default policy reads exactly as before.

Trait Implementations§

Source§

impl Clone for LlmFunnel

Source§

fn clone(&self) -> LlmFunnel

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LlmFunnel

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for LlmFunnel

Source§

fn default() -> LlmFunnel

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for LlmFunnel

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for LlmFunnel

Source§

fn eq(&self, other: &LlmFunnel) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for LlmFunnel

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for LlmFunnel

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.