skills/harmonyos-ai-agent-skill/references/hmos-multidevice-fold-state/SKILL.md
Validate and route HarmonyOS foldable-device adaptation tasks (including bi-fold, multi-fold, and special-ratio form factors) through a declarative scene and resource index. Use when the task involves FoldStatus, hover layouts, crease avoidance, fold continuity, multi-fold state mapping (for example F/M/G), special-ratio inner/outer screen adaptation, or remediation of existing foldable-page issues.
npx skillsauth add openharmonyinsight/openharmony-skills hmos-multidevice-fold-stateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| 字段 | 内容 |
| --- | --- |
| skill_id | device-fold-state |
| skill_name | 设备折展状态适配 |
| one_line_purpose | 为折叠屏多形态设备提供悬停适配、折痕避让、开合连续性的统一基线。 |
| device_scope | foldable / multi-fold / special-ratio-foldable |
| problem_scope | FoldStatus、悬停态、折痕避让、开合连续性、多段折叠形态映射(如 F/M/G)、内外屏比例差异适配、折展问题修复 |
| not_in_scope | 普通手机或平板的常规响应式布局、与折展无关的纯视觉调整 |
| primary_outputs | primary_scene、device_constraints、implementation_notes、fix_plan、verification_matrix |
foldStatus / foldDisplayMode / 折痕轴 发生变化时,必须先清锁再重选方向,避免沿用旧方向。16 vp / 40 vp 仅用于内容安全间距,不作为分区锚点。模块主线固定为三块,先按主线归类,再进入场景细分:
| 主线 | 官方条目 | 主场景 | 主资源 |
| --- | --- | --- | --- |
| 悬停适配 | 4.3 | FOLD-02 | RSC_FOLD_03 |
| 折痕避让 | 4.4 | FOLD-03 | RSC_FOLD_05 |
| 开合连续性 | 4.1 | FOLD-07 | RSC_FOLD_17 |
说明:
FOLD-01、FOLD-04、FOLD-05、FOLD-06 属于扩展场景,用于状态入口、多形态/特殊比例和问题修复。RSC_FOLD_16(./references/fold_adaptation_four_blocks.md)。| 标签 | 阶段 | 当前模块关注点 |
| --- | --- | --- |
| REQ | 需求分析设计 | 设备形态、折展状态、方向策略、显示职责 |
| DEV | 开发 | 状态监听、分屏布局、折痕计算、开合连续性、生命周期回收 |
| FIX | 问题修复 | 折展问题修复、方向偏差、状态不同步、折痕跨越、连续性断档 |
| VAL | 功能验证 | foldStatus 证据、方向证据、折痕避让截图、连续性行为回归 |
active_phases、primary_phase、primary_scene、secondary_scenes、resources_usedREQ:device_constraints、capability_boundary、acceptance_focusDEV:code_touchpoints、reuse_resources、implementation_notes、integration_risksFIX:problem_profile、root_cause_hypothesis、fix_plan、regression_watchlistVAL:verification_matrix、evidence_requirements、pass_criteria、residual_risksdevice_constraints:指由设备折叠形态、折展状态、折痕区域和宽折叠特性带来的适配硬约束。在 device-fold-state 中,通常是需要支持哪些 fold status、折痕区域禁止承载哪些内容、悬停态是否允许重选方向。capability_boundary:指当前折展方案适用于哪些设备形态和状态,哪些设备或状态不支持,或只能降级处理。acceptance_focus:指需求阶段验收时必须确认的折展行为、方向结果、折痕避让和状态切换表现。deliverables.REQ 出现 device_constraints,表示“该折展场景命中后,需求分析必须先给出设备约束结论”,不是在场景层重新发明字段。FOLD-01。FOLD-02。FOLD-03。FOLD-03 + FOLD-06。FOLD-07。FOLD-04 或 FOLD-05。FOLD-06。FOLD-02 + FOLD-03 + FOLD-06。creaseRect 显示为横向宽条(如 2232x128)”时,优先联合命中 FOLD-02 + FOLD-06,并启用固定折痕轴判定策略。F:可视区较小的折叠形态(常用于保留核心内容)。M:中间过渡形态(布局通常介于紧凑与扩展之间)。G:可视区较大的展开形态(适合分栏或提升信息密度)。F/M/G 是通用语义标签,最终布局仍以实时窗口尺寸与断点为准。intent_signals / applies_when 命中主场景(primary_scene)和辅场景(secondary_scenes)。resource_refs 与 skill_to_path,优先加载 P0 官方路径。active_phases、primary_phase、primary_scene、secondary_scenes、resources_used。REQ/DEV/FIX/VAL 契约输出对应结构化结果。FOLD-* 场景,并说明命中依据。P0 官方资源,P1 模板资源仅用于加速落地。FOLD-01 折叠状态检测与状态切换响应scene_id: FOLD-01
scene_name: 折叠状态检测与状态切换响应
phase_tags: [REQ, DEV, FIX, VAL]
priority: P0
intent_signals:
- FoldStatus
- foldStatusChange
- 展开态
- 折叠态
- 半折叠态
applies_when:
- 需要识别折叠态、展开态、半折叠态
- 当前问题表现为状态变化后界面未更新
not_applies_when:
- 问题只涉及常规平板布局,没有折展状态输入
decisions:
- 选择状态来源、监听点和刷新入口
- 确定状态变化后的布局刷新和兜底行为
deliverables:
REQ:
- device_constraints
- capability_boundary
- acceptance_focus
DEV:
- code_touchpoints
- reuse_resources
- implementation_notes
- integration_risks
FIX:
- problem_profile
- root_cause_hypothesis
- fix_plan
- regression_watchlist
VAL:
- verification_matrix
- evidence_requirements
- pass_criteria
- residual_risks
resource_refs:
- RSC_FOLD_01
- RSC_FOLD_02
skill_to_path:
- skill: 折叠状态检测
path: ./references/fold_status_detection.md
FOLD-02 悬停态上下分屏与交互布局scene_id: FOLD-02
scene_name: 悬停态上下分屏与交互布局
phase_tags: [REQ, DEV, FIX, VAL]
priority: P0
intent_signals:
- 悬停态
- HALF_FOLDED
- 上下分屏
- 上展示下操作
applies_when:
- 页面在悬停态需要将展示区和操作区拆到上下分屏
- 当前问题表现为悬停态布局职责混乱
not_applies_when:
- 页面没有悬停态交互设计
decisions:
- 明确上半屏和下半屏的职责分配
- 明确方向锁定策略和退出悬停后的恢复策略
deliverables:
REQ:
- device_constraints
- capability_boundary
- acceptance_focus
DEV:
- code_touchpoints
- reuse_resources
- implementation_notes
- integration_risks
FIX:
- problem_profile
- root_cause_hypothesis
- fix_plan
- regression_watchlist
VAL:
- verification_matrix
- evidence_requirements
- pass_criteria
- residual_risks
resource_refs:
- RSC_FOLD_03
- RSC_FOLD_04
skill_to_path:
- skill: 悬停态上下分屏与交互
path: ./references/hover_state_interaction.md
FOLD-03 折痕区域避让scene_id: FOLD-03
scene_name: 折痕区域避让
phase_tags: [REQ, DEV, FIX, VAL]
priority: P0
intent_signals:
- 折痕
- CreaseRegion
- getFoldCreaseRegion
- 内容被劈开
- 避让区偏下
- 分界线不在中线
- 状态栏偏移
applies_when:
- 关键内容或交互可能落在折痕区域
- 状态变化后需要重新计算折痕避让范围
not_applies_when:
- 设备没有折痕区域输入
decisions:
- 确定折痕区域获取方式和重算时机
- 决定哪些内容必须远离折痕
- 先映射折痕矩形到页面坐标,再计算分界线,禁止未映射直接参与布局
- 上分区下边界锚定折痕上边界,下分区上边界锚定折痕下边界
- `16 vp / 40 vp` 仅作为分区内部内容安全间距,不替代边界定位
- 若页面根节点有 `globalPosition` 偏移,必须在同单位下扣减后再分区
deliverables:
REQ:
- device_constraints
- capability_boundary
- acceptance_focus
DEV:
- code_touchpoints
- reuse_resources
- implementation_notes
- integration_risks
FIX:
- problem_profile
- root_cause_hypothesis
- fix_plan
- regression_watchlist
VAL:
- verification_matrix
- evidence_requirements
- pass_criteria
- residual_risks
resource_refs:
- RSC_FOLD_05
- RSC_FOLD_06
skill_to_path:
- skill: 折痕区域避让
path: ./references/crease_avoidance.md
FOLD-07 开合连续性保障scene_id: FOLD-07
scene_name: 开合连续性保障
phase_tags: [REQ, DEV, FIX, VAL]
priority: P0
intent_signals:
- 开合连续性
- 操作步骤增加
- 页面滚动位置偏移
- 输入内容丢失
- 图片模糊
- 播放进度不一致
applies_when:
- 折叠/展开后出现状态断档,导致操作路径变长或体验降级
- 需要保证滚动、输入、图像和媒体时间轴在折展后的连续性
not_applies_when:
- 问题仅为静态布局差异,不涉及状态连续
decisions:
- 明确哪些状态必须跨折展保持(滚动锚点、输入草稿、媒体时间轴)
- 明确恢复链路触发时机,禁止基于过期视口恢复
- 明确降级策略回收点,避免质量衰减累积
deliverables:
REQ:
- device_constraints
- capability_boundary
- acceptance_focus
DEV:
- code_touchpoints
- reuse_resources
- implementation_notes
- integration_risks
FIX:
- problem_profile
- root_cause_hypothesis
- fix_plan
- regression_watchlist
VAL:
- verification_matrix
- evidence_requirements
- pass_criteria
- residual_risks
resource_refs:
- RSC_FOLD_17
- RSC_FOLD_01
skill_to_path:
- skill: 开合连续性
path: ./references/fold_continuity.md
- skill: 折叠状态检测
path: ./references/fold_status_detection.md
FOLD-04 多段折叠形态状态适配scene_id: FOLD-04
scene_name: 多段折叠形态状态适配
phase_tags: [REQ, DEV, FIX, VAL]
priority: P1
intent_signals:
- 多段折叠
- 多形态折展
- F/M/G
- 形态映射
applies_when:
- 目标设备存在多段折叠形态差异(可映射为 F/M/G 等)
- 当前问题表现为某一形态下方向或结构判断错误
not_applies_when:
- 设备仅存在单一折展形态,无需形态映射
decisions:
- 形态映射基线:可将不同设备形态抽象为“小可视区/中间态/大可视区”等统一语义(如 F/M/G)
- 确定不同折叠组合下的布局和方向策略
- 形态标签只作为语义入口,真实布局空间仍以运行时窗口尺寸和断点判定
- 明确“大可视区形态”下的方向和信息密度策略
deliverables:
REQ:
- device_constraints
- capability_boundary
- acceptance_focus
DEV:
- code_touchpoints
- reuse_resources
- implementation_notes
- integration_risks
FIX:
- problem_profile
- root_cause_hypothesis
- fix_plan
- regression_watchlist
VAL:
- verification_matrix
- evidence_requirements
- pass_criteria
- residual_risks
resource_refs:
- RSC_FOLD_07
- RSC_FOLD_01
skill_to_path:
- skill: 多段折叠形态状态适配
path: ./references/multi_fold_states.md
- skill: 折叠状态检测
path: ./references/fold_status_detection.md
FOLD-05 特殊比例折叠屏适配(内外屏差异)scene_id: FOLD-05
scene_name: 特殊比例折叠屏适配(内外屏差异)
phase_tags: [REQ, DEV, FIX, VAL]
priority: P1
intent_signals:
- 特殊比例折叠屏
- 1:1 外屏
- 16:10 内屏
- 内外屏比例差异
applies_when:
- 目标设备存在明显的外屏和内屏比例差异
- 需要处理宽折叠内容密度或导航形式变化
not_applies_when:
- 设备不具备宽折叠屏幕特征
decisions:
- 定义外屏与内屏的布局差异
- 决定哪些内容在外屏裁剪、隐藏或延后展示
deliverables:
REQ:
- device_constraints
- capability_boundary
- acceptance_focus
DEV:
- code_touchpoints
- reuse_resources
- implementation_notes
- integration_risks
FIX:
- problem_profile
- root_cause_hypothesis
- fix_plan
- regression_watchlist
VAL:
- verification_matrix
- evidence_requirements
- pass_criteria
- residual_risks
resource_refs:
- RSC_FOLD_08
- RSC_FOLD_03
- RSC_FOLD_09
- RSC_FOLD_10
- RSC_FOLD_11
- RSC_FOLD_12
skill_to_path:
- skill: 特殊比例折叠屏适配
path: ./references/special_form_factor_foldable_adaptation.md
- skill: 悬停态上下分屏与交互
path: ./references/hover_state_interaction.md
FOLD-06 折展问题通用修复路径scene_id: FOLD-06
scene_name: 折展问题通用修复路径
phase_tags: [DEV, FIX, VAL]
priority: P0
intent_signals:
- 折展问题修复
- 悬停态错乱
- 方向偏差
- 折痕跨越
- 连续性断档
- 生命周期回收
applies_when:
- 已有页面在折展态出现行为偏差,需要修复但不重构页面架构
- 需要按“问题描述-根因分析-通用修复方案”输出修复路径
not_applies_when:
- 当前任务是新页面从零设计
decisions:
- 先归类问题类型,再选对应通用修复模板,避免按页面类型定制
- 修复顺序统一为:监听入口 -> 几何/状态 -> 布局/交互 -> 生命周期回收 -> 回归验证
- 方向与分界线优先基于真实折痕几何,不使用经验比例硬编码
- 出现“避让区偏下/偏上”时,先排查坐标系混用与“中线 + 固定偏移”策略,再排查布局容器约束
- 禁止在折展修复中改写业务状态机语义
deliverables:
DEV:
- code_touchpoints
- reuse_resources
- implementation_notes
- integration_risks
FIX:
- problem_profile
- root_cause_hypothesis
- fix_plan
- regression_watchlist
VAL:
- verification_matrix
- evidence_requirements
- pass_criteria
- residual_risks
resource_refs:
- RSC_FOLD_01
- RSC_FOLD_03
- RSC_FOLD_05
- RSC_FOLD_13
skill_to_path:
- skill: 折叠状态检测
path: ./references/fold_status_detection.md
- skill: 悬停态上下分屏与交互
path: ./references/hover_state_interaction.md
- skill: 折痕区域避让
path: ./references/crease_avoidance.md
- skill: 折展问题修复场景库
path: ./references/bug-fix-cases.md
完整资源卡片已下沉至 ./references/resource-index.md,主文件仅保留检索入口与输出契约。
使用顺序:
P0 官方路径作为主方案。P1 工程模板资源仅作补充,不能替代官方基线。资源分组:
RSC_FOLD_01、RSC_FOLD_03、RSC_FOLD_05、RSC_FOLD_07、RSC_FOLD_08、RSC_FOLD_16、RSC_FOLD_17RSC_FOLD_02、RSC_FOLD_04、RSC_FOLD_06、RSC_FOLD_09 到 RSC_FOLD_13REQactive_phases、primary_phase、primary_scene、secondary_scenesdevice_constraints、capability_boundary、acceptance_focusDEVcode_touchpoints、reuse_resources、implementation_notes、integration_risksFIXproblem_profile、root_cause_hypothesis、fix_plan、regression_watchlistVALverification_matrix、evidence_requirements、pass_criteria、residual_risksfoldStatus 结果、方向信息、窗口几何或截图证据,并验证原有显示逻辑未被破坏development
Run local code quality checks covering a subset of OpenHarmony gate CI (copyright, CodeArts C/C++) plus additional local checks (pylint/flake8, shellcheck/bashate, gn format). Use before committing to reduce gate failures. Triggers on: /oh-precommit-codecheck, "门禁检查", "门禁预检", "检查代码", "run codecheck", "check code quality", "lint my code", "代码检查", or after completing code implementation. WHEN to use: before git commit, before creating PR, after modifying C/C++/Python/Shell/GN files, when gate CI fails with codecheck defects, or when you want to preview what gate will flag.
development
OpenHarmony PR full lifecycle workflow. Five modes: - Commit: standardized commit with DCO sign-off and Issue linking - Create PR: commit + push to fork + create Issue + create PR on upstream - Fix Codecheck: fetch gate CI codecheck defects from a PR and auto-fix them - Review PR: fetch a PR's changes to local for code review - Fix Review: fetch unresolved review comments from a PR and auto-fix them Triggers on: /oh-pr-workflow, "提交代码", "创建PR", "提个PR", "commit", "修复告警", "修复门禁", "修复codecheck", "fix codecheck", "review pr", "review这个pr", "看下这个pr", "检视pr", "修复review", "修复检视意见", "fix review", or a GitCode PR URL with fix/review intent.
testing
分析 HM Desktop PRD 文档,提取需求信息、验证完整性、检查章节顺序(需求来源→需求背景→需求价值分析→竞品分析→需求描述)、检查 KEP 定义、检测需求冲突并生成结构化分析报告。适用于用户请求:(1) 分析或审查 PRD 文档, (2) 从需求中提取 KEP 列表, (3) 检查 PRD 完整性或一致性, (4) 将需求映射到模块架构, (5) 验证 PRD 格式合规性, (6) 验证竞品分析章节完整性。关键词:PRD分析, requirement extraction, KEP验证, completeness check, chapter order validation, 竞品分析检查, analyze PRD, 需求提取, 完整性检查, 章节顺序验证
development
基于 PRD 文档自动生成鸿蒙系统设计文档,包括架构设计文档和功能设计文档。生成前会分析 OpenHarmony 存量代码结构,确保与现有架构兼容。架构设计文档第2章必须为竞品方案分析,位于需求背景之后。适用于用户请求:(1) 生成架构设计文档, (2) 生成功能设计文档, (3) 从 PRD 生成设计文档, (4) 创建系统架构设计, (5) 编写功能规格说明, (6) 分析 OH 代码结构。关键词:architecture design, functional design, design doc, 竞品方案分析, OpenHarmony code analysis, 架构设计, 功能设计, 设计文档生成, OH代码分析, analyze codebase, competitor analysis