Skip to content

Releases: aks-builds/cliproof

Release list

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 10 Jun 07:22
b367472
chore(release): 1.0.0 (#10)

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 10 Jun 04:02
92df445

Changed

  • Renamed the project proofshotcliproof. The previous name collided
    with an established npm package and GitHub repo (AmElmo/proofshot) that also
    installs to ~/.claude/skills/proofshot/, which would clobber this skill on
    disk. cliproof is verified free on npm and GitHub. Install is now
    /plugin marketplace add aks-builds/cliproof then /plugin install cliproof@cliproof;
    the embed marker is <!-- cliproof:start -->.

Added

  • Agent-agnostic npm CLI (npm i -g cliproof) — bin/cli.js (zero deps):
    cliproof install copies the skill into Claude Code, Cursor, Codex, OpenCode,
    Gemini CLI, and Windsurf; cliproof <cmd> passes through to the Python
    pipeline; cliproof doctor reports capabilities.
  • Determinism + freshness checkscripts/normalize.py neutralises volatile
    tokens (durations, timestamps, UUIDs, hashes, temp paths, ports) and
    scripts/check.py re-runs proof commands listed in .cliproof/proof.json,
    failing on real drift. Reusable composite action .github/actions/cliproof-check
    and a freshness.yml workflow keep README proofs honest in CI.
  • scripts/verify.py — runs a command and judges PASS/FAIL from the exit code
    plus error signatures across 10+ languages; emits a PR-ready Markdown report.
  • scripts/suggest.py — scans a repo (package.json/Makefile/pyproject/--help/
    README quickstart) and ranks the best "proof it runs" commands.
  • scripts/storyboard.py — stitches multiple SVG captures into one vertical
    session image; scripts/annotate.py adds a caption bar (frame only).
  • scripts/pr.py — posts the screenshot + verify verdict as a GitHub PR comment.
  • Theme presetscapture.py --preset macos|github-dark|nord|iterm|win11.
  • Custom redaction policyredact.py loads .cliproof/redact.json
    (patterns + allow) to add project secret patterns and exempt false positives.
  • Test coverage for every advertised capability — Node tests for the
    agent-agnostic install/CLI (test/cli.test.js, run in CI), a guard test
    asserting the scripts import only stdlib and no network modules
    (test_no_dependencies.py), multi-language verify signature tests, and an
    integration.yml workflow that installs real freeze and runs
    capture → redact → embed → check end-to-end on Linux (plus a best-effort real
    vhs GIF). 114 pytest + 5 Node tests.
  • Release automationrelease.yml (dispatch → bump → sync npm + Claude
    marketplace manifests → release PR → auto-merge) and publish.yml
    (npm publish with provenance + tag + GitHub release). Requires NPM_TOKEN and
    RELEASE_PR_PAT secrets.
  • scripts/capture.py — reliable wrapper around freeze: launches it with
    stdin closed, forces --language ansi for --execute, and captures to SVG.
    All freeze style flags pass through. This is now the recommended way to
    capture (use it instead of calling freeze directly).
  • scripts/rasterize.py — converts a (redacted) SVG to PNG using the first
    available local renderer (Chromium browser → resvgrsvg-convert
    inkscapemagick), loading the SVG file directly. Retina (--scale 2)
    by default; --renderer to force one.
  • preflight.py now reports SVG→PNG rasterize availability.
  • Tests for capture.py and rasterize.py.

Fixed

  • freeze hangs when launched with an inherited non-tty stdin (every
    agent/CI shell). capture.py closes stdin (subprocess.DEVNULL); docs show
    the manual < /dev/null / cmd /c "… < NUL" equivalents.
  • freeze PNG/WebP rasterizer can crash on some Windows machines (Go
    0xc0000005). The pipeline now captures SVG and rasterizes separately via
    rasterize.py, so PNG no longer depends on freeze's wasm rasterizer.
  • --execute "Language Unknown" error — capture.py injects --language ansi.
  • UTF-8 mojibake (Â, â€") from re-encoding the SVG — renderers now read
    the .svg file directly; docs warn about cp1252 defaults (PowerShell).
  • UTF-8 BOM handling — all scripts that read text now use utf-8-sig (strips
    a leading BOM) and write plain utf-8 (never adds one), so a BOM'd input
    (Notepad/VS Code) can't break SVG parsing or README frontmatter. capture.py
    also strips a BOM from freeze's output defensively.
  • Line endingsredact.py/embed.py write newline="\n", so editing a
    file on Windows no longer silently rewrites it with CRLF.

Changed

  • Docs (SKILL.md, references/tooling.md, README.md) route captures through
    capture.py/rasterize.py, drop the "PNG works natively everywhere" claim,
    and add a per-failure-mode reliability table plus a "view the rendered image"
    verification step.