Releases: aks-builds/cliproof
Releases · aks-builds/cliproof
Release list
v1.0.0
v0.1.1
Changed
- Renamed the project
proofshot→cliproof. 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.cliproofis verified free on npm and GitHub. Install is now
/plugin marketplace add aks-builds/cliproofthen/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 installcopies the skill into Claude Code, Cursor, Codex, OpenCode,
Gemini CLI, and Windsurf;cliproof <cmd>passes through to the Python
pipeline;cliproof doctorreports capabilities. - Determinism + freshness check —
scripts/normalize.pyneutralises volatile
tokens (durations, timestamps, UUIDs, hashes, temp paths, ports) and
scripts/check.pyre-runs proof commands listed in.cliproof/proof.json,
failing on real drift. Reusable composite action.github/actions/cliproof-check
and afreshness.ymlworkflow 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.pyadds a caption bar (frame only).scripts/pr.py— posts the screenshot + verify verdict as a GitHub PR comment.- Theme presets —
capture.py --preset macos|github-dark|nord|iterm|win11. - Custom redaction policy —
redact.pyloads.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-agnosticinstall/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-languageverifysignature tests, and an
integration.ymlworkflow that installs realfreezeand runs
capture → redact → embed → check end-to-end on Linux (plus a best-effort real
vhsGIF). 114 pytest + 5 Node tests. - Release automation —
release.yml(dispatch → bump → sync npm + Claude
marketplace manifests → release PR → auto-merge) andpublish.yml
(npm publish with provenance + tag + GitHub release). RequiresNPM_TOKENand
RELEASE_PR_PATsecrets. scripts/capture.py— reliable wrapper aroundfreeze: launches it with
stdin closed, forces--language ansifor--execute, and captures to SVG.
Allfreezestyle flags pass through. This is now the recommended way to
capture (use it instead of callingfreezedirectly).scripts/rasterize.py— converts a (redacted) SVG to PNG using the first
available local renderer (Chromium browser →resvg→rsvg-convert→
inkscape→magick), loading the SVG file directly. Retina (--scale 2)
by default;--rendererto force one.preflight.pynow reports SVG→PNG rasterize availability.- Tests for
capture.pyandrasterize.py.
Fixed
freezehangs when launched with an inherited non-tty stdin (every
agent/CI shell).capture.pycloses stdin (subprocess.DEVNULL); docs show
the manual< /dev/null/cmd /c "… < NUL"equivalents.freezePNG/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 onfreeze's wasm rasterizer.--execute"Language Unknown" error —capture.pyinjects--language ansi.- UTF-8 mojibake (
Â,â€") from re-encoding the SVG — renderers now read
the.svgfile 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 plainutf-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 fromfreeze's output defensively. - Line endings —
redact.py/embed.pywritenewline="\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.