Short screen recordings of every task. Each clip is an automated
Playwright test
running against the real built app — so the guide can never drift from the product.
It's one file. Download index.html, double-click it, and everything below works
offline — no server, no install, no admin rights. The demo passphrase can be anything you like; it encrypts
whatever you export in that session.
1 · Start a session US-1
As a planner, open the app and load today's data behind a passphrase.
Open the file — you land on a locked gate.
Keep Demo data, type any passphrase, and choose Start session.
Pick your operator identity. You arrive at the dashboard: 27 officers and the biggest staffing gaps.
2 · Add an officer US-2
Add a new hire; the establishment and dashboard update instantly.
Go to Officers → + Add officer.
Enter a badge number and name, then Save.
The roster shows the new officer and the headcount rises to 28. The edit is attributed to you and audited.
3 · Assign an officer to a position US-3
Keep staffing levels and vacancy deficits current.
Go to Assignments → + Assign officer.
Pick an officer and a position, set the start date, and Assign.
Staffing views recompute automatically.
4 · Query data & export an encrypted CSV US-4
Run ad-hoc SQL and share a figure — without plaintext ever touching disk.
Open SQL Console, write a query, and press Run (or Ctrl/Cmd+Enter).
Export the result — the only option is an encrypted.csv.enc, never a plain CSV.
Recover it later with the same passphrase from Data & Security → Decrypt a file.
5 · Export changes & merge — no Node US-5
The coordinator merges everyone's offline edits inside the same app.
An operator works, then Export my changes → an encrypted .hrischanges delta.
A coordinator opens today's truth, goes to Data & Security → Merge operator changes, and
selects the change files. cr-sqlite (a CRDT) converges everyone's edits.
Export merged truth for tomorrow. No server, no Node, no admin rights.
7 · Recruit & hire an applicant US-7
Run a hiring pipeline and turn a successful applicant into an officer.
Go to Recruitment. Open a competition on a vacant position and + Add applicant.
Move applicants across the kanban: Applied → Screening → Interview → Background → Offer → Hired.
On an Offer/Hired card, choose Hire →: it creates the officer record and an active
assignment, and the headcount updates. Recruitment data syncs and merges like everything else.
8 · Training & compliance US-8
See what's expiring and keep officers qualified.
Open Compliance. The cards show Expired / Expiring-in-90-days / Valid counts and how many
officers are firearms-current.
Click a card to filter the list (e.g. only expired), or filter by certification type.
Hit Renew on a row (or + Record certification) — the expiry auto-fills from
the recert interval, and the counts update.
9 · Leave & absence US-9
Track requests, approvals, and who's off.
Open Leave — cards show who's on leave today, pending requests, and upcoming absences.
+ Request leave for an officer (the day count fills in automatically).
Approve or Deny pending requests; the counts update.
10 · Workforce planning US-10
Project vacancies ahead of retirements.
Open Planning. From each officer's length of service, it projects retirement-eligibility.
The table shows the projected vacancy deficit at +1/+2/+3/+5-year horizons.
See which officers are within five years of the pension milestone, so you can hire ahead.
11 · Audit trail US-11
See who changed what — attribution that survives the merge.
Open Audit. The change log lists every edit with the operator, entity, and action.
The session log records open / lock / import / export events.
Filter by operator. Because the logs are CRRs, they travel with each changeset into the merge report.
12 · Officer file US-12
One place for an officer's contacts, performance, and conduct.
Open Officer File and choose an officer.
See their emergency contacts, performance reviews (with ratings), and conduct records in one view.
Add a review, contact, or conduct record — or update a conduct disposition.
13 · Equipment register US-13
Track who holds each firearm, vehicle, radio, or camera.
Open Equipment — cards show in-service / issued / available counts.
Issue an available asset to an officer, or Return one that's out.
Set an asset to Maintenance or Retired, or add new assets to the register.
6 · Lock the session US-6
Wipe decrypted data from memory when you step away.
Click Lock session.
The app returns to the gate and clears the in-memory database, key, and identity.
Export your changes first — unsaved work is lost by design (no plaintext at rest).