通过分析用户上传的站立照片(任意角度、全身或半身均可),识别体态问题,提供分区域详细分析和个性化改善方案。
本 Skill 执行以下工作流:
references/posture-analysis-guide.md 进行分区域体态分析
assets/report-template.html 生成详细 HTML 报告
scripts/html_to_pdf.py 将 HTML 转为 PDF
当用户触发本 Skill 但未提供照片时,执行以下引导流程:
Step 1:生成拍照引导页并展示二维码
将 assets/photo-guide.html 复制到工作目录为 posture-photo-guide.html,然后使用 preview_url 在对话中展示该引导页面。
Step 2:在对话中输出操作指引
## 📸 体态拍照指南
请拍摄一张或多张**站立姿势**的照片,然后**通过以下任一方式上传到对话框**:
### 方式一:WorkBuddy 小程序(推荐)
1. 打开微信,扫描下方二维码或在小程序中搜索「WorkBuddy」
2. 进入对话,点击输入框旁的 **📎 图片按钮**
3. 从相册选择照片发送
### 方式二:电脑端直接上传
1. 用手机拍好后,传到电脑(微信文件传输/数据线/AirDrop)
2. 在 WorkBuddy 对话框中**点击 📎 或直接粘贴图片(Ctrl+V)**
### 📋 拍照建议(点击上方二维码查看图文教程)
- ✅ 任意角度均可:正面、侧面、背面都行
- ✅ 全身或半身照均可,能看到站立姿势就行
- ✅ 穿贴身衣物效果更好,但不是硬性要求
- ❌ 需要是站立姿势的照片,坐姿/躺姿无法分析
等待用户上传照片后,进入 Phase 1。
接收用户上传的照片(一张或多张,任意角度,全身或半身均可)。
核心要求:照片中的人物必须处于站立姿势。除此之外不做硬性限制。
照片质量评估(参考专业知识库 1.1 节):
检查以下维度,评估可分析范围:
| 评估维度 | 说明 |
|---------|------|
| 站立姿势 | 照片中人物是否处于站立状态(坐姿/躺姿无法分析体态) |
| 可见身体区域 | 照片覆盖了哪些区域(头部/肩部/躯干/骨盆/膝关节/足部),据此确定分析范围 |
| 角度 | 正面/侧面/背面/斜面均可,不同角度可分析不同问题 |
| 穿着影响 | 贴身衣物可分析全部区域;宽松衣物会遮挡部分轮廓,但仍可尝试分析可见部分 |
| 清晰度 | 骨骼标志点、关节轮廓是否可辨 |
处理策略:
先使用 read_file 读取参考知识库:
read_file references/posture-analysis-guide.md
然后按以下 6 个区域逐一分析:
| 序号 | 区域 | 最佳观察角度 | 核心问题 |
|-----|------|-----------|---------|
| 1 | 头部与颈椎 | 侧面 | 头前伸、头部侧倾 |
| 2 | 肩部 | 正面/侧面 | 圆肩、高低肩 |
| 3 | 胸椎与躯干 | 侧面/背面 | 驼背、脊柱侧弯 |
| 4 | 骨盆 | 侧面/正面 | 骨盆前倾/后倾/侧倾 |
| 5 | 膝关节 | 侧面/正面 | 膝超伸、膝内扣、膝外翻 |
| 6 | 足部 | 正面/背面 | 扁平足、高弓足 |
分析要求:
在对话中直接输出文字版摘要,结构如下:
## 📊 体态分析结果摘要
### 照片评估
- 分析角度:正面/侧面/背面
- 分析可信度:高/中/低(说明原因)
### 发现的主要问题
| 区域 | 问题 | 严重程度 | 优先级 |
|------|------|---------|--------|
| ... | ... | ... | ... |
### 关键发现
(用 3-5 句话概括最重要的体态问题和它们之间的关联)
### 核心改善建议
(列出 top 3 最优先的改善动作,每个包含动作名和频率)
### ⚠️ 免责声明
(使用知识库末尾的免责声明模板)
使用 assets/report-template.html 作为模板,生成完整的 HTML 报告文件。
模板变量替换规则:
| 模板变量 | 替换为 |
|---------|-------|
| {{date}} | 当前日期 YYYY-MM-DD |
| {{angles}} | 照片角度描述,如"正面 + 侧面" |
| {{overall_score}} | 综合评分(百分制,如 72) |
| {{overall_class}} | 评分等级:good(≥80) / moderate(60-79) / poor(<60) |
| {{problem_count}} | 发现的问题总数 |
| {{worst_region}} | 最需关注的区域名称(如"肩部") |
| {{worst_class}} | 最差区域的严重等级 |
| {{improveability}} | 综合可改善性评分(如 ★★★★) |
| {{photo_assessment_content}} | 照片评估的 HTML 段落 |
| {{regional_analysis_content}} | 分区域分析的 HTML 块(使用 region-block 结构) |
| {{problem_table_rows}} | 问题汇总表格行(使用 problem-table 结构) |
| {{chain_analysis_content}} | 链式关联分析内容(可使用 chain-flow 结构) |
| {{exercise_content}} | 改善方案(使用 exercise-card 结构) |
| {{daily_tips_content}} | 日常建议(使用 tip-card 结构) |
| {{medical_display}} | 就医建议区域显示状态:"block" 或 "none" |
| {{medical_content}} | 就医建议的 HTML 段落 |
HTML 生成规范:
.region-block > .region-header.{severity} + .region-body 结构
normal / mild / moderate / severe
.severity-tag.tag-{level} 类名
.chain-flow > .chain-node + .chain-arrow 结构
.exercise-card 结构,包含 .exercise-meta span 标签
.tips-grid > .tip-card 结构
报告保存:将生成的 HTML 写入工作目录,文件名格式为 posture-report-{YYYYMMDD}.html。
将 HTML 报告转换为 PDF,便于发送和分享。
执行方式:
python scripts/html_to_pdf.py posture-report-{YYYYMMDD}.html posture-report-{YYYYMMDD}.pdf
环境要求:
pip install playwright)
playwright install chromium)
PDF 输出特点:
错误处理:
open_result_view 展示生成的 HTML 报告
deliver_attachments 将 PDF 文件 作为附件发送(优先)
共 1 个版本