Agent Skills › AIEraDev/Clypra › clypra-media-regression-testing

clypra-media-regression-testing

GitHub

指导AI代理为Clypra媒体、音频、时间轴及渲染子系统编写和运行回归测试,验证音视频同步、时间轴几何逻辑及导出流程。

.kiro/skills/clypra-media-regression-testing/SKILL.md AIEraDev/Clypra

触发场景

修改媒体探测或音视频同步引擎 变更时间轴间隙/放置逻辑 调整EvaluatedScene生成算法 优化导出管线或硬件交互

安装

npx skills add AIEraDev/Clypra --skill clypra-media-regression-testing -g -y
更多选项

非标准路径

npx skills add https://github.com/AIEraDev/Clypra/tree/master/.kiro/skills/clypra-media-regression-testing -g -y

不安装直接使用

npx skills use AIEraDev/Clypra@clypra-media-regression-testing

指定 Agent (Claude Code)

npx skills add AIEraDev/Clypra --skill clypra-media-regression-testing -a claude-code -g -y

安装 repo 全部 skill

npx skills add AIEraDev/Clypra --all -g -y

预览 repo 内 skill

npx skills add AIEraDev/Clypra --list

SKILL.md

Frontmatter
{
    "name": "clypra-media-regression-testing",
    "description": "Guides AI agents through authoring, running, and diagnosing media, audio, timeline, and rendering regression tests in Clypra. Activate when changing media probing, audio-video synchronization, timeline gap\/placement engines, EvaluatedScene generation, export pipeline, or native hardware surface interactions."
}

Clypra Media & Audio Regression Testing Workflow

Overview

This skill provides specific testing methodologies for Clypra's media, audio, timeline, and rendering subsystems. Clypra coordinates between a TypeScript/React frontend and a Rust/wgpu/CPAL backend. Testing must prevent regressions across timeline mathematics, audio synchronization, clip boundaries, decoder readiness, and export encoding.


When to Use This Skill

  • Adding regression tests for timeline clip placement, snapping, trimming, or splitting.
  • Verifying audio behavior for embedded video audio, detached audio, and standalone music tracks.
  • Testing media probing, hydration timing, and missing/corrupted file fallbacks.
  • Testing export pipeline logic, frame batching, and resolution calculations.
  • Verifying PlaybackClock state transitions and AV drift prevention.

When NOT to Use This Skill

  • Simple UI styling or component layout tweaks unrelated to media playback.
  • Pure documentation updates.

Testing Priorities & Scenarios

1. Audio Synchronization & Hydration Testing

Ensure both Web Audio and native CPAL audio paths are validated:

  • Video with Embedded Audio: Must resolve audio stream and populate active audio clips once probed.
  • Silent Video (No Audio Track): Must not block playback clock; markNativeAudioUnavailable() must allow video playback to proceed without stalling for audio clock positions.
  • Standalone Audio Tracks: Must start, seek, and loop accurately alongside video tracks.
  • Hydration Race Conditions: Test behavior when playback begins while asset.path === "" or asset.streams === undefined. Verify that clips are safely queued and synchronized once probe completes without freezing the UI or resetting playback time to 0.

2. Timeline Geometry & Invariants

Test pure timeline models without instantiating UI:

  • Clip Boundaries: Verify startTime, duration, sourceOffset math across trims, slips, slides, and splits.
  • Gap Engine: Test detectGaps(), insertGapWithRipple(), removeGapWithRipple(), and packTrack(). Ensure no negative clip durations or overlapping collisions on non-overlapping tracks.
  • SMPTE Timecode & Rational Time: Test frame-accurate timecode conversions at 23.976, 24, 25, 29.97, 30, 59.94, and 60 fps.

3. Rendering & EvaluatedScene

  • Test that evaluateTimelineSceneCached(time) produces the exact expected EvaluatedScene:
    • Active video/audio clips at time $T$.
    • Transform matrices, opacity, blend modes, and active keyframes.
    • Video transitions bridging incoming and outgoing clips.
  • Verify scene immutability: tests must confirm that rendering does not alter store state.

