CtrlK
BlogDocsLog inGet started
Tessl Logo

activity-file-repair

Diagnose and repair activity files (.tcx) whose per-sample timestamps are decoupled from their GPS positions, which makes Strava and Garmin Connect report a much faster pace over a much shorter moving time than the athlete actually ran. Use whenever a workout "parsed wrong", a run shows a pace that looks too good, moving time is well below elapsed time, someone points at a .tcx or activity export, a Pixel Watch / Fitbit / Wear OS export lands in Drive, or the user says "it happened again" about a previously repaired workout. Also covers re-uploading the corrected file to Strava. Triggers: "Strava says I ran 7:49 but I didn't", "can you parse this tcx", "my watch exported this wrong", "moving time is way off", "fix my activity file", "why is my pace wrong", "upload the corrected run".

75

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

88%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a highly actionable, well-sequenced workflow with strong validation checkpoints and executable commands for every step, correctly treating the operation as destructive-adjacent. Its main weakness is conciseness/progressive-disclosure: substantial inline rationale (the integer-reconstruction detour, splits-comparison rules) could be tightened or moved to a reference file.

Suggestions

Move the "Why local-window, and not integer reconstruction" aside and the detailed splits-comparison rules into a one-level-deep reference file (e.g., references/method.md), keeping only the actionable conclusion in SKILL.md to improve both conciseness and progressive_disclosure.

Tighten the prose in "The rule that matters most" and the splits section — the boundary-rounding and rebase rules could be condensed to a short checklist without losing the decision content.

Consider a compact "Quick start" block at the top with the diagnose → repair → verify command triple, so the common path is visible before the detailed rationale.

DimensionReasoningScore

Conciseness

The body is dense and largely avoids explaining basics Claude already knows, and most prose encodes domain-specific knowledge (the 3.19 m quantisation, r-circularity caveat) that earns its place — but the integer-reconstruction detour and the elaborate splits-comparison rules are somewhat more than the core workflow needs and could be trimmed.

4 / 5

Actionability

Every operation is given as a copy-paste-ready "node ${CLAUDE_PLUGIN_ROOT}/skills/activity-file-repair/scripts/tcx.mjs <subcommand>" command with flags (--window, --json), explained exit codes, and subcommands covering diagnose/profile/splits/stops/repair/verify across the common cases.

5 / 5

Workflow Clarity

A clear six-step sequence (preserve → diagnose → read verdict → repair → verify → sanity-check splits) with an explicit validation/feedback loop in step 5 (check elapsed/distance unchanged, r risen, non-monotonic intervals = 0, positions/HR identical) and error-recovery guidance, plus a hard "never repair without diagnosing" rule for this destructive-adjacent operation.

5 / 5

Progressive Disclosure

Sections are well-organized and the bundled script (scripts/tcx.mjs) and fixtures are referenced via clear ${CLAUDE_PLUGIN_ROOT} paths that match the real bundle, but the skill keeps advanced rationale (integer reconstruction, splits rules) inline rather than splitting it into one-level-deep reference files, leaving minor organization gaps.

4 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is a strong, third-person statement that concretely names the defect, the actions, and the platforms/devices involved, with an explicit "Use whenever" trigger clause plus a battery of natural quoted triggers. It clearly answers what and when and is highly distinct from other skills.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — "Diagnose and repair activity files (.tcx)", "re-uploading the corrected file to Strava" — alongside a precise description of the defect mechanism, comprehensively covering the skill's scope.

5 / 5

Completeness

Explicitly answers both "what" (diagnose/repair decoupled-timestamp .tcx files, re-upload to Strava) and "when" ("Use whenever..." plus a dedicated "Triggers:" clause with concrete phrases), matching the anchor for clear and explicit what-and-when with trigger phrases.

5 / 5

Trigger Term Quality

Comprehensive natural-language triggers users would actually say ("why is my pace wrong", "moving time is way off", "fix my activity file") plus device synonyms (Pixel Watch, Fitbit, Wear OS), the .tcx extension, and platform names (Strava, Garmin Connect).

5 / 5

Distinctiveness Conflict Risk

Highly specific niche — TCX files with decoupled timestamps on named platforms and devices — gives it a clear trigger footprint with minimal overlap risk against other skills.

5 / 5

Total

20

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
ddehart/claude-code-plugins
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.