Small enough to audit in an afternoon.
- Automated testsunit suite,
npm test
- 1063
- Mechanical source checksgreps, in the same command
- 8
- Runtime dependencies
@mediapipe/tasks-vision
- 1
- Dev dependenciesvite, typescript, vitest, playwright
- 4
- Known vulnerabilitiesreported by
npm audit
- 0
- Backend servicesno server, no account, no database
- 0
- Credited for a lazy repseconds, whatever the stopwatch says
- 0.000 s
- Vendored model bundlebytes, committed, same-origin
- 3,758,596
npm ci
npm test # unit tests + the source checks
npm run check:build # builds the bundle, then greps it
No flags. No environment variables, no keys, no account, no
seeded state, no --dry-run. The judged capability executes for real
on the default path or it does not execute at all, and a check in
npm test fails the build if one of those tokens ever appears in
README.md or DEMO.md.
-
A hand-written 256-point Hann FFT, tested against
sin(2π·2·t) at 30 fps with a bin width of exactly
30/256 = 0.1172 Hz — and it returns
no peak, not NaN, for an all-zero input.
-
A 3-point central difference under-reports peak velocity by exactly
2.90 % at 2 Hz / 30 fps; the published correction is
×1.0299, and a test asserts it is applied
once, not twice.
-
A test greps the scoring module and fails if any numeral other than
0 and 1000 appears in
it — which is how “every clinical threshold comes from the card” is
checked rather than believed.
-
No LLM anywhere, including “just for the report summary”. The
output is a count, and a count has no use for a generative model — while one
call would import the entire hallucination surface into a build judged on
safety.
-
No framework. Vite and vanilla TypeScript. The only code path
being judged is a 30 Hz measurement loop, and a virtual-DOM diff inside it is
pure downside.