원클릭으로
update-audio-goals
Regenerate app/gui/audio_goals.md with a fresh comprehensive analysis of the AudioPlayer component
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Regenerate app/gui/audio_goals.md with a fresh comprehensive analysis of the AudioPlayer component
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Implement improvements from a goals file by section number or name
Regenerate app/gui/goals.md with a fresh comprehensive analysis of the Veiled desktop app (excluding AudioPlayer and VideoPlayer internals)
Regenerate app/gui/video_goals.md with a fresh comprehensive analysis of the VideoPlayer component
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-audio-goals |
| description | Regenerate app/gui/audio_goals.md with a fresh comprehensive analysis of the AudioPlayer component |
Delete audio_goals.md and regenerate it from scratch with a comprehensive analysis of every possible improvement across the AudioPlayer 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 AudioPlayer is a Winamp-themed audio player integrated into the Veiled library modal. It uses a native <audio> element (routes through GStreamer via WebKitGTK) with a separate PCM decode via OfflineAudioContext for FFT visualization only. Custom Cooley-Tukey radix-2 FFT (1024 samples, 32 bars) and waveform overview (200 buckets, peak-detection downsampling). WebKitGTK's Web Audio API is broken (no AnalyserNode, no AudioWorklet). Styling uses Winamp-themed CSS variables defined in fe/src/index.css. Suggestions should feel native to a polished retro-inspired desktop media player — not a web-first SPA.
Read CLAUDE.md to understand the current architecture, conventions, and gotchas
Read the current audio_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 AudioPlayer:
Agent 1 — Playback, Transport & Visualization:
AudioPlayer.tsx component line by lineVideoPlayer.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 audio formats<audio> element handle all lifecycle events? Check for stalled, waiting, suspend, abort, emptied. Are there error states for unsupported formats? GStreamer codec gaps?Agent 2 — Performance & Memory:
fe/src/index.css for Winamp CSS variables, transitions, animations used by the playerrequestAnimationFrame cancelled on unmount? Are canvas dimensions handled for HiDPI? Is getComputedStyle called per frame (expensive)?Agent 3 — UX, Accessibility & Testing:
AudioPlayer.tsx (the JSX return block)fe/src/components/__tests__/AudioPlayer.test.tsxaria-live for state changes (play/pause, volume, speed)? Are all interactive elements keyboard-reachable? Is tab order logical? Do sliders have role="slider" + ARIA attributes? Does the LED display button have accessible labeling?Synthesize findings from all agents into a single audio_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 audio_goals.md with this structure:
# AudioPlayer Goals & Improvements
A comprehensive backlog for making the AudioPlayer exceptional. Pick any item, implement it, check it off, and submit a PR.
**Architecture context:**
- Native `<audio>` element for playback (routes through GStreamer via WebKitGTK)
- Separate PCM decode via `OfflineAudioContext` for FFT visualization only
- Custom Cooley-Tukey radix-2 FFT (1024 samples, 32 bars)
- Waveform overview (200 buckets, peak-detection downsampling)
- WebKitGTK Web Audio API is broken (no AnalyserNode, no AudioWorklet)
- Styling uses Winamp-themed 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 propaudio_goals.md before writing — this is always a fresh analysis[x]) from the previous audio_goals.md[s]) from the previous audio_goals.md — these were intentionally declined and must not reappeargrep -c '^\- \[ \]' and report the countgrep -c '🔴', grep -c '🟡', grep -c '🟢'