\section{Extended Analysis}
\label{sec:appendix-extra-results}

\subsection{Evaluation Metric}
\label{sec:appendix-macro-f1}

We evaluate our system using Macro-F1, the official metric for both subtasks~\citep{thomas2024ineversaidthat}. 

\paragraph{SubTask~1 (single-label classification).} We compute the standard Macro-F1 score by averaging the class-wise F1 scores.

\paragraph{SubTask~2 (multi-reference classification).} The evaluation accommodates multiple valid gold labels per sample. Following the official evaluation scheme, a prediction $p$ is considered a True Positive (TP) for class $c$ if $p = c$ and $c$ is present in the sample's reference set $G$. Crucially, a False Negative (FN) for a gold class $c \in G$ is only penalized if the model's prediction misses the entire reference set (i.e., $p \notin G$). If the model successfully predicts any valid label from $G$, no False Negatives are counted for the other unpredicted labels in $G$. We utilize the official scorer provided by the task organizers to compute the final metrics.

\subsection{Label Distribution and Annotator Disagreement}

Table~\ref{tab:label-dist} shows the label distribution of SubTask~2 classes in the training and development sets.
There is a clear distribution shift between the two sets: \emph{Explicit} accounts for 30.5\% in the training set but drops to 25.9\% in the development set; the proportions of \emph{General} and \emph{Implicit} in the development set are much higher than in the training set (rising from 11.2\% and 14.2\% to 18.6\% and 18.9\%, respectively), while \emph{Dodging} slightly decreased (from 20.5\% to 18.7\%).
This distribution shift means that classifiers built on training set frequency distributions may be systematically biased on the development set, especially tending to underestimate the \emph{General} and \emph{Implicit} classes.
Furthermore, minority classes such as \emph{Partial/half-answer} (2.0--2.3\%) and \emph{Clarification} (1.3--2.7\%) are extremely sparse in both sets, posing a challenge for anchor selection in few-shot prompting---typical positive examples available for selection from the pool are highly limited.

\begin{table}[h]
  \centering
  \small
  \begin{tabular}{lrr}
    \toprule
    SubTask~2 Label & Train & Dev \\
    \midrule
    Explicit & 30.5\% & 25.9\% \\
    Dodging & 20.5\% & 18.7\% \\
    Implicit & 14.2\% & 18.9\% \\
    General & 11.2\% & 18.6\% \\
    Deflection & 11.1\% & 8.1\% \\
    Declining to answer & 4.2\% & 3.6\% \\
    Claims ignorance & 3.5\% & 2.9\% \\
    Clarification & 2.7\% & 1.3\% \\
    Partial/half-answer & 2.3\% & 2.0\% \\
    \bottomrule
  \end{tabular}
  \caption{SubTask~2 Label Distribution. Dev column aggregates votes from 3 annotators. Percentages may not sum to 100\% due to rounding.}
  \label{tab:label-dist}
\end{table}

Table~\ref{tab:annotator-confusion} lists the most frequent annotator disagreement pairs in the development set.
\emph{General} appears in 4 of the top 5 disagreement pairs, covering approximately 38\% of disagreement samples in total, indicating that the boundary of the \emph{General} category itself lacks consistency among human annotators.
Notably, the disagreements for \emph{Explicit}$\leftrightarrow$\emph{General} (10.7\%) and \emph{Explicit}$\leftrightarrow$\emph{Implicit} (8.8\%) cross the boundaries of the SubTask~1 hierarchy (Clear Reply vs. Ambivalent), suggesting considerable subjectivity even on the basic judgment of ``whether substantive information was provided.''
Disagreements in \emph{Deflection}$\leftrightarrow$\emph{Dodging} (4.9\%) and \emph{Dodging}$\leftrightarrow$\emph{General} (9.1\%) also explain why \emph{Dodging} becomes the most difficult class for the system---when an answer neither explicitly refuses nor directly answers, the annotator's judgment between "strategic evasion" and "general answering" often depends on subjective inference of the respondent's intent.

\begin{table}[h]
  \centering
  \small
  \begin{tabular}{lc}
    \toprule
    Annotator Disagreement Pair & Sample \% \\
    \midrule
    General $\leftrightarrow$ Implicit & 12.0\% \\
    Explicit $\leftrightarrow$ General & 10.7\% \\
    Dodging $\leftrightarrow$ General & 9.1\% \\
    Explicit $\leftrightarrow$ Implicit & 8.8\% \\
    Deflection $\leftrightarrow$ General & 6.2\% \\
    Deflection $\leftrightarrow$ Dodging & 4.9\% \\
    \bottomrule
  \end{tabular}
  \caption{Top annotator disagreement pairs on dev (percentage of samples where at least one pair of annotators disagreed).}
  \label{tab:annotator-confusion}
