Lzheng Fitness Workbench Builder logo

Lzheng Fitness Workbench Builder

Community
LZheng0411
lzheng-fitness-workbench-builder

将训练计划 JSON、执行基准、训练复盘、可选 Notion 导出和内置界面素材组装为可离线打开的个人健身工作台,并完成数据刷新、壁纸替换、内置文档阅读、可选 Obsidian 编辑、响应式页面、发布副本与自动校验。用于用户要求从零构建、迁移、重建、替换背景、打包、同步、修复或发布健身工作台,或希望在新电脑上复刻同款个人训练系统时;不用于制定个性化训练处方、单次训练复盘或医疗建议。

Overview

PublisherLZheng0411
RepositoryLzheng-fitness
Skill namelzheng-fitness-workbench-builder
Stars
137
Forks
10
Bundled files
58
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 58 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by LZheng0411 on GitHub. Read the source before you install it.

Installation

Install the Lzheng Fitness Workbench Builder AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/LZheng0411/Lzheng-fitness/tree/main/skills/lzheng-fitness-workbench-builder
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/LZheng0411/Lzheng-fitness.git /tmp/Lzheng-fitness
mkdir -p .claude/skills
cp -r /tmp/Lzheng-fitness/skills/lzheng-fitness-workbench-builder .claude/skills/lzheng-fitness-workbench-builder
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Lzheng Fitness Workbench Builder in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Lzheng Fitness Workbench Builder on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Lzheng Fitness Workbench Builder is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Lzheng 健身工作台构建器

把工作台视为“唯一固定界面模板 + 用户事实文件 + 可重复构建脚本”。唯一视图资产是 assets/workbench-template.html;AI 只能刷新 workbench-data,不得手写另一套工作台。不把训练重量写死在页面视图,不复制其他人的个人记录。工作台必须适配增肌、减脂、力量和综合健身,四个力量主项只属于力量模式,不能作为其他目标的前提。

读取 ../lzheng-training-system/references/system-contract.md;如果存在交接记录,读取 ../lzheng-training-system/references/handoff-schema.md,只消费其中已确认产物。系统根目录优先使用本次用户指定路径,其次使用套件配置;视图代码不得包含固定磁盘路径。

低 token 读取边界

日常计划修改、复盘和本地刷新禁止把整份 健身工作台.html 或 assets/workbench-template.html 读入 Agent 上下文。先运行:

powershell
python "<skill>/scripts/Inspect-FitnessWorkbench.py" --project "<项目根目录>"

该命令只输出模板完整性、当前计划、今日/下次训练、同步状态和本轮应读主源。随后只读取 authoritative_sources 中与当前任务有关的 JSON/Markdown;不要扫描历史计划、完整复盘目录、全部专家库或构建器源码。视觉开发、模板修复及检查器报出结构损坏时,才允许定点读取模板命中行;仍不得默认全量读取 100 KB 以上 HTML。

先判断任务

  • 侧栏缺失 / 已有页面升级:读取 界面升级,先检查实际运行模板和原 HTML,再使用独立 upgrade-workbench-ui。用户已经要求修复时直接完成兼容检查、备份、升级与浏览器验收;未知自定义不能静默覆盖。数据刷新和重新安装 Skill 都不能替代界面升级。

  • 从零构建 / 新电脑迁移:读取 输入契约,使用初始化脚本创建完整目录和可运行页面。

  • 刷新数据:保留正式 HTML 视图,只运行数据生成器更新唯一 workbench-data 数据块;schema 6 必须包含建档、系统、知识包、状态和来源核验信息。

  • 接入完整计划:完整计划使用 plan_contract 时,先运行 Adapt-PlanContract.py 适配为工作台主源;不得要求用户手工重写第二份计划 JSON。

  • 链接打不开 / 跨电脑迁移异常:完整读取 路径可迁移修复协议,先盘点全部入口、配置和发布目标,再修复并执行整体移动回归;不得只修改截图中的单个按钮。

  • 替换已有工作台壁纸:完整读取 壁纸替换,调用替换脚本完成备份、静态/动态模式、取景更新和检查;不得让用户手工改 HTML。

  • 修改项目默认界面或默认背景:读取 视觉契约,修改源模板后用模板刷新脚本生成脱敏模板。

  • 制作发布副本:读取 迁移与发布,先校验,再复制 HTML 和全部本地素材。

  • 制定计划或训练复盘:转交对应训练 Skill;本 Skill 只消费结果,不凭空生成个人处方。

