def on_default(self) -> Feedback:
        """
        Specifies that one argument feedbacks should be evaluated on the main
        app output and two argument feedbacks should be evaluates on main input
        and main output in that order.

        Returns a new Feedback object with this specification.
        """

        if self.imp is None:
            raise ValueError(
                "Feedback function implementation is required to determine default argument names."
            )
        sig: Signature = signature(self.imp)
        num_remaining_parameters = len(
            list(k for k in sig.parameters.keys() if k not in self.selectors)
        )
        if num_remaining_parameters == 0:
            return self
        if num_remaining_parameters == 1:
            # If there is only one parameter left, we assume it is the output.
            return self.on_output()
        if num_remaining_parameters == 2:
            # If there are two parameters left, we assume they are the input
            # and output.
            return self.on_input_output()
        # If there are more than two parameters left, we cannot guess what to
        # do.
        raise RuntimeError(
            f"Cannot determine default paths for feedback function arguments. "
            f"The feedback function has signature {sig}."
        )

        Specifies that one argument feedbacks should be evaluated on the main
        app output and two argument feedbacks should be evaluates on main input
        and main output in that order.

        Returns a new Feedback object with this specification.
        
src/core/trulens/core/feedback/feedback.py