\end{table}

\subsection{SubTask~1 Per-Class Analysis}

Table~\ref{tab:appendix-task1} shows per-class F1 for the three SubTask~1 classes across system variants.
\emph{Clear Non-Reply} remains stable across all variants (0.851--0.870), due to the Gate routing strategy's high precision on Non-Reply classes.
\emph{Ambivalent} is the largest class (206 support samples) and varies only slightly across variants ($\pm$0.005), indicating robust judgments on this class.
\emph{Clear Reply} fluctuates more: after introducing Refined label definitions, its F1 drops from 0.699 to 0.652, but recovers to 0.693 in the final \framework{} version. This fluctuation mainly comes from boundary changes between \emph{Explicit}$\leftrightarrow$\emph{General}/\emph{Implicit}: when more refined definitions shift the classification bias in Step~3, some samples originally correctly predicted as \emph{Explicit} may be reclassified into Ambivalent-side classes, and vice versa.
Overall, SubTask~1 Macro-F1 varies within 0.800--0.812, showing that the three-stage routing framework is relatively stable for coarse-grained classification.

\begin{table}[t]
  \centering
  \footnotesize
  \setlength{\tabcolsep}{3pt} % 默认大约 6pt，这里缩小列间距
  \renewcommand{\arraystretch}{1.05} % 行距略微放松，避免太挤（可选）
  \begin{tabular}{lcccc}
    \toprule
    SubTask~1 label & Supp. & Base &
    \shortstack{+ Refined\\definitions} &
    \shortstack{Full\\(Ours)} \\
    \midrule
    Ambivalent       & 206 & 0.883 & 0.878 & 0.873 \\
    Clear Non-Reply  & 23  & 0.851 & 0.870 & 0.870 \\
    Clear Reply      & 79  & 0.699 & 0.652 & 0.693 \\
    \midrule
    Macro-F1         & --  & 0.811 & 0.800 & \textbf{0.812} \\
    \bottomrule
  \end{tabular}
  \caption{SubTask~1 per-class F1 on dev. Columns compare our Base pipeline, adding refined definitions, and the full system.}
  \label{tab:appendix-task1}
\end{table}

\subsection{SubTask~2 Per-Class Analysis}

Table~\ref{tab:task2-perclass} presents the full Precision, Recall, and F1 breakdown for the final \framework{} system on dev. Table~\ref{tab:appendix-task2} further compares per-class F1 scores across system variants.

\begin{table}[h]
  \centering
  \small
  \begin{tabular}{lrrr}
    \toprule
    Label & P & R & F1 \\
    \midrule
    \multicolumn{4}{l}{\textit{SubTask 1: Clarity}} \\
    Clear Reply & 0.716 & 0.671 & 0.693 \\
    Clear Non-Reply & 0.870 & 0.870 & 0.870 \\
    Ambivalent & 0.863 & 0.883 & 0.873 \\
    \quad \textit{Macro-F1} & -- & -- & \textit{0.812} \\
    \midrule
    \multicolumn{4}{l}{\textit{SubTask 2: Evasion Details}} \\
    Explicit & 0.824 & 0.656 & 0.731 \\
    Implicit & 0.551 & 0.606 & 0.577 \\
    Partial/half-answer & 0.286 & 0.333 & 0.308 \\
    General & 0.556 & 0.494 & 0.523 \\
    Deflection & 0.395 & 0.500 & 0.441 \\
    Dodging & 0.750 & 0.179 & 0.289 \\
    Declining to answer & 1.000 & 0.769 & 0.870 \\
    Claims ignorance & 1.000 & 0.692 & 0.818 \\
    Clarification & 1.000 & 1.000 & 1.000 \\
    \quad \textit{Macro-F1} & -- & -- & \textit{0.617} \\
    \bottomrule
  \end{tabular}
  \caption{Per-class performance of \framework{} on dev (SubTask~1 \& SubTask~2).}
  \label{tab:task2-perclass}
\end{table}

