Skip to content

feat: separate real baselines from model response and add analysis views - #12

Merged
codethor0 merged 1 commit into
mainfrom
claude/model-transparency
Sep 27, 2026
Merged

codethor0 merged 1 commit into
mainfrom
claude/model-transparency

Conversation

@codethor0

@codethor0 codethor0 commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

Model transparency, part 2 of 3. Makes the difference between a real measurement and the normalized model response obvious, and makes it easy to see why a tile moved and how much that depends on editorial assumptions.

  • Baseline versus response. Each tile shows its stored real-world baseline, with its period, under the title. The 0 to 100 readout is labeled MODEL RESPONSE ("normalized, automatic") and is never called a result, forecast or prediction.
  • Paths. Why & source lists every path strongest first. Each step shows its direction and the relationship's kind, citation status and horizon (for example "Causal | modeled | long run"). Every relationship is labeled the same way, and a dead end states why it drives nothing.
  • Sensitivity. src/model/analysis.ts reruns the scenario with the same engine under nine nearby settings: decay 0.5, 0.7 and 0.9, and up to 2, 3 or 4 relationships. It classifies each tile as same direction under all settings, moves under some settings only, or direction depends on the settings. It is explanatory, not a second prediction engine. Hand-worked tests cover every class, clamping, noise and sign symmetry.
  • Category filter. A radio group by category. It changes visibility only; hidden tiles still take part in the calculation, and the address bar does not change.
  • Cited relationships only. The same engine on empirical edges alone. None exist yet, so the board says that no input reaches another tile in this view, and that this is a gap in citations, not evidence of no effect. The mode is deliberately not part of Share links: links carry inputs only and open with every relationship, and the page states this.
  • Scenario A. Save the current results in memory for this tab only. Each tile then shows A beside the current position. Reset and history change the inputs, not A. Nothing is written to the address bar or to storage.

No new dependency and no new color token. Built JS goes from 266.5 kB to 275.5 kB (gzip 84.2 to 86.8 kB); CSS from 10.1 to 11.3 kB, including all three parts.

Validation

  • npm run verify passes: 754 tests, 100% coverage on the model and display helpers, and the numerical audit passes.
  • npm run test:e2e passes. It now drives the filter, cited-only mode and scenario A at 1440, 390 and 320 px: hidden tiles, no modeled edge used, the comparison text, no horizontal overflow, an unchanged address. It also runs axe WCAG 2.2 A/AA with all three active.
  • npm audit --audit-level=low: 0 vulnerabilities. No dependency changes.
  • No secrets, credentials, private logs, local machine paths, or generated build output are included.
  • The pull request contains no unrelated changes.

Data or model changes

Not applicable. No data or relationship changes. The propagation engine is unchanged; analysis reuses combineEffects.

Security

None. No new input source. The view state (filter, cited-only mode, scenario A) is in memory only and never read from or written to the URL. CSP and the analytics loader are unchanged.

Model transparency release, part 2.

- Each tile shows its stored real-world baseline under the title, apart
  from the normalized MODEL RESPONSE, which is no longer called a
  combined result.
- Why & source lists paths strongest first with the direction and the
  kind, citation status and horizon of every step, labels every
  relationship the same way, and states why a dead end drives nothing.
- Sensitivity: every scenario is rerun under nine nearby settings
  (decay 0.5, 0.7, 0.9; up to 2, 3, 4 relationships) and each moved
  tile says whether its direction holds, depends on the path limit, or
  flips. Same engine, other parameters (src/model/analysis.ts).
- Category filter. Hidden tiles still take part in the calculation.
- Cited relationships only: the same engine on empirical edges alone.
  None exist yet, and the board says that is a gap in citations, not
  evidence of no effect. Not part of Share links, which carry inputs
  only; the page says so.
- Scenario A: saved in memory for the tab only, compared tile by tile,
  never written to the address bar; Reset and history leave it alone.

No new dependency. Built JS 269.9 kB to 274.8 kB. Browser suite covers
the new tools at 1440, 390 and 320 px and runs axe with them active.
@codethor0
codethor0 merged commit f6fbfdc into main Sep 27, 2026
5 checks passed
@codethor0
codethor0 deleted the claude/model-transparency branch September 27, 2026 08:38
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