بنقرة واحدة
update-video-goals
Regenerate app/gui/video_goals.md with a fresh comprehensive analysis of the VideoPlayer component
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Regenerate app/gui/video_goals.md with a fresh comprehensive analysis of the VideoPlayer component
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Implement improvements from a goals file by section number or name
Regenerate app/gui/audio_goals.md with a fresh comprehensive analysis of the AudioPlayer component
Regenerate app/gui/goals.md with a fresh comprehensive analysis of the Veiled desktop app (excluding AudioPlayer and VideoPlayer internals)
Update app/gui/CLAUDE.md to match the current codebase state
Low-level Cardano utilities with @meshsdk/core-cst
Cardano transaction building with @meshsdk/transaction
| name | update-video-goals |
| description | Regenerate app/gui/video_goals.md with a fresh comprehensive analysis of the VideoPlayer component |
Delete video_goals.md and regenerate it from scratch with a comprehensive analysis of every possible improvement across the VideoPlayer component. Do not carry over completed items or skipped items from the previous round — this is a fresh audit against the current state of the code.
Design intent: The VideoPlayer is a desktop video viewer integrated into the Veiled library modal. It uses a native <video> element with FFmpeg.wasm remux fallback for unsupported containers. Styling uses Tailwind utilities with CSS variable theming (dark/light). Suggestions should feel native to a polished desktop media library app — not a web-first SPA.
Read CLAUDE.md to understand the current architecture, conventions, and gotchas
Read the current video_goals.md (if it exists) to understand what was previously identified — but do NOT preserve it. The output is a clean slate. Note any items marked [s] (skipped) — these were intentionally declined and must NOT be re-suggested in the new goals.
Launch parallel Explore subagents (all "very thorough") to audit the VideoPlayer:
Agent 1 — Playback, Seeking & Transport:
VideoPlayer.tsx component line by lineAudioPlayer.tsx component for feature parity comparisonLibraryContentModal.tsx for integration point (how data is passed, how the player is mounted)fe/src/config/categories.ts for supported video formats<video> element handle all lifecycle events? Check for stalled, waiting, suspend, abort, emptied. Is the probe mechanism (8s timeout) robust? Are there race conditions between Blob creation, probe resolution, and FFmpeg remux?Agent 2 — Performance & Memory:
fe/src/index.css for CSS variables, transitions, animations used by the playervideo.src cleared on unmount to release GStreamer resources?Agent 3 — UX, Accessibility & Display:
VideoPlayer.tsx (the JSX return block)fe/src/components/__tests__/VideoPlayer.test.tsxrole="slider" + ARIA attributes? Are playback state changes announced via aria-live? Do toggle buttons use aria-pressed? Are all interactive elements keyboard-reachable? Is tab order logical? Is the keyboard shortcut overlay accessible?Synthesize findings from all agents into a single video_goals.md file. Cross-reference between agents to eliminate duplicates. If an area has no genuine issues, do not pad it with filler items.
Write video_goals.md with this structure:
# VideoPlayer Goals & Improvements
A comprehensive backlog for making the VideoPlayer exceptional. Pick any item, implement it, check it off, and submit a PR.
**Architecture context:**
- Native `<video>` element for playback (routes through GStreamer via WebKitGTK)
- FFmpeg.wasm remux fallback for unsupported containers (MKV, AVI → MP4)
- Format probe mechanism: temporary `<video>` element with 8s timeout
- SRT/VTT subtitle support with automatic format conversion
- Fullscreen overlay mode with capture-phase Escape handling
- Styling uses Tailwind utilities + CSS variables defined in `fe/src/index.css`
Each item:
- `🔴` Critical — bugs, broken features
- `🟡` Important — UX improvements, user-requested features
- `🟢` Nice-to-have — polish, optimization
---
## N. Section Name
> Key files: `relevant/file/paths`
- [ ] 🟢 **Feature or improvement title**
- **How**: Concrete implementation approach with file paths, function names, patterns to follow. Should be detailed enough that a developer can start coding without further research.
- **Why**: 1-2 sentences explaining the user-facing or developer-facing value.
---
## Priority Summary
| Priority | Count | Items |
|----------|-------|-------|
| 🔴 Critical | N | ... |
| 🟡 Important | N | ... |
| 🟢 Nice-to-have | N | ... |
### Implementation Order (suggested)
[ordered list of recommended implementation sequence]
Organize items into these sections (merge or split as findings dictate). If a section has no genuine issues, omit it entirely.
aria-pressed={isMuted} to the mute button at line 504" is better than "Improve accessibility". Name the file, the line, the propvideo_goals.md before writing — this is always a fresh analysis[x]) from the previous video_goals.md[s]) from the previous video_goals.md — these were intentionally declined and must not reappeargrep -c '^\- \[ \]' and report the countgrep -c '🔴', grep -c '🟡', grep -c '🟢'