Calibrate the play-time model with local playtests
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 24/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- analytics, full-stack
Research direction
Start with packages/engine/src/playtime.ts, apps/web/src/screens/settings.ts, and apps/web/src/logic/catalog.ts; read section 17 of docs/spec/content-pack.md and the offline-first ADR to understand existing estimates and privacy constraints. The issue also requires collecting at least 15 complete playthroughs and choosing how library cards display duration. Done means documenting the report format and before/after median error, updating defaults, spec and prompt kit or recording why they stay, and implementing the recorded card decision.
Written by the indexing model from the issue text.
Description
Context
The play-time defaults come from reading research and from two small packs (the demo pack and a German test fixture). The noir pack is the first full-length game to compare against; its estimate is about 47 minutes against a target of 40 (19 percent over, inside the tolerance). The project has no telemetry and the player makes no network requests, so measurements must stay on the device unless a tester chooses to share them.
Scope
- An opt-in playtest mode in settings, off by default. Per game it records on the device: active play time (excluding time in the background and idle periods), accepted and rejected commands, dialogue choices, words shown, hints revealed and undos.
- "Export playtest report" downloads a JSON file with pack id, version and hash, the counters and the relevant settings (text size, UI language). No personal data.
- An issue form "Playtest report" to submit the file voluntarily.
- A calibration script that compares reports with
estimatePlaytimeand fits reading speed, seconds per command and choice, coverage and failed attempts. - Goal: at least ten complete playthroughs of the noir pack and five of the demo pack, including the v0.1 release playthrough.
- Update
PLAYTIME_DEFAULTSandBUDGET_DEFAULTSand the spec with the measured values and the sample size. - Decide what library cards show. Today they show the declared
playtime("ca. 40 Min." for the noir pack) and fall back to the estimate only when a pack declares none. Options: the declared value, the estimate, or both.
Acceptance criteria
- Playtest mode is off by default; nothing leaves the device without an explicit export.
- The report format is documented.
- The estimate error (median, before and after calibration) is documented.
- Defaults, spec and prompt kit are updated from the results, or the reasons for keeping them are recorded here.
- The decision on the length shown on library cards is recorded here and implemented.
References
- packages/engine/src/playtime.ts
- docs/spec/content-pack.md (section 17)
- apps/web/src/screens/settings.ts
- apps/web/src/logic/catalog.ts
- SECURITY.md
- docs/adr/0006-offline-first-pwa-on-github-pages.md
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 28m
- Merged PRs (30d)
- 2
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from nullthrone/lexvm
-
area: web good first issue priority: low type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
nullthrone/lexvm#49 ·
-
area: infra good first issue priority: low type: chore
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
nullthrone/lexvm#41 ·
-
area: engine good first issue priority: low type: feature
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
nullthrone/lexvm#27 ·
-
area: web priority: low type: research
Difficulty 5/5 Over a week Newbie friendliness 35/100
nullthrone/lexvm#63 ·
-
area: infra area: web priority: medium type: chore
Difficulty 5/5 Over a week Newbie friendliness 38/100
nullthrone/lexvm#62 ·
All issues in nullthrone/lexvm
Similar issues
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
openclaw/openclaw#182077 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
aikido high security
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
dequelabs/axe-linter-action#161 ·
-
[Feature Request] Update the DimCode agent icon to the 45:32 brand markPossibly taken @eric8810 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
lyswhut/lx-music-desktop#3026 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
abhigyanpatwari/GitNexus#3704 ·
Maintainers usually reply within 1 day