SigmaLifting CLI
by @sigmalifting-dev
Use when the user wants to create, translate, import, validate, inspect, or update powerlifting training programs or workout logs for SigmaLifting using sigm...
clawhub install sigmalifting-cliπ About This Skill
name: sigmalifting-cli description: Use 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.
SigmaLifting CLI
Use this skill when working with SigmaLifting CLI bundles, especially when turning a spreadsheet, manual, or public program into a program-import bundle.
Core Boundaries
sigmalifting-cli executable as the contract and validation engine.Agent Mutation Policy
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.
CLI Discovery
When the installed CLI and this skill are available, inspect the tool before modeling:
1. run sigmalifting-cli doctor --compact
2. read this SKILL.md and any task-relevant files in references/
3. run sigmalifting-cli help --compact
4. run sigmalifting-cli schema list --compact
5. run sigmalifting-cli template program-import --compact or template process-import --compact
Program 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.
Schema Contract
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:
1. sigmalifting-cli schema list --compact
2. sigmalifting-cli schema show
3. sigmalifting-cli template
4. sigmalifting-cli validate
Use 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.
Authoritative Sample Workflow
If the user provides an exported SigmaLifting JSON file, treat that export as the first source of truth.
Before generating or translating anything similar:
1. identify the bundle kind the file actually matches 2. run the standalone CLI against the file exactly as provided 3. validate it first 4. if validation reports repair warnings, normalize it and validate the normalized output 5. only then extract modeling rules from it 6. make any changes through CLI mutation commands, never by patching the JSON file
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.
Block Semantics
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.
Variable Parameter 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.
Workflow
When modeling a program:
1. Inspect each week for structural sameness, not just duration. 2. Group only consecutive weeks that share the same skeleton. 3. Create one block per structural group. 4. Use weekly arrays only for parameter variation inside that block. 5. Preserve special-case instructions in notes if they are not truly machine-derived. 6. If unsure, prefer more blocks over fewer blocks.
Warning Signs
Stop and re-evaluate the block split if you notice:
0 set placeholders just to make weeks fit