从零构建

  1. 确认目标目录、品牌短名、使用者称呼和周期开始日期。
  2. 优先使用用户自己的版本化计划 JSON。没有时可以用内置示例启动界面,但必须明确标注“示例数据”,不得把示例重量当成处方。
  3. 运行:
powershell
python "<skill>/scripts/Initialize-FitnessWorkbench.py" --target "<新项目目录>" --brand "TRAIN" --athlete "使用者" --start-date "YYYY-MM-DD" [--plan "<计划-vNN.json>"] [--notion "<notion-data.json>"]
  1. 初始化脚本必须创建正式 HTML、五个固定目录、背景素材、当前计划、执行基准和复盘索引,并自动运行构建与检查。
  2. 把页面中显示的示例计划替换为用户已确认的计划后,再交付为正式系统。

目标目录已有文件时,初始化脚本默认拒绝覆盖。不要用强制参数覆盖用户独有内容;改用新的空目录或先人工审计。

刷新已有工作台

日常刷新优先运行单命令闭环。它严格按 builder check → apply →正式 checker 执行;任一步失败都会写失败回执,正式 checker 失败时自动恢复 apply 前 HTML:

powershell
python "<skill>/scripts/Refresh-FitnessWorkbench.py" --project "<项目根目录>" [--notion "<notion-data.json>" --notion-mode incremental|full] --backup-dir "<项目外临时备份目录>" [--receipt "<项目外回执.json>"]

回执中的四个状态不得混用:formal_refreshed 只表示正式 HTML 通过 checker;release_prepared 只表示本地发布副本通过 deploy checker;本脚本不上传、不访问线上,因此 deployed 与 online_verified 始终为 false。回执同时记录输入快照、正式 HTML、数据块、发布目录及核心脚本的 SHA-256 和版本证据。

只有人工确认 full 快照确实代表整份权威主项历史时,才可增加 --replace-main-lift-history --confirm-replace-main-lift-history;它必须与 --notion、--notion-mode full 同时出现,并会原样传给 builder check、apply、正式 checker 和 deploy checker。缺少任一显式条件即拒绝执行。

排查单个底层阶段时才分别运行:

powershell
python "<skill>/scripts/Build-FitnessWorkbenchData.py" --project "<项目根目录>" [--notion "<notion-data.json>" --notion-mode incremental|full] --check-only
python "<skill>/scripts/Build-FitnessWorkbenchData.py" --project "<项目根目录>" [--notion "<notion-data.json>" --notion-mode incremental|full] --apply --backup-dir "<项目外临时备份目录>"
python "<skill>/scripts/Check-FitnessWorkbench.py" --project "<项目根目录>" [--notion "<notion-data.json>" --notion-mode incremental|full]

需要本地发布副本时,在同一命令显式增加 --deploy 与 --release-mode public-anonymized|private-portable。private-portable 会保留完整个人训练数据,必须额外传入 --confirm-private-portable,且只能交给有身份验证的私有环境。生成本地目录仍不等于部署;远端上传和线上复核必须由具备真实外部证据的后续流程完成。

CloudBase 零成本静态发布

只有用户明确要求 CloudBase 发布、上线核验、私人加密版或公开个人数据时,才完整读取 CloudBase 发布协议。普通本地刷新不得读取该协议或 CloudBase 脚本源码。

完整计划自动接入时使用:

powershell
python "<skill>/scripts/Adapt-PlanContract.py" "<完整计划.json>" "<当前周期/个人训练计划-v01.json>"

若一次 schema 或视图升级误将已有 Notion 动态数据降级为空态,可使用已知本地备份执行 --restore-notion-from-html <backup.html>;此动作只恢复 notion 数据,再由当前计划、执行基准和复盘重新生成 schema 6,不能直接把旧 HTML 整页覆盖回来。

正式计划、训练复盘或接回完成后不手工猜测刷新时机:创建 LZHENG_HANDOFF 后运行 lzheng-training-system/scripts/Process-LzhengHandoffs.py --project "<项目根目录>"。它只刷新通过契约验证的事实,并且只在刷新回执证明正式 checker 通过后写入 delivery.status: formal_refreshed;需要合并的专项周期会保持待合并,不能越权成为当前计划。

周切换同步契约(强制)

跨周时必须把“复盘结论、下一周处方、当前计划 schedule、工作台数据”作为一次原子更新:先把 schedule 改成覆盖今天的真实七日日期,所有训练日使用同一个 Wn,训练日数量与 plan.frequency 一致,再创建交接并刷新工作台。不得只改复盘、只改周次或让旧周训练卡继续显示。

