Files
suaveplan/openspec/archive/2026-05-17-add-currency-provider-kraken/tasks.md
2026-05-27 23:29:53 +01:00

3.5 KiB

Tasks — Add @suaveplan/currency-provider-kraken

Spec-completeness preflight (AGENTS.md §12a)

  • Numbered checklist of every ### Requirement and #### Scenario drafted in specs/currency-provider-kraken/spec.md (8 requirements; see the spec delta).

Scaffold

  • Create packages/finance/currency-provider-kraken/ with package.json (0.1.0, sideEffects: false, type: module)
  • Add tsconfig.json + tsconfig.lib.json mirroring the slim core
  • Add vite.config.ts with preserveModules: true and the four external packages
  • Add vitest.config.ts (forks pool, istanbul provider, 100/100/100/100 thresholds, includes tests/**/*.test.ts)
  • Add tests/setup/polyfills.ts (empty shim)
  • Add README.md (per CLAUDE.md §5 — H1, paragraph, install, quick start, modules)

Implement

  • src/symbols/symbols.ts — KRAKEN_SYMBOL_MAP (12 frozen entries) + KRAKEN_PAIR_TO_SYMBOL reverse map + mergeSymbolMap helper
  • src/symbols/symbols.md — sibling doc (≥200 words; Purpose / Features / Basic / Advanced / API Reference / Implementation Notes)
  • src/symbols/symbols.test.ts — frozen, complete, reverse consistent, merge override behaviour
  • src/symbols/index.ts — explicit named barrel
  • src/provider/provider.ts — KrakenProvider class + KrakenProviderConfig extending NoKeyConfig with optional extraSymbols map; DEFAULT_KRAKEN_BASE_URL constant
  • src/provider/provider.md — sibling doc
  • src/provider/provider.test.ts — full scenario coverage matching the ## Test strategy in design.md
  • src/provider/index.ts — explicit named barrel
  • src/index.ts — explicit named barrel re-exporting both feature modules

Dep-graph + invariants test

  • tests/dep-graph.test.ts — no export * in src/index.ts or any feature barrel; subpath-export count matches feature-module count

Pre-archive gates (AGENTS.md §13)

  • Step 0 — spec reconciliation (every ### Requirement + **Verified by:** resolves)
  • Step 1 — bunx turbo lint typecheck test --filter=@suaveplan/currency-provider-kraken + bun run check both green
  • Step 2 — bunx turbo test:coverage --filter=@suaveplan/currency-provider-kraken reports 100/100/100/100
  • Step 3 — bunx turbo build --filter=@suaveplan/currency-provider-kraken green
  • Step 4 — banned-pattern grep returns zero
  • Step 4a — barrel-shape grep returns zero
  • Step 4b — test-runner-import grep returns zero
  • Step 5 — missing-.md grep returns zero
  • Step 6 — README present
  • Step 7 — bare-version grep returns zero
  • Step 8 — subpath-export count = 2 (matches feature module count)
  • Step 9 — security-scan grep returns zero
  • Step 10 — dependent sweep (no current dependents — fast-path)

Root-doc refresh (AGENTS.md §13b)

  • bun scripts/folder-reorg/generate-manifest.ts
  • bun scripts/generate-missing.ts
  • Update STATUS.md row for @suaveplan/currency-provider-kraken
  • Update SUMMARY.md row for @suaveplan/currency-provider-kraken
  • bunx markdownlint-cli2 --fix

Archive (AGENTS.md §14)

  • Fold specs/currency-provider-kraken/spec.md into openspec/specs/currency-provider-kraken/spec.md
  • Move openspec/changes/add-currency-provider-kraken/ → openspec/archive/2026-05-17-add-currency-provider-kraken/