STRING_KEYS no longer names model, which the run at 2.1.306 never showed (closes #247)

Merged
DO
2d ago
+18-4

Closes #247: STRING_KEYS names one key fewer, as the run at 2.1.306 showed.

What the run showed (trials/P-13.v2-1-306.json, merged in #291):

  • Within the fields the script keeps, nine of STRING_KEYS' eleven keys held a string: type, subtype, stop_reason, service_tier, inference_geo, speed, canonicalModel, provider and costBasis.
  • tool_name is reached only when a tool is refused, and that run refused none.
  • model appeared nowhere. The model's name is a key of modelUsage and the value of canonicalModel, never under a key model.

The change:

  • tools/trial_p13_cli.sh drops model from STRING_KEYS, so a word under that key is no longer kept. It keeps tool_name, since another run may refuse a tool.
  • TrialScript pins the list as it pins KEPT_RESULT.
  • The stand-in answer plants a one-word code under model, so the test that no model text reaches OUT fails if model is named again. A mutant that names it is killed.

The other half of the item: decided, no per-field lists. usage and modelUsage held numbers and seven code words under named keys (service_tier, inference_geo, speed, type under usage; canonicalModel, provider, costBasis under modelUsage). One list already names just those words and the answer's own codes, so per-field lists would hold the same words. The script's comment says so, and the test now shows the dropped word recorded in model_text_removed.

Verification. make verify passed in the worktree, with history, at SIM_SEEDS=40.

Reviews. A fresh Claude review with a security pass on 14247d9 found no blocker and no major. It confirmed #247's other three items are on main (#263). Its minors are fixed in 30dc6b3. Muse not run (the Maintainer, 2026-10-20: Kernel/hook only).

šŸ¤– Generated with Claude Code