Back to list
alexanderop

progressions

by alexanderop

9🍴 0📅 Jan 19, 2026

SKILL.md


name: progressions description: Kettlebell swing progression tracker with automatic advancement through reps, time, and weight phases. EMOM timer for session tracking. Use when building progressions, logging completed sessions, calculating next levels, or designing training progressions. Triggers include "progression", "kettlebell", "EMOM", "advancement", "progression level", "swing progression", "kettlebell advancement", "track progress", "log session", "next level", "progression phase", "auto-advance", "progression algorithm", "set progression", "timer", "reps progression", "time progression", "weight progression", "progression form", "progression tracking".

Progressions Feature

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

Progression Algorithm

  1. Start: X kg, 10 reps, 10 min EMOM
  2. Each completed session: +2 reps (until 20)
  3. At 20 reps: +2 min per session (until 20 min)
  4. At 20 reps & 20 min: next kettlebell, reset to 10 reps & 10 min
  5. 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

FilePurpose
lib/progressionLogic.tsPure functions: calculateNextLevel, getCurrentLevel, getProgressionPhase
composables/useProgressions.tsList all progressions
composables/useProgression.tsSingle progression detail + session history
composables/useProgressionForm.tsCreate progression form state
composables/useProgressionSession.tsActive 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'

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon