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

80 lines
3.5 KiB
Markdown

# Tasks — Add @suaveplan/currency-provider-kraken
## Spec-completeness preflight (AGENTS.md §12a)
- [x] Numbered checklist of every `### Requirement` and `#### Scenario`
drafted in `specs/currency-provider-kraken/spec.md` (8 requirements;
see the spec delta).
## Scaffold
- [x] Create `packages/finance/currency-provider-kraken/` with
`package.json` (`0.1.0`, `sideEffects: false`, `type: module`)
- [x] Add `tsconfig.json` + `tsconfig.lib.json` mirroring the slim core
- [x] Add `vite.config.ts` with `preserveModules: true` and the four
external packages
- [x] Add `vitest.config.ts` (forks pool, istanbul provider, 100/100/100/100
thresholds, includes `tests/**/*.test.ts`)
- [x] Add `tests/setup/polyfills.ts` (empty shim)
- [x] Add `README.md` (per CLAUDE.md §5 — H1, paragraph, install, quick
start, modules)
## Implement
- [x] `src/symbols/symbols.ts` — `KRAKEN_SYMBOL_MAP` (12 frozen entries) +
`KRAKEN_PAIR_TO_SYMBOL` reverse map + `mergeSymbolMap` helper
- [x] `src/symbols/symbols.md` — sibling doc (≥200 words; Purpose / Features
/ Basic / Advanced / API Reference / Implementation Notes)
- [x] `src/symbols/symbols.test.ts` — frozen, complete, reverse consistent,
merge override behaviour
- [x] `src/symbols/index.ts` — explicit named barrel
- [x] `src/provider/provider.ts` — `KrakenProvider` class +
`KrakenProviderConfig` extending `NoKeyConfig` with optional
`extraSymbols` map; `DEFAULT_KRAKEN_BASE_URL` constant
- [x] `src/provider/provider.md` — sibling doc
- [x] `src/provider/provider.test.ts` — full scenario coverage matching
the `## Test strategy` in `design.md`
- [x] `src/provider/index.ts` — explicit named barrel
- [x] `src/index.ts` — explicit named barrel re-exporting both feature
modules
## Dep-graph + invariants test
- [x] `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)
- [x] Step 0 — spec reconciliation (every `### Requirement` +
`**Verified by:**` resolves)
- [x] Step 1 — `bunx turbo lint typecheck test --filter=@suaveplan/currency-provider-kraken`
+ `bun run check` both green
- [x] Step 2 — `bunx turbo test:coverage --filter=@suaveplan/currency-provider-kraken`
reports 100/100/100/100
- [x] Step 3 — `bunx turbo build --filter=@suaveplan/currency-provider-kraken`
green
- [x] Step 4 — banned-pattern grep returns zero
- [x] Step 4a — barrel-shape grep returns zero
- [x] Step 4b — test-runner-import grep returns zero
- [x] Step 5 — missing-`.md` grep returns zero
- [x] Step 6 — README present
- [x] Step 7 — bare-version grep returns zero
- [x] Step 8 — subpath-export count = 2 (matches feature module count)
- [x] Step 9 — security-scan grep returns zero
- [x] Step 10 — dependent sweep (no current dependents — fast-path)
## Root-doc refresh (AGENTS.md §13b)
- [x] `bun scripts/folder-reorg/generate-manifest.ts`
- [x] `bun scripts/generate-missing.ts`
- [x] Update `STATUS.md` row for `@suaveplan/currency-provider-kraken`
- [x] Update `SUMMARY.md` row for `@suaveplan/currency-provider-kraken`
- [x] `bunx markdownlint-cli2 --fix`
## Archive (AGENTS.md §14)
- [x] Fold `specs/currency-provider-kraken/spec.md` into
`openspec/specs/currency-provider-kraken/spec.md`
- [x] Move `openspec/changes/add-currency-provider-kraken/` →
`openspec/archive/2026-05-17-add-currency-provider-kraken/`