Files
suaveplan/openspec/archive/2026-05-23-refresh-audio-queue-2026-05-23/tasks.md
2026-05-27 23:29:53 +01:00

3.6 KiB

Tasks — refresh-audio-queue-2026-05-23

1. Path migration across 13 change folders

  • 1.1 Replace packages/audio/ → packages/media/audio/ in every .md file under openspec/changes/enterprise-audio-{codecs,codec-ffmpeg-native,codec-ffmpeg-wasm,engine-server,analysis-spectrum,analysis-beat,analysis-loudness,analysis-pitch,cli,sprite-player}/
  • 1.2 Replace packages/audio/react-audio- → packages/ui/react/react-audio- in every .md file under openspec/changes/enterprise-react-audio-{player,stream,fingerprint}/
  • 1.3 Re-stamp the Date: line in each refreshed proposal to 2026-05-23
  • 1.4 Verify no packages/audio/ strings remain in any audio-queue change folder

2. Workspace catalog additions

  • 2.1 Add fluent-ffmpeg (pinned) to catalog.audio in root package.json
  • 2.2 Add @ffmpeg-installer/ffmpeg (pinned) to catalog.audio
  • 2.3 Add @types/fluent-ffmpeg to catalog.types
  • 2.4 Add @ffmpeg/ffmpeg (pinned) to catalog.audio
  • 2.5 Add @ffmpeg/core (pinned) to catalog.audio
  • 2.6 bun install to update lockfile

3. @suaveplan/audio-core AnalysisOp contract

  • 3.1 Add src/analysis/analysis-op.types.ts declaring AnalysisOp<TConfig, TResult>, AnalysisResult base shape, AnalysisFrame window descriptor, AnalysisCapabilities flags
  • 3.2 Add src/analysis/analysis-op.ts exposing createAnalysisOp<TConfig, TResult>(spec): AnalysisOp<TConfig, TResult> builder with Zod config validation, OTel instrumentation, AbortSignal handoff
  • 3.3 Add sibling analysis-op.md (6 required sections)
  • 3.4 Add analysis-op.test.ts covering builder happy-path, Zod rejection, OTel attribute propagation, signal handoff, error wrapping via AUDIO_CORE.*
  • 3.5 Add src/analysis/index.ts barrel with explicit named re-exports
  • 3.6 Wire ./analysis/analysis-op subpath export in package.json
  • 3.7 Add ./analysis entry in root src/index.ts exports
  • 3.8 Pre-publish gate green: bunx turbo lint typecheck test --filter=@suaveplan/audio-core + bunx turbo test:coverage --filter=@suaveplan/audio-core at 100/100/100/100

4. Engine-server upstream-contract relocation

  • 4.1 In openspec/changes/enterprise-audio-engine-server/specs/audio-engine-server/spec.md replace every @suaveplan/audio-plugins-fx/chain reference with ./fx/plugin-chain (relative to the engine-server package)
  • 4.2 Add a NEW Requirement to that spec delta: "Engine-server owns its PluginChain + BusRegistry contracts" — three scenarios (chain interface shape, registry cycle detection, future-amendment seam)
  • 4.3 Update enterprise-audio-engine-server/proposal.md workspace-deps table: remove @suaveplan/audio-plugins-fx, add note that contracts live in-package pending future upstream amendment

5. Analysis-spectrum spec clarifications

  • 5.1 Add a Scenario to enterprise-audio-analysis-spectrum/specs/audio-analysis-spectrum/spec.md specifying the bin-reduction algorithm (log-spaced bucket means over the frameSize/2+1 magnitude bins)
  • 5.2 Confirm the window-list (Hann/Hamming/Blackman only — drop Kaiser from any task-prompt drift)

6. Ship the refresh

  • 6.1 Fold this proposal's spec delta into openspec/specs/audio-core/spec.md (audio-core gains the AnalysisOp requirement)
  • 6.2 Move this change folder to openspec/archive/2026-05-23-refresh-audio-queue-2026-05-23/
  • 6.3 Run bun scripts/folder-reorg/generate-manifest.ts
  • 6.4 Commit on feat/audio-codecs (no separate branch — this change is groundwork for all 13 downstream branches)