From LiftLog Plan Builder
Create a LiftLog workout plan (.liftlogplan file) that can be imported into the LiftLog app. Use when the user asks for a workout program, training split, lifting routine, or running plan, or asks to build/edit/convert a plan for LiftLog.
How this skill is triggered — by the user, by Claude, or both
Slash command
/liftlog-plan-builder:create-liftlog-planThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn a training goal into a `.liftlogplan` file the user can import into LiftLog.
Turn a training goal into a .liftlogplan file the user can import into LiftLog.
Ask only for what you actually need, and only if they haven't said it:
If the user has given you enough to work with, skip the interview and build the plan. Don't interrogate someone who said "give me a 3-day full body routine for a beginner".
Read reference/format.md before writing any JSON. It is the field-by-field guide, and it lists the mistakes that make a file fail to import. reference/ProgramBlueprint.json is the authoritative JSON Schema if you need to check something exactly.
examples/push-pull-legs.liftlogplan is a complete weighted-training plan; examples/couch-to-5k.liftlogplan covers cardio. Read whichever is closer to what you're building.
One session per training day. Order exercises the way they'd actually be performed — compounds first, isolations after.
Set rests from the effort of the lift, not a default: heavy compounds get 3–5 minutes, accessories 60–90 seconds.
node scripts/validate-plan.mjs <file>
It needs nothing installed and no network. It prints every problem with the path to the offending field, and exits non-zero. Fix and re-run until it passes. Never hand the user a file you haven't validated — the app reports a failed import as nothing more than "That file isn't a valid workout plan", so an invalid file gives them nothing to act on.
Name the file after the plan: Push Pull Legs.liftlogplan.
Then tell them how to import it, since it isn't obvious:
Get the file onto your phone (AirDrop, email, or save it to Files/Drive), then tap it — LiftLog will open it. Or open LiftLog and go to Plans → Import.
If the user gives you a .liftlogplan file to change, read it, modify it, validate it, and hand it back. Keep the fields you weren't asked to touch exactly as they were.
If they want to change a plan they're already running but haven't given you the file, ask them to export it out of the app:
In LiftLog, open Plans, tap the
⋮next to the plan and choose Export to file. That opens the share sheet — save it to Files/Drive, or mail it to yourself — then send me the.liftlogplan.
Don't rebuild their plan from a verbal description when they could just export it — the file has their real exercise names, rest times, and progressive overload settings, and anything you reconstruct will quietly differ.
When you hand the edited file back, mention that importing it creates a new plan rather than overwriting the old one, so they'll want to delete the original from Plans once they've imported the replacement. Their logged workout history isn't affected either way.
Guides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Synthesizes the current conversation into a structured spec (PRD) and publishes it to the project issue tracker with a ready-for-agent label, without interviewing the user.
npx claudepluginhub liammorrow/liftlog --plugin liftlog-plan-builder