\paragraph{Non-Reply classes.}
\emph{Declining to answer} (0.800$\rightarrow$0.870), \emph{Claims ignorance} (0.783$\rightarrow$0.818), and \emph{Clarification} (always 1.000) remain strong across variants. These classes exhibit clear linguistic signals (e.g., explicit refusal phrases, clarification questions), which the Gate routing strategy captures effectively.

\paragraph{Implicit and General.}
\emph{Implicit} (F1: 0.194$\rightarrow$0.577) and \emph{General} (F1: 0.189$\rightarrow$0.523) are the largest beneficiaries.
This improvement stems from two complementary factors: (1) refined label definitions operationalize the distinction between ``relevant but insufficient information'' (\emph{Implicit}) and ``general talk that avoids the specific question'' (\emph{General}); (2) Step~3 boundary examples present contrastive cases of these two classes, helping the model distinguish ``implicit responses'' from ``surface-related but substantively evasive'' answers.

\paragraph{Dodging.}
\emph{Dodging} remains low (0.222$\rightarrow$0.276$\rightarrow$0.289), with much smaller gains than \emph{Implicit} and \emph{General}.
This bottleneck reflects not only model limitations but also intrinsic annotation ambiguity: in the development set's multi-reference annotations, \emph{Dodging} has very high disagreement rates with \emph{General} (9.1\%) and \emph{Deflection} (4.9\%). When a respondent neither answers directly nor explicitly refuses, but instead adopts an "indirect strategy", annotators often disagree on the intent.

\paragraph{Partial/half-answer.}
With only 6 support samples on dev, \emph{Partial/half-answer} is highly sensitive to individual predictions. Its F1 drops from 0.235 to 0.083 after introducing refined label definitions, but recovers to 0.308 in the final system.

\begin{table}[t]
  \centering
  \footnotesize
  \setlength{\tabcolsep}{3pt}
  \begin{tabular}{lccc}
    \toprule
    SubTask~2 label & Base & \shortstack{+ Refined\\definitions} & \shortstack{Full\\(Ours)} \\
    \midrule
    Explicit & 0.659 & 0.620 & 0.731 \\
    Implicit & 0.194 & 0.342 & 0.577 \\
    Partial/half-answer & 0.235 & 0.083 & 0.308 \\
    General & 0.189 & 0.273 & 0.523 \\
    Deflection & 0.442 & 0.466 & 0.441 \\
    Dodging & 0.222 & 0.276 & 0.289 \\
    Declining to answer & 0.800 & 0.833 & 0.870 \\
    Claims ignorance & 0.783 & 0.783 & 0.818 \\
    Clarification & 1.000 & 1.000 & 1.000 \\
    \midrule
    Macro-F1 & 0.503 & 0.520 & \textbf{0.617} \\
    \bottomrule
  \end{tabular}
  \caption{SubTask~2 per-class F1 on dev (official multi-reference scorer).}
  \label{tab:appendix-task2}
\end{table}

\subsection{Inference Cost Estimation}
\label{sec:appendix-inference-cost}

Table~\ref{tab:inference-cost} reports the call count and estimated token consumption of each stage on the 308-sample development set. Token counts are approximate and serve as comparative cost indicators.

\begin{table}[h]
  \centering
  \footnotesize
  \setlength{\tabcolsep}{3pt}
  \begin{tabular}{lrr rr}
    \toprule
    Stage & Calls & Rate & \shortstack{Input\\(tokens)} & \shortstack{Output\\(tokens)} \\
    \midrule
    Step~1 (Gate)          & 308 & 100.0\% & $\approx$3,300 & $\approx$210 \\
    Step~2 (Correction)    &  23 &   7.5\% & $\approx$3,000 & $\approx$300 \\
    Step~3 (Classification)& 267 &  86.7\% & $\approx$4,300 & $\approx$170 \\
    \midrule
    Weighted avg / sample  & \textbf{1.94} & ---  & $\approx$7,300  & $\approx$380 \\
    Total (308 samples)    & 598  & ---  & $\approx$2.25M & $\approx$0.12M \\
    \bottomrule
  \end{tabular}
  \caption{Per-stage API call counts and estimated token consumption on the development set ($n{=}308$).
    18 samples (5.8\%) are direct exits after Step~1 (high-confidence Non-Reply) and incur no further calls.}
  \label{tab:inference-cost}
\end{table}