构建器必须拒绝:排程不覆盖今天、训练日混合多个 Wn、训练日数量与频率不符、今天是训练日但没有今日处方、以及计划写明“自重”却被历史负重覆盖。每次发布前运行:

powershell
python "<skill>/scripts/Test-FitnessWorkbenchWeekTransition.py"

必须保持:

  • 当前周期只保留同一计划的一个有效版本;
  • 当前周来自复盘索引或用户确认,不按日历擅自推算;
  • 复盘索引有多少条有效记录,reviews 就按索引顺序完整生成多少条;不得只保留最近 5 条或设置其他隐式数量上限;
  • 今日训练按计划中的真实日期精确匹配;
  • 未知重量显示待确认,不沿用旧值冒充事实;
  • 完整计划 HTML 使用工作台相对链接直接交给浏览器;不得依赖固定盘符或要求项目必须是 Obsidian 仓库;
  • 复盘与状态内容默认可在工作台内阅读;Obsidian 只作为根据当前位置即时生成的可选编辑入口;
  • 图表已执行部分为实线,后续计划为虚线,重合时只显示实线。

更新界面模板

源工作台视觉稳定后运行:

powershell
python "<skill>/scripts/Refresh-FitnessWorkbenchTemplate.py" --source "<正式健身工作台.html>" --out "<skill>/assets/workbench-template.html"
python "<skill>/scripts/Validate-FitnessWorkbenchSkill.py" --skill "<skill>"

模板刷新脚本会移除个人 workbench-data,把品牌改为占位符,并检查模板中没有残留本地绝对路径或 Obsidian 个人深链。背景图放在 assets/backgrounds/,不得嵌入个人训练数据。

交付闸门

以下全部通过才能声明完成:

  1. Validate-FitnessWorkbenchSkill.py 返回 FITNESS_WORKBENCH_SKILL: PASS;
  2. Test-FitnessWorkbenchWeekTransition.py 返回 FITNESS_WORKBENCH_WEEK_TRANSITION: PASS;
  3. Test-FitnessWorkbenchPortability.py 返回 FITNESS_WORKBENCH_PORTABILITY: PASS;
  4. Test-FitnessWorkbenchRefresh.py 返回 FITNESS_WORKBENCH_REFRESH_TEST: PASS;
  5. quick_validate.py <skill> 返回通过;
  6. 在一个全新的隔离目录运行初始化脚本成功,页面显示“待建档”且不把匿名示例重量当处方;
  7. 新目录的 Check-FitnessWorkbench.py 检查为 FITNESS_WORKBENCH_CHECK: PASS;
  8. 正式页面所引用的每张图片和完整计划 HTML 在项目、移动后目录和发布目录中都存在;
  9. Skill 文本和模板不含原作者训练记录、用户名或固定磁盘路径。

