Golden path

Run one command. Inspect one trace.

This page is the cleanest TS entrypoint: one bounded TS-Reasoner run, one JSON trace, and one visible refusal to overclaim.

Copy-paste command

git clone https://github.com/BoggersTheFish/TS-Reasoner-v0
cd TS-Reasoner-v0
python3 inference.py --question "If some artists are makers and all makers are creators, are all artists creators?"

This command matches the current public TS-Reasoner README and was locally verified during the site truth sync. It writes `artifacts/latest_trace.json`.

Expected output

Answer: Not enough information.
Selected chain: candidate_cautious
Global tension: 0.0000
Trace: artifacts/latest_trace.json

The direct candidate tries to conclude that all artists are creators. The selected answer abstains because the premises only support some-artists support, not the requested universal.

Inspect artifacts/latest_trace.json

candidates[*].steps: compare the direct and cautious chains.

trace.candidate_scores[*].local_tension: find the high-tension conclusion step.

trace.candidate_scores[*].global_tension: compare direct pressure against the settled trace.

trace.rejected_alternatives: confirm the overstrong candidate was not selected.

trace.candidate_operation_loops.candidate_direct.cycles[0].repair: inspect the proposed weakening.

trace.chosen_action and trace.settled_answer: confirm the final abstention path.

Why abstention matters

The impressive behavior is refusal.

A weak demo forces an answer. A useful verifier records why a tempting answer is unstable, shows the local pressure on the bad step, proposes a repair or weaker alternative, and can still settle on not enough information when that is the honest result.

candidate_direct:
  final_answer: "all artists are creators."
  local_tension.s1: 0.85
  issue_kinds: ["unsupported_conclusion", "quantifier_jump"]
  repair.proposed_text: "Therefore some artists are creators."

candidate_cautious:
  settled_answer: "Not enough information."
  selected_next_op: "ACCEPT_TRACE"