The dominant cost driver is Step~3, which handles 86.7\% of samples with the longest prompts (due to 6 anchor examples, 10 boundary examples, and 6-class definitions).
The Step~2 correction branch, despite being triggered on only 7.5\% of samples, has moderate prompt length because it includes 9-class definitions plus a gate-conditioned confusion guide and prior analysis block.
Overall, the framework requires approximately 7,700 tokens per sample on average (roughly 1.94$\times$ the cost of a single-step 9-class CoT prompt), with the additional cost concentrated in the richer few-shot context of Step~3.

\subsection{Extended Official Leaderboard}
\label{sec:appendix-leaderboard}

Table~\ref{tab:full-leaderboard} presents the full Top-10 / Top-11 official hidden evaluation results for both SubTask~1 and SubTask~2. Note that the team \emph{ChulaNLP} appears under the username \emph{moswisarut} on the original Codabench leaderboard.

\begin{table}[h]
  \centering
  \footnotesize
  \setlength{\tabcolsep}{2pt}
  \begin{tabular}{clc|lc}
    \toprule
    & \multicolumn{2}{c|}{\textbf{SubTask 1}} & \multicolumn{2}{c}{\textbf{SubTask 2}} \\
    Rank & Team & F1 & Team & F1 \\
    \midrule
    \textbf{1} & \textbf{TeleAI (Ours)} & \textbf{0.89} & \textbf{TeleAI (Ours)} & \textbf{0.68} \\
    2 & AsymVerify & 0.85 & ChulaNLP$^\dag$ & 0.61 \\
    3 & CSE-UOI & 0.85 & CLaC @ CLARITY & 0.59 \\
    4 & Rasende Rakete & 0.83 & Rasende Rakete & 0.59 \\
    5 & Evaluators & 0.83 & YNU-HPCC & 0.59 \\
    6 & YNU-HPCC & 0.83 & pressprexx & 0.58 \\
    7 & ChulaNLP$^\dag$ & 0.82 & CSE-UOI & 0.58 \\
    8 & tahamunawar & 0.81 & ttda704 & 0.56 \\
    9 & CLaC @ CLARITY & 0.80 & Evaluators & 0.54 \\
    10 & SpinDetector & 0.80 & gsdeyson & 0.52 \\
    11 & gabriel\_stefan & 0.80 & & \\
    \bottomrule
  \end{tabular}
  \caption{Extended official hidden evaluation leaderboard. $^\dag$\emph{ChulaNLP} appears as \emph{moswisarut} on the Codabench leaderboard.}
  \label{tab:full-leaderboard}
\end{table}

\subsection{Additional Ablation: Boundary Count and Confusion Guide}
\label{sec:appendix-ablation-extra}

\paragraph{Sensitivity to Boundary Count.}
We vary the number of boundary counter-examples $B$ in Step~3 while keeping all other components fixed: $B{=}8$ yields 0.606, $B{=}10$ yields \textbf{0.617}, $B{=}12$ yields 0.565, and $B{=}14$ yields 0.565 (SubTask~2 Macro-F1 on dev). Performance peaks at $B{=}10$ and drops sharply beyond, suggesting that additional examples introduce noise or exceed the model's effective in-context utilization window, diluting the most informative contrasts.

\paragraph{Isolating the Confusion Guide.}
To measure the contribution of the confusion guide (explicit instructions for distinguishing commonly confused label pairs), we compare Step~3 variants: without the guide or few-shots (SubTask~2 F1 = 0.491), adding the guide with refined definitions (0.593), and further adding $B{=}10$ boundary examples (0.617). The confusion guide alone contributes +0.102, making it the single most impactful prompt component---larger than boundary examples (+0.024) or gate confidence routing alone.

\subsection{Detailed Error Analysis}
\label{sec:appendix-error-analysis}

\paragraph{Confusion Matrix.}
Figure~\ref{fig:confusion-matrix} shows the 9-class confusion matrix on dev (gold labels determined by majority vote among 3 annotators).
The dominant error cluster is the \emph{Dodging}--\emph{General}--\emph{Deflection} triangle: the system predicts \emph{General} for gold \emph{Dodging} in 18 cases, followed by \emph{Deflection}$\rightarrow$\emph{General} (13), \emph{Implicit}$\rightarrow$\emph{General} (11), and \emph{Deflection}$\rightarrow$\emph{Dodging} (7).
Errors involving at least one of these three labels account for 87 of 112 multi-reference errors (77.7\%).

