Skip to content

docs: lead with the evidence chain and shrink the demo GIF - #57

Merged
stackloomdev merged 1 commit into
mainfrom
docs/launch-readme-and-demo
Jul 28, 2026
Merged

stackloomdev merged 1 commit into
mainfrom
docs/launch-readme-and-demo

Conversation

@stackloomdev

Copy link
Copy Markdown
Owner

Recompress the launch demo and reorder the top of both READMEs so the first screenful sells the evidence chain instead of a limitation.

Demo GIF: 6.75 MB → 2.81 MB (−58%)

Same 8.08s, same 12.5fps, same content.

  • Regenerated from the 25fps causescope-demo-x.mp4 rather than re-encoding the already-lossy GIF.
  • dither=none — the main win. Bayer dithering adds noise across the flat dark UI and defeats GIF inter-frame compression.
  • 64-colour palette with stats_mode=diff; the dark UI never used 128.
  • 880px wide. GitHub renders README images at ~890px, so the old 960 was being downscaled anyway.

cropdetect confirms all 8.08s use the full 960×960 frame, so nothing is cropped — trimming the bottom would have cut off the GET /api/orders/4821 payoff. Verified the closing frames still render disabled = true, the condition tree, the network row, and response.data.order.status cleanly, with no banding in the dark gradients.

READMEs (en + zh)

  • Move the ASCII evidence chain above the GIF. It is plain text, so it renders before the 2.8 MB image finishes downloading.
  • Add a React DevTools contrast line so the differentiator lands before the comparison table further down.
  • Move the Vite-first callout below the demo. The boundary stays prominent, but it no longer sits between the tagline and the demo, where the first substantive thing a reader saw was a limitation.
  • Tighten the lead description.
  • Fold the scope and unavailable-evidence caveats into What the inspector reports rather than dropping them with the old section.

Checks

  • pnpm verify:links passes.
  • Grepped the repo for links to the removed section anchors — none.
  • Markdown and one binary asset only; no source or package changes.

🤖 Generated with Claude Code

Recompress the launch demo and reorder the top of both READMEs so the
first screenful sells the evidence chain instead of a limitation.

Demo GIF: 6.75 MB -> 2.81 MB (-58%), same 8.08s and 12.5fps. Regenerated
from the 25fps mp4 rather than re-encoding the lossy GIF, with
dither=none (Bayer dithering adds noise to the flat dark UI and defeats
inter-frame compression), a 64-colour diff palette, and 880px width
(GitHub renders README images at ~890px, so 960 was downscaled anyway).
cropdetect confirms all 8.08s use the full frame, so nothing is cropped;
trimming the bottom would have cut the Network response payoff.

READMEs (en + zh):
- Move the ASCII evidence chain above the GIF. It is plain text, so it
  renders before the image finishes downloading.
- Add a DevTools contrast line to state the differentiator up front.
- Move the Vite-first callout below the demo. The boundary stays
  prominent, but readers now see what the tool does before its limits.
- Tighten the lead description.
- Fold the scope and unavailable-evidence caveats into "What the
  inspector reports" rather than dropping them.

Co-Authored-By: Claude Opus 5 <[email protected]>
@stackloomdev
stackloomdev merged commit 995916a into main Jul 28, 2026
11 checks passed
@stackloomdev
stackloomdev deleted the docs/launch-readme-and-demo branch July 28, 2026 02:37

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 687c393386

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread README.md
For static text or an element without a dynamic decision, CauseScope simply shows the exact source code and component location. Missing or ambiguous evidence is marked unavailable instead of being invented.
React DevTools can tell you that `canRefund` is `false`. CauseScope tells you why it is `false`.

![CauseScope tracing a disabled button from rendered UI to source, state, and the API response behind it](docs/assets/causescope-demo.gif)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the optimized GIF reproducible from the export script

When maintainers regenerate this README asset with the existing export:demo package script, examples/vite-react-19/scripts/export-demo.ts still emits a 960×960 GIF at 12 fps using a 128-color stats_mode=full palette, while the newly committed GIF is 880×880 at 12.5 fps with a 64-color stats_mode=diff palette. Consequently, the repository's supported regeneration path will overwrite this optimization and restore the larger encoding; update the export filter to encode the parameters used for the committed asset.

Useful? React with 👍 / 👎.

Comment thread README.md
```

For static text or an element without a dynamic decision, CauseScope simply shows the exact source code and component location. Missing or ambiguous evidence is marked unavailable instead of being invented.
React DevTools can tell you that `canRefund` is `false`. CauseScope tells you why it is `false`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Correct the React DevTools comparison

In the showcased implementation, canRefund is a plain local derived variable in examples/vite-react-19/src/pages/RefundPage.tsx, not a prop, hook, or state value exposed by React DevTools; the comparison table below likewise limits DevTools to components, props, and hooks. Thus DevTools cannot directly report that this binding is false, making the new headline comparison factually misleading; contrast its visible component-level inputs with CauseScope's captured local decision instead.

Useful? React with 👍 / 👎.

Comment thread README.md
**Click any UI. Trace the cause.**

The local-first evidence inspector for React. Select an ordinary page element and follow it to the exact TSX, live decision, state transition, prop, store, or request that produced it.
Select any element in your React app and follow it back to the exact TSX, the decision that produced it, and the state or response behind that decision.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Qualify the evidence chain for static elements

For static text or any element without a dynamic expression, this new lead promises that selecting "any element" reaches a decision plus backing state or response, even though the repository's own caveat at line 60 says those elements expose only source and component location. Qualify the English and Chinese leads with evidence availability so the first-screen product claim does not manufacture a causal chain for inputs that cannot have one.

AGENTS.md reference: AGENTS.md:L9-L9

Useful? React with 👍 / 👎.

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