Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions .github/ISSUE_TEMPLATE/wrong-numbers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# The site tells people to download the anonymized copy and open an issue, and
# until now nothing on this side asked for it -- or warned against attaching
# the raw export, which carries a name, a biometric profile and a watch serial.
# The first field is that warning, before the upload box rather than after it.
#
# The lapping question is here because it is the project's central ambiguity:
# no amount of data distinguishes "many phantom turns" from "a different lap
# button habit", and the swimmer is the only one who knows. See AGENTS.md.
name: Wrong numbers
description: The fixed file does not match what you actually swam
title: "Wrong numbers: "
labels: [calibration]
body:
- type: markdown
attributes:
value: |
**Attach the anonymized copy, not your raw export.**

The button on the page marked *"Download anonymized copy"* produces it.
A raw Garmin export carries your name, your weight and height, your
resting heart rate, your watch's serial number and the exact date and
time you swam. The anonymized copy keeps only durations, distances and
stroke counts, which is everything needed to reproduce the problem.

This is a public repository. Anything attached here stays public.

- type: input
id: watch
attributes:
label: Watch
description: Model, and the firmware version if you know it.
placeholder: Forerunner 265, 21.22
validations:
required: true

- type: input
id: pool
attributes:
label: Pool length
description: The real length, and what the watch was set to if they differ.
placeholder: 18 m, watch set to 20 m
validations:
required: true

- type: dropdown
id: lapping
attributes:
label: How do you use the lap button?
description: >-
The one thing the file cannot reveal. A swim lapped once per length and
a swim with many phantom turns look identical in the data.
options:
- Once per length
- Once per interval or set
- Not at all, auto-pause does it
- It varied during this swim
- Not sure
validations:
required: true

- type: textarea
id: numbers
attributes:
label: The numbers
description: What the watch said, what this tool said, and what you actually swam.
value: |
- Watch said:
- phantomturn said:
- Actually swum:
validations:
required: true

- type: textarea
id: findings
attributes:
label: Findings the page listed
description: Optional. The icons and headings from the findings list.

- type: textarea
id: file
attributes:
label: Anonymized file
description: Drag it in here. GitHub does not accept .fit, so zip it first.
26 changes: 25 additions & 1 deletion web/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,28 @@
name="description"
content="Fixes phantom turn detection and stroke misclassification in Garmin pool swim FIT files. Runs entirely in your browser."
/>
<!--
Link previews. Absolute URLs are required: a crawler resolves these
without a document base, so a relative path silently yields no image.

og.png rather than an SVG -- no major crawler renders SVG for a preview
card. It is a committed, pre-rendered asset with the typeface baked in,
so it does not depend on the fonts of whoever generated it. The CSP above
needs no change: it is same-origin, which img-src 'self' already covers.
-->
<meta property="og:type" content="website" />
<meta property="og:title" content="phantomturn — fix Garmin pool swim files" />
<meta
property="og:description"
content="Your watch counted turns that never happened. Fixes phantom turns and stroke misreads in Garmin pool swim FIT files, entirely in your browser."
/>
<meta property="og:url" content="https://maxwinterstein.github.io/phantomturn/" />
<meta property="og:image" content="https://maxwinterstein.github.io/phantomturn/og.png" />
<meta
property="og:image:alt"
content="phantomturn — Garmin pool-swim FIT repair, runs in your browser, nothing uploaded"
/>
<meta name="twitter:card" content="summary_large_image" />
<link
rel="icon"
href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🌊</text></svg>"
Expand Down Expand Up @@ -227,7 +249,9 @@ <h2>🕶️ Sharing this file?</h2>
</button>
<p class="share-where">
Then
<a href="https://github.com/MaxWinterstein/phantomturn/issues/new">open an issue</a>
<a href="https://github.com/MaxWinterstein/phantomturn/issues/new/choose"
>open an issue</a
>
and attach it.
</p>
</section>
Expand Down
Binary file added web/og.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading