5.4 KiB
5.4 KiB
Tasks — Enterprise Migration: @suaveplan/audio-engine
Every checkbox MUST reflect work actually done in this change.
1. Spec authoring
- 1.1 Read
../suaveplan/enterprise/audio-engine.mdend-to-end - 1.2 Read
openspec/AGENTS.mdSections 13 and 14 - 1.3 Draft
proposal.md - 1.4 Fill
## Source mappingtable - 1.5 Draft
specs/audio-engine/spec.md - 1.6 Every requirement carries
**Verified by:**with concreteit(...)titles
2. Scaffold
- 2.1 Create
packages/audio/audio-engine/withsrc/,tests/,src/__benchmarks__/ - 2.2 Write
package.jsonat0.1.0,sideEffects: false, exports map - 2.3 Write
tsconfig.json,vitest.config.ts,vite.config.ts - 2.4 Add lint/typecheck/test/test:coverage/build scripts
3. Types + errors
- 3.1 Write
src/types/common.ts—AudioEngineConfig,AudioEngineState,PerformanceMetrics,AudioEngineStateInfo,PluginState,PluginConfig,PluginMetadata,AudioPluginDescriptor,PluginParameter,PluginMetrics,AudioGraphConnection,AudioGraphNode,AudioGraphSerialized,AudioWorkletNodeOptions,WorkletNodeInfo,WorkletModuleInfo,AudioEngineEventMap - 3.2 Write Zod schemas for
AudioEngineConfig,PluginMetadata,AudioPluginDescriptor - 3.3 Write
src/error-codes.ts—AUDIO_ENGINE_CODES,AudioEngineError,AUDIO_ENGINE_ERROR_METADATA - 3.4 Write
src/types/common.md - 3.5 Write
src/error-codes.md
4. Core engine
- 4.1 Write
src/engine/engine-state.ts—AudioEngineStateenum, state transition helpers - 4.2 Write
src/engine/engine-metrics.ts—PerformanceMetrics, OTel instruments - 4.3 Write
src/engine/engine.ts—AudioEngineclass (≤300 lines) - 4.4 Write
src/engine/engine.test.tsandengine.spec-conformance.test.ts - 4.5 Write
src/engine/engine.md
5. Audio graph
- 5.1 Write
src/graph/graph.ts—AudioGraphclass (≤300 lines) - 5.2 Write
src/graph/graph-connect.ts— connection helpers, cycle detection - 5.3 Write
src/graph/graph-traverse.ts— topological sort, BFS path, source/sink detection - 5.4 Write
src/graph/graph.test.tsandgraph.spec-conformance.test.ts - 5.5 Write
src/graph/graph.md
6. Plugin base + registry
- 6.1 Write
src/plugin/plugin-base.ts—AudioPluginabstract class,definePlugin - 6.2 Write
src/plugin/plugin-base.test.ts - 6.3 Write
src/registry/plugin-registry.ts—PluginRegistryclass - 6.4 Write
src/registry/plugin-registry.test.ts - 6.5 Write
src/plugin/plugin-base.mdandsrc/registry/plugin-registry.md
7. Worklet manager
- 7.1 Write
src/worklet/worklet-loader.ts— module loading, URL allow-list - 7.2 Write
src/worklet/worklet-messaging.ts— send/receive/broadcast - 7.3 Write
src/worklet/worklet-registry.ts— node create/destroy, statistics - 7.4 Write
src/worklet/worklet-manager.ts— facade re-exporting the three sub-modules - 7.5 Write
src/worklet/worklet-manager.test.tsandworklet-manager.spec-conformance.test.ts - 7.6 Write
src/worklet/worklet-manager.md
8. Queue engine
- 8.1 Write
src/queue-engine/cue.ts—AudioProcessingTask, task data types - 8.2 Write
src/queue-engine/scheduler.ts— serial/parallel chain execution, retry - 8.3 Write
src/queue-engine/queue-engine.ts—AudioQueueEngineclass (≤300 lines) - 8.4 Write
src/queue-engine/queue-engine.test.ts - 8.5 Write
src/queue-engine/queue-engine.md
9. Event bus
- 9.1 Write
src/event-bus/event-bus.ts— typed wrapper with error isolation - 9.2 Write
src/event-bus/event-bus.test.ts - 9.3 Write
src/event-bus/event-bus.md
10. Integration + purity
- 10.1 Write
tests/integration.test.ts— full round-trip - 10.2 Write
tests/purity.test.ts— zero side effects on import - 10.3 Write
tests/exports.test.ts— every public export is reachable
11. Benchmarks
- 11.1 Write
src/__benchmarks__/graph.bench.ts - 11.2 Write
src/__benchmarks__/worklet.bench.md
12. Root docs
- 12.1 Write
README.mdwith quick-start, plugin lifecycle state diagram, module links - 12.2 Write
src/index.tswith explicit named re-exports only
13. Pre-archive 5-gate triple
- 13.1
bun run check— Biome 0/0/0 across monorepo - 13.2
bunx turbo lint typecheck test --filter=@suaveplan/audio-engine— green - 13.3
bunx turbo test:coverage --filter=@suaveplan/audio-engine— 100/100/100/100 - 13.4
bun scripts/openspec-conformance.ts @suaveplan/audio-engine— exit 0 - 13.5
bunx turbo build --filter=@suaveplan/audio-engine— green
14. Pre-archive 7-row checklist
- 14.1 Generics threaded;
expectTypeOfassertions on literal-type claims - 14.2 Zod schemas wired at every declared boundary
- 14.3 Every error code thrown by at least one production path
- 14.4 Strict-mode behaviors tested both on and off
- 14.5 OTel instruments emitted and asserted with real
MeterProvider - 14.6 Lifecycle dedup tested (in-flight Promise, idempotent set/load)
- 14.7 No retroactive tick
15. Archive
- 15.1 Fold spec delta into
openspec/specs/audio-engine/spec.md - 15.2 Move
openspec/changes/enterprise-audio-engine/→openspec/archive/YYYY-MM-DD-enterprise-audio-engine/ - 15.3 Update
STATUS.mdrow to✅ - 15.4 Regenerate
MANIFEST.md