Member Junction
    Preparing search index...

    What a correct answer looks like — stated as a decision, never as an encoding.

    interface DecisionExpectation {
        actions?: ExpectedAction[];
        allowAdditionalActions?: boolean;
        forbiddenActions?: string[];
        forbiddenPayloadPaths?: string[];
        kind: DecisionKind;
        message?: ParamMatcher;
        ordered?: boolean;
        payload?: ParamExpectation[];
        subAgents?: string[];
    }
    Index

    Properties

    actions?: ExpectedAction[]

    Required when kind is action. Compared as a set unless ordered.

    allowAdditionalActions?: boolean

    Whether actions BEYOND the expected set are tolerated. Defaults to false.

    False is the right default for a decision corpus: an agent that calls the right action plus two speculative extras has not made the right decision, it has made three. Cases that genuinely do not care set this true.

    forbiddenActions?: string[]

    Names that must NOT appear, whatever else happens.

    This is the coherence probe's instrument: with tools declared, a model must not reach for one when chat or completion is the right answer. Expressed as a prohibition rather than a kind mismatch so a case can forbid a specific tempting action while still allowing others.

    forbiddenPayloadPaths?: string[]

    Dotted paths into the payload change that must NOT be present (payload scoping).

    message?: ParamMatcher

    Optional check on the user-facing message — e.g. a chat case that must mention a topic.

    ordered?: boolean

    Whether action order is asserted. Defaults to false — parallel calls have no inherent order.

    payload?: ParamExpectation[]

    Matchers over dotted paths into the observed payload change request, e.g. newElements.findings. Scored into paramFidelity alongside action parameters.

    subAgents?: string[]

    Sub-agent names, when kind is subAgent.