feature-demo
GitHub规范功能演示视频录制流程,要求覆盖所有用户旅程并添加字幕。处理无法录制时的替代方案(如手动测试步骤),确保交付物符合质量标准,适用于前端、后端及 API 功能的验证与文档化。
Trigger Scenarios
Install
npx skills add omnigent-ai/omnigent --skill feature-demo -g -y
SKILL.md
Frontmatter
{
"name": "feature-demo",
"description": "Record at least one captioned demo for every covered CUJ through its real entry point."
}
Demo recordings
The demo is required. Record at least one clip for every covered CUJ; a CUJ with several entry points or steps may have more. Each clip shows the user action and the product's response through the CUJ's real entry point, never pytest output, assertions, test source, or debug logs.
Follow dev/recording-lanes.md for the recorder,
the per-surface mechanics, and captioning. Use the CUJ ID as the facet and
demo as the kind:
- Save each raw capture as
recordings/<ticket-key>/raw/demo-<cuj>.<ext>(add a short suffix, e.g.demo-cuj-1-edit, for extra clips of the same CUJ). - Burn timed captions into each clip with
dev/caption_recording.py, rendering torecordings/<ticket-key>/demo-<cuj>.mp4. Captions list the actions shown and end with the observed result. - Play and inspect each render before declaring it in the handoff and PR Demo.
If captioning fails, use the guide's uncaptioned fallback path and say why in
that clip's
captionand the PR Demo. A usable uncaptioned clip still counts. - For API or configuration CUJs, record a VHS terminal session that runs the real CLI or API call and shows its output. Written evidence alone is not a demo.
- Build the SPA before starting the recorder. Inside a server-spawned runner
(
OMNIGENT_RUNNER_IDis set), strip the inherited runner variables as the guide describes, and retry before reporting a blocker.
Never commit recordings; upload them to the PR as described in
feature-publish.
When a recording can't be made
Recording should almost always work. When a covered CUJ really can't be recorded (the recorder can't start in this environment, or the surface needs hardware or an external account the sandbox doesn't have), still publish a ready PR and drive it as usual. For that CUJ:
- set
recording_blockerto the specific blocker, with the command and error; - write
manual_test: step-by-step instructions a human can follow to test the journey, including setup, the inputs to give, and what they should see; - put both in the PR's Demo section in place of the clip.
The outcome is then partially_implemented, with that CUJ's recording in
remaining_work. Only declare clips you actually produced. Then load
feature-publish.
Version History
- fd56977 Current 2026-11-02 10:41
- 369359f 2026-10-18 17:57