资源

  • scripts/Initialize-FitnessWorkbench.py:从模板和输入文件创建新工作台。
  • scripts/Build-FitnessWorkbenchData.py:从计划、复盘、执行基准和 Notion JSON 生成数据块。
  • scripts/Inspect-FitnessWorkbench.py:只读输出紧凑状态,供 Agent 日常定位主源且避免加载整份 HTML。
  • scripts/Refresh-FitnessWorkbench.py:依次完成预检、刷新、正式检查及可选发布副本检查,并生成不可混淆本地与线上状态的 JSON 回执。
  • scripts/Adapt-PlanContract.py:将完整计划 Skill 的统一 plan_contract 适配为工作台主源。
  • scripts/Check-FitnessWorkbench.py:检查结构、事实一致性、资源和发布副本。
  • scripts/Prepare-FitnessWorkbenchRelease.py:生成移除本机路径与 Obsidian 深链的分享版并复制素材。
  • scripts/Publish-FitnessWorkbenchCloudBase.py:统一 CloudBase 发布入口;只允许新鲜 Notion 快照和匿名发布副本,记录四级状态与版本归档。
  • scripts/Deploy-FitnessWorkbenchCloudBase.py、Verify-FitnessWorkbenchCloudBase.py:分别执行显式上传和线上哈希核验/受管回滚;不创建环境或写入密钥。
  • scripts/Prepare-FitnessWorkbenchEncryptedRelease.py:把受管私人副本单文件化并使用 DPAPI 强密码加密,公开目录不保留个人明文。
  • scripts/Publish-FitnessWorkbenchCloudBasePrivate.py、Deploy-FitnessWorkbenchCloudBaseEncrypted.py、Verify-FitnessWorkbenchCloudBaseEncrypted.py:完整私人工作台的统一刷新、加密、上传、线上三文件哈希核验和四级回执;密钥不进入参数或回执。
  • scripts/Publish-FitnessWorkbenchCloudBasePublicPersonal.py、Prepare-FitnessWorkbenchPublicPersonalRelease.py、Deploy-FitnessWorkbenchCloudBasePublicPersonal.py、Verify-FitnessWorkbenchCloudBasePublicPersonal.py:仅在用户明确接受个人数据公开时使用的免密码统一入口、单文件准备、远端精确文件集与线上哈希核验。
  • scripts/Test-FitnessWorkbenchEncryptedRelease.py:隔离验证 DPAPI、AES-GCM、错误密码、篡改拒绝、受管覆盖及线上密文字节一致性。
  • scripts/Replace-FitnessWorkbenchBackground.py:安全替换已生成工作台的图片/MP4 背景,自动备份、检查并在失败时回滚。
  • scripts/Refresh-FitnessWorkbenchTemplate.py:从正式页面刷新脱敏模板。
  • scripts/Validate-FitnessWorkbenchSkill.py:检查 Skill 包完整性与可迁移性。
  • scripts/Test-FitnessWorkbenchWeekTransition.py:回归验证跨周同步、频率、今日处方与自重语义。
  • scripts/Test-FitnessWorkbenchPortability.py:把完整健身系统移动到新目录,验证计划、内置文档、全部页面资源和无 Obsidian 发布副本仍可用。
  • scripts/Test-FitnessWorkbenchRefresh.py:隔离验证刷新顺序、失败回滚、隐私确认、发布哈希、四级状态与交接兼容。
  • scripts/Test-FitnessWorkbenchBackgroundReplacement.py:验证静态、动态、初始化接入、目录移动、发布复制和损坏素材拒绝。
  • scripts/Migrate-FitnessWorkbenchSchema.py:将保留的 schema 5 数据块安全迁移为 schema 6;正式页面仍应由数据生成器重新构建。
  • references/path-portability-repair.md:AI 处理链接失效、旧绝对路径、系统迁移和发布假通过时的强制修复协议。
  • references/background-replacement.md:AI 和用户执行壁纸替换时的命令、备份、取景与验收说明。
  • references/cloudbase-publishing.md:仅在 CloudBase 发布任务中读取的隐私、鉴权与线上核验规则。
  • assets/workbench-template.html:不含个人事实的界面模板。
  • assets/backgrounds/:工作台内置视频、静态兜底和兼容图片。
  • assets/examples/:匿名计划与 Notion 输入示例。

学习与日常交互

新版保持离线记录,增加常驻饮食/知识入口、自然周日历、本机改期与顺延、独立知识数据和三餐目标版本展示。排期与学习反馈保存本机,不冒充云同步;日期留空保留处方,不改实际训练记录。

知识内容通过 lzheng-knowledge-library 的独立数据写入器维护。界面升级必须保留 knowledge-library-data;日常刷新仍只替换训练数据块。原浏览器身份与路径不变,才能延续本机记录。

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Lzheng Fitness Workbench Builder AI skill do?

将训练计划 JSON、执行基准、训练复盘、可选 Notion 导出和内置界面素材组装为可离线打开的个人健身工作台,并完成数据刷新、壁纸替换、内置文档阅读、可选 Obsidian 编辑、响应式页面、发布副本与自动校验。用于用户要求从零构建、迁移、重建、替换背景、打包、同步、修复或发布健身工作台,或希望在新电脑上复刻同款个人训练系统时;不用于制定个性化训练处方、单次训练复盘或医疗建议。

Why use Lzheng Fitness Workbench Builder on TypingMind?

Because you install it once and use it with any model. Lzheng Fitness Workbench Builder is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Lzheng Fitness Workbench Builder in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/LZheng0411/Lzheng-fitness/tree/main/skills/lzheng-fitness-workbench-builder. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Lzheng Fitness Workbench Builder?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Lzheng Fitness Workbench Builder?

As many as you like. As long as a model supports skills, you can use Lzheng Fitness Workbench Builder with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Lzheng Fitness Workbench Builder AI skill free?

Yes. It is published on GitHub by LZheng0411 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