4. Export & Native Process Management

  • Preflight Checks: Verify exportPreflight() detects missing assets, zero-byte files, and invalid dimensions before launching FFmpeg.
  • Batching & Cancellation: Verify that cancelling an export halts frame production, cleans up temporary directories, and does not deadlock.
  • Process Cleanup: Ensure failed FFmpeg subprocesses terminate and release file locks.

Fixture & Determinism Strategy

  • Synthetic Test Fixtures: Prefer creating small, deterministic in-memory fixtures or minimal video/audio files generated via FFmpeg scripts (scripts/generate-bench-fixtures.sh).
  • Never Check In Large Media Files: Keep repository size small and free from licensing conflicts.
  • Validate Properties, Not Binary Hashes: Media encoding outputs can vary slightly across OS versions and FFmpeg builds. Assert stream metadata (duration, resolution, audio channels, codec, keyframe intervals) rather than brittle SHA256 checksums of encoded containers.

Execution Commands

# Run timeline mathematical unit tests
npx vitest run src/lib/timeline/__tests__/
npx vitest run src/core/timeline/__tests__/

# Run audio synchronization unit tests
npx vitest run src/core/audio/__tests__/
npx vitest run src/core/media/__tests__/

# Run export pipeline tests
npx vitest run src/lib/export/__tests__/

# Run full render loop and playback clock regression suite
npx vitest run src/components/editor/preview/__tests__/ProgramPreview.renderLoop.test.ts

版本历史

  • b371446 当前 2026-10-18 23:26

同 Skill 集合

.agents/skills/architecture-design-review/SKILL.md
.agents/skills/behavior-coverage/SKILL.md
.agents/skills/bugfix-regression/SKILL.md
.agents/skills/clypra-codebase-optimization-research/SKILL.md
.agents/skills/clypra-dev/SKILL.md
.agents/skills/clypra-media-regression-testing/SKILL.md
.agents/skills/clypra-performance-log-analysis/SKILL.md
.agents/skills/clypra-preview-performance-engineering/SKILL.md
.agents/skills/clypra-ui-ux-engineering/SKILL.md
.agents/skills/code-review/SKILL.md
.agents/skills/feature-implementation/SKILL.md
.agents/skills/i18n-localization-engineering/SKILL.md
.agents/skills/nle-domain-engineering/SKILL.md
.agents/skills/performance-reliability-engineering/SKILL.md
.agents/skills/release-readiness/SKILL.md
.agents/skills/senior-engineer-decision-making/SKILL.md
.agents/skills/tauri-cross-platform-engineering/SKILL.md
.kiro/skills/architecture-design-review/SKILL.md
.kiro/skills/behavior-coverage/SKILL.md
.kiro/skills/bugfix-regression/SKILL.md
.kiro/skills/clypra-codebase-optimization-research/SKILL.md
.kiro/skills/clypra-dev/SKILL.md
.kiro/skills/clypra-performance-log-analysis/SKILL.md
.kiro/skills/clypra-preview-performance-engineering/SKILL.md
.kiro/skills/clypra-ui-ux-engineering/SKILL.md
.kiro/skills/code-review/SKILL.md
.kiro/skills/feature-implementation/SKILL.md
.kiro/skills/i18n-localization-engineering/SKILL.md
.kiro/skills/nle-domain-engineering/SKILL.md
.kiro/skills/performance-reliability-engineering/SKILL.md
.kiro/skills/release-readiness/SKILL.md
.kiro/skills/senior-engineer-decision-making/SKILL.md
.kiro/skills/tauri-cross-platform-engineering/SKILL.md
.agents/skills/clypra-bug-hunter/SKILL.md
.agents/skills/tauri-native-thread-safety/SKILL.md
.kiro/skills/clypra-bug-hunter/SKILL.md
.kiro/skills/tauri-native-thread-safety/SKILL.md

元信息

文件数
0
版本
b371446
Hash
f5d60a11
收录时间
2026-10-18 23:26

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-19 21:59
浙ICP备14020137号-1