Skip to content

Add a CI size guard for demo.gif (currently 2.55 MB, over the proposed ceiling) #19

Description

@ivklgn

Narrowed — the demo shipped. demo.gif is committed at the repo root and embedded in README.md:15 under "See it work" with alt text. Only the size guard is left, and the asset is already over the limit this issue proposed.

Problem

demo.gif is 2.55 MB, committed at the repo root, with no CI check on its size. The original proposal set a 2 MB ceiling — the current asset exceeds it, and nothing prevents the next re-record from landing at 8 MB. Every clone pays for it, and Git keeps every version forever.

Expected result

  • A CI check that fails when a committed demo asset exceeds an agreed ceiling.
  • The ceiling is met — either by re-encoding demo.gif (fewer frames / smaller palette / shorter cut) or by raising the ceiling deliberately and recording why.

Decision needed

Pick one before implementing:

  • Keep the GIF, re-encode under the ceiling, add the size check.
  • Switch to an asciinema SVG/cast, which is a fraction of the size and stays text-diffable, at the cost of losing the rendered-UI fidelity a GIF gives. The original issue listed this as the preferred form.

Impact

Keeps the repository lean without losing the demo — GIF weight is the kind of regression that is invisible in review and permanent in history.

Proposed approach

  • Decide GIF vs. asciinema; if GIF, re-encode demo.gif under the ceiling.
  • Add the CI size check (a step in the existing workflow; fail with the actual size in the message).

Acceptance criteria

  • CI fails when the demo asset exceeds the ceiling.
  • The committed asset passes that check.
  • The demo stays embedded at the top of the README with alt text.

References

Design rationale: .archcore/plugin/readme-first-60-seconds.idea.md (status: draft). Code: README.md:15, demo.gif, .github/workflows/.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:docsREADME and specification docspriority:P2Valuable follow-upsize:M1-3 days

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions