Unfamiliar-user validation (1.0) — run kit¶
Status: executable kit prepared in 0.9.8; cohort who/when remains owner judgement (pre_release_roadmap_1_0.md §20)
Programme: pre_release_roadmap_1_0.md §14
Related: manual_acceptance_1_0.md, release_severity_triage_1_0.md, known_limitations.md
The 1.0 success criterion centres on an unfamiliar user. Run during indicative 0.9.x hardening / pre-RC once install and principal journeys are stable enough to evaluate. Do not execute this round as part of the 0.9.8 code cut — this file prepares the kit so the round can run without inventing protocol.
Prepared evidence ≠ measured evidence ≠ signed-off evidence.
1. Mandatory protocol (summary)¶
Two to five people who have not developed TranscriptX
At least one relatively non-technical user
Fresh machine or fresh environment
No live coaching unless they become completely blocked (see §6)
Record: installation time; time to first useful result; blockers; misunderstood terminology; abandoned journeys
2. Cohort slots (owner fills who/when)¶
Slot |
Role |
Eligibility |
Who (owner) |
When |
Consent on file |
|---|---|---|---|---|---|
1 |
Non-technical |
No TranscriptX development; limited CLI comfort OK |
[ ] |
||
2 |
Thoughtful generalist |
Has used similar tools; not a maintainer |
[ ] |
||
3 |
Optional |
Researcher / analyst emerging audience |
[ ] |
||
4 |
Optional |
[ ] |
|||
5 |
Optional |
[ ] |
Eligibility criteria
Has not authored TranscriptX code or release docs
Can use a browser; may or may not know Docker/Python
Agrees to privacy-safe participation (§5)
Uses only synthetic / demo / consented sample transcripts — no private personal recordings unless the participant owns them and consents in writing
Environment requirements
Fresh machine or fresh disposable data root + clean install path from install_verification_matrix.md
Prefer Docker Compose for predictability; native only if claiming native support
Record OS, architecture, install profile, package version, SHA
Curated sample stack (optional facilitator prep)
For a disposable UI that only mounts the facilitator sample set (not the maintainer library), use the sibling tree ../transcriptx_test/ and:
# Once per fresh data tree (or after wiping data/): write the epoch-1 marker
python -c "from pathlib import Path; from transcriptx.core.utils.schema_epoch import write_epoch; write_epoch(Path('../transcriptx_test/data'))"
docker compose -f docker-compose.unfamiliar-user.yml up -d transcriptx-web
# Register pre-copied managed transcripts (Home uses the slug index, not raw disk scan)
docker compose -f docker-compose.unfamiliar-user.yml exec -T transcriptx-web python - <<'PY'
from transcriptx.core.utils.file_discovery import discover_managed_transcript_paths
from transcriptx.io.admit_and_register import _try_register
for p in discover_managed_transcript_paths():
print(_try_register(p), p.name)
PY
Then open http://127.0.0.1:8502 (port 8502 so it does not collide with the main stack on 8501). This compose file is standalone (does not merge docker-compose.override.yml). Defaults point at transcriptx_test_transcripts / transcriptx_test_recordings / transcriptx_test_outputs plus disposable data/, config/, and transcript-inbox/ under that tree. The data root needs schema_epoch.json (epoch 1) once Streamlit has written any content under it — otherwise the schema-epoch gate blocks analysis. Files copied into the transcripts mount still need registration into .transcriptx_index.json (under outputs) for Home to list them; Library pickers can also see on-disk JSON. See docker.md.
3. Facilitator script (principal journey)¶
Goal path: install → first useful result → export. Timing starts at first install instruction.
Hand participant the README / website landing (or printed quickstart). Do not narrate steps.
Ask them to install and open the UI.
Ask them to import a provided sample transcript (facilitator-supplied file; no in-app demo pack).
Ask them to run an analysis and find something useful in Overview / Insights / Charts.
Ask them to export or download results.
Optional: explore Settings / advanced pages — only if time remains and no distress.
Permitted facilitator prompts (examples)
“What are you trying to do right now?”
“Where are you looking for that?”
“You can stop whenever you want.”
Restate the high-level goal once if forgotten (“install, then get a useful result”).
Forbidden coaching
Pointing at specific buttons/menus
Dictating install commands beyond what public docs already show on their screen
Explaining product jargon unprompted
Fixing errors for them (except emergency intervention §6)
Log every intervention (coaching invalidates blockage and time-to-first-result evidence for that segment).
4. Timing sheet¶
Participant |
Install start |
UI up |
First import |
First useful result |
Export done |
Abandoned? |
Notes |
|---|---|---|---|---|---|---|---|
Definitions:
Install time: start of install instructions → UI reachable
Time to first useful result: UI up → participant affirms a useful insight/chart/summary (their words)
5. Privacy-safe participation¶
Informed consent: purpose, voluntary nature, what is recorded, retention, withdrawal
Minimal recording: prefer written observation notes; screen/audio only with explicit consent
Anonymisation: participant codes (P1…); no real names in shared evidence
Avoid private transcript content: use demo/synthetic samples; if personal data appears, stop (§7)
Secure retention: raw notes in
.local/scratch; accepted evidence under release-evidence tied to SHAWithdrawal / deletion: honour requests; delete identifiable raw recordings promptly
Consent checklist (per participant):
Purpose explained
Recording scope agreed
Withdrawal explained
Sample data provenance explained
6. Emergency intervention rules¶
Intervene immediately (and log) if:
Participant is distressed
Privacy concern / personal data exposure risk
Unsafe deletion risk (about to wipe non-disposable data)
Unrecoverable installation failure after reasonable self-attempts
Exposure of personal data in UI/logs
After emergency intervention, mark timing metrics for that segment as invalidated by coaching/intervention.
7. Stop conditions¶
Stop the session (or that journey) when any of:
Distress
Privacy concern
Unsafe deletion risk
Unrecoverable installation failure
Exposure of personal data
Record stop reason and severity.
8. Observation form (per finding)¶
Field |
Value |
|---|---|
participant code |
|
journey step |
install / import / analyse / understand / export / other |
observation |
|
quote (optional, anonymised) |
|
blockage? |
yes / no |
terminology confusion |
|
intervention logged? |
yes / no / n/a |
9. Severity worksheet → RC gate¶
Map each issue to release_severity_triage_1_0.md:
Finding ID |
Summary |
Severity |
Blocks RC? |
|---|---|---|---|
U-001 |
release blocker / must fix / known limitation / post-1.0 |
yes if blocker or must-fix |
Rule: any release blocker or must-fix from this round explicitly prevents RC entry until fixed or reclassified with owner sign-off.
10. Post-session triage procedure¶
Consolidate observation forms + timing sheet within 24h.
Deduplicate findings; assign severities.
Copy accepted evidence to release-evidence location for the tested SHA (not only
.local/).Open or update issues for blocker / must-fix items.
Update programme checklist: unfamiliar-user validation evidence reviewed.
Known limitations / post-1.0 items → document; do not silently drop.
11. Triage reminder¶
Map findings to release_severity_triage_1_0.md. Blockers and must-fix items from this round gate RC.