anhtld commited on
Commit
5f1ccb6
·
verified ·
1 Parent(s): 04f12e2

ctt train-calibration hygiene 2026-07-03T16:31:19Z: latex/main.tex

Browse files
Files changed (1) hide show
  1. latex/main.tex +680 -0
latex/main.tex ADDED
@@ -0,0 +1,680 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ \documentclass[10pt]{article}
2
+
3
+ \usepackage[margin=1in]{geometry}
4
+ \usepackage{booktabs}
5
+ \usepackage{amsmath}
6
+ \usepackage{amssymb}
7
+ \usepackage{amsthm}
8
+ \usepackage{graphicx}
9
+ \usepackage{xcolor}
10
+ \usepackage{hyperref}
11
+ \hypersetup{
12
+ pdftitle={Counterfactual Action Atlas: Learning Local Causal Geometry for Vision-Language-Action Control},
13
+ pdfauthor={DoVLA-CIL Working Draft},
14
+ pdfsubject={CIL-Atlas diagnostic draft with measured CTT rollout and utility-energy selector diagnostics},
15
+ }
16
+
17
+ \title{Counterfactual Action Atlas: Learning Local Causal Geometry for Vision-Language-Action Control}
18
+ \author{DoVLA-CIL Working Draft}
19
+ \date{\today}
20
+
21
+ \newcommand{\cil}{\textsc{CIL}}
22
+ \newcommand{\atlas}{\textsc{CIL-Atlas}}
23
+ \newcommand{\ctt}{\textsc{CTT}}
24
+ \newcommand{\bench}{\textsc{CILBench}}
25
+ \newcommand{\dovla}{\textsc{DoVLA}}
26
+ \newcommand{\pptc}{\ensuremath{\mathrm{PPTC}}}
27
+ \newcommand{\outcomeptr}{\ensuremath{\mathrm{OutcomePTR}}}
28
+
29
+ \newtheorem{definition}{Definition}
30
+ \newtheorem{theorem}{Theorem}
31
+ \newtheorem{proposition}{Proposition}
32
+
33
+ \begin{document}
34
+ \maketitle
35
+
36
+ \begin{abstract}
37
+ Vision-language-action policies are usually trained from demonstrations that
38
+ show what the robot did, but not what would have happened under nearby actions.
39
+ We introduce the Counterfactual Action Atlas, a same-state interventional
40
+ framework for measuring local do-action geometry and for auditing whether a
41
+ deployment-clean generator actually reaches positive tangent support. A
42
+ \bench{} chart restores the identical state and instruction, executes multiple
43
+ action chunks, and measures which tangents cause recovery, progress, failure,
44
+ collision, or success. The current six-task diagnostic shows why this object
45
+ matters: direct h=16 behavior cloning reaches 29.74\% success,
46
+ deployment-clean residual transport reaches 38.90\%, its top-8 proposal oracle
47
+ reaches 44.35\%, and the hidden same-state no-expert chart reaches 56.99\%.
48
+ This decomposes failure into proposal-support and selector gaps. The current
49
+ \atlas{} implementation evaluates Causal Tangent Transport (\ctt{}), which
50
+ starts from measured train positive tangents and learns
51
+ $T_{\phi}(z_s,z_t,\xi_s^+)\rightarrow \xi_t^+$, transporting a positive
52
+ do-action tangent from a nearby source chart into the current target chart.
53
+ Measured validation and test rollouts confirm the support story but not yet a
54
+ final deployment method: on test charts, the generated proposal oracle reaches
55
+ 50.69\% success and \outcomeptr{}@8 reaches 52.78\%, while the selected action
56
+ falls to 22.22\%, exposing an unsolved calibrated-dominance problem. We keep
57
+ the metric boundary explicit: \outcomeptr{} is reported only after generated
58
+ candidates are rolled out, while distance-only support diagnostics are
59
+ \pptc{}. These runs are therefore diagnostic evidence for the Atlas thesis and
60
+ the next selector/generator gate, not an unqualified SOTA claim.
61
+ \end{abstract}
62
+
63
+ \section{Introduction}
64
+
65
+ Standard imitation collapses a state into one demonstrated action. For
66
+ manipulation this is the wrong unit of supervision. The same visual state and
67
+ instruction may admit a successful lateral correction, a smooth no-op, a
68
+ collision, a wrong-object move, and a recovery tangent. The missing information
69
+ is not merely more demonstrations or a larger decoder; it is measured
70
+ same-state interventional geometry:
71
+ \[
72
+ \text{for the same }(s,\ell),\quad
73
+ \text{which } do(a_i) \text{ causally improves or destroys the outcome?}
74
+ \]
75
+
76
+ The current diagnostic makes this geometry visible. Clean residual transport
77
+ improves success by 9.16 points over the direct h=16 policy. However, the
78
+ proposal oracle inside the clean top-8 prefix is only 5.45 points above the
79
+ deployed selector, while the gap from that proposal oracle to the hidden
80
+ same-state no-expert chart is 12.64 points. The bottleneck is therefore support:
81
+ the method must generate actions that lie on positive causal tangent support,
82
+ not merely rescore a fixed candidate set.
83
+
84
+ This draft follows one spine. \atlas{} turns robot action learning from one
85
+ demonstrated action per state into local causal action geometry: for the same
86
+ visual state and instruction, what action tangents actually cause recovery,
87
+ progress, failure, collision, or success? \bench{} defines the chart primitive.
88
+ Causal Action Regret decomposes deployment failure into proposal support and
89
+ selector terms. \ctt{} is the current transport generator inside the Atlas: it
90
+ transports measured train positive tangents into target charts. Baselines such
91
+ as residual retrieval, generic CVAE/flow generation, and Gaussian field search
92
+ are kept as diagnostics for why noise-initialized or off-manifold proposal
93
+ search is insufficient.
94
+
95
+ \paragraph{Contributions.}
96
+ \begin{itemize}
97
+ \item We define \bench{}, a same-state interventional chart format for VLA
98
+ manipulation, with train-only outcome visibility and evaluator-only
99
+ validation/test outcomes.
100
+ \item We implement canonical metrics that separate measured outcomes from
101
+ geometry proxies: BranchCAR, \outcomeptr{}@K, SelectorRegret@K,
102
+ SupportGap, \pptc{}@K, NegativeNear, and proxy support distance.
103
+ \item We introduce \atlas{}, an object-centric representation hypothesis for
104
+ local causal action geometry. The current implementation is \ctt{}, a
105
+ transport operator
106
+ $T_{\phi}(z_s,z_t,\xi_s^+)\rightarrow\xi_t^+$ that starts from measured
107
+ positive source tangents rather than ambient noise.
108
+ \item We provide leakage-audited chart exports, data accounting, local
109
+ positive-memory baselines, residual/gated \ctt{} proxy comparisons, and
110
+ measured validation/test generated-candidate rollouts. We report them
111
+ honestly as geometry and gate evidence, not as final deployment success.
112
+ \end{itemize}
113
+
114
+ \section{Related Work}
115
+
116
+ \paragraph{VLA policies and fine-tuning.}
117
+ OpenVLA demonstrates that open VLA backbones can be fine-tuned for generalist
118
+ manipulation from large robot datasets~\cite{kim2024openvla}. OpenVLA-OFT
119
+ shows that parallel decoding, action chunking, continuous actions, and simple
120
+ regression objectives substantially improve fine-tuning efficiency and LIBERO
121
+ performance~\cite{kim2025openvlaoft}. These methods improve the base policy
122
+ that produces $a_b$ in our framework. They do not by themselves provide
123
+ same-state alternatives or measured do-action contrasts.
124
+
125
+ \paragraph{Test-time sampling, verification, and abstention.}
126
+ RoboMonkey scales VLA inference by sampling candidate actions and selecting
127
+ with a VLM-based verifier~\cite{kwok2025robomonkey}. VeriSpace adds 3D-aware
128
+ scene encoding and spatially grounded action reasoning for verifier-based
129
+ selection~\cite{zhao2026verispace}. BOKBO highlights a safety failure of
130
+ best-of-$K$: when all candidates are bad, the verifier-best action can still be
131
+ unsafe, motivating calibrated abstention~\cite{singh2026bokbo}. \ctt{} is
132
+ orthogonal: it targets proposal support by transporting measured positive
133
+ tangents before scoring or abstention.
134
+
135
+ \paragraph{Counterfactual robot data and benchmarks.}
136
+ CAST uses counterfactual language/action labels to improve instruction
137
+ following without new intervention rollouts~\cite{glossop2025cast}. In
138
+ contrast, \bench{} measures $Y\mid do(a),s,\ell$ through same-state action
139
+ execution. ManiSkill3 supplies GPU-parallel simulation and rendering for
140
+ scalable manipulation experiments~\cite{tao2024maniskill3}; VLABench stresses
141
+ long-horizon language-conditioned manipulation~\cite{zhang2024vlabench};
142
+ RoboTwin~2.0 targets scalable bimanual data generation~\cite{chen2025robotwin2};
143
+ and LIBERO studies lifelong transfer across language-conditioned manipulation
144
+ suites~\cite{liu2023libero}. These benchmarks motivate broader evaluation once
145
+ the current CTT support gate is passed.
146
+
147
+ \section{CILBench}
148
+
149
+ \subsection{Same-State Charts}
150
+
151
+ A \bench{} group is a local chart
152
+ \[
153
+ C(s,\ell)=\{(o,\ell,a_i,y_i)\}_{i=1}^{K},
154
+ \]
155
+ where every branch executes $do(a_i)$ from the same restored simulator state
156
+ $s$, observation $o$, and instruction $\ell$. Because the state is fixed, a
157
+ within-chart difference
158
+ \[
159
+ Y(a_i)-Y(a_j)
160
+ \]
161
+ is a same-state causal contrast between interventions $do(a_i)$ and $do(a_j)$.
162
+ This is not subjective preference data. It is measured intervention data for
163
+ robot action chunks.
164
+
165
+ Each branch stores an action chunk, branch family, rollout trace reference, and
166
+ outcome vector
167
+ \[
168
+ y_i=[s_i,p_i,c_i,v_i,q_i,e_i,r_i],
169
+ \]
170
+ for terminal success, dense progress, contact quality, safety violation,
171
+ task-stage quality, smoothness, and recovery. A scalar utility $U(y_i)$ is used
172
+ for ranking and CAR, while reports should keep the components visible.
173
+
174
+ \subsection{Splits and Leakage Contract}
175
+
176
+ The train split is the only split allowed to expose outcomes to retrieval,
177
+ generation, and utility training. Validation and test chart DBs are
178
+ evaluator-only: their outcomes may be loaded by metric scripts, but their
179
+ indexes are not retrieval indexes and must not be loaded by deployment-time
180
+ proposal or selection code. This is the contract required for a
181
+ deployment-clean method: no same-state validation rewards at inference, no
182
+ expert proposals, and no hidden simulator state at selection time.
183
+ When calibration rollouts target train charts, retrieval must also exclude any
184
+ source chart with the same chart id or restored-state hash as the target; this
185
+ prevents a train-only calibration set from copying the exact target positive
186
+ tangents it is supposed to evaluate.
187
+
188
+ \begin{table}[t]
189
+ \centering
190
+ \caption{Scripted chart data accounting. Counts are generated by
191
+ \texttt{scripts/build\_data\_accounting.py}. Train rows expose outcomes for
192
+ training; validation/test rows expose outcomes only to evaluator scripts.}
193
+ \label{tab:data-accounting}
194
+ \scriptsize
195
+ \input{../runs/data_accounting/table}
196
+ \end{table}
197
+
198
+ The current leakage audit over \texttt{data/cil\_charts/\{train,val,test\}}
199
+ passes with zero violations. The train index contains 2,044 charts and 32,704
200
+ rows; the complete split export contains 2,873 charts and 45,968 rows.
201
+
202
+ \section{Metrics}
203
+
204
+ For one chart, let $a_b$ be the base action and let $U(\cdot)$ be measured
205
+ utility when outcomes are available. Branch Causal Action Regret is
206
+ \[
207
+ \mathrm{BranchCAR}=U(a^*_{\mathcal A})-U(a_m),
208
+ \qquad
209
+ a^*_{\mathcal A}=\arg\max_{a\in\mathcal A} U(a).
210
+ \]
211
+
212
+ \paragraph{Measured proposal metrics.}
213
+ Generated candidates may be called successful only after they are rolled out or
214
+ otherwise evaluated by the benchmark. Outcome-positive proposal recall is
215
+ \[
216
+ \outcomeptr@K=
217
+ \mathbb{1}\left[\exists \hat a_k\in P_K:
218
+ U(\hat a_k)>U(a_b)+\epsilon\right].
219
+ \]
220
+ Selector Regret inside the measured proposal prefix is
221
+ \[
222
+ \mathrm{SelectorRegret@K}
223
+ =U(a^*_{P_K})-U(a_{\mathrm{selected}}).
224
+ \]
225
+ Support Gap is
226
+ \[
227
+ \mathrm{SupportGap}
228
+ =U(a^*_{\mathrm{hidden\ chart}})-U(a^*_{P_K}).
229
+ \]
230
+ These metrics are invalid for distance-only candidates.
231
+
232
+ \paragraph{Proxy geometry metrics.}
233
+ When generated candidates have not been rolled out, this draft reports support
234
+ geometry as \pptc{}:
235
+ \[
236
+ \pptc@K(\tau)=
237
+ \mathbb{1}\left[
238
+ \min_{\hat\xi_k\in P_K,\xi^+\in \Xi^+}
239
+ d_{\mathrm{RMS}}(\hat\xi_k,\xi^+) \le \tau
240
+ \right].
241
+ \]
242
+ NegativeNear@K reports the fraction of generated tangents within threshold of a
243
+ measured negative tangent. PosCloserThanNeg and proxy support distance summarize
244
+ whether the generated set lies nearer to positive support than to negative
245
+ support. These are geometry diagnostics, not outcome success.
246
+
247
+ \section{Counterfactual Action Atlas}
248
+
249
+ \atlas{} is the local causal geometry learned from same-state charts. Its
250
+ deployment object is not a single action label, but a field over candidate
251
+ tangents: which nearby action corrections are positive, negative, recoverable,
252
+ unsafe, or unsupported for the current observation and instruction. The current
253
+ implemented generator is \ctt{}, a positive-tangent transport method. It does
254
+ not start from Gaussian noise and then optimize a learned field off-manifold.
255
+ It starts from measured train positives:
256
+ \[
257
+ \Delta U_i = U(a_i)-U(a_b),\qquad
258
+ \xi_i^+=\psi(a_i-a_b)\quad \text{if } \Delta U_i>\epsilon .
259
+ \]
260
+ For a source chart token $z_s$, target chart token $z_t$, and measured source
261
+ positive tangent $\xi_s^+$, the model predicts
262
+ \[
263
+ \hat\xi_t^+=T_{\phi}(z_s,z_t,\xi_s^+).
264
+ \]
265
+ The implemented residual and gated residual \ctt{} variants are
266
+ \[
267
+ \hat\xi_t = \xi_s^+ + \Delta_{\phi}(z_s,z_t,\xi_s^+),
268
+ \]
269
+ \[
270
+ \hat\xi_t =
271
+ g_{\phi}(z_s,z_t,\xi_s^+)\odot\xi_s^+
272
+ +(1-g_{\phi}(z_s,z_t,\xi_s^+))\odot
273
+ \Delta_{\phi}(z_s,z_t,\xi_s^+).
274
+ \]
275
+
276
+ \paragraph{Training loss.}
277
+ The current implementation trains on outcome-visible train charts. For each
278
+ nearby same-task source-target pair, it minimizes one-sided positive alignment,
279
+ a negative boundary penalty, and a cycle consistency term:
280
+ \[
281
+ \mathcal L =
282
+ \lambda_+\min_{\xi_t^+\in\Xi_t^+}\|\hat\xi_t-\xi_t^+\|_2^2
283
+ + \lambda_-\max(0,m-d(\hat\xi_t,\Xi_t^-))
284
+ + \lambda_c\|T_{\phi}(z_t,z_s,\hat\xi_t)-\xi_s^+\|_2^2.
285
+ \]
286
+ The first implementation uses exported base-action summaries as chart features.
287
+ This is an engineering limitation, not the intended Atlas representation. The
288
+ next chart export should include visual-language tokens, target/distractor
289
+ object tokens, robot/contact-region tokens, and object-centric tangent frames.
290
+
291
+ \paragraph{Deployment plan.}
292
+ At test time, \atlas{} should sample or retrieve positive tangents, decode them
293
+ into candidate action chunks, score their causal utility, and execute only if a
294
+ calibrated lower confidence bound says the best tangent dominates the base
295
+ action. The current \ctt{} implementation retrieves nearby train positive source
296
+ tangents, transports them into the current chart, and decodes the public 21D
297
+ tangent summary as three residual keyframes with linear interpolation into an
298
+ action chunk. This is an auditable engineering decoder, not a lossless
299
+ reconstruction of the hidden branch action.
300
+
301
+ \input{../paper/sections/theory}
302
+
303
+ \section{Current Evidence}
304
+
305
+ We evaluate six ManiSkill manipulation diagnostics with clean rows that do not
306
+ use same-state validation proposals, same-state validation rewards, or expert
307
+ proposals at deployment. Same-state rows are diagnostic oracles that reveal
308
+ local chart geometry.
309
+
310
+ \input{tables/main_results}
311
+ \input{tables/car_decomposition}
312
+
313
+ Table~\ref{tab:car-decomposition} is the central diagnostic. It says that the
314
+ current residual baseline learns a useful local utility field, but the larger
315
+ remaining bottleneck is proposal support.
316
+
317
+ \subsection{Baselines and Failure Modes}
318
+
319
+ \input{tables/source_score_sweep}
320
+ \input{tables/selector_calibration}
321
+
322
+ Residual transport V0, utility-weighted residual retrieval V1, negative-margin
323
+ reranking, barycentric chart synthesis, CVAE generators, and flow generators are
324
+ diagnostic baselines. V1 does not beat V0. Negative-margin reranking does not
325
+ replace local positive support. Raw-action CVAE and spline flow variants can be
326
+ safe under NegativeNear, but collapse strict positive support. These failures
327
+ motivate \ctt{}: positive support should be transported from measured positive
328
+ chart tangents, with negative tangents defining boundaries, rather than sampled
329
+ from ambient noise.
330
+
331
+ Previous distance-only memory and local-atlas diagnostics must be read as
332
+ \pptc{}, not \outcomeptr{}. The train-only positive memory reaches 11.83\%
333
+ \pptc{}@16 at threshold 0.20 and 41.94\% at threshold 0.40. Local-atlas
334
+ retrieval reaches 23.66\% \pptc{}@16 at threshold 0.20 and 52.69\% at threshold
335
+ 0.40, with 5.33\% NegativeNear at threshold 0.20. These numbers support the
336
+ local organization of positive tangents, but they are not measured rollout
337
+ success.
338
+
339
+ \subsection{CTT Smoke Artifact}
340
+
341
+ \begin{table}[t]
342
+ \centering
343
+ \caption{First residual \ctt{} proxy smoke on train self-target charts. This
344
+ table is an artifact check, not validation/test performance and not
345
+ \outcomeptr{}. The 0.20 NegativeNear value exceeds the current safety gate, so
346
+ the run should not be claimed as method success.}
347
+ \label{tab:ctt-smoke}
348
+ \scriptsize
349
+ \input{../runs/ctt_residual_smoke_proxy/table}
350
+ \end{table}
351
+
352
+ The first residual \ctt{} smoke trains on 16 train charts and evaluates
353
+ train self-target proxy geometry. It reaches perfect \pptc{} in this small
354
+ self-target setting, but NegativeNear@16 at threshold 0.20 is 10.10\%, above
355
+ the local-atlas reference of 5.33\% by more than one point. Therefore the gate
356
+ for rollout is not passed. The correct conclusion is that the code path and
357
+ artifact contract now exist; the method still needs a safer validation-scale
358
+ transport run before any outcome claim.
359
+
360
+ A gated residual smoke run is safer in this same tiny setting
361
+ (50.00\% \pptc{}@16 at threshold 0.20 and 5.73\% NegativeNear@16 at threshold
362
+ 0.20), but it is still train self-target proxy evidence. It is a candidate for
363
+ the next validation-scale proxy sweep, not a paper result.
364
+
365
+ \subsection{Validation Proxy Gate}
366
+
367
+ \begin{table}[t]
368
+ \centering
369
+ \caption{Validation proxy comparison on 69 validation charts with measured
370
+ positive tangents, using train-only source positives. The gate column is
371
+ proxy-only: it requires no more than one point higher NegativeNear@0.20 than
372
+ local-atlas and improvement on \pptc{}@0.20, \pptc{}@0.40, or mean positive
373
+ distance. Passing this gate permits rollout evaluation; it is not
374
+ \outcomeptr{} or measured success.}
375
+ \label{tab:ctt-val-proxy}
376
+ \scriptsize
377
+ \resizebox{\linewidth}{!}{\input{../runs/ctt_val_proxy_comparison/table}}
378
+ \end{table}
379
+
380
+ Table~\ref{tab:ctt-val-proxy} is the first three-seed validation support-geometry
381
+ artifact. Residual \ctt{} lowers mean positive distance relative to local-atlas
382
+ and keeps NegativeNear@0.20 within the one-point safety slack, but it does not
383
+ beat local-atlas on \pptc{} coverage. Gated residual \ctt{} lowers mean positive
384
+ distance further, but the three-seed NegativeNear@0.20 average exceeds the
385
+ safety slack, so it fails the proxy gate. The honest interpretation is that
386
+ residual \ctt{} is eligible for measured rollout, while the support/safety
387
+ tradeoff remains unresolved.
388
+
389
+ A one-seed base-context diagnostic appends deployment-visible task and
390
+ instruction hashes to the base-action chart token. It reaches 62.32\%
391
+ \pptc{}@0.40 and 1.82\% NegativeNear@0.20 on the same 69 validation charts, but
392
+ still trails the local-atlas \pptc{} rates. A follow-up non-destructive
393
+ RGB-reference export, \texttt{data/cil\_charts\_rgb\_refs}, passes leakage audit
394
+ and exposes 32D deterministic RGB-stat observation embeddings in every split.
395
+ Across three seeds, the corresponding \texttt{base\_context\_obs} row reaches
396
+ 24.64\% \pptc{}@0.20, 64.25\% \pptc{}@0.40, 3.43\% NegativeNear@0.20, and mean
397
+ positive distance 0.4347. This is the strongest current \ctt{} proxy row on
398
+ support geometry while staying inside the local-atlas safety slack, but it
399
+ remains proxy-only and still does not beat local-atlas \pptc{}. We therefore
400
+ treat it as rollout-eligible representation evidence, not as a
401
+ visual-language/object-centric or measured outcome claim.
402
+
403
+ \subsection{Measured Rollout Harness}
404
+
405
+ The first measured \ctt{} rollout artifact now exists:
406
+ \texttt{scripts/eval\_ctt\_generated\_rollout.py} generates train-positive
407
+ transport candidates, decodes them into action chunks, restores the validation
408
+ state, executes base plus generated candidates in ManiSkill, and writes measured
409
+ rows consumable by \texttt{scripts/eval\_metrics.py}. On CPU backends it falls
410
+ back to sequential same-state restores because ManiSkill does not allow
411
+ multi-environment CPU vectorization.
412
+
413
+ A one-chart smoke run at K=2 verifies the measured path and restore accuracy
414
+ (\texttt{runs/ctt\_residual\_rollout\_direct\_smoke\_seed0\_v3}), but it does
415
+ not support a method-success claim: \outcomeptr{}@2 is 0.0000 and the generated
416
+ candidates underperform the measured base action on that chart. This negative
417
+ smoke is useful because it protects the paper from reclassifying \pptc{} proxy
418
+ evidence as outcome success.
419
+
420
+ \begin{table}[t]
421
+ \centering
422
+ \caption{Measured residual \ctt{} rollout on 69 validation positive-support
423
+ charts across three train seeds, K=8. Generated candidates are decoded and
424
+ executed from restored simulator states; these are measured outcome metrics,
425
+ not \pptc{} proxies.}
426
+ \label{tab:ctt-val-rollout}
427
+ \scriptsize
428
+ \resizebox{\linewidth}{!}{\input{../runs/ctt_val_rollout_comparison/table}}
429
+ \end{table}
430
+
431
+ Table~\ref{tab:ctt-val-rollout} is the first non-proxy \ctt{} validation
432
+ evidence. Across 207 measured rows, \outcomeptr{}@8 is 0.4589 with a 95\%
433
+ bootstrap interval of [0.3913, 0.5314]. This shows that transported positive
434
+ tangents often find actions that beat the base action. At the same time,
435
+ selected success is only 24.15\%, below the measured base success of 28.50\%.
436
+ The proposal oracle is 37.68\%, the hidden same-state chart oracle is 66.67\%,
437
+ the success support gap is 29.47 points, and the success selector gap is 13.53
438
+ points. The validation result supports the paper's support-gap story more than
439
+ it supports an unqualified deployment claim.
440
+
441
+ \begin{table}[t]
442
+ \centering
443
+ \caption{Measured validation rollout for the proxy-positive
444
+ \texttt{base\_context\_obs} visual-stat chart token, across three train seeds,
445
+ K=8. The RGB-stat chart token improves support-side validation metrics, but the
446
+ selected action still fails to beat the base action.}
447
+ \label{tab:ctt-base-context-obs-val-rollout}
448
+ \scriptsize
449
+ \resizebox{\linewidth}{!}{\input{../runs/ctt_base_context_obs_val_rollout_comparison/table}}
450
+ \end{table}
451
+
452
+ Table~\ref{tab:ctt-base-context-obs-val-rollout} tests whether the proxy
453
+ improvement from \texttt{base\_context\_obs} survives measured rollout. It does
454
+ improve support-side validation metrics over Table~\ref{tab:ctt-val-rollout}:
455
+ \outcomeptr{}@8 rises from 45.89\% to 50.24\%, proposal-oracle success rises
456
+ from 37.68\% to 40.58\%, and the success support gap falls from 29.47 to 27.54
457
+ points. The selector failure remains: selected success is 24.15\%, below the
458
+ 27.54\% base success, and the success selector gap grows to 16.43 points. Thus
459
+ deterministic visual statistics help proposal support, but they do not solve
460
+ deployment-clean action selection.
461
+
462
+ \begin{table}[t]
463
+ \centering
464
+ \caption{Measured residual \ctt{} rollout on 48 test positive-support charts
465
+ across three train seeds, K=8. The generated proposal oracle crosses the
466
+ internal 50\% support target, but the selected action fails because the current
467
+ score/dominance rule chooses poor candidates.}
468
+ \label{tab:ctt-test-rollout}
469
+ \scriptsize
470
+ \resizebox{\linewidth}{!}{\input{../runs/ctt_test_rollout_comparison/table}}
471
+ \end{table}
472
+
473
+ Table~\ref{tab:ctt-test-rollout} gives the current clean test gate. Across 144
474
+ measured rows, \outcomeptr{}@8 is 52.78\% with a 95\% bootstrap interval of
475
+ [44.44, 60.42], proposal-oracle success is 50.69\%, and hidden chart oracle
476
+ success is 72.92\%. This is the strongest evidence so far that learned
477
+ positive-tangent transport can improve proposal support. However, selected
478
+ success is 22.22\%, below the measured base success of 28.47\%, and the success
479
+ selector gap is 28.47 points. The immediate next method step is therefore not
480
+ another proxy generator claim; it is calibrated causal dominance and utility
481
+ selection that refuse to execute generated actions unless they confidently
482
+ dominate the base.
483
+
484
+ \begin{table}[t]
485
+ \centering
486
+ \caption{Measured test rollout for the \texttt{base\_context\_obs} visual-stat
487
+ chart token, across three train seeds, K=8. Support and score-only selection
488
+ improve relative to the base-action chart token, but selected success remains
489
+ below base.}
490
+ \label{tab:ctt-base-context-obs-test-rollout}
491
+ \scriptsize
492
+ \resizebox{\linewidth}{!}{\input{../runs/ctt_base_context_obs_test_rollout_comparison/table}}
493
+ \end{table}
494
+
495
+ Table~\ref{tab:ctt-base-context-obs-test-rollout} shows the held-out effect of
496
+ the leakage-audited RGB-stat token. It raises \outcomeptr{}@8 from 52.78\% to
497
+ 53.47\%, proposal-oracle success from 50.69\% to 51.39\%, and score-only
498
+ selected success from 22.22\% to 27.08\%. The selected action is still below
499
+ the measured base success of 29.17\%, so this remains support evidence plus a
500
+ selector diagnostic rather than a deployment claim.
501
+
502
+ \begin{table}[t]
503
+ \centering
504
+ \caption{Validation-calibrated dominance fallback evaluated on the measured
505
+ test rollout. The threshold and conformal residual quantile are fit on
506
+ validation rows only; test outcomes are used only for reporting. The fallback
507
+ reduces coverage but does not yet repair selector transfer.}
508
+ \label{tab:ctt-dominance}
509
+ \scriptsize
510
+ \resizebox{\linewidth}{!}{\input{../runs/ctt_dominance_val_to_test/table}}
511
+ \end{table}
512
+
513
+ Table~\ref{tab:ctt-dominance} tests the decision rule requested by the method:
514
+ execute a generated tangent only when a calibrated lower confidence bound on
515
+ $F(a)-F(a_b)$ exceeds a threshold. On validation, the auto threshold improves
516
+ selected success from 24.15\% to 30.92\% at 39.61\% coverage. On test, however,
517
+ the same calibrated rule reaches only 25.00\% selected success at 39.58\%
518
+ coverage, still below the 28.47\% base success. A stricter fixed $\tau=0$
519
+ variant falls back 87.50\% of the time and reaches 27.78\%, nearly the base
520
+ rate but still not an improvement. This makes the next failure mode precise:
521
+ the proposal set contains useful actions, but the current utility-energy margin
522
+ does not transfer as a reliable dominance certificate.
523
+
524
+ \begin{table}[t]
525
+ \centering
526
+ \caption{Learned dominance fallback trained on validation measured rows and
527
+ evaluated on held-out test rows. Features are deployment-visible candidate
528
+ features: utility-energy scores, score margins to base, rank, and tangent
529
+ norms. This improves over the base test success but remains far below the
530
+ paper gate.}
531
+ \label{tab:ctt-learned-dominance}
532
+ \scriptsize
533
+ \resizebox{\linewidth}{!}{\input{../runs/ctt_learned_dominance_val_to_test/table}}
534
+ \end{table}
535
+
536
+ Table~\ref{tab:ctt-learned-dominance} asks whether a small learned calibrator
537
+ can repair the selector without new rollouts. A ridge dominance model trained
538
+ only on validation measured rows reaches 30.56\% held-out test selected success
539
+ at 24.31\% coverage, improving over the 28.47\% base policy and the 22.22\%
540
+ score-only selector. This is a real selector improvement, but it is still far
541
+ from the 47--50\% target and leaves a 25.69-point success selector gap. The
542
+ evidence therefore narrows the bottleneck: transported proposals contain useful
543
+ actions, and lightweight dominance helps, but the final method needs a stronger
544
+ train-only utility-energy model and richer visual/object-centric chart tokens.
545
+ Additional validation-selected ridge variants that fit success, success-weighted
546
+ utility margin, or the transported 21D tangent code are logged as diagnostics;
547
+ their held-out test selected success ranges from 29.17\% to 29.86\%, so they do
548
+ not replace the best learned-dominance row. Deployment-visible context features
549
+ based on task id, instruction hashes, source task id, and same-task flags also
550
+ reach only 29.17\% held-out selected success. Full train-only utility-energy
551
+ checkpoints are negative across three seeds: when
552
+ \texttt{eval\_dominance\_selector.py} recomputes candidate scores from
553
+ \texttt{runs/utility\_energy\_full\_seed\{0,1,2\}}, held-out selected success is
554
+ 27.08\%, 28.47\%, and 23.61\%, below the learned ridge selector.
555
+
556
+ \begin{table}[t]
557
+ \centering
558
+ \caption{Best validation-calibrated dominance diagnostic so far: learned
559
+ context dominance over the measured \texttt{base\_context\_obs} visual-stat
560
+ rollout rows. The calibrator is fit on validation measured rows only and
561
+ evaluated on held-out test rows.}
562
+ \label{tab:ctt-base-context-obs-learned-dominance}
563
+ \scriptsize
564
+ \resizebox{\linewidth}{!}{\input{../runs/ctt_base_context_obs_learned_dominance_context_val_to_test/table}}
565
+ \end{table}
566
+
567
+ Table~\ref{tab:ctt-base-context-obs-learned-dominance} combines the visual-stat
568
+ proposal set with validation-calibrated context dominance. It reaches 32.64\%
569
+ held-out selected success at 50.69\% coverage, improving over the RGB-stat
570
+ score-only selector, the measured base action, and the previous learned
571
+ dominance row. The gain is real but not sufficient: proposal-oracle success is
572
+ 51.39\%, hidden chart oracle success is 72.92\%, and the success selector gap
573
+ remains 24.31 points. The remaining problem is still reliable deployment-clean
574
+ dominance, not merely generating more nearby tangents.
575
+
576
+ The feature-source audits turn this negative result into a concrete engineering
577
+ target. In the original \texttt{data/cil\_charts} indexes, scene ids and
578
+ instructions are present, but observation embeddings and raw observation
579
+ references are absent. The new \texttt{data/cil\_charts\_rgb\_refs} export adds
580
+ leakage-audited observation refs and deterministic RGB-stat embeddings, and
581
+ the three-seed \texttt{base\_context\_obs} proxy and measured rollout rows
582
+ improve support and learned selected success. Therefore the current \ctt{}
583
+ chart encoder has a useful visual-stat diagnostic path, but it is still missing
584
+ the learned visual-language or object-centric geometry needed to close
585
+ SupportGap and SelectorGap.
586
+
587
+ \section{Reproducibility Artifacts}
588
+
589
+ The current draft is backed by explicit artifacts:
590
+ \begin{itemize}
591
+ \item \texttt{cil/metrics.py} and \texttt{scripts/eval\_metrics.py} enforce
592
+ the measured/proxy metric split.
593
+ \item \texttt{scripts/export\_cil\_charts.py},
594
+ \texttt{scripts/build\_data\_accounting.py}, and
595
+ \texttt{scripts/audit\_cil\_charts.py} produce split indexes, accounting, and
596
+ leakage reports.
597
+ \item \texttt{cil/models/ctt.py}, \texttt{scripts/train\_ctt.py}, and
598
+ \texttt{scripts/eval\_ctt\_proxy.py} implement the first transport path.
599
+ \item \texttt{cil/chart\_features.py} centralizes deployment-visible chart
600
+ feature construction, and
601
+ \texttt{scripts/audit\_chart\_feature\_sources.py} audits whether chart
602
+ indexes expose observation embeddings or raw observation references.
603
+ \item \texttt{scripts/slurm/render\_six\_task\_chart\_observations.sbatch}
604
+ and \texttt{scripts/slurm/reexport\_rgb\_ref\_cil\_charts.sbatch} produce the
605
+ non-destructive RGB-reference chart export used for visual-stat diagnostics.
606
+ \item \texttt{scripts/export\_chart\_observation\_embeddings.py} creates the
607
+ deterministic 32D RGB-stat observation embeddings, and
608
+ \texttt{scripts/slurm/train\_ctt\_feature\_proxy.sbatch} runs feature-mode
609
+ CTT proxy sweeps such as \texttt{base\_context\_obs}.
610
+ \item \texttt{scripts/eval\_ctt\_generated\_rollout.py} and
611
+ \texttt{scripts/slurm/eval\_ctt\_generated\_rollout.sbatch} implement the
612
+ measured generated-candidate rollout path, including a self-source exclusion
613
+ flag for train-split calibration and metadata loading for deployment-visible
614
+ chart features such as \texttt{base\_context\_obs}.
615
+ \item \texttt{scripts/build\_ctt\_rollout\_comparison.py} aggregates
616
+ measured validation/test rollouts and reports selected success, proposal
617
+ oracle success, hidden chart oracle success, success support gap, and success
618
+ selector gap.
619
+ \item \texttt{scripts/eval\_dominance\_selector.py} calibrates a dominance
620
+ fallback rule on validation measured rows and evaluates it on held-out test
621
+ measured rows; it can use rollout row scores or recompute scores from a
622
+ train-only utility-energy checkpoint.
623
+ \item \texttt{scripts/eval\_learned\_dominance\_selector.py} trains a small
624
+ validation-calibrated dominance model over deployment-visible candidate
625
+ features and evaluates it on held-out measured test rows; it also logs
626
+ feature/target ablations, including context metadata and tangent-code
627
+ variants, for selector diagnostics.
628
+ \item \texttt{scripts/eval\_chart\_positive\_memory\_proxy.py} and
629
+ \texttt{scripts/build\_ctt\_proxy\_comparison.py} generate the local-atlas
630
+ baseline and validation proxy gate table.
631
+ \item \texttt{scripts/check\_tangent\_reconstruction.py} verifies that the
632
+ exported 21D tangent codes are deterministic summaries of \texttt{delta\_action}.
633
+ \item \texttt{scripts/train\_utility\_energy.py} and
634
+ \texttt{scripts/calibrate\_dominance.py} implement the utility/scoring and
635
+ dominance-calibration path.
636
+ \item \texttt{scripts/summarize\_ctt\_runs.py} generates
637
+ \texttt{runs/summary\_ctt.csv} and \texttt{runs/summary\_ctt.md}.
638
+ \item \texttt{paper/notes/theory\_ctt.md} and
639
+ \texttt{paper/sections/theory.tex} state the theory obligations.
640
+ \end{itemize}
641
+
642
+ \section{Limitations and Next Steps}
643
+
644
+ This draft is not an unqualified SOTA claim. The current \ctt{} evidence
645
+ includes validation and test measured generated-candidate rollouts, but the
646
+ selected action fails the internal paper gate even when the test proposal oracle
647
+ passes 50\%. The missing method component is calibrated dominance and a better
648
+ utility selector, not another proxy-only support plot. The first standalone
649
+ train-only utility-energy checkpoints and context-metadata ridge variants do
650
+ not solve this transfer problem, so the chart token must move beyond base-action
651
+ summaries and coarse task metadata toward exported visual-language and
652
+ object-centric geometry. The RGB-reference export now provides a leakage-audited
653
+ visual-stat token and improves measured support plus validation-calibrated
654
+ selected success, but this does not qualify as the needed learned object-centric
655
+ representation because the best held-out selected success is only 32.64\% and
656
+ the selector gap remains large. Related work experiments, external
657
+ benchmarks, real robot near-miss recovery, unsafe-contact measurement, and a
658
+ dominance rule that approaches the internal success gate remain to be completed
659
+ before submission.
660
+
661
+ The next experimental step is concrete: replace the current weak train-only
662
+ utility-energy selector with visual-language/object-centric chart features,
663
+ rerun held-out measured dominance selection, and add unsafe execution and
664
+ fallback-rate metrics. Proxy evidence may open the rollout gate; it cannot
665
+ replace rollout measurement.
666
+
667
+ \section{Conclusion}
668
+
669
+ Same-state counterfactual charts reveal a support gap that ordinary
670
+ demonstration learning and verifier-only candidate selection cannot see.
671
+ Counterfactual Action Atlas turns that observation into a method program: learn
672
+ local causal action geometry, generate positive do-action tangents on support,
673
+ select them only under calibrated dominance, keep the metric boundary between
674
+ outcome and proxy evidence explicit, and evaluate deployment-clean improvements
675
+ only after generated candidates are measured.
676
+
677
+ \bibliographystyle{plain}
678
+ \bibliography{references}
679
+
680
+ \end{document}