Quickstart
From clone to a verified reproduction in ~10 minutes
The first two steps need nothing but Node and the repo — the credential-free demo proves the whole loop offline. The rest wires up the live service so you can submit a trace and watch it become a Playwright repro and a confirmed fix.
- 1
Install the SDK
Add the zero-dependency tracker to the app whose bugs you want to reproduce.
npm install @stepstitch/tracker - 2
Run the credential-free demo
The fastest way to see the whole moat. It imports the real service modules and writes a labeled evidence bundle — no database, no credentials, nothing sent.
npm run demo # writes demo/evidence-bundle.json npm run smoke # asserts no forbidden field or value survived the scrubDeterministic — re-running produces an identical bundle.
- 3
Mount the service (or use the reference host)
For the live path, run the ingest service against a local Postgres. The server scrubber is the trust boundary — it strips NPI again on ingest, independent of the SDK.
export DATABASE_URL=postgres://localhost/stepstitch export STEPSTITCH_INGEST_TOKEN=dev-ingest STEPSTITCH_ADMIN_TOKEN=dev-admin uvicorn server.app:app --port 8000Copy .env.example to .env and fill in the placeholders.
- 4
Submit a demo trace
Seed one realistic, already-structural trace (transfer → 500) into the running service.
STEPSTITCH_BASE_URL=http://localhost:8000 STEPSTITCH_INGEST_TOKEN=dev-ingest \ node scripts/seed-demo-trace.mjs - 5
View the operator cockpit
Open the read-only cockpit, paste your admin token, and inspect the sanitized evidence: summary, replayability, privacy posture, and verification history.
open http://localhost:8000/dashboard - 6
Generate a Playwright repro
Compile the trace into a deterministic Playwright test. It fails while the bug exists and passes once it is fixed. No credentials are embedded.
curl -H "Authorization: Bearer $STEPSTITCH_ADMIN_TOKEN" \ http://localhost:8000/api/stepstitch/v1/session/<trace_id>/playwright - 7
Walk the verification / corpus flow
Report a pre-fix run (red) then a post-fix run (green). Only red→green is recorded as confirmed_fixed in the regression corpus.
# POST /session/<trace_id>/verify { "pre_passed": false } -> reproduced_unfixed # POST /session/<trace_id>/verify { "pre_passed": false, "post_passed": true } -> confirmed_fixedSee demo/README.md for the full live walk-through.