The ultrathink + operator both found it: ~half the corpus is not cold
prospecting (existing clients mid-booking, friends, vendors, spam) yet was
forced into prospect moves -- the root cause of the 54% forward/backward
disagreement. Taxonomy now leads with the prospect/not-prospect gate:
existing_client | personal | vendor | spam as explicit classes, and collapses
the noisy qualify/engage pair into 'pursue' (they route to the same action).
Applied to both sweep (forward) and rationalize (backward) for the next
re-sweep on the identity-gated corpus.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Matches sweep.py — 64-way client concurrency against vLLM max_num_seqs=128 so
the full 8K-row backward-rationalization runs in ~12min on one H100, no
horizontal fleet needed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Backward CoT distillation over all swept conversations (context + Quinn's actual
reply -> move + gold-anchored trace), full 10-move taxonomy. Produces the
(context -> trace -> move) LoRA training set labeled by what she really did.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
STaR-style: given (client_msg -> Quinn's actual reply), infer the move she ran
+ a one-sentence reasoning trace anchored to her real reply. Produces
(message -> trace -> move) training rows for LoRA-hardening move-classification.
First BBC batch: 19 rows, qualify 8 / engage 3 / disengage 8 -- matches her
real qualify-dominant boundary, not a hand-authored guess.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>