Skip to content

feat(portal): inline Trace-dependencies expander per claim (26 CF.2)#175

Merged
bryanmatthewsimonson merged 2 commits into
claude/phase-26-cf1-counterfactualfrom
claude/phase-26-cf2-trace-expander
Jul 18, 2026
Merged

feat(portal): inline Trace-dependencies expander per claim (26 CF.2)#175
bryanmatthewsimonson merged 2 commits into
claude/phase-26-cf1-counterfactualfrom
claude/phase-26-cf2-trace-expander

Conversation

@bryanmatthewsimonson

Copy link
Copy Markdown
Owner

Summary

Phase-26 slice CF.2 — the final slice of the approved ladder. Stacked on #174 (→ #173#172#171#170#169); merge in order.

Each claim row in the case view's Evidence block gains a Trace dependencies expander (a native <details>, computed lazily on first open over the already-collected shared data envelope — no second collection pass). Inside:

  • an If removed / If negated toggle over the pure traceClaimDependencies (CF.1),
  • the delta as a plain list via the new pure traceLines — every line a count with its derivation on the face: "A contradiction knot of 3: it dissolves — edges: link_…", "Leaves 1 claim with no remaining support", "Proposition …: attestation origins 2→1 (demonstrably independent 1→1)", "Hypothesis 'Zoonotic': loses 1 supporting and 0 undermining attachments",
  • negate wording that flips rather than removes and recomputes no verdict,
  • the honest zero: "No structural dependencies found — nothing else in the case graph rests on this claim.",
  • the explainer: "…counts with their derivations, measured over the local graph. Not a probability of anything."

collectHypothesisEdgeJoins (one read, canonicalized) feeds the hypothesis-map joins into the delta.

Guard

The §4 copy guard runs traceLines for both modes across four differently-shaped claims and bans likelihood/strength/percent phrasing in every line and derivation string.

Tests: 1,784 green (4 new) · build clean · lint 0 errors.

🤖 Generated with Claude Code

bryanmatthewsimonson and others added 2 commits July 16, 2026 10:19
Phase 26 slice CF.2 (docs/COUNTERFACTUAL_DESIGN.md §3; resolved §7:
inline per-claim expander) — completes the approved Phase-26 ladder.

- shared/case-counterfactual.js traceLines(delta, {claimsById}) — the
  pure plain-list source the DOM projects 1:1: every line a count with
  its derivation on the face (knot dissolve/split/shrink, only-support
  losses with claim texts, attestation origin deltas with surviving
  origins, falling propositions with chain lengths, entity/timeline
  losses, hypothesis-edge removals or role-flips). Negate wording says
  flips/rests-on and recomputes no verdict; the honest zero states
  that nothing rests on the claim.
- shared/hypothesis-map.js collectHypothesisEdgeJoins — one read of
  both models, canonicalized refs + labels, the CF.1 hypothesisEdges
  join input.
- portal/trace-block.js mountTraceExpander — a native details element
  per claim row in the evidence block; computes LAZILY on first open
  over the already-collected shared data envelope; If removed /
  If negated mode toggle; explainer states "measured over the local
  graph. Not a probability of anything."
- evidence-block accepts {data, hypothesisEdges}; case-view collects
  the joins once beside the shared assembly and passes both through.
- Tests: traceLines content for both modes, the honest zero, and the
  §4 copy guard — no likelihood/strength/percent phrasing in any line
  or derivation, either mode, across four claims.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The manual checklist for the H.1–H.4 / CF.1–CF.2 surfaces: authoring
idempotency, seed promotion, crux badges, verdict-chip context, the
no-scoreboard read, the gated LLM suggestion with its disclosures and
the unopposed check, and the trace expander's remove/negate/zero
paths.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@bryanmatthewsimonson
bryanmatthewsimonson force-pushed the claude/phase-26-cf1-counterfactual branch from aa6001f to 950afbb Compare July 16, 2026 17:20
@bryanmatthewsimonson
bryanmatthewsimonson force-pushed the claude/phase-26-cf2-trace-expander branch from 1b3d310 to 494d7c5 Compare July 16, 2026 17:20
@bryanmatthewsimonson
bryanmatthewsimonson merged commit 8bb0702 into claude/phase-26-cf1-counterfactual Jul 18, 2026
@bryanmatthewsimonson
bryanmatthewsimonson deleted the claude/phase-26-cf2-trace-expander branch July 18, 2026 05:10
bryanmatthewsimonson added a commit that referenced this pull request Jul 18, 2026
…counterfactual, corpus v2, forensic fixes, capture skill, PDF links)

Consolidation merge of the full 26/27 chain after the stacked-merge cascade closed the intermediates. Contains, in original commit order: 26 H.0-H.4 + CF.1/CF.2 (#169-#175) and 27 S.1-S.4, F.1-F.6, K.1-K.4, PDF links (#176-#183).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant