Oh My Demo
一次录制真实应用,跳过后期制作。
请将此技能视为主机应用的排练与设置层,而非模拟应用生成器。准备起始状态、操作提示、节奏控制、声明的测试夹具以及重置路径,以便用户可以按下录制键并一气呵成地完成演示,无需在之后围绕失败进行剪切。保留生产环境的 UI、导航、命令、本地状态和可用业务逻辑。仅替换最少量、缓慢、昂贵、远程、不稳定或未完成的边界,以获得可靠的录制结果。
默认流程
将 SKILL_ROOT 解析为包含此文件的目录,然后使用 python3 "$SKILL_ROOT/scripts/oh_my_demo.py" 运行捆绑的 CLI。
-
检查仓库、其测试框架、现有测试夹具以及要录制的确切用户可见路径。在更改任何内容之前检查 git 状态和相关差异。
-
创建一个专用分支或隔离的工作树。绝不要将仅用于演示的夹具替换放在生产分支上。
-
初始化项目工具包:
python3 "$SKILL_ROOT/scripts/oh_my_demo.py" init . --name product-tour -
在
.oh-my-demo/manifest.json中构建一份真相账本。将每个声明分类为:real:可见应用执行其生产实现。simulated:声明的边界返回确定性的夹具数据。operator:录制辅助功能,如文本填充、节奏控制或重置;不要将这些便利设施计入真相百分比。
-
保持真实的加权份额在 80% 或以上。如果某个模拟的核心功能会突破预算,则减少该声明或实现更多真实路径。不要通过操纵权重来掩盖它。
-
清点所有输入、引用、夹具、结果和基线。将演示资源复制到
.oh-my-demo/或其他清单根目录下,而不是绑定到操作员机器的特定绝对路径。对于大型媒体,请选择 Git LFS 或基于校验锁定的已验证工件包,并在预检前在本地进行物化。 -
为可见控件提供稳定的语义目标。首选无障碍 ID、测试 ID 或主机注册表,而不是生成的 CSS 选择器或坐标。
-
仅添加所需的最少主机适配器来播种状态、恢复基线或满足生产边界约定。将产品特定的名词保留在可重用的清单运行时之外。
-
将录制视为具有状态感知、显式触发阶段的过程。集中管理输入间隔、可读加载时间、逐步显示和视口适配。在未收到人工触发前,绝不要前进到下一个叙述阶段。
-
在打开应用之前运行诊断并失败关闭:
python3 "$SKILL_ROOT/scripts/oh_my_demo.py" doctor . python3 "$SKILL_ROOT/scripts/oh_my_demo.py" status . python3 "$SKILL_ROOT/scripts/oh_my_demo.py" check . --record -
以叙述速度通过真实可见应用进行排练。在推进之前验证待处理状态、结果显示、累积的变更、音频/视频链接和视口响应。
-
重置并重复相同的录制至少两次。至少包含一次人工操作;仅靠自动化无法证明观众能够感知该行为。
-
将证据绑定到确切的清单并进行验证:
python3 "$SKILL_ROOT/scripts/oh_my_demo.py" prove . -
运行一次专注的生产禁用检查。确认演示激活默认处于关闭状态,并且正常构建不会静默解析夹具数据。
-
报告三个单独的列表:真实行为、模拟边界和操作员便利设施。仅针对声明的模拟产品问题提交后续产品工作,而不是演示控制。
内置界面
将 CLI 用作确定性主干:
init:创建.oh-my-demo/manifest.json、evidence.json和fixtures/。doctor:诊断 Python、git 工作树、分支、清单、媒体工具和显式激活。status:显示加权真相预算和模拟边界。check:预检分支、基线修订版本、资源、哈希值、媒体时长、尾随范围、旋转元数据、Unicode 路径和夹具链接。prove:要求两次重置并重放通过,一次人工可见操作通过,清单摘要绑定以及生产禁用隔离。
使用技能自身的推理来检查和修改主机应用。不要假装 CLI 可以自行实现与框架相关的适配器。
运行时合同
保持可复用的操作词汇表简洁:
focus、set-value、type-text、click、submit、navigate、wait、resolve-fixture、repeat、reset、assert 和 invoke-adapter。
将领域操作映射到主机拥有的适配器。画布编辑、数据库种子、时间线插入、移动手势或 TUI 命令仍属于 invoke-adapter;主机实现拥有其真实的类型和行为。
对于文本字段,解析声明的文本目标或聚焦的可用元素,拒绝敏感字段,聚焦它,在可用时通过框架的受控状态路径进行更新,并且仅在显式请求时提交。
安全合同
- 要求显式运行时激活和专用演示分支。
- 每个录制阶段都需要人工触发。
- 禁止从阶段性流程中发布实时内容、发送消息、计费、收费或产生其他远程副作用。
- 绝不绕过身份验证、授权、模型策略、令牌记账、签名或发布检查。
- 绝不填写密码、令牌、支付数据、恢复代码或类似秘密的字段。
- 仅重置清单声明的状态或主机拥有的版本化快照。绝不要针对主目录、仓库根目录、未解析的变量、通配符或声明根目录之外的路径。
- 将夹具仅视为消费者路径的证据,绝不视为其远程生产者正常工作的证据。
- 仅在与产品声明无关时才隐藏调试界面。绝不要隐瞒对受众所被告知的任何事实。
参考路由
在决定技能、CLI、项目工具包和主机适配器如何划分职责时,阅读 references/distribution.md。
在创建或扩展 .oh-my-demo/manifest.json 时,阅读 references/manifest-schema.md。
在实现主机适配器、夹具边界、重置路径或文本字段集成之前,阅读 references/adapters-and-safety.md。
在首次完整运行前、录制失败后或当某个变更成功但不可感知时,阅读 references/rehearsal.md。
在声称演示可重复或填写 .oh-my-demo/evidence.json 之前,阅读 references/evidence-schema.md。
完成门控
在满足以下所有条件之前,不要认为设置已完成:
doctor、status和check在专用演示分支上通过;- 加权真实份额至少为 80%;
- 每个模拟声明都有来源、窄注入点、其生产等价物以及可见断言;
- 重置两次都能恢复相同的初始状态;
- 至少一次人工操作的排练在叙述速度下是可感知的;
prove针对最终清单摘要通过;- 确认演示模式在生产路径中已禁用。