2.7 KiB
2.7 KiB
Tasks — Add MutableUriPluginRegistrar to @suaveplan/audio-ir-core
1. Spec authoring
- 1.1 Read
openspec/AGENTS.md§§ 13, 14, 14a, 2c, 6a - 1.2
proposal.md(this file) — including## Impactper §14a - 1.3
specs/audio-ir-core/spec.md— three requirements, each with**Verified by:** - 1.4 Working-notes checklist of every
### Requirementand#### Scenario
2. Implementation
- 2.1
mkdir packages/audio-ir/audio-ir-core/src/registrar/ - 2.2
src/registrar/registrar.ts+.md— interface + factory - 2.3
src/registrar/index.ts— explicit named re-exports - 2.4 Update root
src/index.ts— add explicit named re-exports forMutableUriPluginRegistrar,createUriPluginCollector - 2.5 Update
package.json— add./registrarsubpath export AND add@suaveplan/storage-uritodependencies(workspace:^) - 2.6 Update
vite.config.ts— register the new entry point so dist emitsdist/registrar/registrar.js - 2.7 Update root
README.md— new## Composing IR content packagessection showing the collector pattern withpool+clubas examples
3. Tests
- 3.1
src/registrar/registrar.test.ts— every scenario in requirement 2 - 3.2
src/registrar/registrar.spec-conformance.test.ts— every scenario in requirements 1 and 3 (type-levelexpectTypeOfassertions) - 3.3 Every
it(...)carries{ timeout: 5000 }
4. Pre-archive verification (5-gate triple)
- 4.1
bun run check— Biome 0/0/0/0 - 4.2
bunx turbo lint typecheck test --filter=@suaveplan/audio-ir-core— green - 4.3
bunx turbo test:coverage --filter=@suaveplan/audio-ir-core— 100/100/100/100 - 4.4
bun scripts/openspec-conformance.ts @suaveplan/audio-ir-core— exit 0 - 4.5
bunx turbo build --filter=@suaveplan/audio-ir-core— green;dist/registrar/registrar.jsemitted - 4.6
bun scripts/docs-check.ts packages/audio-ir/audio-ir-core— 100%
5. Pre-archive 7-row checklist
- 5.1 Type-level assertions on collector + interface (
expectTypeOfon every type claim) - 5.2 Zod schemas N/A for this change (no runtime validation needed)
- 5.3 No new error codes — N/A
- 5.4 Strict-mode behaviors tested (frozen-array mutation rejection)
- 5.5 OTel surface unchanged — N/A
- 5.6 Lifecycle dedup tested (multiple
use()calls, snapshot freshness) - 5.7 No retroactive tick
6. Archive
- 6.1 Fold delta into
openspec/specs/audio-ir-core/spec.md(append the three ADDED requirements) - 6.2 Move folder to
openspec/archive/<yyyy-mm-dd>-add-mutable-uri-plugin-registrar-to-audio-ir-core/ - 6.3 Refresh
MANIFEST.mdviabun scripts/folder-reorg/generate-manifest.ts