Initial Commit
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
# Tasks — Add @suaveplan/currency-provider-virtual
|
||||
|
||||
## Spec-completeness preflight (AGENTS.md §12a)
|
||||
|
||||
- [x] Numbered checklist of every `### Requirement` and `#### Scenario`
|
||||
drafted in `specs/currency-provider-virtual/spec.md` (5 requirements,
|
||||
16 scenarios).
|
||||
|
||||
## Package scaffold
|
||||
|
||||
- [x] `packages/finance/currency-provider-virtual/package.json` (0.0.0,
|
||||
universal, `sideEffects: false`)
|
||||
- [x] `tsconfig.json`, `tsconfig.lib.json`
|
||||
- [x] `vite.config.ts` (externals: `@suaveplan/currency`,
|
||||
`@suaveplan/currency-providers`, `@suaveplan/error`, `@suaveplan/types`,
|
||||
`tslib`)
|
||||
- [x] `vitest.config.ts` (istanbul, 100/100/100/100, polyfills setup)
|
||||
- [x] `tests/setup/polyfills.ts`
|
||||
- [x] `README.md` (≥200 words, Modules section)
|
||||
|
||||
## Implementation
|
||||
|
||||
- [x] `src/error-codes/error-codes.ts` — re-export `UNKNOWN_CURRENCY` code +
|
||||
`CurrencyProviderError` from slim core for ergonomic access
|
||||
- [x] `src/error-codes/error-codes.md`
|
||||
- [x] `src/provider/provider.types.ts` — `VirtualCurrencyProviderConfig`,
|
||||
`VirtualCurrencyProviderOptions`, `VirtualRateEntry` shapes
|
||||
- [x] `src/provider/provider.ts` — `VirtualCurrencyProvider` class
|
||||
- [x] `src/provider/provider.md`
|
||||
- [x] `src/index.ts` — explicit named barrel
|
||||
- [x] `src/provider/index.ts` (feature barrel)
|
||||
|
||||
## Tests
|
||||
|
||||
- [x] `src/provider/provider.test.ts` — covers constructor, `setRate`,
|
||||
`removeRate`, `clear`, `hasRate`, `getRate`, `listCurrencies`,
|
||||
`fetchRates` (default base, custom base, target filter, empty table),
|
||||
`UNKNOWN_CURRENCY` error path, `FakeClock`-driven timestamp,
|
||||
`supportsVirtual` flag
|
||||
- [x] `tests/dep-graph.test.ts` — root barrel has no `export *`; feature
|
||||
barrels have no `export *`; subpath exports match feature modules
|
||||
|
||||
## Documentation
|
||||
|
||||
- [x] Every implementation `.ts` has a sibling `.md` (§13 step 5 grep
|
||||
returns zero)
|
||||
- [x] `README.md` at package root with Install / Quick start / Features /
|
||||
Modules sections
|
||||
|
||||
## Pre-archive gates (AGENTS.md §13)
|
||||
|
||||
- [ ] Step 0 — spec reconciliation: every `### Requirement` and
|
||||
`**Verified by:**` resolves to a real file + verbatim test name
|
||||
- [ ] Step 1 — `bunx turbo lint typecheck test --filter=@suaveplan/currency-provider-virtual`
|
||||
- [ ] Step 2 — `bunx turbo test:coverage --filter=@suaveplan/currency-provider-virtual`
|
||||
reports 100/100/100/100 via istanbul
|
||||
- [ ] Step 3 — `bunx turbo build --filter=@suaveplan/currency-provider-virtual` 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 matches feature module count
|
||||
- [ ] Step 9 — security-scan grep returns zero
|
||||
|
||||
## Root-doc refresh (AGENTS.md §13b)
|
||||
|
||||
- [ ] Re-run `bun scripts/folder-reorg/generate-manifest.ts` to refresh
|
||||
`MANIFEST.md`
|
||||
- [ ] Re-run `bun scripts/generate-missing.ts` to refresh `MISSING.yml`
|
||||
- [ ] Add `@suaveplan/currency-provider-virtual` row to `STATUS.md`
|
||||
- [ ] Add `@suaveplan/currency-provider-virtual` row to `SUMMARY.md`
|
||||
- [ ] `bunx markdownlint-cli2 --fix` across touched root + change files
|
||||
|
||||
## Archive (AGENTS.md §14)
|
||||
|
||||
- [ ] Fold `specs/currency-provider-virtual/spec.md` into
|
||||
`openspec/specs/currency-provider-virtual/spec.md`
|
||||
- [ ] Move `openspec/changes/add-currency-provider-virtual/` →
|
||||
`openspec/archive/2026-05-17-add-currency-provider-virtual/`
|
||||
Reference in New Issue
Block a user