Skip to content
CAI
Software that uses CAICheck a score

mgifos/quick-plan

56.5

Adequate · 20 September 2026

1.2k

lines of production code

Scala

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a command-line tool for managing Garmin Connect workouts, allowing users to define, import, and schedule training plans from CSV files. It supports both running and cycling activities with flexible step definitions, automatic cooldowns, and metric/imperial unit conversions. The application handles authentication via OAuth and synchronizes workout data with the Garmin Connect API.

Features

Initial release of Garmin Connect workout import and scheduling CLI

This release introduces a new command-line tool that allows users to define, import, and schedule workouts on Garmin Connect using CSV-based weekly plans. The application handles authentication via a multi-step OAuth flow, parses workout definitions (including nested repeats, custom targets like heart rate or power, and metric/imperial units), and synchronizes them with the Garmin Connect API. Users can import workout definitions, schedule them on specific dates, and optionally delete existing workouts with matching names before importing.

src/main · high confidence

Initial release of Quick Plan CLI for Garmin workout management

Introduces the Quick Plan command-line tool, which allows users to define, import, and schedule Garmin Connect workouts from CSV-based weekly training plans. The tool supports both running and cycling workouts with a flexible notation for steps like warmup, repeat, and cooldown, including automatic cooldown addition via the \--auto-cooldown\ flag. It handles metric and imperial measurement systems and targets Garmin Connect via email/password authentication. The project is built with Scala 3, configured with Databricks-style formatting and linting rules (scalafmt/scalafix), and is currently at version 0.5.2-SNAPSHOT.

(repo-wide) · high confidence

Test coverage

Added comprehensive test coverage for workout parsing, authentication, and API integration; Added test fixtures for structured and CSV workout plans.

Dependencies

Initial project setup with Scala 3 and Typelevel ecosystem dependencies

The build configuration introduces the 'quick-plan' project, upgrading the language to Scala 3.8.2 and establishing a dependency stack centered on the Typelevel ecosystem, including Cats-Effect 3.7.0, fs2 3.12.2, http4s 0.23.31, and Circe 0.14.15 for JSON handling. Additional libraries include Logback for logging, Scopt for command-line parsing, and ScalaCSV for data processing, alongside ScalaTest for testing.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 56.

Lenses

  • Code Health 96
  • Architecture 69
  • Maturity 59
  • Readiness 41
  • Security 100

Changes since last survey

  • 82 commits — 77 feature/other, 5 fixes

By area

  • (root) — 41 commits
  • src/main — 27 commits
  • (repo) — 10 commits
  • src/test — 3 commits
  • project/plugins.sbt — 1 commit

Notable commits

  • fix: Fixed: Failed to login to Garmin #6
  • fix: Fixed: workout names #8
  • fix: Merge pull request #21 from mgifos/bug/20-schedule-refs
  • fix: Readme steps notation fix
  • fix: fix: Login was not successful #60
  • change: Add automatically cooldown: lap-button as an additional step of each workout #40
  • change: Add power and cadence as possible targets
  • change: Add support for custom workouts
  • change: Additional step type 'go' provided to support custom workouts fully #29
  • change: Allow cleaning of workouts
  • change: Allow cleaning of workouts #33 (based on the existing -x option)
  • change: Custom HR target spec #25
  • change: Detect workout definition type automatically #42
  • change: Formatted with new scalafmt format
  • change: Garmin Connect Login Failure #53 quickfix
  • change: Garmin connect workout deletion, definition and scheduling through Command line
  • change: Improved stream error handling
  • change: Initial commit
  • change: Initial import of model and parsers
  • change: Json dump
  • …and 62 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

mgifos/quick-plan was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit a94b0abf6026f9ba571387210a648cd6373a7f6e — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.