• Timmy daily 2026-10-28 — dataset card and labeling guide
    Quality gates / quality (push) Canceled after 0s
    Pre-Release

    rockachopa released this 2026-10-28 13:03:54 +00:00 | 18 commits to main since this release

    Prerelease for review — tag daily-2026-10-28 on commit 7fe1901703590f59b68f6f394038c628297bd9c4 (America/New_York release date 2026-10-28, built 2026-10-28T12:59:25Z).

    What changed

    Published dataset card and labeling guide (issue #27, PR #89). The corpus could ingest a consented sample, record its provenance, and survive a withdrawal, but no stranger could read what the corpus is. This release publishes the page and the rulebook, both generated from real records:

    • scripts/dataset_card.py → docs/DATASET_CARD.md — every count is read back from manifest.jsonl; every fact the pipeline does not collect (devices, contexts, licenses) prints as pending — not collected by ingest instead of an estimate.
    • Leakage is refused, not documented. The generator refuses to render a card when one contributor appears in two splits, or when a recorded split is not the one the salted subject key derives (<205 train, <230 validation, else test). A withdrawn sample contributes no label to any balance table, and no subject key ever reaches the page.
    • The published page cannot drift. --check fails when the committed card is not the generator's own output, so the card cannot quietly become a hand-written document.
    • docs/LABELING_GUIDE.md — the reviewer's three visible fields (Bristol form, broad visible color, photo quality), stated where it is enforced: visible color is not blood, nothing is diagnosed, and a model suggestion is provisional input to a human decision rather than the label.
    • Release gate — scripts/build_release.py runs the 14-case dataset-card suite before a release may exist, requires four new on-camera captions, and records dataset_card_generated in the manifest.
    • Demo — a DATASET CARD card drawn from a real run: the real ingest command builds a throwaway corpus from synthetic fixtures, one contribution is withdrawn, the card is published, a planted contributor is refused, and the committed page is re-checked.

    Demo-harness legibility fix (7fe1901, follows the release day's own full-resolution QC). The release-delta caption is paragraph length; rendered at 94% opacity over the running app, app text bled through it and its last line sat flush against the bar's edge — the one caption a reviewer most needs was the hardest to read. The bar is now opaque, long copy steps down to 10.5/9.5px, and caption() measures the last line box with a Range and fails the run when bottom padding is under 3px. Every caption in this recording now reports padBottom ≥ 14 (the delta caption: 11 lines, 164px tall, padBottom 15) in the caption receipt.

    Scope note, stated plainly: the dataset card is a generated document, not a screen in the app. This release does not imply one. The recording runs the real generator against synthetic fixtures and shows its actual output, including the refusal.

    Completed ticket / PR

    • Issue #27 — Publish dataset card, labeling guide, and contributor-level split policy (closed by this release).
    • PR #89 Publish the dataset card and labeling guide from the manifest (#27) — merged as d7026c0 after diff review: 11 files, +1014/−3, text only (no binaries, weights, medical imagery, or secrets), Closes #27 linked to a non-human-gate issue (type/docs, area/data, priority/P1, state:review — no human gate).
    • Commit 7fe1901 — demo caption legibility fix above, on main after the merge.

    Gates — 26/26 passed

    npm test 229/229, tests/dataset-card.test.py 14/14, corpus manifest 8/8, corpus review 21/21, calibration harness 19/19, mobile green path, photo-first acceptance, sleek Hermes chat, manual fallback + draft recovery, provisional suggestion state, hard-stool follow-up, vision corpus refusal, abstention quality gate, worker container receipts, worker post-load readiness, longitudinal pattern summary, grounded chat citations, training contribution consent, corpus manifest provenance, reviewer/adjudication blindness, dataset card generation, calibration harness gates, portable backup restore, dependency audit (0 high), syntax (node/bash/python), secret scan, forbidden artifacts, demo H.264 720×1280 probe, complete MP4 decode, release delta verified painted on camera (87/87 captions).

    Build note: the first gated build of this release carried the fallback "no source change" delta, so it was discarded rather than published; the second exposed the cramped delta caption in full-resolution QC, which produced 7fe1901; the whole gated build was then re-run end to end and passed 26/26. No gate was skipped, loosened, or interpreted away.

    Artifacts

    • source archive timmy-talking-turd-2026-10-28-7fe190170359.tar.gz — 326,257 bytes — sha256 b9320551a61ba2cdbcb243bae01cca7b4b120be0d4f807a13fea0435cc24ed28
    • demo video timmy-talking-turd-2026-10-28-7fe190170359-demo.mp4 — 25,131,882 bytes — H.264 720×1280 yuv420p, 25 fps, 391.6 s — sha256 67c248e06bca5f18b226d03e91c0fee8aed69ab1d44e67f51710679c16e1f45c

    Model / profile

    Recorded against the real app running from the built commit with TIMMY_VISION_ENABLED=false; vision replies replay the committed synthetic corpus through the app's real analysis path. The dataset card is a real scripts/dataset_card.py run over a corpus built on camera by the real ingest command from CC0 synthetic fixtures — no model labelled anything in it, and the card says so on screen. No live model inference appears in the video and no real photo is used anywhere.

    Demonstrated on camera

    • DATASET CARD — COMMAND python3 scripts/dataset_card.py --corpus <tmp> --out DATASET_CARD.md
    • CORPUS 2 active · 2 contributors · 1 withdrawn / SPLITS train 2c/2s · validation 0c/0s · test 0c/0s
    • CLASS Type 1 1 · Type 3 0 · Type 4 1 · withdrawn label excluded — the withdrawn label is not counted
    • PENDING devices · contexts · licenses — not collected, not estimated
    • REFUSED refusing to render a dataset card: contributor 516990fea008961e leaks across test, train → CARD not written
    • COMMITTED the published page is this generator's own output (--check)
    • DATA synthetic fixtures · no model labelled anything here

    Known accuracy limitation

    Open-weight VLM acceptance is proven; Bristol accuracy is not clinically validated. The calibration receipt still reports BLOCKED because there is no candidate model yet (issue #31). This release publishes a self-describing corpus, not a measured classifier. User confirmation remains mandatory everywhere: photo analysis may suggest visible Bristol form, broad color, and image quality only, and never symptoms or a diagnosis. Visible color is not blood, in the app and in the labeling guide alike.

    Downloads