progressions

Kettlebell swing progression tracker with automatic advancement through reps → time → weight.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "progressions" with this command: npx skills add alexanderop/workouttracker/alexanderop-workouttracker-progressions

Progressions Feature

Kettlebell swing progression tracker with automatic advancement through reps → time → weight.

Progression Algorithm

  • Start: X kg, 10 reps, 10 min EMOM

  • Each completed session: +2 reps (until 20)

  • At 20 reps: +2 min per session (until 20 min)

  • At 20 reps & 20 min: next kettlebell, reset to 10 reps & 10 min

  • User confirms completion after each session

10 reps → 12 → 14 → 16 → 18 → 20 reps ↓ 10 min → 12 → 14 → 16 → 18 → 20 min ↓ Next kettlebell Reset to 10/10

Key Files

File Purpose

lib/progressionLogic.ts

Pure functions: calculateNextLevel , getCurrentLevel , getProgressionPhase

composables/useProgressions.ts

List all progressions

composables/useProgression.ts

Single progression detail + session history

composables/useProgressionForm.ts

Create progression form state

composables/useProgressionSession.ts

Active EMOM session with timer

Database

Tables: progressions , progressionSessions (Dexie v5)

Repository: getProgressionsRepository() from @/db

Usage

// List progressions const { state, reload } = useProgressions()

// Single progression const { progression, level, progress, sessions } = useProgression(id)

// Create form const { name, selectedWeights, toggleWeight, save } = useProgressionForm()

// Active session const { level, currentMinute, startTimer, completeSession } = useProgressionSession(id)

Progression Logic API

import { calculateNextLevel, getCurrentLevel, getProgressionPhase } from '@/features/progressions/lib/progressionLogic'

// Get current level from session history const level = getCurrentLevel(sessions) // { weight: 24, reps: 14, minutes: 10 }

// Calculate next level after completing session const nextLevel = calculateNextLevel(currentLevel) // { weight: 24, reps: 16, minutes: 10 }

// Get phase description const phase = getProgressionPhase(level) // 'reps' | 'time' | 'weight_reset'

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

vue-composables

No summary provided by upstream source.

Repository SourceNeeds Review
General

product-planning

No summary provided by upstream source.

Repository SourceNeeds Review
General

vitest-mocking

No summary provided by upstream source.

Repository SourceNeeds Review