Install
openclaw skills install @sigmalifting-dev/sigmalifting-cliUse when the user wants to create, translate, import, validate, inspect, or update powerlifting training programs or workout logs for SigmaLifting using sigmalifting-cli, especially from spreadsheets, manuals, public programs, app exports, program-import bundles, or process-import bundles.
openclaw skills install @sigmalifting-dev/sigmalifting-cliUse this skill when working with SigmaLifting CLI bundles, especially when turning a spreadsheet, manual, or public program into a program-import bundle.
sigmalifting-cli executable as the contract and validation engine.SigmaLifting JSON is the CLI's internal storage and import/export contract. It is not an agent editing surface.
Agents must not directly create or mutate program/process bundle JSON with file edits, apply_patch, ad hoc scripts, jq, editor operations, or manual rewrites of files in the CLI store. Reading JSON for diagnosis is allowed; writing JSON directly is not.
All bundle creation and mutation must go through CLI commands:
template, program create, process create-from-program, or xlsx importprogram add-block, program update-block, program add-day, program update-schedule, program add-exercise, program update-exercise, custom-lift commands, and the exercise-progression intent commands such as program set-anchor, program add-set-group, program set-week-value, and program toggle-backoffprocess update-* commands and narrow intent commands such as process set-one-rm--out or let the local store persist command outputvalidate; use normalize only when the user explicitly wants CLI cleanup/repairvalidate is a strict import/acceptance gate for existing JSON. If it fails with repair warnings, use normalize to produce the cleaned bundle before inspecting or importing it.
If the CLI does not expose a command for a needed mutation, stop and report the CLI command gap or add the command first. Do not bypass the CLI by patching raw JSON.
When the installed CLI and this skill are available, inspect the tool before modeling:
sigmalifting-cli doctor --compactSKILL.md and any task-relevant files in references/sigmalifting-cli help --compactsigmalifting-cli schema list --compactsigmalifting-cli template program-import --compact or template process-import --compactProgram and process bundle results persist as local JSON by default. Use sigmalifting-cli store path to locate the store, and use SIGMALIFTING_HOME or --store-root when you need an explicit test or project-local store.
Do not treat this skill file as the schema.
This skill explains modeling judgment: block boundaries, weekly structure, set-group semantics, and common translation mistakes. The installed CLI is the schema source of truth.
Schema mentions in this skill are routing instructions, not schema documentation. They tell the agent which CLI commands to call before building CLI payloads or accepting imported JSON.
Before building CLI command payloads or importing existing JSON, get the executable contract from the CLI:
sigmalifting-cli schema list --compactsigmalifting-cli schema show <kind> --compactsigmalifting-cli template <kind> --compactsigmalifting-cli validate <kind> --file <path|"-"> --compactUse the template to learn field shape, defaults, sentinel values, and nesting. Use schema show to check constraints. Use this skill to decide what the program should mean structurally.
If the skill and CLI appear to disagree, trust the CLI schema and report the skill as stale.
Do not invent fields that are not present in the CLI schema or template.
If the user provides an exported SigmaLifting JSON file, treat that export as the first source of truth.
Before generating or translating anything similar:
If an app-exported file cannot be consumed by the standalone CLI, treat that as a CLI problem to investigate before declaring the modeling wrong.
Do not skip this step and jump straight to reconstructing the program from memory, public spreadsheets, or a simplified interpretation.
Do not define a block by contiguous time alone.
A block is a maximal consecutive run of weeks that share the same structural skeleton.
The structural skeleton means:
What may vary inside a block:
What should usually force a new block:
Do not collapse an entire multi-week program into one block just because weekly arrays can encode it.
That is a schema-valid compression, but it is a modeling error under SigmaLifting semantics.
Every set group has exactly one workout-recorded variable parameter: weight, reps, or rpe.
The other two training numbers are prescribed by the program:
variable_parameter: "weight" means reps and RPE are prescribed, and weight is recorded during the workout.variable_parameter: "reps" means weight and RPE are prescribed, and reps are recorded during the workout.variable_parameter: "rpe" means weight and reps are prescribed, and RPE is recorded during the workout.Do not model a set group by prescribing all three numbers. Do not leave two numbers open unless the CLI has a command and schema support for that explicit behavior.
Backoff and fatigue-drop configs are RPE-variable tools in the app model. They are only valid on set groups with variable_parameter: "rpe". If weight is the variable parameter, do not enable backoff_config, fatigue_drop_config, or mixed-weight prescription.
When modeling a program:
Stop and re-evaluate the block split if you notice:
0 set placeholders just to make weeks fit