You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
New Claude Code agent variant for the IEEE S&P 2026 paper revision,
testing whether the explicit subtask-decomposition guidance in the
shared-source prompt is load-bearing.
E6 — claude-no-subtask: engineered prompts minus the subtask-decomposition
block. Identical to `claude` except translate-shared.md is replaced with
translate-no-subtask-shared.md, which retains all structural guidance
(cmake-features, cdylib, FFI types, namespace warnings, byte-identical,
no-openssl) but drops the 17-line "create TODO list, work through subtasks
one at a time, do final feature-gate wiring" block.
Scope: only differs from `claude` on shared-source batteries. The only
one in our datasets is P01_sphincs_plus.
Result on P01_sphincs_plus: 116/129 (90%) ★
Comparison across ablations:
claude-minimal 1/129 (0.8%) — strips everything
claude-no-features 5/129 (3.9%) — strips ONLY cmake-features
claude (engineered) 41/129 (32%) — full prompt
claude-no-iter 48/129 (37%) — strips ONLY iteration loop
claude-no-subtask 116/129 (90%) — strips ONLY subtask decomposition
Surprising negative result: removing the subtask-decomposition guidance
*improves* P01 pass rate from 32% to 90% — a 58pp gain. The engineered
"create TODO list, work through subtasks" instructions over-prescribe in
a way that hurts. With them removed the agent tackles SPHINCS+ holistically
in 172 turns and produces a cleaner translation. Cost ($22.84) is also
lower than engineered ($27.39).
For the paper: well-intentioned prompt scaffolding can actively harm model
performance when the model has competent natural decomposition behavior.
Cost: $22.84, 1 LLM session, 172 turns, 57 min wall time.
Harness changes:
- New Agent variant: ClaudeNoSubtask (cli.rs)
- Verify phase skipped
- Battery resolves to "claude-no-subtask" results dir
- dispatch_translate routes independent cases to standard claude prompts
(no subtask block in those anyway), shared cases to translate-no-subtask-shared.md
- run_crust / run_crust_blind use standard prompts (CRUST scaffolds don't
have subtask blocks) — falls into default match arm
Co-authored-by: Benedikt Schesch <scheschb@amazon.co.uk>
0 commit comments