\begin{figure}[h]
  \centering
  \includegraphics[width=\columnwidth]{../picture/confusion_matrix.pdf}
  \caption{SubTask~2 confusion matrix on dev ($n{=}308$). Rows = gold labels (majority vote); columns = predictions. Color intensity is proportional to count.}
  \label{fig:confusion-matrix}
\end{figure}

\paragraph{Error Distribution by Routing Path.}
All 18 direct-exit samples (Step~1, high-confidence Non-Reply) are classified correctly (0\% error rate), confirming the Gate's conservative confidence criterion.
The Step~2 correction path has an error rate of 47.8\% (11/23), reflecting the inherent difficulty of reclassifying borderline Non-Reply candidates in the full 9-class space.
The Step~3 branch, handling 86.7\% of samples, accounts for 101 of 112 errors (error rate 37.8\%).

\paragraph{Case Study 1: \emph{Dodging} Misclassified as \emph{General}.}
\begin{quote}
\small
\textbf{Sub-question:} \textit{Other financial steps the President is prepared to take if the rate cut is deemed insufficient.} \\[4pt]
\textbf{Answer:} \textit{Roger, I do not comment on the decisions made by the Fed. I will comment on Ben Bernanke; I think he's doing a fine job. The White House and the Congress are responsible for fiscal policy. The worst decision the Congress could make would be to raise taxes during this period. We don't need to raise taxes in order to fund budget priorities.} (truncated) \\[4pt]
\textbf{Prediction:} General \quad \textbf{Gold:} [Deflection, Dodging, Dodging]
\end{quote}
\textbf{Model reasoning (excerpt):}
\begin{quote}
\small\ttfamily
The interviewee does not directly address this specific query. Instead, they discuss fiscal policy, the role of the White House and Congress, and their stance on raising taxes. While the response is related to the broader economic context, it does not provide any information about specific financial steps the President might take.
\end{quote}

\textbf{Analysis:} The model correctly identifies that the answer does not address the sub-question, but classifies it as \emph{General} (on-topic but vague) rather than \emph{Dodging} (strategic avoidance). The respondent strategically shifts to their preferred talking point (no tax raises), which 2 of 3 annotators interpret as deliberate evasion.

