Automerge backed Markdown editor for the Atmosphere
reams scripts
2 folders · 49 files

README.md

scripts/ #

Standalone scripts that don't fit elsewhere in the build. Each script's own header documents inputs, outputs, exit codes, and failure modes.

Disposable local ATProto / HappyView polyfill #

The worktree pins the inline-bytes SDK artifact 0.0.0-sustainable.3, using the ink.reams.automerge lexicon family with no wire profile tag. Library publication and independent fresh-reader reconstruction have passed against unmodified HappyView v2.14.2 with an ordinary PDS account. Whole-backup browser durability is still a separate gate; this launcher is for local development.

From the Reams worktree, start the services with the SDK and provider checkouts explicitly selected. Use the SDK's service shell, which includes sqlite3 and pds:

nix develop /home/anish/usr/automerge-atproto --command env \
  AUTOMERGE_ATPROTO_ROOT=/home/anish/usr/try-reams/.worktrees/automerge-uniform-batch-sync \
  CARGO_TARGET_DIR=/home/anish/usr/try-reams/.worktrees/happyview-blob-sync/target \
  HAPPYVIEW_SOURCE=/home/anish/usr/try-reams/.worktrees/happyview-polyfill-baseline \
  npm run dev:atproto-local

The launcher starts disposable local PLC, PDS, HappyView, and Reams/Vite services, prints the generated test-account login, and streams service output. Use only the generated account: its password is intentionally printed for interactive testing, and its PDS data is removed when the launcher exits. KEEP_ATPROTO_DATA=1 preserves that disposable data for debugging. The stack binds services to loopback; use the printed SSH forwarding command if the browser runs on another machine.

Run the largest real document's library durability/transport test from the SDK worktree:

nix develop /home/anish/usr/automerge-atproto --command env \
  AUTOMERGE_ATPROTO_SERVICE_ROOT=/home/anish/usr/automerge-atproto \
  CARGO_TARGET_DIR=/home/anish/usr/try-reams/.worktrees/happyview-blob-sync/target \
  HAPPYVIEW_SOURCE=/home/anish/usr/try-reams/.worktrees/happyview-polyfill-baseline \
  npm run test:inline-largest

check-mutation-baseline.mjs #

Deterministic regression check for the audit-flow mutation gate. Reads a floor-map.json baseline + a Stryker JSON report and verifies neither floor compliance nor absolute survivor counts have regressed.

Used by: the audit-flow skill (.agents/skills/audit-flow/SKILL.md) at the mutation-gate step. The script is the single source of truth for the regression verdict; the orchestrator invokes it and reports the exit code.

Quick usage:

# Per-issue audit verification (run from the worktree):
nix develop --command node ../../scripts/check-mutation-baseline.mjs \
    --baseline ../../.audit-flow/floor-map.json \
    --post     reports/mutation/mutation.json \
    --scope-files 'src/path/to/file.ts'

# Sanity check the floor-map baseline against itself:
nix develop --command node scripts/check-mutation-baseline.mjs \
    --baseline .audit-flow/floor-map.json \
    --post     .audit-flow/floor-map.json

Exit codes: 0 PASS, 1 FAIL, 2 usage / IO / parse error.

Why this exists: percentage-only floor gates allow regression to hide behind code shrinkage. This script enforces absolute survivor counts as a separate gate from percentage. See the script header for the full rationale, accepted JSON shapes, and edge cases (exempted files, planned deletions, new files).