Local Development
Use the lockfiles and supported runtimes. JavaScript dependencies install with npm ci; the audio lock targets CPython 3.11 on Linux x86_64 and must retain hash verification. (SVG-Animator-BIBLE.md:286-306)
npm ci
npm run build
npm run check
npm test
npm run story -- check --all --strict
npm exec playwright install chromium
PW_PORT=4207 npm run test:browser -- --workers=1
python3.11 -m venv audio-service/.venv
audio-service/.venv/bin/pip install --require-hashes -r audio-service/requirements.txt
(cd audio-service && .venv/bin/python -m unittest discover -s tests -v)The commands have distinct contracts:
buildtransactionally regenerates CSS/icons and the checksum ledger without changing the token.checkverifies syntax, release markers/manifest, and checksums; it does not prove deployment.testexercises Node contracts.- strict story checks reject normalization warnings.
- Playwright exercises browser behavior.
- Python tests exercise sidecar configuration, handlers, policy, and deployment artifacts. (
package.json:4-15,SVG-Animator-BIBLE.md:304-320)
Run the app through the repository’s browser-test server or another static server; do not infer same-origin audio behavior from a server that does not proxy /api/audio/. Local absence of host release trees or a sidecar is a valid fail-open audit state, not production proof. (docs/OPERATIONS.md:62-68, docs/reviews/backlog.md:148-152)