\paragraph{Case Study 2: \emph{Explicit} Misclassified as \emph{Implicit}.}
\begin{quote}
\small
\textbf{Sub-question:} \textit{What is the pressure point?} \\[4pt]
\textbf{Answer:} \textit{Yes, I would hope it would be international pressure on not only Hizballah, the group of Hizballah within Lebanon, but also its sponsors. And that's the whole purpose of the United States working with allies and friends, is to send a clear message that sponsoring terror is unacceptable.} \\[4pt]
\textbf{Prediction:} Implicit \quad \textbf{Gold:} [Explicit, Explicit, Explicit] (unanimous)
\end{quote}
\textbf{Model reasoning (excerpt):}
\begin{quote}
\small\ttfamily
This provides a specific mechanism (international pressure and targeting sponsors) that can be inferred as the pressure point, though it is not explicitly labeled as such.
\end{quote}

\textbf{Analysis:} The model is misled by the hedging language (``I would hope'') into treating the answer as indirect, classifying it as \emph{Implicit}. However, the answer explicitly names the pressure point (international pressure on Hizballah and its sponsors). All three annotators agree this is \emph{Explicit}---the hedging signals politeness, not evasiveness.

\subsection{Running Example: End-to-End Pipeline Walkthrough}
\label{sec:appendix-running-example}

We illustrate the full \framework{} pipeline on a development set sample (id=132).

\paragraph{Input.}
\begin{quote}
\small
\textbf{Sub-question:} \textit{What about military options against North Korea once diplomacy and the timetable have been exhausted?} \\[4pt]
\textbf{Answer:} \textit{Well, diplomacy hasn't run its course. That's what I'm trying to explain to you a la the Sanger question. And we'll continue working to make sure that we give diplomacy a full opportunity to succeed. Yes, David [David Gregory, NBC News].} \\[4pt]
\textbf{Gold labels:} Deflection, Deflection, Deflection (unanimous)
\end{quote}

\paragraph{Step~1: Gate (4-way + Confidence).}
The Gate produces the following Chain-of-Thought reasoning:
\begin{quote}
\small\ttfamily
Step 1 -- Identify sub-question requirement: The sub-question asks about military options against North Korea once diplomacy and the timetable have been exhausted.\\
Step 2 -- Check key-information override: The answer discusses diplomacy not having run its course and the intention to give it a full opportunity to succeed, but it does NOT address military options. Key info is missing.\\
Step 3 -- Check Hard constraints: The answer does not explicitly ask for clarification, claim ignorance, or decline to answer. It focuses on the current state of diplomacy.\\
Step 4 -- Apply Tie-breakers: No relevant cues for Clarification, Claims ignorance, or Declining to answer are present.
\end{quote}
\textbf{Output:} {\small\texttt{<confidence>Medium</confidence>}}
{\small\texttt{<label>OTHER</label>}}

Since the Gate predicts \texttt{OTHER}, the sample is routed to \textbf{Step~3} (6-class subdivision).

\paragraph{Step~3: OTHER Branch Subdivision (6-way).}
The dynamically assembled prompt includes 6-class definitions, the Ambivalent confusion guide, 6 anchor examples, and 10 boundary counter-examples. The model reasons:

\begin{quote}
\small\ttfamily
The sub-question asks about military options against North Korea once diplomacy and the timetable have been exhausted. The answer does not directly address the military options but instead focuses on the current state of diplomacy, stating that it hasn't run its course yet. This response does not provide any information about military options, nor does it imply or infer anything about them. The answer stays within the broader topic of North Korea but shifts the focus to the ongoing diplomatic efforts, which is a different specific point than the sub-question's core focus on military options.
\end{quote}
\textbf{Output:} \texttt{<label>Deflection</label>}

\paragraph{Final Result.}
SubTask~2 prediction: \emph{Deflection} $\rightarrow$ SubTask~1 (via mapping): \emph{Ambivalent}. Both match the gold labels. $\checkmark$

\paragraph{Routing Summary.} This sample exemplifies the majority path (86.7\% of dev samples): Step~1 identifies that the answer provides no Non-Reply signals (no refusal, no ignorance claim, no clarification request), routes to Step~3, where the boundary examples help distinguish \emph{Deflection} (topic shift within the broader domain) from \emph{Dodging} (avoidance without topical engagement) and \emph{General} (on-topic but vague).

\subsection{Pipeline Algorithm}
\label{sec:appendix-algorithm}

Algorithm~\ref{alg:pipeline} provides pseudocode for the full \framework{} inference pipeline, including Gate routing logic and dynamic prompt assembly for each branch.

\begin{algorithm}[h]
\caption{\framework{} Inference Pipeline}\label{alg:pipeline}
\small
\begin{algorithmic}[1]
\Require Sample $x = (\text{sub-question}, \text{answer})$
\Ensure SubTask~2 label $\hat{y}$, SubTask~1 label $\hat{y}_1$
\Statex \textit{// Step~1: Gate with Confidence}
\State $(g, c) \gets \textsc{Gate}(x)$ \Comment{4-way + H/M/L}
\If{$g \in \mathcal{S}_{\text{NR}}$ \textbf{and} $c = \text{High}$}
    \State $\hat{y} \gets g$ \Comment{Direct exit}
\ElsIf{$g \in \mathcal{S}_{\text{NR}}$ \textbf{and} $c \neq \text{High}$}
    \Statex \textit{// Step~2: Non-Reply Correction (9-way)}
    \State $P \gets \textsc{Build}(\text{def}_{9}, \text{guide}(g),$
    \Statex \hspace{4.5em}$\text{anc}_2, \text{bnd}_3, \text{prior}(g,c))$
    \State $\hat{y} \gets \textsc{CoT-Reason}(x, P)$
\Else \Comment{$g = \text{OTHER}$}
    \Statex \textit{// Step~3: OTHER Subdivision (6-way)}
    \State $P \gets \textsc{Build}(\text{def}_{6}, \text{guide}_{\text{amb}},$
    \Statex \hspace{4.5em}$\text{anc}_6, \text{bnd}_{10})$
    \State $\hat{y} \gets \textsc{CoT-Reason}(x, P)$
\EndIf
\State $\hat{y}_1 \gets \textsc{Map}(\hat{y})$ \Comment{SubTask~2$\to$1}
\State \Return $(\hat{y}, \hat{y}_1)$
\end{algorithmic}
\end{algorithm}

Key notation: $\mathcal{S}_{\text{NR}} = \{$Declining, Claims ignorance, Clarification$\}$; $\text{def}_k$ = $k$-class label definitions; $\text{guide}(g)$ = confusion guide conditioned on Gate label; $\text{anc}_n$/$\text{bnd}_n$ = $n$ anchor/boundary few-shot examples; $\text{prior}(g,c)$ = Gate label and confidence as prior context for Step~2. \textsc{Build} dynamically assembles these components (see Appendix~\ref{sec:appendix-dynamic-template}), and \textsc{CoT-Reason} performs Chain-of-Thought inference with the assembled prompt.

\subsection{Supervised Fine-Tuning Details}
\label{sec:appendix-sft}

This section describes the two supervised fine-tuning (SFT) approaches reported in Table~\ref{tab:method-comparison}: \emph{Direct SFT} and \emph{SFT + Distillation}. Both use Qwen2.5-7B-Instruct~\citep{qwen2.5} as the base model and are trained with LoRA~\citep{hu2022lora} via the LLaMA-Factory framework~\citep{zheng2024llamafactory}.

\paragraph{Training Configuration.}
Table~\ref{tab:sft-hyperparams} lists the shared training hyperparameters. Both variants use the same configuration to ensure a fair comparison.

\begin{table}[h]
  \centering
  \small
  \begin{tabular}{ll}
    \toprule
    Hyperparameter & Value \\
    \midrule
    Base model & Qwen2.5-7B-Instruct \\
    Fine-tuning method & LoRA \\
    LoRA rank / alpha / dropout & 8 / 16 / 0.05 \\
    LoRA target modules & all linear layers \\
    Learning rate & $1 \times 10^{-4}$ \\
    LR scheduler & Cosine (warmup ratio 0.1) \\
    Training epochs & 3 \\
    Effective batch size & 32 (multi-GPU) \\
    Precision & FP16 mixed precision \\
    Optimizer & AdamW \\
    Max sequence length & 3{,}072 tokens \\
    \bottomrule
  \end{tabular}
  \caption{Shared training hyperparameters for all SFT experiments.}
  \label{tab:sft-hyperparams}
\end{table}

\paragraph{Direct SFT.}
The direct SFT variant trains the model to predict a single digit (0--8), where each index maps to one of the 9 SubTask~2 labels. Training data is constructed from the 3{,}448 training samples using majority-vote labels from the original annotations. The instruction template (shown below) provides the index-to-label mapping alongside the classification directive. At inference, the model's output digit is mapped back to the corresponding label name.

\vspace{0.5em}
\noindent\textbf{Instruction template:}
\lstset{
  basicstyle=\ttfamily\scriptsize,
  breaklines=true,
  columns=fullflexible,
  keepspaces=true,
  inputencoding=utf8,
  extendedchars=true,
  frame=single,
  framerule=0.2pt,
  xleftmargin=0.4em,
  xrightmargin=0.4em,
  aboveskip=1.0em,
  belowskip=1.0em,
  literate={→}{{$\rightarrow$}}1
}
\lstinputlisting{appendix_assets/sft/instruction_with_semantics.txt}

\noindent The input is formatted as a structured block containing the interview question, interview answer, and sub-question (see our code repository for the full template).

\paragraph{Knowledge Distillation via CoT Fusion.}
The distillation variant uses the \framework{} pipeline outputs as teacher data, generated via a two-step process:

\begin{enumerate}
  \item \textbf{Teacher Inference.} We run the full \framework{} pipeline (Step~1 $\rightarrow$ Step~2 or Step~3) using Qwen3-235B-A22B~\citep{qwen2.5} as the backbone on all 3{,}448 training samples. For each sample, we collect per-step labels, confidence scores, and Chain-of-Thought reasoning traces.
  \item \textbf{CoT Fusion.} The multi-step traces are consolidated into a single reasoning paragraph using a dedicated fusion prompt (shown below). The fusion model (also Qwen3-235B-A22B) produces a concise 2--6 sentence justification that is consistent with the predicted label, references specific content from the interview answer, and does not expose the pipeline structure. Only samples where the teacher's prediction matches the gold label are retained for training.
\end{enumerate}

The fused CoT paragraphs paired with their corresponding labels form the distillation training set. The student model learns to generate the reasoning trace before producing the final label, allowing it to internalize the teacher's multi-stage decisions within a single inference pass.

\vspace{0.5em}
\noindent\textbf{CoT Fusion Prompt (abbreviated; sample-specific fields omitted):}
\lstinputlisting{appendix_assets/sft/fuse_cot_prompt.txt}
